毕业论文-用C语言实现一个简单的学生成绩管理系统

上传人:猪** 文档编号:67815629 上传时间:2022-04-01 格式:DOC 页数:16 大小:429.50KB
收藏 版权申诉 举报 下载
毕业论文-用C语言实现一个简单的学生成绩管理系统_第1页
第1页 / 共16页
毕业论文-用C语言实现一个简单的学生成绩管理系统_第2页
第2页 / 共16页
毕业论文-用C语言实现一个简单的学生成绩管理系统_第3页
第3页 / 共16页
资源描述:

《毕业论文-用C语言实现一个简单的学生成绩管理系统》由会员分享,可在线阅读,更多相关《毕业论文-用C语言实现一个简单的学生成绩管理系统(16页珍藏版)》请在装配图网上搜索。

1、宁德师范高等专科学校毕 业 论 文 (设 计)专业 计算机教育 指导教师 学生 学号 题 目 用C语言实现一个简单的学生成绩管理系统 2010年5月15日10目 录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参考文献10计算机与信息工程系毕业设计研究报告用C语言

2、实现一个简单的学生成绩管理系统摘要:伴随着现代社会的发展,网络技术的不断进步,越来越多的管理工作都从传统的现实社会中发展到了网络上。高校是使用计算机技术最早的单位,学校的各项管理工作也从现实生活走上了网络空间。本文对学校的需求进行分析,通过使用C语言设计并实现学生成绩的管理,力求尽量简洁实用地解决学校对学生成绩的管理和学生对成绩的查询问题。关键字:C语言 成绩管理系统 程序设计1 引言在信息时代,计算机以其极高的运算速度、巨大的数据存储容量,以及能准确地进行各种算术运算和逻辑运算的能力而成为现代化计算工具,并被广泛应用于社会各个领域。计算机技术的高速发展已被认为是人类进入信息时代的标志。成绩管

3、理系统是计算机技术和信息时代的产物,是信息处理或数据处理的核心。该系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化,以达到提高学生成绩管理效率的目的。通过运用程序设计软件实现学生成绩管理中的多种功能,如学生成绩信息的添加、删除、查询、修改、显示、排序等。该系统的设计充分利用计算机作为辅助工具,来实现学生考试成绩从传统的手工管理到计算机管理,并对提高管理效率和节约大量的人力、物力有一定的推动作用。因此,开发这种管理软件很必要,本文将在分析系统的应用价值以及开发工具的基础上,用C语言来开发成绩管理系统。2 系统需求分析2.1项目背景分析在我国,各大中小学校的各类信息管理系统并非一个新的

4、课题,但也有的学校根本就没有任何信息管理系统,特别是在西部贫困地区,学校的各类管理依然由手工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。随着社会的发展,信息化是社会进程的必然趋势,学校管理只有快,准,精才能发挥其价值。2.2 系统开发的目标与意义(1)系统开发目标:本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥充分发挥其作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:系统应具有实用性、可靠性和适用性。对系统中数据库的信息进行有效处理,防止数据错乱。能够按照用户选择的不同的条件进行

5、简单查询。方便用户的操作,尽量减少用户的操作。(2)系统开发的意义:在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力财力。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。2.3 项目需求分析学校工作流程分析:学校工作总体规划由教务人员在学生成绩管理系统中输入学生的基本信息并对其进行维护管理,包括对信息的增加、修改及对信息的各项处理操作等。新的学年,教务人员首先编排班级,再对在校学生进行基本的信息录入,新生入学后由教务人员在管理系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级

6、安排一个班主任,并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,并对本年级各科成绩及总成绩进行排名。教务处、班主任及任课老师跟据实际情况对录入的成绩进行维护管理,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。3 系统总体设计3.1 功能模块分析学生成绩管理系统是对学生基本信息及成绩的管理。开发工具主要采用TurboC2.0,主要用于对学生的学号、姓名等自然信息以及各项学科成绩进行增加、删除、修改、查询及保存到文件等操作。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。学生成绩管理系统处理流

7、程如图1。0主菜单界面欢迎界面1输入0退出2查询3修改4删除5插入6平均分7排序8显示继续输入10返回主菜单1学号查询2姓名查询3总分查询结 束9初始化10保存返回图1 系统处理流程图主要功能设计描述如下:(1)系统主控平台允许用户选择想要的操作,包括输入学生信息、显示学生信息、查询学生信息、修改学生信息、删除学生信息、计算成绩以及成绩的排序等。通过输入相应的序号选择相应的操作。(2)学生成绩信息用户根据提示输入学生的学号、姓名、以及三门课的成绩,如语文成绩、英语成绩、数学成绩等。输入完成一条学生记录,可根据提示信息继续输入下一条学生记录或者继续其他的操作。允许输入多条学生的成绩信息记录。输入

8、完的学生记录暂时保持在单链表中,等待下一步的操作。(3)查询学生信息可以根据学号,姓名,总分从单链表中对学生所有的信息进行查询,如果没有查询到任何信息,系统会给出提示信息。(4)修改学生信息首先提示用户输入要进行修改的操作的学号,如果单链表中有该学生的信息存在,则提示用户输入要修改的学生的基本信息、各科成绩等,并将修改结果重新存储在单链表中。如果用户没有找到要修改的学生信息,系统将给出提示。(5)插入学生信息对已经建立好的信息若还需增加,则对信息进行插入。首先提示用户输入要进行插入的学号,然后在根据提示对用户信息进行完整输入。输入完成后系统将对其进行保存。(6)删除学生信息首先提示用户输入要删

9、除学生的学号,系统根据用户输入的信息在单链表中查找,如果找到,直接删除该学生全部信息,如果没有找到,系统给出提示信息。(7)计算各科成绩平均分该模块主要进行学生成绩的平均分计算,进入计算界面,系统自动对各科进行平均分计算。(8)显示学生信息在选择了显示学生信息后,将刚输入的学生信息从单链表中调出来显示,如果没有数据,则提示无学生记录。(9)学生成绩排序成绩信息输入完整后,根据学生的总分对学生从小到大进行排序,在显示学生信息的时候可以看到学生在班级或校的排列名次。(10)操作完成后对操作结果进行保存。运行完毕,退出系统。3.2 系统功能模块初始化准备3.2.1 编译预处理“编译预处理”是C编译系

10、统的一个组成部分。在C编译系统对程序进行通常的编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中这些特殊命令进行“预处理”,然后将预处理的结果和源程序一起再进行通常的编译处理,以得到目标代码。C语言提供的预处理功能主要有:(1)宏定义;(2)文件包含;(3)条件编译。而本程序使用文件包含的预处理方式进行编译预处理:#include/*标准库函数*/#include/*标准输入、输出函数库*/#include/*屏幕操作函数*/#include/*字符串函数*/3.2.2 数据结构定义学生成绩管理系统中的变量有学号,姓名,成绩等,这些数据类型各不相同,无法用简单数据类型来描述,显然要定

11、义结构体类型。由于学生人数很多,还需要定义数组或者链表。数组的特点是数据在内存中顺序存放,长度必须事先指定,而学生的人数很难估计。如果数组长度定的过大,会找出存储空间浪费,如果过小,又无法满足需求。特别是进行插入,删除等操作时,代价较大而又容易出错。用链表来管理学生成绩就显得比较妥当,它无需估计学生人数,进行插入删除等操作时代价较小。C语言中,说明和使用“结构体”之前必须先定义,在编写程序之前应该对学生基本信息进行定义,在这个程序中,使用struct来定义结构体的类型为struct list,然后用它来定义变量,在定义结构体类型的时候定义一个next成员,该成员可以把学生结点进行链接。并且通过

12、类型定义typedef将已有的各种类型名定义成为新的类型标识符link,经类型定义后,link即可当做原类型名使用。具体定义如下:struct listint ID; /*学号*/charname256; /*姓名*/int china; /*语文成绩*/int english; /*英语成绩*/int math; /*数学成绩*/float sum; /*总分*/int order; /*排序*/struct list *next; /*指向下一个学生的指针*/;typedef struct list node; /*自定义一个数据结构的结点*/typedef node *link; /*定

13、义结点为link结构*/3.3 具体模块处理函数的实现3.3.1 菜单函数界面的设计系统与用户交换的界面是通过菜单实现的,菜单按预定义格式显示主菜单界面,等待用户输入0-8中的任一数据,系统会根据用户的输入调用相应的功能模块,实现用户所要求的操作。(1)本程序的菜单界面主要使用屏幕操作函数编写,欢迎界面设置为白底红字,菜单界面设置为绿底蓝字,在欢迎界面中单击任意键进入菜单操作界面。整个系统都以光标定位函数gotoxy(x,y)固定光标的位置,在对其进行输出,从而可以使显示的文字都出现在设定的窗口内,窗口的界面设置使用画图工具制作周围的边框,边框的设置具体如下:gotoxy(8,2); putc

14、h(0xc9); /*输入左上角边框*/for(i=1;i46;i+) putch(0xcd); /*输出上边框水平线*/putch(0xbb); /*输出右上角边框*/for(i=3;i23;i+) gotoxy(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);/*制作显

15、示菜单的窗口*/(2)菜单是由menu函数实现,主要通过printf函数显示一些文本选项如:printf(exit the program.n);构建一个简单的字符界面,系统设置11个模块,用户通过输入关键字key从0-10之间选择相应的操作,函数通过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:

16、head=delete_chengji(head,key);break;case6:head=insert_chengji(head,key);break;case7:average(head);break;case8:sort(head);break;case9:printf_list(head);break;case10:save(head);break;3.3.2 功能函数设计(1)初始化链表学生成绩管理系统使用前要先将系统进行初始化操作,初始化函数init()就是将函数置空。(2)创建学生信息函数创建学习信息函数由creat_list函数实现,首先在创建链表之前先定义函数的基本信息并创

17、建结构体指针head,pointer和new,设学号,排名为整形,名字设为字符型,语文,数学,英语成绩设为单精度类型,并对order和sum进行初始化,为head建立一个空结点,当head不为空,输入用户信息,然后将新输入的数据存于head指针。程序如下: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 i

18、nput name:); scanf(%s,&cname);for(i=0;inamei=cnamei;printf(please input china:); scanf(%d,&cchina);head-china=cchina;head-next=NULL; pointer=head;如果输入正确既while为真的时候为news新建立一个结点,提示用户如果要继续输入按1,输入0为退出。新输入的数据存储到news指针里,然后把head和news里面的数据一起放到pointer,供下面操作时调用pointer的数据。while(1)news=(link)malloc(sizeof(node)

19、;printf(Are you continue?);printf(If continue enter1, or return enter0.);/*输入1为继续,0为退出*/scanf(%d,&cID); if(cID=0)break;news-next=NULL; pointer-next=news; pointer=news;创建函数时只能创建一次,因为创建的链表暂时存于head指针里,如果再次创建,要先保存否则系统会自动将head指针进行初始化数据将被清空,存放新创建的记录。(3)查询学生成绩函数查询函数search_chengji用来对学生的基本信息进行查询。首先使用光标定位函数go

20、toxy(x,y)和printf函数制作查询的子菜单,菜单包括:0.exit、1.search by ID、2.search by name、3.search by sum。查询菜单设置完成后应用switch()case1:执行语句;break;语句调用相应函数操作功能。系统在调用函数时,调用自定义的辅助函数,按预定义格式显示查询成绩的子菜单界面。用户输入的格式正确时使用while函数调用相应的功能函数。 按学号查询,输入choose=1,key1为要查询的学号,查找系统中学号为key1的学生是否存在,如果key1=ID说明找到该学生,并标记flag=1,中断查询显示查询的结果,否则继续查找直

21、到找到为止。例如:if(choose=1)while(pointer!=NULL)if(pointer-ID-key1=0) flag=1;break;else pointer=pointer-next; 按名字查询,输入choose=2,sname为要查询学生的名字,查找系统中名字为sname的学生是否存在,如果strcmp(pointer-name,sname)=0说明找到该学生,并标记flag=1,中断查询显示查询的结果,否则继续向下查找直到找到名字为sname的学生。 按学生的总成绩查询,输入choose=3,score为要查找学生的总分,查找系统中总分为score的学生是否存在,如果

22、if(pointer-sum-score=0)说明找到该学生,并标记flag=1,中断查询显示查询的结果;否则继续向下查找直到找到总分为score的学生;(4)修改学生成绩函数修改函数modify_chengji是对之前所输入的信息如果出现错误,或需要更改时使用。在编写之前先对函数进行定义,并把head的值赋给pointer,然后用简单的printf函数编写修改菜单的基本界面以及修改的内容。用户根据提示输入要编辑的学号printf(please input number for modify:);scanf(%d,&keynum),系统根据学号查找该学生的基本信息,如果寻找到该生,系统提示要修

23、改的具体内容,根据用户需要选择相应内容进行修改,此功能应用switch(choose)case1:执行语句;break;语句执行。printf(enter0 exit modefiyn);printf(enter1 modefiy namen);printf(enter2 modefiy chinan);printf(enter3 modefiy englishn);printf(enter4 modefiy mathn);printf(Please Enter you choice:);scanf(%d,&choose);信息输入完成后,按任意键系统自动保存到pointer中,新信息将覆盖原

24、有信息pointer-namei=xnamei,运行结束输出修改后的信息,返回到菜单。如果没有找到,系统将中止执行。while(1) if(pointer-ID=key3) if(choose=1) for(i=0;inamei=xnamei; break; else if(choose=2)pointer-china=xchina;break;else if(choose=3)pointer-english=xenglish;break;else if(choose=4)pointer-math=xmath;break; if(head!=NULL) printf(Pree any key

25、to save!);getch();printf_list(head);returnhead;(6)删除学生信息函数删除函数delete_chengji在编写之前先定义2个结构体pointer和q,key2为要删除学生的学号,定义完成后对pointer赋初值,用j记录pointer的位置,将其设为整形并初始化。从链表中删去一个节点只要改变链接的关系即可,既修改结点指针成员的值。从链表中删除一个结点有三种情况:删除链表的头结点,删除链表的中间结点,删除链表的尾节点。具体情况如图2。. pointer!=key2时q pointer= =key2 j=0p pointer= =key2 j!=0j

26、q=pointer;j+;pointer=pointer-next;qpp headhead.图2 删除算法当pointer的后面指针不为空: 如果key2!=pointer-ID,则把pointer的值赋给q,pointer指向下一个记录继续寻找学号key2。while(pointer-next!=NULL)if(pointer-ID!=key2)q=pointer; j+; pointer=pointer-next;else break; 如果key2=pointer-ID时,判断j是否为0,如果j为0说明pointer为头结点,则直接将结点删除,head指向他的下一指针。if(point

27、er-ID=key2)if(j=0)head=head-next; free(pointer); 如果判断j!=0,则说明删除的结点不是头指针,结点位于中间,要删除结点pointer首先应该让q-next指向pointer-next,然后释放pointer。执行完后系统将自动停留几秒然后返回主菜单。(7)插入学生成绩插入功能主要用于插入新的学生记录。在insert_chengji函数先定义2个结构体指针pointer和news,pointer为原指针,news为新插入指针。定义完成后对pointer初始化,然后为news建立新结点news=(link)malloc(sizeof(node),定

28、义完成后为news输入新数据。插入的情况有两种既:如果pointer为空则直接将news的值赋给head输入系统并做为头指针;如果pointer不为空则把news的值赋给pointer,运行如果正确且head不为空时显示输入的数据信息。具体操作如图3。 pointer= =NULLheadp news pointer!=NULLnewsp 图3 插入算法程序:if(head!=NULL) news=(link)malloc(sizeof(node); /*如果head不为空,为news指针建立一个结点*/gotoxy(3,5); printf(please input student ID:)

29、;scanf(%d,&news-ID);while(1) if(pointer=NULL) news-next=head; head=news; break; /*如果pointer为空,news直接为头指针*/if(pointer-ID=key3) news-next=pointer-next; pointer-next=news; break;/*如果key3等于ID直接插入news*/pointer=pointer-next;(8)计算各科成绩的平均分函数计算函数average求各科的平均分。首先为各科成绩进行初始化操作,如果pointer不为空,说明里面有数据,在对其求各科的总成绩,最

30、后在进行平均分求值。计算完成显示最后计算结果。具体程序如下:while(1) achina=achina+pointer-china; /*求总分*/aenglish=aenglish+pointer-english;amath=amath+pointer-math;cnt=+cnt;if(pointer-next=NULL) break;pointer=pointer-next; /*求平均分*/avechina=achina/cnt;aveenglish=aenglish/cnt;avemath=amath/cnt;(9)学生成绩排序学生成绩排序函数sort用来对学生成绩进行按从大到小的顺

31、序排序。处理过程:定义2个临时指针pointer、max,max用来存放pointer的数据,而pointer指向它的下一位。再定义一个单精度变量fen、整形变量k和字符型变量s256,分别存放成绩、学号、名字。定义完成后把先对pointer初始化,用count来记录pointer的个数,然后从1开始对max和pointer进行比较。比较一次count加1,在把count的值赋给pointer-order。排序完成后到显示界面查看。函数排序过程如下:for(i=1;icount;i+) max=pointer=head;for(j=i+1;jnext;if(max-sumpointer-sum

32、) /*用总分对成绩进行排名*/ fen=max-sum; max-sum=pointer-sum; pointer-sum=fen; /*总分的交换*/k=max-ID; max-ID=pointer-ID; pointer-ID=k; /*学号的交换*/fen=max-china; max-china=pointer-china; pointer-china=fen; /*语文成绩的交换*/fen=max-math; max-math=pointer-math; pointer-math=fen; /*数学成绩的交换*/fen=max-english; max-english=pointe

33、r-english; pointer-english=fen; /*英语成绩的交换*/strcpy(s,max-name); strcpy(max-name,pointer-name); strcpy(pointer-name,s);/*姓名的交换*/pointer=pointer-next;pointer=head; count=0;while(pointer!=NULL)/*赋排序的值*/ count+; pointer-order=count;pointer=pointer-next;(10)显示学生成绩函数显示函数printf_list主要显示学生的基本信息,每当操作完成的时候一般都会

34、调用此函数进行预览。printf_list函数运行时先输出表头,在单链表中反复调用函数,逐条显示学生的信息,直到运行结束,返回到主菜单界面。具体显示函数如下:printf_list(linkhead) int i=0;link pointer;clrscr(); pointer=head;gotoxy(2,4);printf(+-+-+-+-+-+-+-+n);/*显示表头*/gotoxy(2,5);printf(|ID|name|china|english|math|sum|order|n);gotoxy(2,6);printf(+-+-+-+-+-+-+-+n);while(pointer

35、!=NULL) i+;gotoxy(2,7); /*如果pointer不为空,逐条显示内容*/printf(|%d|%s|%4.2f|%4.2f|%4.2f|%4.2f|%d|n,pointer-ID,pointer-name,pointer-china,pointer-english,pointer-math,pointer-sum,pointer-order);pointer=pointer-next; gotoxy(2,8);printf(*end*n);gotoxy(2,10);getch();returnhead;clrscr();(11)保存学生成绩函数保存函数save主要用来对学

36、生成绩运行后的结果进行保存。该函数在运行之前先要定义一个指向文件的指针fp,在定义一个移动指针p和保存输出的文件名outfile。用户根据系统的提示,输入要保存的文件名和保存路径。系统以只写(”w”)方式打开文件,如果移动指针p不为空则写入一条记录。运行结束返回主菜单。运行过程函数:printf(Enteroutfilename,forexamplec:f1te.txt:n);scanf(%s,outfile);fp=fopen(outfile,w);while(p!=NULL) fwrite(p,sizeof(node),1,fp);p=p-next; printf(-savesuccess

37、!-n);fclose(fp);4 系统测试与分析4.1 运行工具介绍C语言运用的是TurboC程序应用软件中运行。TurboC是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC,TurboPascal,TurboProlog,这些软件很受用户欢迎。该公司在1987年首次推出TurboC1.0产品,其中使用了全然一新的集成开发环境,即使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。1988年,Borland公司又推出TurboC1.5版本,增加了图形库

38、和文本窗口函数库等,而TurboC2.0则是该公司1989年出版的。TurboC2.0在原来集成开发环境的基础上增加了查错功能,并可以在Tiny模式下直接生成.COM(数据、代码、堆栈处在同一64K内存中)文件。还可对数学协处理器(支持8087/80287/80387等)进行仿真。4.2 系统操作将编写好的程序在TurboC的代码编辑器里进行编辑,语法检查正确后进行运行。系统进入运行后,首先进入系统欢迎界面单击任意键键进入学生成绩管理系统的主菜单界面,系统提示用户输入0-8之间的不同数字,来实现不同的操作。主菜单界面如图4所示。图4 学生成绩管理主菜单界面进入主菜单界面后,输入数字1对本系统先

39、进行初始化,初始化后并可以输入2进去创建界面,用户可以根据提示信息输入学生的基本信息,输入完一条后,若要继续输入则输入1,否则退出输入0,输入完成后调用显示功能模块,供用户预览。创建的时候只能创建一次,反复创建将把之前的数据清空,如需增加数据则使用插入功能。运行结束返回主菜单界面。若要进行查询,在主菜单中输入3,则进入查询学生信息的子菜单,用户可以根据自己的喜欢选择用学号,姓名,总分中任一方式查询。根据系统提示信息输入查询的条件,如果要查找的学生存在,系统根据要求从数据库中查找到该学生的信息,并输出显示。否则提示没有找到信息,返回主菜单界面。查询学生信息子菜单界面如图5所示。图5 查询信息若要

40、对学生信息进行修改则在主菜单中输入4,进入修改学生信息界面,根据系统提示信息输入要修改学生的学号,系统根据输入的学号,检索要修改的学生信息,在根据显示的内容,选择要修改的具体内容。修改完成先显示未修改的信息,单击任一键对其进行保存。若要删除学生信息,在主菜单中输入5,进入删除学生信息界面,输入要删除的学生学号,如果该学号存在,系统将自动将其学生信息删除,如果不存在,则显示提示说明没有该学号学生。操作完成后删除界面停留几秒立即返回到主菜单界面。在主菜单中若输入的是6,则进入插入学生信息界面,根据系统提示信息输入要增加的学生学号,若此学号不存在则根据提示输入学生的基本信息,输入完成后系统会自动保存

41、。在主菜单中若输入7,则进入计算各科平均分成绩,计算完成输出计算结果。在主菜单界面中如果输入8,则进入学生成绩排行界面,系统会自动将刚输入学生的成绩进行排列,通过显示功能模块输出学生的排名。在主菜单界面中如果输入9,则进入显示学生信息界面,系统会将刚输入的学生的信息按照预定格式显示出来。在主菜单中如果如果10,对其操作内容进行保存。退出系统输入0。结束语本文简要介绍了如何用C语言来编写学生成绩管理系统和设计过程中的一些主要步骤。本系统基本上能够实现学生成绩管理的添加、删除、查询、修改、计算、显示、排序等功能,但是在设计过程中还有些功能不是很完善,操作界面不美观,还有非常多地方需要以后继续改进。

42、因此在以后的学习当中还应该更加努力,尽量达到最好。参考文献:1 梁旭,古晓琳,黄明编著.C语言课程设计(第2版).电子工业出版社,2009.8.2 毕万新,景福文主编.C语言程序设计(第四版).大连理工大学出版社,2005.8.3 田淑清主编.全国计算机等级考试二级教程.C语言程序设计(2008年版).北京:高等教育出版社,2007.8.4 (美)罗伯茨(Roberts,E,S)著,翁惠玉等译.C语言的科学和艺术.北京:机械工业出版社,2005.3.5 齐景嘉主编,陈炯,张三群,苗树红编.数据结构(含实训).南京:东南大学出版社,2006.6.6 王晓东主编.C程序设计简明教程.北京:中国水利

43、水电出版社,2006(2007重印).7 张宗杰主编.C语言程序设计使用教材.北京:电子工业出版社,2008.1.附表1:宁德师范高等专科学校毕业论文(设计)开题报告学生姓名杨欢学号2007102235系别计算机与信息工程系专业计算机教育指导教师石曼银职称讲师毕业论文(设计)题目用C语言实现一个简单的学生成绩管理系统毕业论文(设计)工作期限2009年12月1日起至2010年5月30日止选题的目的和意义伴随着现代社会的发展,网络技术的不断进步,越来越多的管理工作都从传统的现实社会中发展到了网络上。C语言是计器语言中最基本的语言,是当今世界上应用最广泛、影响最深远的高级程序设计语言之一,他既有高级

44、语言的全部功能,又具有计算机硬件操作密切相关的功能,通过使用C语言设计并实现学生成绩的管理,不仅可以熟练掌握C语言,对以后学习其他语言也有重要促进作用。毕业论文、设计综述在信息时代,计算机以其极高的运算速度、巨大的数据存储容量,以及能准确地进行各种算术运算和逻辑运算的能力而成为现代化计算工具,并被广泛应用于社会各个领域。计算机技术的高速发展已被认为是人类进入信息时代的标志。成绩管理系统是计算机技术和信息时代的产物,是信息处理或数据处理的核心。用C语言实现学生成绩的管理首先要先对学校进行需求分析,了解现在的学校都是以什么方式来管理学生和学生的成绩。回顾过去和现在了解现代社会的发展现状。在根据学校

45、的具体需求设计一个适合学生使用的学生成绩管理系统,在制作系统之前,应该先画一个学生成绩管理系统的基本流程图,画出将要编写的各个模块,及各模块功能是如何实现的。准备工作做好后就可以进行编写程序了。编写程序之前先要进行预编译处理,定义一个学生成绩的数据结构,学生成绩含有几个必要的学生信息如:学号、姓名、各科成绩(举例3科语文,数学,英语),总分及排名。结构体定义完成后首先要编辑一个操作界面,本系统使用的是简单的屏幕操作函数gotox()制作了一个简单的欢迎界面和菜单界面。用户根据系统提示输入相应的选项,进入操作界面,功能函数的实现使用了gotoxy函数和printf函数编辑操作窗口,灵活运用swi

46、tch函数调用各函数,实现函数功能。在整个系统中普遍应用条件语句if() else限制条件的操作和功能的实现。每一个功能函数之间都存在在一种依赖关系,互相关联,互相调用。系统操作时首先进入菜单界面,当用户输入0时退出操作系统;在操作之前先输入1对系统进行初始化。当用户输入2则进行创建记录信息,用户根据系统提示信息输入学生信息,输入完成系统自动保存。当用户输入3时进入查询界面,用户根据自己的需求输入要查询的学号,输入正确则调出信息供用户查阅;当输入4时进行修改,输入要修改的学生学号在对其具体信息进行修改,修改完成后覆盖原数据;当输入5时是删除功能,此功能根据的是单链表的删除方法编写的;输入6对其

47、进行插入,插入功能根据单链表的插入编写的;输入7是对各科进行求平均分;输入8对整个系统的学生成绩根据总分进行从大到小排名,排序完成后输入9显示操作结果;当操作完成后输入10进行保存。该系统在设计的时候基本上完成了学生成绩管理的基本功能,能够实现学校对学生成绩的输入,修改,查询,删除,插入,统计和排名功能,方便学校对学生成绩的统一管理。本系统使用简单,方便学校管理和学生的查询。研究步骤1. 选择制作毕业设计的主题并拟定标题。2根据自己所学的知识并搜集有关的资料来制作学生成绩管理系统。3首先先查阅学校的概况,了解现代社会的学校的管理机制。4根据查阅的资料对学校做一个详细的需求分析,并且制作一个系统

48、的流程图。5. 设计一个学校的成绩管理系统模块及其具体功能。6. 根据设计的功能编写程序。7. 程序编写完成进行调试,和修改。8. 程序完成后搜集论文的资料。9. 拟论文及其大纲。10完成初稿让老师审阅,修改。日程安排1. 2009年12月1日2009年12月28日 选题2. 2009年12月29日2010年1月10日 搜集相关资料3. 2010年1月11日2010年1月20日 总体规划系统各模块功能4. 2010年1月20日2010年2月20日 初步设计完成5. 2010年2月21日2010年3月20日 设计进行调试修改6. 2010年3月22日2010年4月20日 论文撰写7. 2010年

49、4月21日2010年5月15日 再次修改论文并定稿阅读书目及参考文献1 梁旭,古晓琳,黄明编著.C语言课程设计(第2版).电子工业出版社,2009.8.2 毕万新,景福文主编.C语言程序设计(第四版).大连理工大学出版社,2005.8.3 田淑清主编.全国计算机等级考试二级教程.C语言程序设计(2008年版).北京:高等教育出版社,2007.8.4 (美)罗伯茨(Roberts,E,S)著,翁惠玉等译.C语言的科学和艺术.北京:机械工业出版社,2005.3.5 齐景嘉主编,陈炯,张三群,苗树红编.数据结构(含实训).南京:东南大学出版社,2006.6.6 王晓东主编.C程序设计简明教程.北京:

50、中国水利水电出版社,2006(2007重印).7 张宗杰主编.C语言程序设计使用教材.北京:电子工业出版社,2008.1.成果1、毕业论文(设计)文本1份2、毕业论文(设计)开题报告1份3、毕业论文(设计)评定书1份学生送交论文(设计)日期指导教师(签名)注:1、开题报告在指导教师指导下完成。2、毕业论文(设计)完成后,相关成果按照毕业论文(设计)档案管理要求存档。3、若有关表格不够填写,可另附纸张。附表2:宁德师范高等专科学校毕业论文(设计)评定书学生姓名杨欢专业计算机教育学号2007102235指导教师石曼银答辩成绩论文题目用C语言实现一个简单的学生成绩管理系统指导过程记录选题及提纲主题:用C语言实现学生成绩管理系统提纲:1. 引言,概况全文2. 进行需求分析3. 具体的设计步骤4. 系统的测试5. 总结设计教师签字日期指导与修改1. 程序编写格式混乱,经老师指导,程序的格式按要求弄好。2. 运行程序存在些问题,不能顺利运行,经老师指导,分模块运行成功。3. 程序中的功能不够完善,经老师指导后,对各功能进行进一步改进。教师签字日期定稿经反复修改,于2010年5月15日定稿教师签字日期其他教师签字日期指导教师评语初评成绩:指导教师:年月日答答辩小组意见答辩成绩:答辩主持人:年月日系答辩委员会审核意见系主任:(加盖公章)年月日

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!