用C语言实现一个简单的学生成绩管理系统.doc
《用C语言实现一个简单的学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《用C语言实现一个简单的学生成绩管理系统.doc(11页珍藏版)》请在咨信网上搜索。
1、目 录1 引言12 系统需求分析12。1项目背景分析12.2 系统开发的目标与意义12.3 项目需求分析13 系统总体设计13。1 功能模块分析13。2 系统功能模块初始化准备33。2.1 编译预处理33。2。2 数据结构定义33.3 具体模块处理函数的实现43.3。1 菜单函数界面的设计43.3.2 功能函数设计44 系统测试与分析94。1 运行工具介绍94。2 系统操作9结束语10参考文献109计算机与信息工程系毕业设计研究报告用C语言实现一个简单的学生成绩管理系统摘要:伴随着现代社会的发展,网络技术的不断进步,越来越多的管理工作都从传统的现实社会中发展到了网络上。高校是使用计算机技术最早
2、的单位,学校的各项管理工作也从现实生活走上了网络空间。本文对学校的需求进行分析,通过使用C语言设计并实现学生成绩的管理,力求尽量简洁实用地解决学校对学生成绩的管理和学生对成绩的查询问题.关键字:C语言 成绩管理系统 程序设计1 引言在信息时代,计算机以其极高的运算速度、巨大的数据存储容量,以及能准确地进行各种算术运算和逻辑运算的能力而成为现代化计算工具,并被广泛应用于社会各个领域。计算机技术的高速发展已被认为是人类进入信息时代的标志.成绩管理系统是计算机技术和信息时代的产物,是信息处理或数据处理的核心。该系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化,以达到提高学生成绩管理效率的
3、目的.通过运用程序设计软件实现学生成绩管理中的多种功能,如学生成绩信息的添加、删除、查询、修改、显示、排序等。该系统的设计充分利用计算机作为辅助工具,来实现学生考试成绩从传统的手工管理到计算机管理,并对提高管理效率和节约大量的人力、物力有一定的推动作用。因此,开发这种管理软件很必要,本文将在分析系统的应用价值以及开发工具的基础上,用C语言来开发成绩管理系统.2 系统需求分析2.1项目背景分析在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有任何信息管理系统,特别是在西部贫困地区,学校的各类管理依然由手工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。随着社
4、会的发展,信息化是社会进程的必然趋势,学校管理只有快,准,精才能发挥其价值.2。2 系统开发的目标与意义(1)系统开发目标:本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥充分发挥其作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:系统应具有实用性、可靠性和适用性.对系统中数据库的信息进行有效处理,防止数据错乱。能够按照用户选择的不同的条件进行简单查询。方便用户的操作,尽量减少用户的操作.(2)系统开发的意义:在各大中小学校,用计算机管理学校的信息已经越来越普遍了.用计算机不但可以提高工作效率,而
5、且还节省了许多人力物力财力.提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。2.3 项目需求分析学校工作流程分析:学校工作总体规划由教务人员在学生成绩管理系统中输入学生的基本信息并对其进行维护管理,包括对信息的增加、修改及对信息的各项处理操作等.新的学年,教务人员首先编排班级,再对在校学生进行基本的信息录入,新生入学后由教务人员在管理系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任,并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,并对本年级各科成绩及总成绩进行排名.教务
6、处、班主任及任课老师跟据实际情况对录入的成绩进行维护管理,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询.3 系统总体设计3。1 功能模块分析学生成绩管理系统是对学生基本信息及成绩的管理。开发工具主要采用TurboC2。0,主要用于对学生的学号、姓名等自然信息以及各项学科成绩进行增加、删除、修改、查询及保存到文件等操作。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。学生成绩管理系统处理流程如图1。0主菜单界面欢迎界面1输入0退出2查询3修改4删除5插入6平均分7排序8显示继续输入10返回主菜单1学号查询2姓名查询3总分查询结 束9初始化10
7、保存返回图1 系统处理流程图主要功能设计描述如下:(1)系统主控平台允许用户选择想要的操作,包括输入学生信息、显示学生信息、查询学生信息、修改学生信息、删除学生信息、计算成绩以及成绩的排序等。通过输入相应的序号选择相应的操作.(2)学生成绩信息用户根据提示输入学生的学号、姓名、以及三门课的成绩,如语文成绩、英语成绩、数学成绩等.输入完成一条学生记录,可根据提示信息继续输入下一条学生记录或者继续其他的操作.允许输入多条学生的成绩信息记录.输入完的学生记录暂时保持在单链表中,等待下一步的操作。(3)查询学生信息可以根据学号,姓名,总分从单链表中对学生所有的信息进行查询,如果没有查询到任何信息,系统
8、会给出提示信息。(4)修改学生信息首先提示用户输入要进行修改的操作的学号,如果单链表中有该学生的信息存在,则提示用户输入要修改的学生的基本信息、各科成绩等,并将修改结果重新存储在单链表中。如果用户没有找到要修改的学生信息,系统将给出提示。(5)插入学生信息对已经建立好的信息若还需增加,则对信息进行插入.首先提示用户输入要进行插入的学号,然后在根据提示对用户信息进行完整输入.输入完成后系统将对其进行保存。(6)删除学生信息首先提示用户输入要删除学生的学号,系统根据用户输入的信息在单链表中查找,如果找到,直接删除该学生全部信息,如果没有找到,系统给出提示信息.(7)计算各科成绩平均分该模块主要进行
9、学生成绩的平均分计算,进入计算界面,系统自动对各科进行平均分计算。(8)显示学生信息在选择了显示学生信息后,将刚输入的学生信息从单链表中调出来显示,如果没有数据,则提示无学生记录。(9)学生成绩排序成绩信息输入完整后,根据学生的总分对学生从小到大进行排序,在显示学生信息的时候可以看到学生在班级或校的排列名次。(10)操作完成后对操作结果进行保存.运行完毕,退出系统。3。2 系统功能模块初始化准备3。2.1 编译预处理“编译预处理是C编译系统的一个组成部分。在C编译系统对程序进行通常的编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中这些特殊命令进行“预处理,然后将预处理的结果和源程序
10、一起再进行通常的编译处理,以得到目标代码。C语言提供的预处理功能主要有:(1)宏定义;(2)文件包含;(3)条件编译.而本程序使用文件包含的预处理方式进行编译预处理:#includestdlib。h/*标准库函数/#include/*屏幕操作函数/#includestring.h/字符串函数*/3。2.2 数据结构定义学生成绩管理系统中的变量有学号,姓名,成绩等,这些数据类型各不相同,无法用简单数据类型来描述,显然要定义结构体类型。由于学生人数很多,还需要定义数组或者链表。数组的特点是数据在内存中顺序存放,长度必须事先指定,而学生的人数很难估计。如果数组长度定的过大,会找出存储空间浪费,如果过
11、小,又无法满足需求。特别是进行插入,删除等操作时,代价较大而又容易出错。用链表来管理学生成绩就显得比较妥当,它无需估计学生人数,进行插入删除等操作时代价较小。C语言中,说明和使用“结构体之前必须先定义,在编写程序之前应该对学生基本信息进行定义,在这个程序中,使用struct来定义结构体的类型为struct list,然后用它来定义变量,在定义结构体类型的时候定义一个next成员,该成员可以把学生结点进行链接。并且通过类型定义typedef将已有的各种类型名定义成为新的类型标识符link,经类型定义后,link即可当做原类型名使用。具体定义如下:struct listint ID; /学号/ch
12、arname256; /姓名/int china; /*语文成绩/int english; /英语成绩*/int math; /*数学成绩/float sum; /总分*/int order; /*排序/struct list *next; /指向下一个学生的指针/;typedef struct list node; /自定义一个数据结构的结点/typedef node *link; /定义结点为link结构*/3。3 具体模块处理函数的实现3.3.1 菜单函数界面的设计系统与用户交换的界面是通过菜单实现的,菜单按预定义格式显示主菜单界面,等待用户输入0-8中的任一数据,系统会根据用户的输入调
13、用相应的功能模块,实现用户所要求的操作.(1)本程序的菜单界面主要使用屏幕操作函数编写,欢迎界面设置为白底红字,菜单界面设置为绿底蓝字,在欢迎界面中单击任意键进入菜单操作界面。整个系统都以光标定位函数gotoxy(x,y)固定光标的位置,在对其进行输出,从而可以使显示的文字都出现在设定的窗口内,窗口的界面设置使用画图工具制作周围的边框,边框的设置具体如下:gotoxy(8,2); putch(0xc9); /输入左上角边框*/for(i=1;i46;i+) putch(0xcd); /*输出上边框水平线/putch(0xbb); /输出右上角边框*/for(i=3;i23;i+) gotoxy
14、(8,i); putch(0xba); /输出左垂直线*/gotoxy(56,i); putch(0xba); /输出右垂直线/gotoxy(8,23); putch(0xc8); /输出左下角边框/for(i=1;i46;i+) putch(0xcd); /输出下边框水平线/putch(0xbc); /输出右下角边框*/window(9,3,55,22);/制作显示菜单的窗口*/(2)菜单是由menu函数实现,主要通过printf函数显示一些文本选项如:printf(exit the program。n);构建一个简单的字符界面,系统设置11个模块,用户通过输入关键字key从010之间选择相
15、应的操作,函数通过switch调用各功能模块:switch(key) case0:exit(0);case1:head=init();break;case2:head=creat_list()break;case3:search_chengji(head);break;case4:head=modify_chengji(head,key);break;case5:head=delete_chengji(head,key);break;case6:head=insert_chengji(head,key);break;case7:average(head);break;case8:sort(he
16、ad);break;case9:printf_list(head);break;case10:save(head);break;3.3.2 功能函数设计(1)初始化链表学生成绩管理系统使用前要先将系统进行初始化操作,初始化函数init()就是将函数置空。(2)创建学生信息函数创建学习信息函数由creat_list函数实现,首先在创建链表之前先定义函数的基本信息并创建结构体指针head,pointer和new,设学号,排名为整形,名字设为字符型,语文,数学,英语成绩设为单精度类型,并对order和sum进行初始化,为head建立一个空结点,当head不为空,输入用户信息,然后将新输入的数据存于h
17、ead指针。程序如下:head=(link)malloc(sizeof(node); /建立一个新/空结点/if(head=NULL) printf(memory allocate failure!!n”); exit(0);elseprintf(please inputID:); scanf(%d,&ID); head-ID=cIDprintf(please input name:); scanf(%s”,cname);for(i=0;i256;i+) headnamei=cnamei;printf(please input china:); scanf(%d”,&cchina);headc
18、hina=cchina;headnext=NULL; pointer=head;如果输入正确既while为真的时候为news新建立一个结点,提示用户如果要继续输入按1,输入0为退出。新输入的数据存储到news指针里,然后把head和news里面的数据一起放到pointer,供下面操作时调用pointer的数据.while(1)news=(link)malloc(sizeof(node);printf(”Are you continue?”);printf(If continue enter1, or return enter0。.。”);/输入1为继续,0为退出/scanf(%d”,cID);
19、 if(cID=0)break;newsnext=NULL; pointernext=news; pointer=news;创建函数时只能创建一次,因为创建的链表暂时存于head指针里,如果再次创建,要先保存否则系统会自动将head指针进行初始化数据将被清空,存放新创建的记录。(3)查询学生成绩函数查询函数search_chengji用来对学生的基本信息进行查询。首先使用光标定位函数gotoxy(x,y)和printf函数制作查询的子菜单,菜单包括:0.exit、1.search by ID、2.search by name、3。search by sum。查询菜单设置完成后应用switch(
20、)case1:执行语句;break;语句调用相应函数操作功能。系统在调用函数时,调用自定义的辅助函数,按预定义格式显示查询成绩的子菜单界面。用户输入的格式正确时使用while函数调用相应的功能函数。 按学号查询,输入choose=1,key1为要查询的学号,查找系统中学号为key1的学生是否存在,如果key1=ID说明找到该学生,并标记flag=1,中断查询显示查询的结果,否则继续查找直到找到为止.例如:if(choose=1)while(pointer!=NULL)if(pointerIDkey1=0) flag=1;break;else pointer=pointernext; 按名字查询
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 一个 简单 学生 成绩管理系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。