C语言课程设计报告:学生成绩管理系统 系统需求
一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.
二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。
三、新生插入 :通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。
四、输出全部学生信息和全部学生成绩。
五、退出系统.
六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计
一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。
4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:
详细设计
一、 界面设计
此系统界面采用图形和数字化菜单设计。 主界面设计如下:
学生成绩管理系统
请选择相应的数字执行相应的功能: 1:是否输入其他数据 2:查看数据 3:插入数据 4:查找数据 5:更新数据 6:保留数据
7:显示或打印数据 8:语文成绩状况 9:数学成绩状况 10:英语成绩状况 11:计算机成绩状况 12:?
13:退出系统
二、 数据结构设计:
程序设计中用到的结构体类型: 学生信息结构体类型: typedef struct student{ char name[MAX]; int num[MAX]; char sex[MAX]; int chinese; int mathematic; int english; int computer;
struct student *next; }
程序代码: //原始密码是123456 #include\#include\#include\#include\#define MAX 10
typedef struct student{ /*定义结构体*/ char name[MAX]; /*姓名*/ int num[MAX]; /* 学号*/ char sex[MAX]; /*性别*/ int chinese; /*语文*/ int mathematic; /* 数学*/ int english; /*英语*/ int computer; /*计算机*/ struct student *next; /*结构体指针*/ }stu;
stu *head; /*头指针*/
void print() /*显示或打印函数*/ {
system(\
printf(\成绩管理系统*/ printf(\输入数据*/ printf(\显示*/ printf(\插入数据*/ printf(\访问数据*/ printf(\以前数据*/ printf(\保留数据*/ printf(\更新数据*/ printf(\语文平均成绩*/ printf(\数学平均成绩*/ printf(\英语平均成绩*/ printf(\计算机平均成绩*/ printf(\退出*/ }
void cin(stu *p1) /*输入相关数据的函数*/ { printf(\ scanf(\ printf(\ scanf(\ printf(\ scanf(\ printf(\
printf(\ scanf(\ printf(\
scanf(\ printf(\ scanf(\ printf(\ scanf(\ }
stu *cindata() /*其他数据是否继续输入的函数*/ { stu *p1,*p2; int i=1; char ch;
p1=(stu *)malloc(sizeof(stu)); head=p1; while(i) {
cin(p1);
printf(\是否继续输入数据*/ ch=getchar(); ch=getchar();
if(ch=='n'||ch=='N') { i=0; p1->next=NULL; } else
{ p2=p1;
p1=(stu *)malloc(sizeof(stu)); p2->next=p1; } }
return(p1->next); }
stu *lookdata(stu *p1) /*查看数据的函数*/ {
while(p1!=NULL)
{ printf(\ printf(\ printf(\ printf(\
printf(\ printf(\ printf(\
相关推荐: