ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:140.89KB ,
资源ID:7585025      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7585025.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(成绩管理系统软件设计课程报告附完整C语言程序代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

成绩管理系统软件设计课程报告附完整C语言程序代码.docx

1、成绩管理系统软件设计课程报告附完整C语言程序代码学生成绩管理系统软件设计课程报告 设 计 者:XXXXX 专业班级: XXXXX 学 号: XXXXX 2012年 06 月 06日 目录1系统软件环境 32课程设计目的 33内容与要求 34程序主要功能 45函数实现功能说明 46心得与体会 57程序功能模块 68程序完整代码 81系统软件环境本程序主要运行在:Visual 6 / C+ 6.02课程设计目的 本课程设计的系统是早已在很多领域均有应用,是一个很不错的教学管理系统,而且其功能更是相当强大、界面更加友好的应用型软件。而现在我的设计并非是重走旧路,我的设计主要目的在于学习并深刻地掌握对

2、C语言和数据结构的基础知识以及其实践经验,为以后的学习和工作中能够更好地运用编程软件打下一个坚实的基础。而且特别是像这种比较多地运用一些课本上没有教的知识来编程的题目,更能提高我们的学习能力,如菜单函数MENU。其次,通过这种自己设计程序结构,自己书写代码的过程,更提高了我们的的实践操作能力,寓理论于实践中,才能使自己更深刻的认识到自己为什么要学习编程,程序到底有什用处。3内容与要求内容:成绩信息学号 姓名 数学 英语 语文 理综 1111 周恩来 140 142 130 2363333 加加林 145 130 110 2202222 刘学 115 99 120 1905555 乔丹 100

3、111 110 1604444 Five 108 90 79 163请用C/C+编写一个系统,实现学生信息管理,软件的入口界面应包括如下几个方面:要求:(1)信息维护:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询:查询时可实现按姓名查询、按学号查询(3)成绩统计能统计本科生人数(一本,二本,三本)4程序主要功能1)、学生信息 2)、本科统计 3)、成绩排序 4)、添加学生 5)、删除学生 6)、按名 修改 7)、按号修改 8)、查询成绩 9)、保存信息 0)退出5函数实现功能说明主菜单界面如下6心得与体会通

4、过本次对C语言的深入学习,我对C语言有了更多的了解,撑握了更多编程的知识。我这次成功地运用各类函数、循环变量、结构体、指针、链表等完成程序的编写,使自己在编程方面有了很大提高,对未来新的编程软件的学习也更有信心啦。但在学习中,我发现编程其实并不是件容易的事,更不是你想程序完成什么功能就能完成什么功能的。首先,我觉的编程绝不是拿到一个问题就开始编程,而是在我们对程序的整体结构有一定的构思后,方可敲击程序。其次,编程需要的是程序员的认真和仔细的态度,务实地对待每一条程序语句,做到字斟句酌,锱铢必较,方能快速高效的编出好的程序来。由于本人目前只学过C语言和数据结构,并没有学过数据库等课程,能力有限,

5、部分要求(如界面的美观化等)未能做的很好,望老师指正,学生定当会努力改正。 7程序功能模块注意亲:应用此程序时,请在D盘中建立一个名为student.txt的文本文件(用于存放学生信息,其信息分别为学号、姓名、及四门课程的成绩)。如下图所示:图一 student.txt文档存放位置如下图图二 student.txt文挡信息如下图函数功能模块void DesplayMarkSegment3(void);/三本人数void DesplayMarkSegment2(void);/二本人数void DesplayMarkSegment1(void);/一本人数void ReadInfoFormFile

6、(void);/读取信息void DesplayMenu(void);/菜单显示void CreateHeadLink(void);/创建链表STUDENT *MallocNode(void);/申请新节点void GetInformation(STUDENT *t);/获得学生信息void OutputInformation(void);/输出信息void DesplayInfoBystudentName(void); /按姓名查找void DesplayInfoBystudentnumber(void); /按学号查找void DesplayOneNode(STUDENT *t);/显示一

7、个学生的信息void InsertOneNode(STUDENT *t);/添加学生void DeleteNodeBystudentNumber(void);/删除学生void ChangeMarkByName(void);/按名改成绩void ChangeMarkByNumber(void);/按号改成绩void SaveLinkToFile(void);/保存void CompositorByTotalMark(void);/按总分排序void CompositorBynumber(void);/按学号排序void CompositorByname(void);/按姓名排序8程序完整代码/

8、*学生成绩管理系统*/#include#include#include#include#includetypedef struct STUDENT/定义结构体 char studentNumber20; char studentName20; float mark1; float mark2; float mark3; float mark4; struct STUDENT *next;STUDENT;STUDENT *headLink;/链表表头指针void DesplayMarkSegment3(void);/三本人数void DesplayMarkSegment2(void);/二本人数

9、void DesplayMarkSegment1(void);/一本人数void ReadInfoFormFile(void);/读取信息void DesplayMenu(void);/菜单显示void CreateHeadLink(void);/创建链表STUDENT *MallocNode(void);/申请新节点void GetInformation(STUDENT *t);/获得学生信息void OutputInformation(void);/输出信息void DesplayInfoBystudentName(void); /按姓名查找void DesplayInfoBystuden

10、tnumber(void); /按学号查找void DesplayOneNode(STUDENT *t);/显示一个学生的信息void InsertOneNode(STUDENT *t);/添加学生void DeleteNodeBystudentNumber(void);/删除学生void ChangeMarkByName(void);/按名改成绩void ChangeMarkByNumber(void);/按号改成绩void SaveLinkToFile(void);/保存void CompositorByTotalMark(void);/按总分排序void CompositorBynumb

11、er(void);/按学号排序void CompositorByname(void);/按姓名排序void ReadInfoFormFile(void)/读取信息 FILE *fp; STUDENT *p; fp=fopen(D:student.txt,r); if(!fp) printf(系统提示:该系统现在没有学生!(原因:请检查D:student.txt学生文件是否存在)。n); return; p=MallocNode(); while(fscanf(fp,%s%s%f%f%f%f,p-studentNumber,p-studentName,&(p-mark1),&(p-mark2),

12、&(p-mark3),&(p-mark4)0) InsertOneNode(p);/将读取的信息用链表存储 p=MallocNode(); fclose(fp);void DesplayMenu(void)/显示菜单 STUDENT *p; char ch; int choose;/*用于接受用户的选择*/ printf(主菜单:tttt0. EXIT n); printf(t1.学生信息tt2.本科统计tt3.成绩排序nt4.添加学生tt5.删除学生); printf(tt6.按名修改nt7.按号修改tt8.查询成绩tt9.保存信息n); printf(请选择:); scanf(%d,&ch

13、oose);/*取得用户的选择*/ printf(n); switch(choose) case 1: OutputInformation(); break; case 2:/本科线学生 printf(1.一本人数 2.二本人数 3.三本人数 0.退出n); printf(请您选择:); ch=getchar(); do switch(ch) case 1: DesplayMarkSegment1();/一本 printf(请您选择:); break; case 2: DesplayMarkSegment2();/二本 printf(请您选择:); break; case 3: Desplay

14、MarkSegment3();/三本 printf(请您选择:); break; default: break; ch=getchar(); while(ch!=0); break; case 3:/成绩排序 printf(1.按总分 2.按学号 3.按姓名 0.退出n); printf(请您选择:); ch=getchar(); do switch(ch) case 1: CompositorByTotalMark(); printf(请您选择:); break; case 2: CompositorBynumber(); printf(请您选择:); break; case 3: Comp

15、ositorByname(); printf(请您选择:); break; default: break; ch=getchar(); while(ch!=0); break; case 4:/填加学生 p=MallocNode(); GetInformation(p); InsertOneNode(p); OutputInformation(); break; case 5:/删除学生 DeleteNodeBystudentNumber(); OutputInformation(); break; case 6:/按名改成绩 ChangeMarkByName(); OutputInforma

16、tion(); break; case 7:/按号改成绩 ChangeMarkByNumber(); OutputInformation(); break; case 8:/查询成绩 printf(1.按学号 2.按姓名 0.退出n); printf(请您选择:); ch=getchar(); do switch(ch) case 2: DesplayInfoBystudentName(); printf(请您选择:); break; case 1: DesplayInfoBystudentnumber(); printf(请您选择:); break; default: break; ch=g

17、etchar(); while(ch!=0); break; case 9: SaveLinkToFile(); break; case 0: SaveLinkToFile();/保存数据到文件中 free(headLink);/释放头结点 exit(0); break; default: break; printf(-); DesplayMenu();/递归调用void CreateHeadLink(void)/创建链表 STUDENT *p; p=(STUDENT*)malloc(sizeof(STUDENT); headLink=p; p-next=NULL;STUDENT *Mallo

18、cNode(void)/函数功能:申请一个新结点,并将其初始化 STUDENT *p; int i; p=(STUDENT*)malloc(sizeof(STUDENT); if(p=NULL) return NULL; for(i=0;istudentNumberi=0; for(i=0;istudentNamei=0; p-mark1=0.0; p-mark2=0.0; p-mark3=0.0; p-mark4=0.0; p-next=NULL; return p;void GetInformation(STUDENT *t)/从键盘得到学生成绩 printf(请输入学生学号:n); sc

19、anf(%s,t-studentNumber); printf(请输入学生姓名:n); scanf(%s,t-studentName); printf(请输入数学成绩:n); scanf(%f,&(t-mark1); printf(请输入英语成绩:n); scanf(%f,&(t-mark2); printf(请输入语文成绩:n); scanf(%f,&(t-mark3); printf(请输入理综成绩:n); scanf(%f,&(t-mark4);void InsertOneNode(STUDENT *t)/函数功能:在链表的结尾处增加一个结点 STUDENT *p; p=headLink

20、; while(p-next) p=p-next; p-next=t;void DesplayInfoBystudentName(void)/按姓名查找 STUDENT *p; char studentName20; char flag=0; p=headLink-next; printf(请输入学生姓名:n); scanf(%s,studentName); while(p) if(strcmp(p-studentName,studentName)=0) printf(学号t姓名t数学t英语t语文t理综t总成绩n); DesplayOneNode(p); flag=1; break; p=p-

21、next; if(!flag) printf(Sorry,姓名为 %s 的学生不存在!n,studentName);void DesplayInfoBystudentnumber(void)/按学号查找 STUDENT *p; char studentNumber20; char flag=0; p=headLink-next; printf(请输入学生学号:n); scanf(%s,studentNumber); while(p) if(strcmp(p-studentNumber,studentNumber)=0) printf(学号t姓名t数学t英语t语文t理综t总成绩nn); Desp

22、layOneNode(p); flag=1; break; p=p-next; if(!flag) printf(Sorry,学号为 %s 的学生不存在!n,studentNumber);void DesplayOneNode(STUDENT *t)/显示函数 printf(%st,t-studentNumber); printf(%st,t-studentName); printf(%.0ft,t-mark1); printf(%.0ft,t-mark2); printf(%.0ft,t-mark3); printf(%.0ft,t-mark4); printf(%.0ft,t-mark1+

23、t-mark2+t-mark3+t-mark4); printf(n);void DeleteNodeBystudentNumber(void)/按学号删除学生 char studentNumber10; STUDENT *p,*q; char flag=0; printf(请输入要删除学生学号:); scanf(%s,studentNumber); p=headLink; q=headLink-next; while(q) if(strcmp(q-studentNumber,studentNumber)=0) p-next=q-next; free(q); flag=1; break; p=

24、p-next; q=q-next; if(!flag) printf(该学号:%s的学生不存在!n,studentNumber); return; printf(删除成功!n);void OutputInformation(void)/所有学生信息输出 STUDENT *p; p=headLink-next; if(p=NULL) printf(系统无学生,请先输入学生信息!nn); return; printf(学号t姓名t数学t英语t语文t理综t总成绩n); while(p) DesplayOneNode(p); p=p-next; void ChangeMarkByName(void)/

25、按姓名修改成绩 STUDENT *p; char studentName20; char flag=0; float mark1,mark2,mark3,mark4; p=headLink-next; printf(请输入学生姓名:); scanf(%s,studentName); while(p) if(strcmp(p-studentName,studentName)=0) printf(请输入新的数学成绩:n); scanf(%f,&mark1); printf(请输入新的英语成绩:n); scanf(%f,&mark2); printf(请输入新的语文成绩:n); scanf(%f,&

26、mark3); printf(请输入新的理综成绩:n); scanf(%f,&mark4); p-mark1=mark1; p-mark2=mark2; p-mark3=mark3; p-mark4=mark4; flag=1; printf(修改成功!n); break; p=p-next; if(!flag) printf(Sorry,姓名为 %s 的学生不存在!n,studentName);void ChangeMarkByNumber(void)/按学号修改成绩 STUDENT *p; char studentNumber20; char flag=0; float mark1,mark2,mark3,mark4; p=headLink-next; printf(请输入学生学号:); scanf(%s,studentNumber); while(p) if(strcmp(p-studentNumber,studentNumber)=0)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1