写在前面
《程序设计开发实训》作为独立的教学环节,是计算机类相关专业实践性环节系列之一。其目的在于加深对C程序设计与开发等相关知识和技能的理解和巩固。要求学生熟悉C程序设计的一般方法和步骤,能使用C语言开发dos界面、处理文件,具备初步的软件开发编程能力,从中提高学生分析问题、解决问题的实际能力,培养学生的专项技能、职业素养和团队协作精神。
开发环境
- 操作系统:Windows 11 Pro
- 编译器:CLion 2022.2.3
- 开发语言:C
功能需求
- 编写一个学生信息管理系统。
- 在编写的系统中能实现:录入、查询、删除、修改、排序、统计学生信息。
- 学生的信息包括:学号、姓名、班级、性别、英语成绩,C语言成绩,平均成绩,总成绩
- 避免系统bug的出现,优化系统。
- 系统使用结构化程序设计
功能说明
- 录入学生信息:将学生的信息输入到学生信息管理系统中。
- 删除学生信息:将学生信息管理系统中不需要的学生信息删除。
- 修改学生信息:在学生信息管理系统中修改学生的部分信息。
- 查询学生信息:在学生信息管理系统中输入需求显示查询结果。
- 显示学生信息:在学生信息管理系统中按需求显示所有学生信息。
- 排序学生信息:按一定规律对学生信息进行排序。
- 显示最好成绩:显示所有学生中总成绩最高的同学。
- 分组统计成绩:按照总成绩进行分组统计。
- 清屏:清除以上操作结果。
程序结构
首先我们将程序的框架建立起来,根据功能需求我们大致需要以下的功能函数:
- void menu()
- void create()
- void delete()
- void update()
- void select()
- void print()
- void sort()
- void max()
- void grouping()
- void clear()
整体结构
首先将系统主要功能框架建立出来,先不编写功能代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将结构体 student 的大小定义为符号常量 LEN。
#define LEN sizeof(struct student)
// 学生信息结构体
struct student
{
int num; // 学号
char name[20]; // 姓名
char clas[20]; // 班级
char sex[5]; // 性别
float englishScore; // 英语成绩
float mathScore; // 数学成绩
float chineseScore; // 语文成绩
float total; // 总成绩
float aver; // 平均成绩
};
struct student stu[50];
//MainMethod
int main()
{
//函数调用声明
void menu();
void create();
void delete();
void update();
void select();
void print();
void sort();
void max();
void grouping();
void clear();
menu();
int n;
// 打印菜单栏
print("请选择功能(1-9):\n");
scanf("%d",&n);
while(n)
{
if (n>=1 && n<=9)
{
/* code */
switch(n)
{
case 1: create();break;
case 2: delete();break;
case 3: update();break;
case 4: select();break;
case 5: print();break;
case 6: sort();break;
case 7: max();break;
case 8: grouping();break;
case 9: clear();break;
}
if (n == 9)
{
/* code */
menu();
}
print("\n");
print("请选择功能(1-9):");
scanf("%d", &n);
}
else
{
printf("\n");
printf("请重新输入:");
scanf("%d",&n);
}
}
return 0;
}
//主菜单
void menu()
{
printf("\n\n\n");
printf("\t\t-------------------------------------------------\n");
printf("\t\t|| ---------------- ||\n");
printf("\t\t||**************学生信息管理系统***************||\n");
printf("\t\t|| ---------------- ||\n");
printf("\t\t|| ||\n");
printf("\t\t||~~~~~~~~~~~~~~~1.录入学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~2.删除学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~3.修改学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~4.查询学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~5.显示学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~6.排序学生信息~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~7.显示最好成绩~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~8.分组统计成绩~~~~~~~~~~~~~~~~||\n");
printf("\t\t||~~~~~~~~~~~~~~~9.~~~~~清屏~~~~~~~~~~~~~~~~~~~||\n");
printf("\t\t|| ||\n");
printf("\t\t||*********************************************||\n");
}
//输入学生信息
void create()
{
}
//删除学生信息
void delete()
{
}
//更新学生信息
void update()
{
}
//选择学生信息
void select()
{
}
//显示所有学生信息
void print()
{
}
//排序学生生信息
void sort()
{
}
//最高成绩
void max()
{
}
//分组统计
void grouping()
{
}
//清除
void clear()
{
}
功能代码编写
这里开始根据功能需求编写代码;实现录入、查询、删除、修改、排序、统计学生信息函数的主体逻辑代码。
录入学生信息
将学生的信息输入到学生信息管理系统中,并保存到文件中。
删除学生信息
修改学生信息
查询学生信息
显示学生信息
排序学生信息
显示最高成绩
分组统计成绩
清屏
源代码