




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 1摘 要“学生成绩管理系统”主要用于完成日常教育工作中对学生成绩档案的数字化管理。该系统可使学校教职员工减轻工作压力,系统地对教务、学生选课、教学和学生成绩等各项服务和信息进行管理。同时,可以有效减少(jinsho)学生成绩管理工作量、提高查询速度和方便分析。本论文从系统分析、系统设计、系统实施和使用等几个方面对学生(xu sheng)成绩管理系统的功能需求、体系结构和开发等进行了介绍,较好实现了该系统的一个原型系统。关键字:原型(yunxng)系统;需求分析;系统设计;系统实施;系统使用;C# 目录 TOC o 1-3 h z u HYPERLINK l _Toc3987
2、33888 1引言(ynyn) PAGEREF _Toc398733888 h 1 HYPERLINK l _Toc398733889 1.1开发(kif)背景 PAGEREF _Toc398733889 h 1 HYPERLINK l _Toc398733890 1.2开发(kif)前景 PAGEREF _Toc398733890 h 2 HYPERLINK l _Toc398733891 1.3开发目的 PAGEREF _Toc398733891 h 3 HYPERLINK l _Toc398733892 2系统需求分析 PAGEREF _Toc398733892 h 4 HYPERLIN
3、K l _Toc398733893 2.1系统问题的提出 PAGEREF _Toc398733893 h 4 HYPERLINK l _Toc398733894 2.2系统必要性 PAGEREF _Toc398733894 h 5 HYPERLINK l _Toc398733895 3 系统总体设计 PAGEREF _Toc398733895 h 6 HYPERLINK l _Toc398733896 3.1系统主要功能 PAGEREF _Toc398733896 h 6 HYPERLINK l _Toc398733897 3.2系统流图和主要界面展示 PAGEREF _Toc39873389
4、7 h 6 HYPERLINK l _Toc398733898 3.2.1系统流图 PAGEREF _Toc398733898 h 6 HYPERLINK l _Toc398733899 3.2.2 系统主界面 PAGEREF _Toc398733899 h 8 HYPERLINK l _Toc398733900 3.3 系统的主要模块 PAGEREF _Toc398733900 h 8 HYPERLINK l _Toc398733901 3.3.1增加学生记录: PAGEREF _Toc398733901 h 8 HYPERLINK l _Toc398733902 3.3.2修改学生记录模块
5、 PAGEREF _Toc398733902 h 10 HYPERLINK l _Toc398733903 3.3.3保存文件模块 PAGEREF _Toc398733903 h 13 HYPERLINK l _Toc398733904 3.3.4学生记录排序 PAGEREF _Toc398733904 h 14 HYPERLINK l _Toc398733905 3.3.5结束语提示模块 PAGEREF _Toc398733905 h 17 HYPERLINK l _Toc398733906 4 系统测试 PAGEREF _Toc398733906 h 19 HYPERLINK l _Toc
6、398733907 4.1 增加学生记录测试 PAGEREF _Toc398733907 h 19 HYPERLINK l _Toc398733908 4.2 打开文件测试 PAGEREF _Toc398733908 h 19 HYPERLINK l _Toc398733909 4.3 学生成绩排序 PAGEREF _Toc398733909 h 20 HYPERLINK l _Toc398733910 4.4 查询学生成绩记录 PAGEREF _Toc398733910 h 22 HYPERLINK l _Toc398733911 4.5 退出学生成绩查询系统 PAGEREF _Toc398
7、733911 h 23 HYPERLINK l _Toc398733912 5 课程设计总结 PAGEREF _Toc398733912 h 25 HYPERLINK l _Toc398733913 参考文献 PAGEREF _Toc398733913 h 27 HYPERLINK l _Toc398733914 附录 PAGEREF _Toc398733914 h 28PAGE 571引言(ynyn)1.1开发(kif)背景随着计算机应用的日益普及,数据库技术已成为越来越重要的技术基础。数据库即使(jsh)是保证应用软件质量的重要环节,专业化、高效的应用系统对于数据库技术的要求也越来越高。数
8、据库是数据管理的最新技术,是计算机学科的重要分支。十余年来,数据库管理系统已从专用的应用的程序包发展成为通用的系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。数据库技术是计算机领域中最为活跃的技术之一,是计算机科学的重分支,它的出现对于许多企事业单位提高科学管理水平都起到举足轻重的作用。对于一个企事业单位来说,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量这个机构信息化程度的重要标志。数据库技术是计算机科学与技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用
9、系统的核心技术和重要基础。数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储效率,保证数据的完整和一致。数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,越来越多新的应用领域采用数据库技术来存储和处理信息资源。数据库设计是建立数据库及其应用系统的技术,是信息系统开发
10、和建设中的核心技术,具体说,是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库一个信息系统的各个部分能否紧密地结合在一起以及(yj)如何结合,关键在数据库。学生成绩管理系统是一个单位不可缺少的部分,它的内容(nirng)对于单位的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的的查询手段。1.2开发(kif)前景在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校所有的工作几乎还是手工操作来完成。计算机技术在日新月异的发展,但是有很多学校,学
11、校的各种业务管理都依然由手工操作来完成,十分落后,效率极低,成本很大。随着社会的发展,信息化是社会进程的必然趋势,学校管理只有快,准,精和公平才能更好地发挥其社会价值。所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。人工操作必将被计算机代替。1.3开发(kif)目的学生(xu sheng)成绩管理系统如果可以为学校所使用,将会改变以往靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率,节省人力和物力。2系统(xtng)需求(xqi)分析2.1系统(xtng)问题的提出随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使人们
12、的生活与工作方式发生了很大的变化。网络技术的应用使得计算机之间通信和信息共享成为可能,而数据库技术的应用则为人们奠定了数据存储、信息检索和数据分析等应用功能的基础,使得各项业务工作通过信息化技术高效运转和被处理。数据库始于20世纪60年代,经过40多年的发展,现在已经形成了理论体系,成为计算机软件的一个重要分支。数据库技术体现了当代先进的数据管理方法,使计算机的应用真正渗透到国民经济各个部门,在数据处理领域发挥着越来越大的作用。而互联网技术的出现,更是进一步丰富的人类生活,数字化生存已经一步步走进人们日常的生活与工作。互联网技术与数据库技术的结合为计算的在人类生活中的应用带来了巨大的影响。产业
13、信息化,管理现代化,科学化已经成为行业发展的重要课题,这不仅是企业提高自身竞争力,甚至是国家提高综合国力,走向国民富强的重要手段。在我国,教育是一个影响着国富民强的重要行业,随着改革开放和市场经济的发展根据中国特有的国情发展,教育得到了国家的大力扶持与社会各界的高度重视,从而使教育业向现代规范化的方向高速发展,但是同发达国家相比,我国的教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的院校中才使用计算机进行教学管理,从教学和学生管理等方面提高工作效率,取得良好的社会和经济效益。而一些边远地区传统的、规模较小的教育机构还没有全部具备通过计算机和信息化技术全面进行教学管理的能力
14、。因此可见,随着我国教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。2.2系统(xtng)必要(byo)性在信息技术迅速发展的今天,网络对于大对数人已经不再陌生,并且其应用在人们的工作、学习和生活中越来越多地发挥着不可替代的作用。很多学校纷纷根据自身的需要,采用了先进的信息技术来加强教学管理、提高教学质量。网上考试作为网络教育不可缺少的组成部分,它与传统的考试方式相比较而言,减少了教师出题,组织考试、批改试卷等工作量,提高了教师的工作效率,并且使考试更客观公正。但是目前很多考试系统都是由软件开发公司来开发并销售的,多数考试系统力求功能全面,从而存在着设置参数过多、操作较难、成本(chn
15、gbn)较高等问题。所以开发一个实用够用、操作简单、使用方便、成本较低的考试系统是很必要的。3 系统(xtng)总体设计 3.1系统主要(zhyo)功能 一个(y )基于系统开发的总体任务是实现学生成绩管理,主要完成的功能有:保存学生成绩记录、修改学生成绩记录、统计学生信息和查询学生记录。其中查询学生记录还包括对全体学生所有科目成绩进行查询,也能单独对某个学生某一科进行查询并能实现添加、删除记录。成绩表包括的字段:学号、姓名、课程号、课程名、成绩。 3.2系统流图和主要界面展示学生成绩管理系统主要包括增加学生记录以及查询记录、修改学生记录以及删除记录、保存文件以及打开文件和统计信息以及显示记录
16、; 3.2.1系统流图学生(xu sheng)学生成绩管理系统的主要(zhyo)流程:学生成绩管理系统增加学生记录查询学生记录修改学生记录学生记录排序统计信息打开文件保存文件显示记录图3.1系统(xtng)的主要结构其中查询学生记录排序中还分别按姓名、学号和名次进行升序和降序排列图3.2记录排序按姓名排序按学号排序按名次排序升序排列降序排序升序排列降序排序升序排列降序排序图3.2学生记录排序方法3.2.2 系统(xtng)主界面程序运行直接(zhji)进入主界面,主界面是系统的菜单所有(suyu)的功能都能在界面展示图3.3主界面图3.3是学生成绩管理系统的主界面;它主要包括增加学生记录、查询
17、学生记录、修改学生记录、学生记录排序、统计信息、打开文件、保存文件、显示记录和退出系统。3.3 系统的主要模块3.3.1增加学生记录:增加学生记录(jl)包括:增加(zngji)学生人数、输入学号、输入姓名、输入性别(xngbi)、输入各科成绩;其主要函数为:void addrecord(student stud) /*增加记录*/ int i=0,j,num; char str5; if(numstus!=0) printf(已有记录存在是否覆盖?(y/n)n); gets(str); if(str0=Y|str0=y) i=0; else i=numstus; printf(请输入增加的学
18、生信息条目数:); scanf(%d,&num); if(i=0) numstus=num; else numstus+=num; if(numstuslens) lens+=50; pointer=(student *)realloc(pointer,lens*LEN); printf(:n); for(;inumstus;i+) getchar(); printf(请输入学号:); gets(pointeri.number); printf(请输入姓名:); gets(); printf(请输入(shr)性别(男/女 1/0):); gets(pointeri.s
19、ex); if(pointeri.sex0=0) strcpy(pointeri.sex,女); else strcpy(pointeri.sex,男); printf(请输入(shr)各科成绩:(按线代,高数,英语,C语言,物理的顺序):); studi.score=0; for(j=0;jnumsubs;j+) scanf(%f,&studi.subjectj); /*计算(j sun)总分*/ studi.score+=studi.subjectj; studi.average=studi.score/numsubs; /*计算平均分*/ count(stud); /*附名次*/ dis
20、play(stud,0,numstus-1); getchar();3.3.2修改学生记录模块修改学生记录主要包括有删除学生记录、修改学生记录其主要函数为:void amendrecord(student stud) char str5; /*供用户输入*/ int i=-1,j; if(numstus=0) /*没有记录返回*/ printf(没有可供修改的记录!); while(i=0) printf(要删除这个(zh ge)学生的信息吗?(y/n); gets(str); if(str0=y|str0=Y) deleterecord(stud,i); count(stud); else
21、printf(确定要修改这个学生(xu sheng)的信息吗?(y/n); gets(str); if(str0=y|str0=Y) printf(下面请重新输入(shr)学生的信息:n); printf(请输入学号:); gets(studi.number); printf(请输入姓名:); gets(); printf(请输入性别(男/女 1/0):); gets(str); if(str0=0) strcpy(studi.sex,女); else strcpy(studi.sex,男); studi.score=0; printf(请按顺序输入成绩:); for(j=
22、0;j=0) for(j=i;jnumstus;j+) stuj=stuj+1; numstus-; printf(删除(shnch)成功!n); getchar(); menu_select(); 图3.4是修改(xigi)记录界面图3.4即修改学生(xu sheng)记录的主要界面,它是在主界面中按“3”号键进入(jnr)修改界面3.3.3保存文件模块主要函数为:int writetotext(student stud) /*将所有记录写入文件*/ int i=0,j; FILE *fp; char filename20; printf(输入文件名称:); gets(filename);
23、fp=fopen(filename,w); fprintf(fp,%dn,numstus); while(inumstus) fprintf(fp,%s %s %s ,studi.number,,studi.sex); for(j=0;jnumsubs;j+) fprintf(fp,%f ,studi.subjectj); fprintf(fp,%f %f %d ,studi.score,studi.average,studi.index); i+; fclose(fp); printf(已成功(chnggng)存储!n); display(stud,0,numstus-1
24、); numstus=0; return 0; 3.3.4学生(xu sheng)记录排序学生记录排序是将学生的的成绩分别按学号、姓名(xngmng)和名次进行升序排列或降序排列其主要函数为:void sort(student stud) /*将学生排序*/ int i,j=0; char str5; student *p; p=stud; if(numstus=0) printf(没有可供查询的记录!); while(1) for(i=0;i+) printf( 请输入查询(chxn)方式:); printf((直接输入回车则结束查询(chxn)操作)n); printf(1.按照(nzho
25、)学号t); printf(2.按照姓名t); printf(3.按照名次n); gets(str); if(strlen(str)=0) break; if(str0=1) printf(请输入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortnum2(p); else sortnum(p); display(stud,0,numstus-1); else if(str0=2) printf(请输入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str);
26、if(str0=1) sortname2(p); else sortname(p); display(stud,0,numstus-1); else if(str0=3) printf(请输入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortcount2(p); else sortcount(p); display(stud,0,numstus-1); else printf(请输入(shr)13); printf(是否退出(tuch)排序?(y/n); gets(str); if(str0=y|str0=
27、Y) break; return; 图3.5为按照名次(mngc)进行降序排列在图3.5中为按照名次排列,它是在学生(xu sheng)记录排序中按“3”号键进行选择。另外在对学生记录排序中还有按照(nzho)姓名进行排序,它是在学生记录排序中按“2”号键进行选择.如图3.6即是按照姓名进行降序排列图3.6 按照姓名进行降序排列3.3.5结束语提示模块结束语提示是在退出系统后的提示语主要包括欢迎语句、制作班级和制作人员列表其主要函数为:void display1() printf(tt本系统(xtng)由计科二班制作nn); printf( tt制作人员列表(li bio): nn); pri
28、ntf( tt李世正); printf(nn); getchar(); 结束语提示(tsh)是在退出程序时对制作人的显示,它可以在主界面里按“0”键退出如图3.7图3.7系统退出时的结束语展示4 系统(xtng)测试(csh)测试分析主要是对学生成绩管理系统的一次运行,从中找出漏洞(ludng),让程序更加完美。4.1 增加学生记录测试测试学生记录增加时,随机选取几个姓名和成绩进行测试,程序运行正常如图4.1图4.1 增加学生记录4.2 打开文件(wnjin)测试打开(d ki)文件测试是将以前保存好的文件打开,经过测试,程序能正常打开文件如图4.2图4. 2 打开(d ki)文件4.3 学生
29、成绩排序学生排序测试时,成绩能正常排列 如图4.3和图 4.4图4.3 按照名次(mngc)排序图4.4 按照(nzho)学号排序4.4 查询(chxn)学生成绩记录查询学生成绩(chngj)测试时,成绩能正常显示如图4.5和4.6图4.5为按照学号查找学生记录图4.6 按照学生姓名(xngmng)查找4.5 退出(tuch)学生成绩查询系统退出系统是,结束语正常显示(xinsh)如图4.7 程序能正常退出图4.7 退出学生(xu sheng)查询系统测试5 课程设计总结(zngji)这个系统(xtng)提供了便捷的操作,让管理者可以方便的记载学生(xu sheng)的成就,信息,数据。这是一
30、个综合性较强,较实际的一个编程软件 。通过一周的编程及调试程序,感觉自己对C的知识有加深了一层,在这个科技飞速发展的时代,掌握电脑的应用是如今每一位大学生所必须掌握的,掌握电脑知识对于现代人来说都有很重要的作用,掌握电脑知识也是一种本领,也是一种生存技能,可以在以后的工作铺好坚实的道路。刚开始的时候程序出现很多问题,有时候感觉很苦恼、很烦躁,到那时我并没有放弃,我知道学计算机的就是很枯燥无味,需要耐心,我还是坚持了下来。本系统的重点就是要理清思路,如何实现想要的结果,所以分成了几大类模块,我做的学生成绩管理系统主要包括这几个模块,增加、查询、排序、修改、删除、统计、显示等几大类模块,其他我感觉
31、还比较容易,但就是排序这一块,我参考了很多资料,有冒泡法排序、选择法排序、交换法排序等等,其他的我都不太熟悉,所以这里我用了选择法排序,实现想要的结果。后想说的是,调试程序真的很关键。调试程序需要较大的耐心。可能调试程序的时间比自己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解、接受的事实。通过这个实训的练习,我也学到了很多东西,特别是加深了C的理解和应用。但是为了更好的发展,我还是会好好学习,更深层的掌握专业知识。 并且在这两周的实训期间,当在课程设计过程中遇到模棱两可的问题时,同学们能过各抒己见,尊重他人见解,使我能够(nnggu)综合各种观点,取长补短,虚心借鉴,使程
32、序做得更尽人意;当遇到我们都无法解决的问题时,有辅导老师耐心讲解,详细地指出了程序中的错误,不仅帮我解决了当前编程中的问题,而且使我加深了对C语言的认识,为以后的学习铺平了道路。感谢他们,他们不仅是我收获了更多的知识,丰富了学习经验,而且使我养成了“严谨(ynjn)治学”的学习态度,使我拥有(yngyu)了面对困难的勇气,并且体会到了浓浓的师生情。这必定是我人生中一笔宝贵的财富,再次感谢他们!另外,关于删除,这个系统提供了普通的按照学号来删除该学生的个人信息及相关成绩的功能。当然,再不知道学号的情况下,这个系统还提供了按照姓名来删除的条件。(这样一来,有同名的就会有点麻烦,在这方面还需要改进)
33、参考文献1谭浩强.C 程序设计(chn x sh j).北京:清华大学出版社,2011,4;2C语言程序设计(chn x sh j)实例精编;3C语言程序设计(chn x sh j)课本;附录(fl)系统(xtng)源代码:#ifndef H_STUDENT_HH #define H_STUDENT_HH #include stdio.h #include string.h #include malloc.h #define LEN sizeof(struct message_student) /*一个结构(jigu)体数组元素的长度*/ #define numsubs 5 /*学科数目*/
34、typedef struct message_student /*结构体定义*/ char number6; char name20; char sex4; float subjectnumsubs; float score; float average; int index; student; extern int numstus; /*学生数目*/ extern student *pointer; /*指向结构体数组*/ extern int lens; int menu_select(); /*函数(hnsh)声明*/ int openfile(student stu); /*打开(d
35、ki)文件*/int findrecord(student stud);/*查找(ch zho)信息*/ int writetotext(student stud);/*将所有记录写入文件*/ void welcome();/*欢迎界面*/ void display1(); /*展示制作人信息*/void showtable(); /*展示在桌面*/void sort(student stu); /*将学生排序*/void deleterecord(student stu,int i); /*删除信息*/void addrecord(student stud);/*增加记录*/ void di
36、splay(student stud,int n1,int n2); /*显示数据*/void amendrecord(student stud); /*修改记录*/void count(student stud); /*计算名次*/void sortnum(student stud); void sortnum2(student stud); void sortname(student stud); void sortname2(student stud); void sortcount(student stud); void sortcount2(student stud); void s
37、tatistic(student stud); /*输出统计信息*/ void display1(); #endif int menu_select() /*展示在桌面上*/ char c; printf(nn); printf( n); printf( n); printf( n); printf( 1. 增加学生(xu sheng)记录 5.统计(tngj)信息 n); printf( n); printf( 2. 查询(chxn)学生记录 6.打开文件 n); printf( n); printf( 3. 修改学生记录 7.保存文件 n); printf( n); printf( 4.
38、学生纪录排序 8.显示记录 n); printf( n); printf( 0. 退出系统 n); printf( n); printf( n); printf( n); printf(nn); printf(请选择(0-8):); c=getchar(); getchar(); /*让程序停留*/ return (c-0); /#include head.h int findrecord(student stud) /*查找信息*/ char str2; int i,num; if(numstus=0) printf(没有(mi yu)可被查找的记录n); return -1; else p
39、rintf(以何种方式查找(ch zho)?n1.学号t2.姓名t3.名次n); gets(str); if(str0=1) /*按学号查找(ch zho)*/ printf(请输入学号:); gets(str); for(i=0;i=numstus;i+) if(strcmp(str,studi.number)=0) display(stud,i,i); break; else continue; else if(str0=2) /*按姓名查找*/ printf(请输入姓名:); gets(str); for(i=0;i=numstus;i+) if(strcmp(str,studi.nam
40、e)=0) display(stud,i,i); break; else continue; else if(str0=3) /*按名次查找*/ printf(请输入(shr)名次:); scanf(%d,&num); getchar(); /*让程序(chngx)停留*/ for(i=0;inumstus) printf(没有查找(ch zho)所要的信息。n); return -1; return i; /#includehead.h int openfile(student stu) /*打开文件*/ int i=0,j; FILE *fp; char filename20,str2;
41、if(numstus!=0) printf(已经有记录存在,是否保存?(y/n); gets(str); if(str0=y|str0=Y) writetotext(stu); printf(请输入文件名:); gets(filename); numstus=0; if(fp=fopen(filename,rb+)=NULL) printf(无法(wf)打开该文件n); return(-1); fscanf(fp,%d,&numstus); fgetc(fp); while(inumstus) /*读取文件显示(xinsh)在桌面*/ fscanf(fp,%s,stui.number); fs
42、canf(fp,%s,); fscanf(fp,%s,stui.sex); for(j=0;jnumsubs;j+) fscanf(fp,%f,&stui.subjectj); fscanf(fp,%f,&stui.score); fscanf(fp,%f,&stui.average); fscanf(fp,%d,&stui.index); i+; fclose(fp); printf(文件(wnjin)读取成功n); printf(是否显示纪录?(y/n); gets(str); if(str0=y|str0=Y) display(stu,0,numstus-1); ret
43、urn(0); /#include head.h void sort(student stud) /*将学生排序*/ int i,j=0; char str5; student *p; p=stud; if(numstus=0) printf(没有可供查询的记录!); while(1) for(i=0;i+) printf( 请输入查询(chxn)方式:); printf((直接(zhji)输入回车则结束查询操作)n); printf(1.按照(nzho)学号t); printf(2.按照姓名t); printf(3.按照名次n); gets(str); if(strlen(str)=0) b
44、reak; if(str0=1) printf(请输入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortnum2(p); else sortnum(p); display(stud,0,numstus-1); else if(str0=2) printf(请输入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortname2(p); else sortname(p); display(stud,0,numstus-1); e
45、lse if(str0=3) printf(请输入排序次序:n); printf(1.升序排列(pili)t); printf(2.降序排列(pili)n); gets(str); if(str0=1) sortcount2(p); else sortcount(p); display(stud,0,numstus-1); else printf(请输入(shr)13); printf(是否退出排序?(y/n); gets(str); if(str0=y|str0=Y) break; return; void sortnum(student stud) int i,j; student tem
46、p; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortnum2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortname(student stud) int i,j; student temp;
47、 student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortname2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortcount(student stud) int i,j; student temp;
48、 student *p; p=stud; for(i=0;inumstus;i+) for(j=0;jstudj.index) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortcount2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;jstudj+1.index) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; /#includehead.h void statist
49、ic(student stud) /*新增功能,输出(shch)统计信息*/ int i,j=0,k=0; char c1,str2; float averagenumsubs,sum=0; if(numstus=0) printf(没有(mi yu)可被查找的记录n); else while(1) printf(下面(xi mian)将统计考试成绩n); printf(请选择你要统计哪科的成绩 1.线代 2.高数 3.英语 4.C语言 5.物理n); c1=getchar(); printf(t一共有个%d记录n,numstus); /*总共记录数*/ switch(c1) case 1:
50、for(i=0;istudi.subject0) k=i; if(studj.subject0studi.subject0) j=i; average0=sum/numstus; printf(t线代的最高分:n); /*最高分*/ printf(tt学号:%s 姓名(xngmng):%s 分数:%.2fn,studj.number,,studj.subject0); printf(t线代的最低分是:n); /*最低分*/ printf(tt学号:%s 姓名(xngmng):%s 分数:%.2fn,studk.number,,studk.subject0
51、); printf(t线代的平均分是 %5.2fn,average0); /*平均分*/ break; case 2: for(i=0;istudi.subject1) k=i; if(studj.subject1studi.subject1) j=i; average1=sum/numstus; printf(t高数的最高分:n); /*最高分*/ printf(tt学号:%s 姓名:%s 分数:%.2fn,studj.number,,studj.subject1); printf(t高数的最低分是:n); /*最低分*/ printf(tt学号:%s 姓名:%s 分数:
52、%.2fn,studk.number,,studk.subject1); printf(t高数的平均分是 %5.2fn,average1); /*平均分*/ break; case 3: for(i=0;istudi.subject2) k=i; if(studj.subject2studi.subject2) j=i; average2=sum/numstus; printf(t英语(yn y)的最高分:n); /*最高分*/ printf(tt学号:%s 姓名(xngmng):%s 分数:%.2fn,studj.number,,studj.subje
53、ct2); printf(t英语(yn y)的最低分是:n); /*最低分*/ printf(tt学号:%s 姓名:%s 分数:%.2fn,studk.number,,studk.subject2); printf(t英语的平均分是 %5.2fn,average2); /*平均分*/ break; case 4: for(i=0;istudi.subject3) k=i; if(studj.subject3studi.subject3) j=i; average3=sum/numstus; printf(tC语言的最高分:n); /*最高分*/ printf(tt学号:%s
54、 姓名:%s 分数:%.2fn,studj.number,,studj.subject3); printf(tC语言的最低分是:n); /*最低分*/ printf(tt学号:%s 姓名:%s 分数:%.2fn,studk.number,,studk.subject3); printf(tC语言的平均分是 %5.2fn,average3); /*平均分*/ break; case 5: for(i=0;istudi.subject4) k=i; if(studj.subject4studi.subject4) j=i; average4=sum/nums
55、tus; printf(t物理(wl)的最高分:n); /*最高分*/ printf(tt学号:%s 姓名(xngmng):%s 分数:%.2fn,studj.number,,studj.subject4); printf(t物理(wl)的最低分是:n); /*最低分*/ printf(tt学号:%s 姓名:%s 分数:%.2fn,studk.number,,studk.subject4); printf(t物理的平均分是 %5.2fn,average4); /*平均分*/ break; default:printf(输入错误!请输入15之间的数n);
56、sum=0; getchar(); printf(是否继续进行统计?(y/n); gets(str); if(str0=y|str0=Y) ; else break; int writetotext(student stud) /*将所有记录写入文件*/ int i=0,j; FILE *fp; char filename20; printf(输入文件名称:); gets(filename); fp=fopen(filename,w); fprintf(fp,%dn,numstus); while(inumstus) fprintf(fp,%s %s %s ,studi.number,stud
57、,studi.sex); for(j=0;jnumsubs;j+) fprintf(fp,%f ,studi.subjectj); fprintf(fp,%f %f %d ,studi.score,studi.average,studi.index); i+; fclose(fp); printf(已成功(chnggng)存储!n); display(stud,0,numstus-1); numstus=0; return 0; void welcome() printf(tn); printf(tttt学生(xu sheng)成绩管理系统ntttt倾情(qn qn)奉献欢迎使用n
58、); printf(tn); void showtable() /*展示在桌面*/ printf(n); printf(学号t姓名t性别t线代t高数t英语tC语言t物理t总分t平均分t名次n); printf(n); void display(student stud,int n1,int n2) int i; showtable(); /*显示(xinsh)表头*/ for(i=n1;i=n2;i+) printf(%st%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%dtn,studi.number,,studi.sex,studi.
59、subject0,studi.subject1,studi.subject2,studi.subject3,studi.subject4,studi.score,studi.average,studi.index); /*通过(tnggu)循环输出数据*/ void display1() printf(tt本系统(xtng)由计科二班制作nn); printf( tt制作人员列表: nn); printf( tt李世正); printf(nn); getchar(); #include void amendrecord(student stud) char str5; /*供用户输入*/ int i=-1,j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 种子实验室实务试题及答案
- 模具设计师的行业网络建设试题及答案
- 裁判员处理球员冲突能力测试试题及答案
- 2024体育经纪人考前冲刺试题及答案
- 游泳救生员职业发展与知识试题
- 思考与实践:模具设计师资格认证考试备考之道试题及答案
- 无人机功能测试试题及答案研究
- 突破重重挑战农作物种子繁育员试题及答案
- 安装房屋光伏合同(2篇)
- 掌握模具制作的认证考试试题及答案
- 《寻找消失的分数》期中考试分析班会课件
- 辽宁沈阳国有资产托管中心有限公司招聘笔试题库2025
- 2025年广东省深圳市31校联考中考二模历史试题(原卷版+解析版)
- 烟草公司办公楼物业服务方案
- 2024年全国教育大会精神全文课件
- 2024年大亚湾城投人居科技集团招聘笔试冲刺题(带答案解析)
- DZ∕T 0270-2014 地下水监测井建设规范
- 2024年注册安全工程师考试题库及参考答案【完整版】
- 居民自建桩安装告知书回执
- PythonWeb开发技术与应用(Flask版)PPT完整全套教学课件
- (完整版)BrownBear绘本附配音课件
评论
0/150
提交评论