高级语言程序设计报告-学生成绩管理系统.doc_第1页
高级语言程序设计报告-学生成绩管理系统.doc_第2页
高级语言程序设计报告-学生成绩管理系统.doc_第3页
高级语言程序设计报告-学生成绩管理系统.doc_第4页
高级语言程序设计报告-学生成绩管理系统.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级级语言课程设计报告实验课程:课程设计 年级:16级 实验成绩:课程设计名称:学生成绩管理系统 姓名:石宏伟 任课教师:杨有安 学号:160101050027 实验日期:一、目的通过编一些小程序,巩固和利用所学的知识,加强变成能力。本课题涉及的知识内容:关于时间的函数,for循环嵌套,if语句,一维数组,结构数组,自定义函数等高级语言内容。二、内容与设计思想1设计内容学生信息管理系统(1) 登记学生信息(2) 删除学生信息(3) 浏览所有已经登记的学生(4) 查找 (4.1)按学号查找 (4.2)按姓名查找 (4.3)按成绩查找(5) 根据总成绩排序(6) 储存到文件(7) 从文件导出(8) 退出系统2 主要代码结构学生成绩管理系统 操作查询成绩统计登记删除显示查询按成绩查询按姓名查询按学号查询各门平均分3 主要代码段分析。总共分为八个板块,分别作为学生成绩录入,删减,浏览,查找,排序,储存和导出的作用。用switch函数将整体分成八个菜单,以方便直接进行操作。本程序中,对于学生信息的记录用了结构数组的形式,对于主要数据结构的应用如下:结构数组:Typedefstructstudent/*结构体*/charxuehao20;/*学号*/charxingming20;/*姓名*/intscoreM;/*分数*/intsum;/*总成绩*/本程序执行的入口是main函数,然后用switch语句实现对各个函数的调用。被调用的函数都是没有形参的,函数直接实现所需要的功能。最后,再从main函数中结束整个程序的运行。其中涉及到被调用的函数有:Voidmenu显示帮助信息; Voiddengji登记学生信息;Voidshanchu删除学生信息;Voidliulan浏览学生信息;Voidchazhao查找学生信息;Voidpaixu学生信息排序;Voidcunchu存储学生信息;Voiddaochu导出学生信息;三、使用环境本次上机实践所使用的平台和相关软件。平台:Windows 7相关软件:Microsoft Visual C+6.0四、调试过程1测试结果分析经检验,运行结果正确五、总结通过此次为期三周的课程设计实训课,我更加了解了关于C语编程以及程序书写的更多的知识,在当初的C语课时留下了许多问题,比如结构体,以及连接,通过此次课程,我巩固了在C语课中遗留的问题,并且使当初遗忘了的知识点更加明了。这次课程设计,我成功的创建了一个信息管理的系统,在编写这个系统过程中,我遇见了颇多的问题,比如,无法显示出结果或者直接是无法运行,在经过严密的程序检查后,一般发现我的问题主要是细节上的问题,如在个别语句后面忘记加 ;,在此次设计过程中虽然遇见了一些问题,但总体还是成功的,在编写程序的过程中,细节明显更加重要,细节决定成败,通过此次课程也让我的C语言知识更加的清晰明了。六、附录1源代码#include #include #include #include #define M 3 #define N 100 void menu(); #includehead.hvoid main()menu(); #includehead.htypedef struct student char xuehao20; char xingming20; int scoreM; int sum; STUDENT; STUDENT studentN; int renshu=0; void fhzjm() char biaozhi20; printf(n); printf(还需要操作么?如果需要操作请输入:yes,否则请输入:non); scanf(%s,biaozhi); if(strcmp(biaozhi,yes)=0) menu(); else if(strcmp(biaozhi,no)=0) exit(0); else printf(请输入正确的字符,谢谢!n); fhzjm(); void DengJi() int rs; int i,j,k=1; system(CLS); printf(请输入需要输入几个学生信息:); scanf(%d,&rs); for(i=renshu;irenshu+rs;i+,k+) printf(请输入第%d个学生的学号:,k); scanf(%s,studenti.xuehao); printf(请输入学生的姓名:); scanf(%s,studenti.xingming); printf(请输入学生%d门课的成绩,M); for(j=0;jM;j+) printf(请输入第%d门课的成绩:,j+1); scanf(%d,&studenti.scorej); studenti.sum += studenti.scorej; renshu=renshu+rs; fhzjm(); void ShanChu() char shanchuinfo10; system(CLS); printf(删除全部学生信息请输入all,删除指定学号的学生信息请输入onen); scanf(%s,shanchuinfo); if(strcmp(shanchuinfo,all)=0) renshu=0; printf(删除成功nn); else if(strcmp(shanchuinfo,one)=0) struct student *p=NULL; char choice20;int i,j,k=0; printf(请输入你要删除的人的学号:); scanf(%s,choice); for(i=0;irenshu;i+) if(strcmp(choice,studenti.xuehao)=0) k=1;j=i;break; if(k) if(renshu=1) p=&student0; free(p); renshu=0; else for(i=j;irenshu;i+) studenti=studenti+1; renshu=renshu-1; printf(删除成功nn); else printf(输入数据错误!n); ShanChu(); fhzjm(); void LiuLan()int i,j; system(CLS); if(renshu=0) printf(系统里面没有任何学生的信息!n); else for(i=0;irenshu;i+) printf(第%d个学生的学号为:%sn,i+1,studenti.xuehao); printf(第%d个学生的姓名为:%sn,i+1,studenti.xingming); for(j=0;jM;j+) printf(第%d个学生的第%d门课的成绩:%dn,i+1,j+1,studenti.scorej); printf(第%d个学生的总成绩为:%dn,i+1,studenti.sum); fhzjm(); void ChaZhao() char choice10,xinxi20; int i,j,k=0; system(CLS); if(renshu=0) printf(系统里面没有任何学生的信息!n); fhzjm(); printf(三种查找方式:学号,姓名,成绩,请输入查找方式:); scanf(%s,choice); if(strcmp(choice,学号)=0) printf(请输入需要查找学生的学号:); scanf(%s,xinxi); for(i=0;irenshu;i+) if(strcmp(xinxi,studenti.xuehao)=0) j=i;k=1; break; if(k=0) printf(输入信息有误:n); else printf(您所查找的学生的信息为:n); printf(-学号-姓名-英语成绩-高数成绩-计算机成绩tn); printf(-%s-%s-%d-%d-%dtn,studentj.xuehao,studentj.xingming, studentj.score0,studentj.score1,studentj.score2); else if(strcmp(choice,姓名)=0) printf(请输入需要查找学生的姓名:n); scanf(%s,xinxi); for(i=0;irenshu;i+) if(strcmp(xinxi,studenti.xingming)=0) j=i;k=1;break; if(k=0) printf(输入信息有误:n); else printf(您所查找的学生的信息为:n); printf(-学号-姓名-英语成绩-高数成绩-计算机成绩-n); printf(-%s-%s-%d-%d-%d-n,studentj.xuehao,studentj.xingming, studentj.score0,studentj.score1,studentj.score2); else if(strcmp(choice,成绩)=0) printf(请输入需要查找学生的成绩:n); scanf(%s,xinxi); for(i=0;irenshu;i+) if(strcmp(xinxi,studenti.xingming)=0) j=i;k=1;break; if(k=0) printf(输入信息有误:n); else printf(您所查找的学生的信息为:n); printf(-学号-姓名-英语成绩-高数成绩-计算机成绩-n); printf(-%s-%s-%d-%d-%d-n,studentj.xuehao,studentj.xingming, studentj.score0,studentj.score1,studentj.score2); fhzjm(); void PaiXu() struct student *p1N,*p2,*temp; int i,j; system(CLS); p2=p1; for( i=0;irenshu;i+) p1i=student+i; for( i=0;irenshu;i+) for( j=i+1;jsumsum) temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp; printf(按照总成绩排序之后的信息为:n); printf(-学号-姓名-总成绩-n); for( i=0;ixuehao,(*(p2+i)-xingming,(*(p2+i)-sum); fhzjm(); void CunChu() int i; FILE *rs; if(rs=fopen(card.dat,wb)=NULL) printf(not open); exit(0); for(i=0;irenshu;i+) fwrite(&studenti, sizeof(studenti), 1, rs); if(ferror(rs) fclose(rs); perror(写文件失败!n); return; printf(存储文件成功!n); fclose(rs); fhzjm(); void DaoChu() struct student t; int i=0; FILE* fp = fopen(card.dat, rb); renshu=0; if(NULL=fp) perror(读取文件打开失败!n); return; memset(student,0x0,sizeof(student); while(1) fread(&t,sizeof(t),1,fp); if(ferror(fp) fclose(fp); perror(读文件过程失败!n); return; if(feof(fp) break; studenti=t; i+; fclose(fp); renshu=i; printf(导出文件成功!n); fhzjm(); #includehead.hvoid menu() int n; system(CLS); printf( 学生信息管理系统n); printf(-MENU-n); printf( 1.登记学生信息n); printf( 2.删除学生信息n); printf( 3.浏览所有已经登记的学生n); printf( 4.查找n); printf( 4.1.按学号查找n); printf( 4.2按姓名查找n); printf( 4.3按成绩查找n); printf( 5.根据总成绩排序n); printf( 6.存储到文件n); printf( 7.从文件导出n); printf( 8.退出系统n); a: prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论