版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计课程设计报告题目学生学籍信息管理系统设计专业自动化班级自动142学号姓名吕泽帅指导教师杨莉日期2015年7月1日山东工商学院信电学院1、程序基本功能要求(1)、需求分析学生基本信息、学生成绩基本信息要存入文件当中, 因而要提供文件的输入 输出操作;查询功能要求提供查找和显示操作; 删除功能要求实现删除操作;排 序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。(2)、总体设计整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排 序模块。(3)、详细设计设计学生基本信息和学生成绩基本信息结构体数组。2、总体设计(1)数据录入模块学生基本信息文件可以
2、在磁盘建立,采用写文件方式录入学生成绩基本信 息。综合成绩和实得学分通过计算得到。(2)通过学号删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则在 A.TXT查找该 生信息,删除之。注意:C语言中没有直接删除信息的函数,需要自己实现,可 以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。(3)通过姓名删除模块通过菜单选择删除学生的功能,输入要删除学生的姓名,先在 A.TXT中得到 该生的学号,删除该生信息,再删除该学号对应的信息。注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,
3、 则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进 行。(4)排序模块通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行 排序并输出结果。(5)查询模块通过菜单选择查询功能,通过菜单输入所要查找的学生的姓名,按照基本查 找算法查找A.TXT,查找对应的姓名,再查找该学生的课程情况,并统计各类成 绩和实得总成绩,输出结果。(6)成绩浏览模块通过菜单选择对所有学生成绩进行输出显示。(7)结束模块通过菜单选择结束改程序。3、详细设计(各模块程序设计组成框图、流程图)(1)总流程图主函数界面根据提示操作学生成绩排序调用Stude nt_SortBy 函数alGad
4、e sea和 语录入信息 调 用_Student_?)函 nsert 函 Stu 数 进行录一StUdent_Delete对所要删除学生的学号进行输入,然后在A.txt中查找此学生的信息并显示, 后询问是否确认删除,删除后询问是否继续进行删除操作。通过姓名删 除调用Name_Delet函数e该数数是录/通过学号明调 dinwgmfejD j,e并使函数f录入句判断是否继续录入。de nt_Displa函数,该函数是通过学号数学生成绩查 询调用Stude nt_Se句对学生基数本信所有成绩浏 览调用display函数除函数,首先利用 seanf函数 .Name_Delete函数,该函数是通过姓名
5、删除学生信息函数,首先利用scanf函数对所要删除学生的姓名进行输入,然后在A.txt中查找此学生的信息并显示,最后询问是否确认删除,删除后询问是否继续进行删除操作。 .Student_SortBytotalGrade和 Student_Display 函数,分别是按综合成绩值排序和显示学生信息函数,先对学生综合成绩进行排序再将其显示。 .Student_Select函数,该函数是学生成绩查询函数,先用 scanf函数输入 所要查询学生的姓名,然后在A.txt中查找到该学生信息并显示出来,最后询问 是否继续输入。 .display函数,该函数是所有学生成绩浏览函数,通过调用A.txt将其中所有
6、存在的学生成绩信息输出。4、程序运行结果(1) 主界面(2) 学生成绩录入界面(3) 通过学号学生删除界面(4) 通过姓名学生删除界面(5) 学生成绩排序(6) 学生成绩查询(7) 所有学生成绩浏览(8) 退出5、源程序代码*/*各模块分工已注明,未注明模块为小组成员共同负责#in clude #include /* 定义学生结构体 */ struct Studentchar ID20;/ char Name20;/ char sex5;/char domNum;/ int tel;/ 电话 char courseNo;/ char courseName20;/ float creditHou
7、r;/ double triGrade; / double experiGrade; / double examGrade; / double totalGrade; /学号姓名 性别 宿舍号口号课程编号课程名称 学分 平时成绩 占 20%实验成绩 占 10%卷面成绩 占 70% 综合成绩;/* 声明学生数组及学生数量 */struct Student students1000; int num=0;/* 求综合成绩值 */double tot(struct Student stu)return stu.triGrade*0.2+stu.experiGrade*0.1+stu.examGrad
8、e*0.7; /* 通过学号返回数组下标,本模块由吕泽帅负责 */ int Student_SearchByIndex(char id) int i;for (i=0;inum;i+)if (strcmp(studentsi.ID,id)=0)return i;return -1;/* 通过姓名返回数组下标,本模块由吕泽帅负责*/int Student_SearchByName(char name)int i;for (i=0;i=60)printf( 该学生所得学分为 : %.1f,studentsnum.creditHour);else printf( 该学生所得学分为 : 0); stu
9、dentsnum.totalGrade=tot(studentsnum); num+;printf( 是否继续 ?(y/n);if (getchar()=n)break;/* 通过学号查找删除学生信息,本模块由吕泽帅负责 */ void Student_Delete()int i;while(1)char id20;int index;printf( 请输入要删除的学生的学号 :);scanf(%s,&id);getchar();index=Student_SearchByIndex(id);if (index=-1)printf( 学生不存在 !n);elseprintf(你要删除的学生信息
10、为 :n);Student_DisplaySingle(index);printf(是否真的要删除 ?(y/n);if (getchar()=y)for (i=index;inum-1;i+)把后边的对象都向前移动studentsi=studentsi+1;/num-;getchar();printf( 是否继续 ?(y/n);if (getchar()=n)break;/* 通过姓名查找删除学生信息,本模块由吕泽帅负责 */ void Name_Delete()int i=0;while(1)char name20;int index;printf( 请输入要删除的学生的姓名 :);scan
11、f(%s,&name);getchar();index=Student_SearchByName(name);if (index=-1)printf( 学生不存在 !n);elseprintf( 你要删除的学生信息为 :n);Student_DisplaySingle(index);printf( 是否真的要删除 ?(y/n);if (getchar()=y)for (i=index;inum-1;i+)把后边的对象都向前移动studentsi=studentsi+1;/num-;getchar();printf( 是否继续 ?(y/n);if (getchar()=n)break;/* 按姓
12、名查询学生信息,本模块由吕泽帅负责 */void Student_Select()while(1)char name20;int index;printf( 请输入要查询的学生的姓名 :);scanf(%s,&name);getchar();index=Student_SearchByName(name);if (index=-1)printf( 学生不存在 !n);elseprintf( 你要查询的学生信息为 :n); Student_DisplaySingle(index);printf( 是否继续 ?(y/n);if (getchar()=n)break;/* 按综合成绩值排序,本模块由
13、任宝银负责 */void Student_SortBytotalGrade()int i,j;struct Student tmp;for (i=0;inum;i+)for (j=1;jnum-i;j+)if (studentsj-1.totalGradestudentsj.totalGrade) tmp=studentsj-1; studentsj-1=studentsj; studentsj=tmp;/* 显示学生信息,本模块由任宝银和苗振阳负责 */void Student_Display()int i;printf(%10s%10s%10s%10s%10s%10sn, 学号 , 姓名
14、, 平时成绩 , 实验成绩 , 卷面成绩 , 综合成绩 );printf(n);for (i=0;inum;i+)printf(%10s%10s%8.2f%8.2f %8.2f %10.2fn,studentsi.ID,studentsi.Name, studentsi.triGrade,studentsi.experiGrade,studentsi.examGrade,studentsi. totalGrade);/* 将学生信息从文件读出 */void IO_ReadInfo()FILE *fp;int i;if (fp=fopen(Database.txt,rb)=NULL)printf
15、( 不能打开文件 !n);return;if (fread(&num,sizeof(int),1,fp)!=1)num=-1;elsefor(i=0;inum;i+)fread(&studentsi,sizeof(struct Student),1,fp);fclose(fp);/* 将学生信息写入文件 */void IO_WriteInfo()FILE *fp;int i;if (fp=fopen(Database.txt,wb)=NULL)printf( 不能打开文件 !n);return;if (fwrite(&num,sizeof(int),1,fp)!=1)printf( 写入文件错
16、误 !n);for (i=0;inum;i+)if (fwrite(&studentsi,sizeof(struct Student),1,fp)!=1)printf( 写入文件错误 !n);fclose(fp);/* 所有信息浏览,本模块由吕泽帅负责 */void display()int i;char c;printf(%10s%12s%13s%13s%13s%14sn, 学号 , 姓名 , 平时成绩 , 实验成绩 , 卷 面成绩 , 综合成绩 );printf(n);for (i=0;inum;i+)printf(%8s | %10s | %10.2f | %11.2f | %9.2f
17、| %13.2fn,studentsi.ID,studentsi.Name,studentsi.triGrade,studentsi.experiGrade,studentsi.examGrade,studentsi. totalGrade);if(i=num-1) printf( 输入任意键返回 :);c=getchar();break;/* 主程序 */void main()int choice;IO_ReadInfo();while(1)printf(nnnnnnnnnnnnnnnn);printf(ntt 学生成绩管理系统 n);printf(tttt1. 学生成绩录入 n);prin
18、tf(tttt2.通过学号学生删除 n);printf(tttt3.通过学生姓名删除 n);printf(tttt4.学生成绩排序 n);printf(tttt5.学生成绩查询 n);printf(tttt6.所有学生成绩浏览 n);printf(tttt7.退出 n);printf(ttt 请选择 (1-7):); scanf(%d,&choice);printf(nnnnnnn);getchar();switch(choice)case 1:Student_Insert();break;case 2:Student_Delete();break;case 3:Name_Delete();break;case 4:Student_SortBy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺乳胶漆工程实施设计方案
- 2024年甘肃客运从业证继续再教育
- 2024年鹰潭客运资格证考试题库下载
- 2024年广东客运从业资格证考试考什么题型
- 地下电力隧道施工方案最佳实践
- 企业夏季防暑降温管理方案
- 2024年承德驾校考试客运从业资格证考试题库
- 2024年高纯超细石英粉项目申请报告模范
- 2024年水土流失防治服务项目申请报告模范
- CRRT在新生儿监护室的应用
- 251直线与圆的位置关系(第1课时)(导学案)(原卷版)
- 2024浙江绍兴市人才发展集团第1批招聘4人(第1号)高频难、易错点500题模拟试题附带答案详解
- 幼儿园说课概述-课件
- 冠状动脉介入风险预测评分的临床应用
- 35导数在经济中的应用
- 苏科版(2024新版)七年级上册数学期中学情评估测试卷(含答案)
- 部编版《道德与法治》三年级上册第10课《父母多爱我》教学课件
- 北师大版八年级数学上册 数学上学期作业设计勾股定理 实数 含学生版作业及答案
- 期中模拟检测(1-3单元)2024-2025学年度第一学期西师大版二年级数学
- 气管插管操作规范(完整版)
- 2024-2025学年外研版英语八年级上册期末作文范文
评论
0/150
提交评论