1 / 12
文档名称:

用C语言实现一个简单学生成绩管理系统方案.docx

格式:docx   大小:106KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用C语言实现一个简单学生成绩管理系统方案.docx

上传人:智慧书屋 2024/4/14 文件大小:106 KB

下载得到文件列表

用C语言实现一个简单学生成绩管理系统方案.docx

相关文档

文档介绍

文档介绍:该【用C语言实现一个简单学生成绩管理系统方案 】是由【智慧书屋】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【用C语言实现一个简单学生成绩管理系统方案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案1用C语言实现一个简单学生成绩管理系统方案...目录1序言...........................................................................12系统需求解析...................................................................1项目背景解析..............................................................1系统开发的目标与意义......................................................1项目需求解析..............................................................13系统整体设计...................................................................1功能模块解析..............................................................1系统功能模块初始化准备....................................................3编译预办理..........................................................3数据结构定义........................................................3详尽模块办理函数的实现....................................................4菜单函数界面的设计..................................................4功能函数设计........................................................44系统测试与解析.................................................................9运行工具介绍..............................................................9系统操作..................................................................9结束语..........................................................................10参照文件........................................................................11..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...用C语言实现一个简单的学生成绩管理系统大纲:陪同着现代社会的发展,网络技术的不断进步,越来越多的管理工作都从传统的现实社会中发展到了网络上。高校是使用计算机技术最早的单位,学校的各项管理工作也从现实生活走上了网络空间。本文对学校的需求进行解析,经过使用C语言设计并实现学生成绩的管理,力求尽量简洁合用地解决学校订学生成绩的管理和学生对成绩的盘问问题。要点字:C语言成绩管理系统程序设计序言在信息时代,计算机以其极高的运算速度、巨大的数据储藏容量,以及能正确地进行各种算术运算和逻辑运算的能力而成为现代化计算工具,并被宽泛应用于社会各个领域。计算机技术的高速发展已被认为是人类进入信息时代的标志。成绩管理系统是计算机技术和信息时代的产物,是信息办理或数据办理的核心。该系统开发的整体任务是实现学生成绩管理的系统化、规范化、自动化,以达到提高学生成绩管理效率的目的。经过运用程序设计软件实现学生成绩管理中的多种功能,如学生成绩信息的增加、删除、盘问、更正、显示、排序等。该系统的设计充分利用计算机作为辅助工具,来实现学生考试成绩从传统的手工管理到计算机管理,并对提高管理效率和节约大量的人力、物力有必然的推动作用。因此,开发这种管理软件很必要,本文将在解析系统的应用价值以及开发工具的基础上,用C语言来开发成绩管理系统。系统需求解析项目背景解析在我国,各大中小学校的各种信息管理系统其实不是一个新的课题,但也有的学校根本就没有任何信息管理系统,特别是在西部贫困地区,学校的各种管理仍旧由手工操作来达成,这十分落后,效率极低,成本很大,而且极异出错。随着社会的发展,信息化是社会进度的必然趋势,学校管理只有快,准,精才能发挥其价值。系统开发的目标与意义1)系统开发目标:本系统是将现代化的计算机技术和传统的授课、教务工作相结合,依照学院的工作流程设计达成的。为了使系统在学院的管理中发挥充分发挥其作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出以下的系统开发目标:①系统应拥有合用性、可靠性和合用性。②对系统中数据库的信息进行有效办理,防范数据错乱。②能够依照用户选择的不相同的条件进行简单盘问。③方便用户的操作,尽量减少用户的操作。2)系统开发的意义:在各大中小学校,用计算机管理学校的信息已经越来越宽泛了。用计算机不仅能够提高工作效率,而且还节约了好多人力物力财力。提高了学校的管理能力,为此,用计算机来管理学校的信息,是特别必要的。项目需求解析学校工作流程解析:学校工作整体规划由教务人员在学生成绩管理系统中输入学生的基本信息并对其进行保护管理,包括对信息的增加、更正及对信息的各项办理操作等。新的学年,教务人员第一编排班级,再对在校学生进行基本的信息录入,再生入学后由教务人员在管理系统中达成新学生信息的保护。在每个学期开始,教务处依照班级的情况,以班为单位,为每个班级安排一个班主任,并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,并对今年级各科成绩及总成绩进行排名。教务处、班主任及任课老师跟据实质情况对录入的成绩进行保护管理,各位同学对以上录入的信息能够跟据自己的需要进行合适的盘问。3系统整体设计功能模块解析学生成绩管理系统是对学生基本信息及成绩的管理。开发工具主要采用,主要用于对学生的学用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案3用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...号、姓名等自然信息以及各项学科成绩进行增加、删除、更正、盘问及保存到文件等操作。系统给用户供应了一个简单的人机界面,使用户能够依照提示输入操作项,调用系统供应的管理功能。学生成绩管理系统办理流程如图1。欢迎界面返回主菜单界面0**********退输查修删插平排显初保出入询改除入均序示始存1分化连续输入00123结束返学姓总回号名分主查查查菜询询询单图1系统办理流程图主要功能设计描述以下:(1)系统主控平台赞同用户选择想要的操作,包括输入学生信息、显示学生信息、盘问学生信息、更正学生信息、删除学生信息、计算成绩以及成绩的排序等。经过输入相应的序号选择相应的操作。2)学生成绩信息用户依照提示输入学生的学号、姓名、以及三门课的成绩,如语文成绩、英语成绩、数学成绩等。输入达成一条学生记录,可依照提示信息连续输入下一条学生记录也许连续其他的操作。赞同输入多条学生的成绩信息记录。输入完的学生记录临时保持在单链表中,等待下一步的操作。3)盘问学生信息能够依照学号,姓名,总分从单链表中对学生全部的信息进行盘问,若是没有盘问到任何信息,系统会给出提示信息。4)更正学生信息第一提示用户输入要进行更正的操作的学号,若是单链表中有该学生的信息存在,则提示用户输入要更正的学生的基本信息、各科成绩等,并将更正结果重新储藏在单链表中。若是用户没有找用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案5用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...到要更正的学生信息,系统将给出提示。5)插入学生信息对已经成立好的信息若还需增加,则对信息进行插入。第一提示用户输入要进行插入的学号,尔后在依照提示对用户信息进行完满输入。输入达成后系统将对其进行保存。6)删除学生信息第一提示用户输入要删除学生的学号,系统依照用户输入的信息在单链表中查找,若是找到,直接删除该学生全部信息,若是没有找到,系统给出提示信息。7)计算各科成绩平均分该模块主要进行学生成绩的平均分计算,进入计算界面,系统自动对各科进行平均分计算。8)显示学生信息在选择了显示学生信息后,将刚输入的学生信息从单链表中调出来显示,若是没有数据,则提示无学生记录。9)学生成绩排序成绩信息输入完满后,依照学生的总分对学生从小到大进行排序,在显示学生信息的时候能够看到学生在班级或校的排列名次。10)操作达成后对操作结果进行保存。运行达成,退出系统。系统功能模块初始化准备编译预办理“编译预办理”是C编译系统的一个组成部分。在C编译系统对程序进行平时的编译(包括词法和语法解析、代码生成、优化等)从前,先对程序中这些特别命令进行“预办理”,尔后将预办理的结果和源程序一起再进行平时的编译办理,以获取目标代码。C语言供应的预办理功能主要有:(1)宏定义;(2)文件包括;(3)条件编译。而本程序使用文件包括的预办理方式进行编译预办理:#include<>/*标准库函数*/#include<>/*标准输入、输出函数库*/#include<>/*屏幕操作函数*/#include<>/*字符串函数*/数据结构定义学生成绩管理系统中的变量有学号,姓名,成绩等,这些数据种类各不相同,无法用简单数据种类来描述,明重要定义结构体种类。由于学生人数好多,还需要定义数组也许链表。数组的特点是数据在内存中序次存放,长度必定早先指定,而学生的人数很难估计。若是数组长度定的过大,会找出储藏空间浪费,若是过小,又无法满足需求。特别是进行插入,删除等操作时,代价较大而又简单出错。用链表来管理学生成绩就显得比较稳定,它无需估计学生人数,进行插入删除等操作时代价较小。语言中,说明和使用“结构体”从前必定先定义,在编写程序从前应该对学生基本信息进行定义,在这个程序中,使用struct来定义结构体的种类为structlist,尔后用它来定义变量,在定义结构体种类的时候定义一个next成员,该成员能够把学生结点进行链接。而且经过种类定义typedef将已有的各种种类名定义成为新的种类表记符link,经种类定义后,link即可当作原种类名使用。详尽定义以下:structlist{intID;/*学号*/charname[256];/*姓名*/intchina;/*语文成绩*/intenglish;/*英语成绩*/intmath;/*数学成绩*/floatsum;/*总分*/intorder;/*排序*/structlist*next;/*指向下一个学生的指针*/};typedefstructlistnode;/*自定义一个数据结构的结点*/typedefnode*link;/*定义结点为link结构*/用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案7用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...详尽模块办理函数的实现菜单函数界面的设计系统与用户交换的界面是经过菜单实现的,菜单按预定义格式显示主菜单界面,等待用户输入0-8中的任一数据,系统会依照用户的输入调用相应的功能模块,实现用户所要求的操作。(1)本程序的菜单界面主要使用屏幕操作函数编写,欢迎界面设置为白底红字,菜单界面设置为绿底蓝字,在欢迎界面中单击任意键进入菜单操作界面。整个系统都以光标定位函数gotoxy(x,y)固定光标的地点,在对其进行输出,从而能够使显示的文字都出现在设定的窗口内,窗口的界面设置使用画图工具制作周围的边框,边框的设置详尽以下:gotoxy(8,2);putch(0xc9);/*输入左上角边框*/for(i=1;i<46;i++)putch(0xcd);/*输出上边框水平线*/putch(0xbb);/*输出右上角边框*/for(i=3;i<23;i++){gotoxy(8,i);putch(0xba);/*输出左垂直线*/gotoxy(56,i);putch(0xba);}/*输出右垂直线*/gotoxy(8,23);putch(0xc8);/*输出左下角边框*/for(i=1;i<46;i++)putch(0xcd);/*输出下边框水平线*/putch(0xbc);/*输出右下角边框*/window(9,3,55,22);/*制作显示菜单的窗口*/(2)菜单是由menu函数实现,主要经过printf函数显示一些文本选项如:printf("<0>exittheprogram.\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: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;功能函数设计(1)初始化链表学生成绩管理系统使用前要先将系统进行初始化操作,初始化函数init()就是将函数置空。(2)创办学生信息函数创办学****信息函数由creat_list函数实现,第一在创办链表从前先定义函数的基本信息并创办结构体指针head,pointer和new,设学号,排名为整形,名字设为字符型,语文,数学,英语成绩设为单精度种类,并对order和sum进行初始化,为head成立一个空结点,当head不为空,输入用户信息,尔后将新输入的数据存于head指针。程序以下:head=(link)malloc(sizeof(node));/*成立一个新/空结点*/if(head==NULL){printf("memoryallocatefailure!!\n");exit(0);}else{printf("pleaseinputID:");scanf("%d",&ID);head->ID=cID用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案9用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...printf("pleaseinputname:");scanf("%s",&cname);for(i=0;i<256;i++)head->name[i]=cname[i];printf("pleaseinputchina:");scanf("%d",&cchina);head->hina;??head->next=NULL;pointer=head;}若是入正确既while真的候news新成立一个点,提示用若是要入按1,入0退出。新入的数据存到news指里,尔后把head和news里面的数据一起放到pointer,供下边操作用pointer的数据。while(1){news=(link)malloc(sizeof(node));printf("Areyoucontinue?");printf("Ifcontinueenter'1',orreturnenter'0'...");/*入1,0退出*/scanf("%d",&cID);if(cID==0)break;?news->next=NULL;pointer->next=news;pointer=news;建函数只能建一次,因建的表存于head指里,若是再次建,要先保存否系会自将head指行初始化数据将被清空,存放新建的。(3)学生成函数函数search_chengji用来学生的基本信息行。第一使用光定位函数gotoxy(x,y)和printf函数制作的子菜,菜包括:、byID、byname、bysum。菜置达成后用switch(){case1:行句;break;}句用相函数操作功能。系在用函数,用自定的助函数,按定格式示成的子菜界面。用入的格式正确使用while函数用相的功能函数。①按学号,入choose==1,key1要的学号,找系中学号key1的学生可否存在,若是key1==ID明找到学生,并flag=1,中止示的果,否找直到找到止。比方:if(choose==1){while(pointer!=NULL){if(pointer->ID-key1==0){flag=1;break;}elsepointer=pointer->next;}}②按名字,入choose==2,sname要学生的名字,找系中名字sname的学生可否存在,若是strcmp(pointer->name,sname)==0明找到学生,并flag=1,中止示的果,否向下找直到找到名字sname的学生。③按学生的成,入choose==3,score要找学生的分,找系中分score的学生可否存在,若是if(pointer->sum-score==0)明找到学生,并flag=1,中止示的果;否向下找直到找到分score的学生;(4)更正学生成函数更正函数modify_chengji是从前所入的信息若是出,或需要更正使用。在写从前先函数行定,并把head的pointer,尔后用的printf函数写更正菜的基本界面以及更正的内容。用依照提示入要的学号printf("pleaseinputnumberformodify:");scanf("%d",&keynum),系依照学号找学生的基本信息,若是找到生,系提示要更正的详尽内容,依照用需要相内容行更正,此功能用switch(choose){case1:行句;break;}句行。printf("enter0exitmodefiy\n");printf("enter1modefiyname\n");printf("enter2modefiychina\n");printf("enter3modefiyenglish\n");printf("enter4modefiymath\n");printf("PleaseEnteryouchoice:");scanf("%d",&choose);用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案11用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...信息入达成后,按任意系自保存到pointer中,新信息将覆盖原有信息pointer->name[i]=xname[i],运行束出更正后的信息,返回到菜。若是没有找到,系将中止行。while(1){if(pointer->ID==key3){if(choose==1){for(i=0;i<256;i++)pointer->name[i]=xname[i];break;}elseif(choose==2){pointer->china=xchina;break;}elseif(choose==3){pointer->english=xenglish;break;}elseif(choose==4){pointer->math=xmath;break;}}}if(head!=NULL){printf("Preeanykeytosave!!!");getch();printf_list(head);}returnhead;}(6)除学生信息函数除函数delete_chengji在写从前先定2个构体pointer和q,key2要除学生的学号,定达成后pointer初,用jpointer的地址,将其整形并初始化。从表中去一个点只要改接的关系即可,既更正点指成的。从表中除一个点有三种情况:除表的点,除表的中点,除表的尾点。详尽情况如2。p①pointer!=key2head?..q=pointer;^j++;jpointer=pointer->next;qpointer==key2j==0head?..^p③pointer==key2qj!=0?..^p图2删除算法当pointer的后边指不空:①若是key2!=pointer->ID,把pointer的q,pointer指向下一个找学号key2。while((pointer->next!=NULL)){if(pointer->ID!=key2){q=pointer;j++;pointer=pointer->next;}elsebreak;}②若是key2==pointer->ID,判断j可否0,若是j0明pointer点,直接将点除,head指向他的下一指。if((pointer->ID==key2))用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案13用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...{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)),定达成后news入新数据。插入的情况有两种既:①若是pointer空直接将news的head入系并做指;②若是pointer不空把news的pointer,运行若是正确且head不空示入的数据信息。详尽操作如3。①pointer==NULLpheadpnewspointer!=NULLnews图3插入算法程序:if(head!=NULL){news=(link)malloc(sizeof(node));/*若是head不空,news指成立一个点*/gotoxy(3,5);printf("pleaseinputstudentID:");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不空,明里面有数据,在其求各科的成,最后行家平均分求。算达成示最后算果。详尽程序以下:while(1){achina=achina+pointer->china;/*求分*/aenglish=aenglish+pointer->english;amath=amath+pointer->t=++cnt;if(pointer->next==NULL)break;pointer=pointer->next;}/*求平均分*/avechina=t;aveenglish=t;用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案15用C语言实现一个简单学生成绩管理系统方案..........用C语言实现一个简单学生成绩管理系统方案用C语言实现一个简单学生成绩管理系统方案12用C语言实现一个简单学生成绩管理系统方案...avemath=t;}(9)学生成绩排序学生成绩排序函数sort用来对学生成绩进行按从大到小的序次排序。办理过程:定义2个临时指针pointer、max,max用来存放pointer的数据,而pointer指向它的下一位。再定义一个单精度变量fen、整形变量k和字符型变量s[256],分别存放成绩、学号、名字。定义达成后把先对pointer初始化,用count来记录pointer的个数,尔后从1开始对max和pointer进行比较。比较一次count加1,在把count的值赋给pointer->order。排序达成后到显示界面查察。函数排序过程以下:for(i=1;i<count;i++){max=pointer=head;for(j=i+1;j<=count;j++){max=pointer->next;if(max->sum>pointer->sum)/*用总分对成绩进行排名*/{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=pointer->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主要显示学生的基本信息,每当操作达成的时候一般都会调用此函数进行预览。printf_list函数运行时先输出表头,在单链表中屡次调用函数,逐条显示学生的信息,直到运行结束,返回到主菜单界面。详尽显示函数以下:printf_list(linkhead){inti=0;linkpointer;clrscr();pointer=head;gotoxy(2,4);printf("+------+-----+-----+-----+-----+----+----+\n");/*显示表头*/gotoxy(2,5);printf("|ID|name|china|english|math|sum|order|\n");gotoxy(2,6);printf("+------+-----+-----+-----+-----+----+-

最近更新

潜污泵参数表 3页

疼痛诊疗学4神经阻滞 94页

妇产科护理学自然流产 33页

视网膜脱离的护理张文雅 34页

手术室护理中的质量管理ppt 18页

2021-2022学年黑龙江省哈尔滨市南岗区哈尔滨三.. 13页

2022年慢性“四病”能力提升项目培训知识试题.. 11页

《单片机微机原理与接口技术》按键接口实验报.. 9页

会泽县苏斗河河道整治工程实施方案 6页

品管圈提高中心静脉导管护理ppt 21页

安徽省人民代表大会常务委员会公告第39号——.. 20页

广西南宁市青秀区2022-2023学年九年级上学期期.. 3页

施工现场安全检查与验收管理台账 43页

慢性硬膜下钻孔引流术后的护理ppt课件 25页

绿色护理ppt 26页

福州市人民政府办公厅关于印发福州市老旧小区.. 9页

高风险地区居民防诈骗安全教育小心身边的陷阱.. 27页

高二英语选择性必修第二册(2020版) Unit1 单元.. 19页

骨干教师培养计划方案的教育创业与创新创业 28页

预防虚假医疗保健诈骗警惕虚假保健品的推销 24页

回肠造口术护理查房ppt 23页

住建厅住宅工程质量问题防治手册 90页

酒店管理系统云平台解决方案的员工排班和考勤.. 27页

订制化培训计划的重要性和优势 34页

舞蹈培训行业创业计划书 36页

护理匠心ppt 27页

租车行业创业计划书 27页

电商孵化器行业创业计划书 42页

氧化铝项目可行性研究报告市场需求与产品竞争.. 29页

春节期间的传统绘画与篆刻作品展 22页