C语言项目学生成绩管理系统设计
一、项目要求
设计一款学生成绩管理系统,管理学生的学号、姓名、三门课程成绩和总成绩、平均成绩信息。
二、数据结构
1. 需要定义结构体存储学生学号、姓名、3门课程成绩、总成绩、平均成绩。
例如:
struct student
{
int num;
char name[20];
float score[5]; //存储3门课程成绩和总成绩、平均成绩
};
2. 需要定义结构体数组,存储学生成绩信息。
例如:strcut student stu[N];
3. 需要定义1个全局变量,例如int saveflag=0;,其值初始化为0,当学生成绩信息有改变时,设置saveflag=1;可以根据saveflag的值确定是否需要调用保存函数save实现存盘,即将数据写入保存学生成绩信息的文本文件。
三、项目功能模块及设计
学生成绩管理系统,主要利用结构体数组,实现学生学号、姓名、
3门课程成绩、总成绩和平均成绩的管理。整个系统包括如下几大功能模块:输入、输出、查询、修改、删除、排序、保存和统计、退出等9个功能。
1. main函数执行流程
(1)定义strcut student类型的数组,用于存储学生成绩的信息,例如:strcut student stu[N]; N是定义的符号常量。
定义char 型数组,存放密码。例如:char password[10]="123456"; (2)运行程序,首先要求输入密码(此处,有三次输入密码机会),输入密码正确,去打开文件。
输入密码正确显示效果
输入密码3次都错误,退出系统
(3)打开存放学生成绩信息的文本文件(以a+方式打开),只要不是文件尾,循环从文件读取记录,1次读取1条学生成绩信息记录,可以使用fread函数,同时用计数变量计数。输出提示“==>文件成功打开,总记录数是: X ”。关闭文件。
第一次运行调试好的软件,没有记录。
当录入记录、保存后,再运行学生成绩管理系统,显示如下:
(4)调用菜单函数,显示操作选择菜单,例如:menu();
(5)根据您的选择,调用不同的自定义函数,实现各种功能。
提示:
●如果想实现选择的反复操作,如何实现。
●在退出系统设计中,需要根据saveflag值,确定是否需要保
存数据。如果saveflag==1,说明结构体数组数据有修改且未
进行存盘,需要调用save函数实现记录的保存。在调用save
函数保存前,输出提示信息:“==>是否保存修改?(y/n):”,根
据输入字符,确定是否调用save函数。
●可以使用getchar()函数,实现等待,让用户看清输出,实现
选择。当按任意键时,继续后面操作。
●可以使用system(“cls”),在需要时清屏。
2. menu菜单函数
输出操作选择菜单。效果如图所示。
3.display函数,输出学生成绩信息
设计思路:根据学生成绩记录数,实现输出。如果没有学生成绩信息,即学生成绩记录数为0,输出提示信息,例如:“=====>系统中没有学生成绩记录!”,否则逐条输出学生成绩信息。输出界面效果如下图所示。
提示:
●display输出函数形参用什么?调用display函数时实参是什
么?
●这里输出的是结构体数组每个元素的各个成员,这里num是
int、name是字符数组,3门课程和总成绩、平均成绩个都是
float数组元素,分别应该怎么输出。
●在display函数中调用sum函数,计算每个学生3门课程总成
自定义函数怎么用c语言绩和平均成绩。
●注意如何实现格式化输出数据。
4. sum计算函数,计算学生总成绩和平均成绩
注意: stu[i].socre[j] 中,2个下标,i是学生下标,表示人,j 代表课程和总成绩、平均成绩,不要混了。
5.input输入函数,实现录入学生成绩信息
设计思路:首先调用display显示已有记录,用循环控制,用scanf 函数,从键盘输入学号、姓名、3门课程成绩,实现能够反复输入学

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。