顺序表的学生成绩管理系统设计与实现.docx
- 文档编号:8656019
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:178.51KB
顺序表的学生成绩管理系统设计与实现.docx
《顺序表的学生成绩管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《顺序表的学生成绩管理系统设计与实现.docx(18页珍藏版)》请在冰豆网上搜索。
顺序表的学生成绩管理系统设计与实现
长春建筑学院《数据结构》课程设计(论文)
顺序表的学生成绩管理系统设计与实现
Ordertableofstudentachievementmanagement
systemdesignandimplementation
年级:
学号:
姓名:
专业
指导老师:
二零一三年十二月
摘要
随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。
学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。
为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统软件为教学办公室带来了极大的方便。
该软件是以C语言为实现语言,其功能
在系统内部有源代码直接完成。
通过操作目录,管理者和老师可以了解本软件的基本工作原理。
管理者和老师只需输入一些简单的汉字、数字,即可达到自己管理学生成绩的目标。
关键字:
成绩管理系统c语言数据结构
Abstract
Withthedevelopmentofthesociety,theschoolscaleunceasinglyexpands,thedailyteachingactivitiestoextractrelevantinformation,toreflecttheteachingsituation.Traditionalwayofmanualoperation,pronetolossofdata,statisticalerrors,highlaborintensity,andtheslowspeed.Usingthecomputercanbehighspeed,quicklycompletetheabovework.Afterthecomputernetworking,datatransmissionontheInternet,canrealizedatasharing,avoidduplicationofeffort,standardizeteachingmanagement,soastoimprovethemanagementefficiencyandlevel.Studentachievementmanagementsystembymeansofcomputer,throughtheinformationneededforthestudentperformaneemanagementinthemanagement,themanagementandteachersfromcomplicateddataprocessing,makeitshavemoreenergytoengageintheresearchandimplementationofthepolicyoftheeducationaladministrationteachingplanexecutionandtheteachingqualitysupervisionandinspection,soastoimprovethequalityofteachingcomprehensively.
Theinformationsocietythehigh-tech,goodsofcontracthighbenefit,maketheapplicationofcomputerhasspreadtoallareasofeconomicandsociallife.Althoughcomputerandhumanrelationsmoreandmoreclose,andbecausethecomputeroperationisnotconvenienttocontinuewithmanuallabor.Inordertoadapttomodernsocietypeoplehighlystrongtimeconcept,studentachievementmanagementsystemsoftwarefortheteachingofficehasbroughtgreatconvenience.ThesoftwarebasedonCIanguageimplementationIanguage,itsfunctionwithinthesystemhavethesourcecodedirectlytofinish.Bymanipulatingthedirectory,administratorsandteacherscanunderstandthebasicworkingprincipleofthissoftware.AdministratorsandteachersonlyneedtoinputsomesimpleChinesecharacters,Numbers,canachievetheirmanagementgoalofthestudent'sgrade.
keywords:
achievementmanagementsystem,cIanguage,datastructure
摘要I•…
ABSTRACT.II
第1章绪论-1-
1.1需求分析-.1-
1.2实验目的-.1-
1.3实验内容.-..1-
第2章系统总体设计-2-
2.1基本要求-2-
2.2算法设计思想-2-
2.3设计要求-2-
第三章系统详细设计-3-
3.1创建空顺序表并初始化-.3-
3.2向顺序表中插入元素..4-
3.3查找学生信息-.7-
3.4删除学生信息-.8-
3.5输出学生信息.-..9-
3.6修改学生信息-9-
3.7退出学生信息管理系统.-..12-
第四章总体设计-13-
4.1设计概述-.13-
4.2系统总流程图及功能模块划分-.13-
4.2.1学生信息查询模块-14-
4.2.2学生信息查询模块-15-
第五章系统测试-16-
5.1实验结果.-..16-
实验总结-20-
收获与心得-21-
致谢-22-
参考文献-23-
引言:
为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的学生和管理员方便去管理和查询学生信息,如再要进行查询,就得在众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息,而管理员也方便去管理每学期的学
生的成绩信息。
建立一个学生信息管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。
。
1.1需求分析
学生管理系统功能的信息量大,数据安全性和保密性要求最高。
本功能实现对专
业信息、学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。
系统管理员可以浏览、查询、学生的基本信息,能添加、删除和修改学生信息,
这部分功能应该由系统管理员执行,但是,删除某条专业基本信息记录时,应实现对
该专业的相关信息也级联删除。
并且还应具有查询,并打印输出的功能
1.2实验目的
1.掌握顺序表的建立。
2.掌握顺序表的基本操作。
3.掌握顺序查找的基本算法
1.3实验内容
利用顺序表实现学生成绩管理系统,具体功能:
输入、输出、插入、除、查找、修改、退出,并能在屏幕上输出操作前后的结果'
第2章系统总体设计
2.1基本要求
1.硬件:
微机和打印机一台各
2.软件:
VisualC++windows7
2.2算法设计思想
1)分析程序的功能要求,划分程序功能模块
2)画出系统流程
3)代码的编写,定义数据结构和各个功能子函数
4)程序的功能调试
2.3设计要求
1.写出系统需求分析,并建模。
2.编程实现,界面友好。
3.输出操作前后的结果。
4.提供测试报告
第三章系统详细设计
3.1创建空顺序表并初始化
voidcreatList(sqlist*L)
{inti=0,n;Elemtype*newbase;
L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype)));
if(!
L->elem)
exit(OVERFLOW);
L->length=O;
L->listsize=List_INIT_SPACE;
printf("有几位同学:
\n");
scanf("%d",&n);
for(i=0;i {if(L->length==L->listsize) {newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemty pe)); if(newbase) {L->elem=newbase; L->listsize+=List_INC_SPACE;} else exit(OVERFLOW);} printf(" 请输入第%昭同学的信息: \n”,i+1); printf(" 学号(15)\n"); scanf("%16s",L->elem[L->length].number); printf(" 姓名(15)\n"); scanf("%16s",L->elem[L->length].name); printf(" 性别(男: M女: F)\n"); scanf("%16s",L->elem[L->length].sex); printf(”成绩\n"); scanf("%10d",&L->elem[L->length].score); L->length++;} printf("%d 名学生信息如下: \n",L->length); printf(" 学号(15)姓名(15)性别(男: M女: F)成绩\n"); for(i=0;i >elem[i].score);} 3.2向顺序表中插入元素 voidinsertlist(sqlist*L) {inti,j,k;charsign='y';Elemtype*newbase;Elemtypenewelem; while(sign! ='n') {if(L->length==L->listsize) {newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype)); if(newbase) {L->elem=newbase; L->listsize+=List_INC_SPACE;} elseexit(OVERFLOW);} printf("请输入要插入的同学的信息: \n"); printf("学号(15)\n"); scanf("%16s",newelem.number); printf("姓名(15)\n"); scanf("%16s",newelem.name); printf("性别(男: M女: F)\n"); scanf("%16s",newelem.sex); printf("成绩\n"); scanf("%10d",&newelem.score); printf("要插入到第几个位置: "); scanf("%d",&i); while(i<1||i>L->length+1) {printf("不能插入到第%d个位置! \n只能插入第1到第%介位置上! \n请重 新输入要插入的位置: "丄->length+1); scanf("%d",&i);} L->length++; for(j=L->length-1;j>i-2;j--) {for(k=0;k<16;k++) {L->elem[j].name[k]=L->elem[j-1].name[k]; L->elem[j].number[k]=L->elem[j-1].number[k]; L->elem[j].sex[k]=L->elem[j-1].sex[k];} L->elem[j].score=L->elem[j-1].score;} j++; for(k=0;k<16;k++) {L->elem[j].name[k]=newelem.name[k]; L->elem[j].number[k]=newelem.number[k]; L->elem[j].sex[k]=newelem.sex[k];} L->elem[j].score=newelem.score; printf(”是否还要输入? (YorN)"); getchar(); scanf("%c",&sign); if(sign=='n'||sign=='N') sign='n';} printf("%d名学生信息如下: \n",L->length); printf(”学号(15)姓名(15)性别(男: M女: F)成绩\n"); for(i=0;i printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L- >elem[i].score);} 3.3查找学生信息 intfindlist(sqlist*L) {intj;chari[16]; printf("1.按学号查找\n2.按姓名查找\n请选择: ”); scanf("%d",&j); if(j==1) {printf("请输入学号: "); scanf("%s",i); if(! strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数 returnj+1; return0;} else {printf("请输入姓名: "); scanf("%s",i); for(j=0;j if(! strcmp(i,L->elem[j].name))//用数组函数 returnj+1; return0;}} 3.4删除学生信息 intdelnode(sqlist*L) {intj;chari[10]; printf("1.按学号删除\n2.按姓名删除\n请选择: "); scanf("%d",&j); if(j==1) {printf("请输入学号: "); scanf("%s",i); for(j=0;j if(! strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数 {for(;j L->elem[j]=L->elem[j+1]; L->length--; return1;} return0;} else {printf("请输入姓名: ”); scanf("%s",i); for(j=0;j if(! strcmp(i,L->elem[j].name))//用数组函数 {for(;j L->elem[j]=L->elem[j+1];//L->elem[j]以后的向前挪 L->length--; return1;} return0;}} 3.5输出学生信息 voidprintlist(sqlist*L) {inti; printf("%d名学生信息如下: \n",L->length); printf("学号(15)姓名(15)性别(男: M女: F)成绩\n"); for(i=0;i >elem[i].score);} 3.6修改学生信息 voidreviselist(sqlist*L) {inti,x,a=0;charname[16];charsex[16];charnumber[16];intscore; printf("请选择你要改的同学的姓名"); seanf("%16s",name); printf(”请选择你要改的同学的信息\n"); printf("1.修改学生的姓名\n"); printf("2.修改学生的学号\n"); printf("3.修改学生的性别\n"); printf("4.修改学生的成绩\n"); seanf("%d",&x); switeh(x) {ease1: for(i=0;i {if(stremp(name,L->elem[i].name)==O) {printf("请输入新名字"); scanf("%16s",name); strcpy(L->elem[i].name,name); a=1;}} if(a==0) break; printf("对不起你要改的名字不存在\n"); ease2: for(i=0;i {if(stremp(name,L->elem[i].name)==O) {printf(”请输入新学号”); scanf("%16s",number); strcpy(L->elem[i].number,number); a=1;}} if(a==0) printf("对不起你要改的名字不存在\n”);break; case3: for(i=0;i {if(strcmp(name,L->elem[i].name)==O) {printf("请输入新性别"); scanf("%16s",sex); strcpy(L->elem[i].sex,sex); a=1;}} if(a==0) printf("对不起你要改的名字不存在\n”);break; case4: for(i=0;i {if(strcmp(name,L->elem[i].name)==O) {printf("请输入新成绩"); scanf("%d",score); L->elem[i].score=score; a=1;}} if(a==O) break;} printf("对不起你要改的名字不存在\n”); 3.7退出学生信息管理系统 voidtuichu(sqlist*L) {if(! L->elem) free(L->elem); printf("\n\n再见,欢迎下次使用"); exit(-2);} 第四章总体设计 4.1设计概述 根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。 把这些模块结合起来组成一个整体。 逐一实现各个功能。 4.2系统总流程图及功能模块划分 经过对系统的需求分析,学生信息管理系统主要划分为三个部分: 学生信息查询,学生信息管理,学生成绩录入三个功能模块。 如图4.2系统的总体结构。 图4.2系统的总体结构 4.2.1 学生信息查询模块 学生信息查询: 学生可以根据学号、姓名、专业进行查询。 如图322学生 信息查询模块结构。 图421学生信息管理模块结构 4.2.2学生信息查询模块 4.2.2 学生信息查询: 学生可以根据学号、姓名、专业进行查询。 如图学生信息查询模块结构。 图4.2.2学生信息管理模块结构第5章系统测试 第五章系统测试 1•在调试过程中出现了很多次的程序错误,警告和不能运行。 在很多次的调试和重新改写之后,才可以用。 2.VisualC++确实是一门需要极其细心和耐心的课程,尤其在程序设计的过程中不可有一丝的马虎大意,否则将会花很大力气去改正。 3.调试过程中最常见的便是代码输入错误,如字母大小写、顺序颠倒、符号的半/全角使用等一些问题,都是在调试过程中逐一改正的。 5.1实验结果 -P|xl 1■初始化 VD: \SSXT\Debu£\xTX.exe* 学生信息管理系统 2.输入 3插入 "C: \DociiMentsand.Settii&csXstud\文本文档.exc 104215ms王舒初妬化龙毕I I-盘择 暑领入要播入的同学的信息’ 1842157126姓<15> 程别甥出女: F〉 n 咸绩 性别甥: H女: F>虑绩 M9H n92 F9S n? 5 鈿△劉菱几个位置,电? 否丫茕输M<¥of2N愛祚矗息如下;学号姓名"5)1»421&? 103何业耳 1A42157104孔畚磊 1042157119主辭 1H4215712M昊
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 学生 成绩管理系统 设计 实现