C语言课程设计报告5
- 格式:pdf
- 大小:535.77 KB
- 文档页数:18
中南民族大学工商学院计算机科学与技术系
项目名称:学生信息管理系统学生姓名:谢威学号:20082514班级:08801指导教师:胡成松王巍
2009年6月23日2
目录1.实验目的和意义...................................................................................11.1实验的目的........................................................................................11.2实验的意义.......................................................................................12.实验的功能设计及描述.......................................................................22.1实验的功能设计...............................................................................22.2实验的功能描述................................................................................23.主要模块的算法描述...........................................................................34.系统的性能测试...................................................................................45.主要模块的源代码清单.....................................................................105.1学生信息的修改..............................................................................106.设计小结.............................................................................................14致谢............................................................................................................15参考文献...................................................................................................151.实验目的和意义1.1实验的目的1.学会用计算机语言编写程序,以实现所需处理的任务2.系统的加深对c语言知识点的理解3.熟练运用c语言知识点4.能编写一个有实际用途的程序
1.2实验的意义
1.熟悉C语言基本的语法知识2.系统的复习所学的C语言知识3.初步掌握开发一个小型实用系统的基本方法4.学会调试一个较长程序的基本方法5.了解程设计开发的步骤2.实验的功能设计及描述2.1实验的功能设计学生成绩管理(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(能查看所有同学的记录)(4)学生信息查询功能,查询方式:1)按学号查询(5)成绩排序统计功能:1)按照指定的要求对学生记录进行排序(6)学生信息删除,修改功能
2.2实验的功能描述学生基本信息的输入,包括学号、姓名、性别、计算机成绩、数学成绩、英语成绩学生基本信息的查询、修改,包括学号、姓名、性别、各科成绩。学生信息的查询,包括学号、姓名、性别、各科成绩。学生信息的删除,删除该学生的所有信息。学生成绩排序统计,按各科成绩分别排序。3.主要模块的算法描述修改功能的流程图:
进入主菜单,选择修改功能请输入所要查询的学号判断所输入的学号与程序中保存的学号是否相同.
是否返回
主菜单(Y/N)?
输出该生信息
判断是否修改该生信息
重新输入该生信息,并展示,保存到硬盘中返回主菜单
YNNNN
Y
图1-0修改流程图4.系统的性能测试菜单程序开始运行的主界面,现在用图1-1表示。
图1-1菜单信息录入在主菜单界面选择1,就能进行学生信息录入与添加如图1-2所示。
图1-2信息录入信息浏览在在主菜单界面选择2,就能进行浏览,如图1-3所示。
图1-3信息浏览信息查询在主菜单界面选择3,按照提示选择查询方式,如图1-4所示。
图1-4信息查询成绩排序统计(各科成绩从高到低排序)1.按总分(图1-5-1)
图1-5-1按总分排序2.按计算机成绩(图1-5-2)
图1-5-2按计算机成绩排序3.按英语成绩(图1-5-3)图1-5-3按英语成绩排序4.按数学成绩(图1-5-4)
图1-5-4按数学成绩排序删除1.按学生姓名删除(如图1-6-1)
图1-6-1按学生姓名删除2.按学号删除(如图1-6-2)
图1-6-2按学号删除修改按学号找到要修改的学生信息,进行修改(如图1-7)
图1-7按学号修改5.主要模块的源代码清单
5.1学生信息的修改voidchange()//修改{
longinttemp;intid2,j=0,z;charch2,ch;do{display();printf("输入要修改的学生学号:");scanf("%ld",&id2);ch=getchar();for(i=0;i{if(id2==stu[i].id){j++;printf("找到所要修改的学生信息,请修改:\n");printf("学生姓名修改为");scanf("%s",stu[i].name);ch=getchar();//接收回车printf("学生性别修改为f/m:");while(1){scanf("%s",&stu[i].sex);ch=getchar();if(stu[i].sex!='m'&&stu[i].sex!='f'){printf("输入有误,请重新输入:\n");//ch=getchar();}elsebreak;}
printf("学生计算机成绩修改为(0-100):\n");while(1){scanf("%d",&stu[i].computer);if(stu[i].computer<0||stu[i].computer>100)printf("输入有误,请重新输入:\n");elsebreak;}printf("学生数学成绩修改为(0-100):\n");while(1){scanf("%d",&stu[i].math);if(stu[i].math<0||stu[i].math>100)printf("输入有误,请重新输入\n");elsebreak;}printf("学生英语成绩修改为(0-100):\n");while(1){scanf("%d",&stu[i].english);ch=getchar();if(stu[i].english<0||stu[i].english>100)printf("输入有误,请重新输入\n");elsebreak;}
save();printf("修改后的信息:\n");display();break;
}}if(j==0){printf("没有信息记录\n");break;}printf("继续修改请输入1,其他输入将退出\n");scanf("%d",&z);}while(z==1);}
voidsearch()//查找{load();charb[20];intj=0,z;longintid3;
do{printf("按学号查找请输入1\n按姓名查找请输入2\n");scanf("%d",&i);ch=getchar();if(i==1){
printf("输入要查找的学生学号:");scanf("%ld",&id3);for(i=0;iif(id3==stu[i].id){j++;printf("找到学生信息:\n");printf("\n学号姓名性别计算机成绩数学成绩英语成绩\n");printf("%ld%-15s%c%3d%3d%3d\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].computer,stu[i].math,stu[i].english);break;}elseprintf("没有记录\n");printf("继续查找请输入1,其他输入将退出\n");scanf("%d",&z);}elseif(i==2){printf("输入要查找的学生姓名:");gets(b);for(i=0;i{
if(strcmp(stu[i].name,b)==0){j++;printf("找到学生信息:\n");printf("\n学号姓名性别计算机成绩数学成绩英