目录一、 需求分析 ···························································1二、 概要设计 ···························································11、 系统功能组成框图····················································12、 数据结构设计························································23、 模块说明····························································2三、 详细设计···························································21、 模块设计代码·······················································22、 程序详细代码·······················································33、 函数的调用·························································11四、 调试分析···························································11五、 用户手册···························································11六、 测试数据···························································15七、 附件·······························································16八、 心得体会···························································16学生成绩管理系统一、需求分析1、此程序里包含着多个属性,所以类型为结构体类型2、程序内的对象调入和调出都需循环体类型的文件操作实现3、学生成绩的信息修改、插入、删除都需保存,而保存需进行文件的读写操作4、排序操作可采用冒泡排序和选择法排序5、主函数中根据不同选择执行不同操作可通过“多分支选择语句switch”实现二、概要设计学生成绩管理系统1.系统功能组成框图输入系统修改系统 输出系统删除系统插入系统按学号查询系统升序按姓名降序按学号排序系统升序按总分降序2.数据结构设计成绩管理系统为结构体struct 结构体名{定义名字的长度,学号的长度定义性别三门课程的成绩总分平均分}3.模块说明1、每一条记录包括一个学生的学号、姓名、性别、3门成绩、总分、平均成绩。
2、输入功能:可以一次完成规定数字记录的输入3、输出功能:完成全部学生记录的显示4、插入功能:按学生的学号、姓名、性别、三门课程成绩、总分、平均分插入学生信息5、修改功能:选择学生进行修改6、排序功能:按学生总分进行升降排序7、查找功能:完成按姓名或者学号查找学生记录,并显示8、删除功能:选择学生的学号或者名字进行核对,确定之后删除三、 详细设计1、模块设计代码 input( )/*输入模块*/ output( )/*输出模块*/ search( )/*查询模块*/ modify( )/*修改模块*/ delete( )/*删除模块*/ insert( )/*插入模块*/ sort()/*排序模块*/2、程序详细代码#include /*头文件(源文件)*/struct stu /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/{char num[10]; /*学号长度*/ char name[10]; /*姓名长度*/char sex; /*性别类型*/ int score[3]; /*三门课程类型*/* float sum; /*总分类型*/ float ave; /*平均分类型*/}student[55]; int n=3; /*定义n=3*/main() /*主函数*/{char ch; /*定义类型*/while(1) /*循环(死循环)主界面*/{system("cls");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");clrscr(); printf("************************************************************\n");printf(" welcome to the student's management system \n "); printf("************************************************************\n");printf(" **** **** \n"); printf(" ******* ******* \n"); printf(" ********** ********** \n"); printf(" **************1:input*************\n"); printf(" ***************2:output*************\n"); printf(" ****************3:search**************\n"); printf(" ****************4:delete***************\n"); printf(" ***************5:insert**************\n"); printf(" **************6:modify************* \n "); printf(" ************7:sort************* \n"); printf(" **********8:exit*********** \n"); printf(" *********************** \n"); printf(" ******************** \n"); printf(" ************ \n"); printf(" ******** \n"); printf(" **"\n); printf("\n\n\t\t please input the option:\n"); ch=getchar(); switch(ch){ case'1': input();break; case'2': output();break; case'3': search();break; case'4': delete();break; case'5': insert();break; case'6': modify();break; case'7': sort();break; case'8': exit(0);}}}input() /*输入*/{FILE *fp; /*定义指针 文件*/int i,j; /*定义i j*/if((fp=fopen("stu.dat","w+"))==NULL) /*若文件打不开*/{printf("cannot open the file"); /*显示cannot open the file */exit(0); /*退出*/}printf("please input the student's imformation:\n"); /*显示“请输入学生信息”*/for(i=0;i