顺序表的学生成绩管理系统设计与实现_第1页
顺序表的学生成绩管理系统设计与实现_第2页
顺序表的学生成绩管理系统设计与实现_第3页
顺序表的学生成绩管理系统设计与实现_第4页
顺序表的学生成绩管理系统设计与实现_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长春建筑学院《数据结构》课程设计(论文)顺序表的学生成绩管理系统设计与实现Ordertableofstudentachievementmanagementsystemdesignandimplementation年级:学号:姓名:专业指导老师:二零一三年十二月-1-绪论引言:

为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的学生和管理员方便去管理和查询学生信息,如再要进行查询,就得在众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息,而管理员也方便去管理每学期的学生的成绩信息。建立一个学生信息管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。。1.1需求分析学生管理系统功能的信息量大,数据安全性和保密性要求最高。本功能实现对专业信息、学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。系统管理员可以浏览、查询、学生的基本信息,能添加、删除和修改学生信息,这部分功能应该由系统管理员执行,但是,删除某条专业基本信息记录时,应实现对该专业的相关信息也级联删除。并且还应具有查询,并打印输出的功能1.2实验目的掌握顺序表的建立。掌握顺序表的基本操作。掌握顺序查找的基本算法1.3实验内容利用顺序表实现学生成绩管理系统,具体功能:输入、输出、插入、除、查找、修改、退出,并能在屏幕上输出操作前后的结果。第2章系统总体设计2.1基本要求1.硬件:微机和打印机一台各2.软件:VisualC++windows72.2算法设计思想分析程序的功能要求,划分程序功能模块画出系统流程代码的编写,定义数据结构和各个功能子函数程序的功能调试2.3设计要求写出系统需求分析,并建模。编程实现,界面友好。输出操作前后的结果。提供测试报告第三章系统详细设计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=0;L->listsize=List_INIT_SPACE;printf("有几位同学:\n");scanf("%d",&n);for(i=0;i<n;i++){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;}else exit(OVERFLOW);}printf("请输入第%d名同学的信息:\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<L->length;i++)printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->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",);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到第%d个位置上!\n请重新输入要插入的位置:",L->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]=[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<L->length;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<L->length;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<L->length;j++) if(!strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数 {for(;j<L->length;j++) L->elem[j]=L->elem[j+1]; L->length--; return1;} return0;} else {printf("请输入姓名:"); scanf("%s",i); for(j=0;j<L->length;j++) if(!strcmp(i,L->elem[j].name))//用数组函数 {for(;j<L->length;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<L->length;i++)printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score);}3.6修改学生信息voidreviselist(sqlist*L){inti,x,a=0;charname[16];charsex[16];charnumber[16];intscore; printf("请选择你要改的同学的姓名"); scanf("%16s",name); printf("请选择你要改的同学的信息\n"); printf("1.修改学生的姓名\n"); printf("2.修改学生的学号\n"); printf("3.修改学生的性别\n"); printf("4.修改学生的成绩\n"); scanf("%d",&x); switch(x) {case1: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("请输入新名字"); scanf("%16s",name); strcpy(L->elem[i].name,name); a=1;}}if(a==0) printf("对不起你要改的名字不存在\n");break; case2: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("请输入新学号"); scanf("%16s",number); strcpy(L->elem[i].number,number); a=1;}}if(a==0) printf("对不起你要改的名字不存在\n");break; case3:for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("请输入新性别"); scanf("%16s",sex); strcpy(L->elem[i].sex,sex); a=1;}} if(a==0) printf("对不起你要改的名字不存在\n");break;case4: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("请输入新成绩"); scanf("%d",score); L->elem[i].score=score; a=1;}} if(a==0) printf("对不起你要改的名字不存在\n");break;}3.7退出学生信息管理系统voidtuichu(sqlist*L){if(!L->elem) free(L->elem); printf("\n\n再见,欢迎下次使用"); exit(-2);}第四章总体设计4.1设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能。4.2系统总流程图及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图4.2系统的总体结构。主函数开始根据printf函数输出的提示信息选择相关操作主函数开始根据printf函数输出的提示信息选择相关操作根据while语句选择0~6相应的数字Switch语句实现的具体操作5.输出学生信息4.删除学生信息6.修改学生信息0.退出学生信息系统3.查找学生信息2添加学生信息1.创建学生信息并初始化根据相关调用函数输出相应学生信息程序结束图4.2系统的总体结构4.2.1学生信息查询模块学生信息查询:学生可以根据学号、姓名、专业进行查询。如图3.2.2学生信息查询模块结构。

学生信息管理系统学生信息查询学生信息管理系统学生信息查询学生信息管理学生信息录用图4.2.1学生信息管理模块结构4.2.2学生信息查询模块学生信息查询:学生可以根据学号、姓名、专业进行查询。如图4.2.2学生信息查询学生信息查询学号查询姓名查询图4.2.2

学生信息管理模块结构第5章系统测试第五章系统测试1.在调试过程中出现了很多次的程序错误,警告和不能运行。在很多次的调试和重新改写之后,才可以用。

2.Visual

C++确实是一门需要极其细心和耐心的课程,尤其在程序设计的过程中不可有一丝的马虎大意,否则将会花很大力气去改正。3.调试过程中最常见的便是代码输入错误,如字母大小写、顺序颠倒、符号的半/全角使用等一些问题,都是在调试过程中逐一改正的。5.1实验结果1.初始化2.输入3插入4查找5删除6修改7退出实验总结在程序设计方面,逐渐感觉到模块化设计的重要性。在程序设计时,应该分析出功能块,然后对其细节中的共性和特性作分析。在算法上使得其结果精简、完整,达到模块化,在编程时,思考方式就会集中在结构的逻辑上而非细节的问题上。这样可以使得程序更加严密可靠。而这样的技能是要在每次的程序设计及编程中慢慢积累的。这次的设计,让我大大地感觉到,对于程序设计中,对语言再熟悉也比不过在设计中算法和结构分析的真知灼见。当然,成功的程序设计是要建立在熟悉语言的基础之上的。平时语言的基本功要扎实。而每一次程序设计的经营能大大地增加对语言的熟悉和感知。程序设计的技能来自多方面,每一次的亲自实践、思考揣摩、刨根问底就会让自己更加清楚所欠缺的是什么。所以,现在觉得在设计实践中作为参考的书册阅读和研究远远比过单纯的阅读,因为它是在最紧迫的时间上填补自己最紧迫的不足。收获与心得通过这次程序设计,增加了我们学习软件的兴趣,加强了小组成员之间的协作能力。这次程序设计由老师提供课题,参考范例程序,经过自己的改写,实现程序设计要求。一个模块一个模块去做,在实际操作过程中会有一些错误,我们要自己动手去改,这样不光能学到知识还能有一些体会。在具体操作中,不光能对这学期所学的知识得到巩固,还能发现自己的不足之处,在以后操作中能更加注意。通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题与解决问题的能力,提高了实际操作水平致谢因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,

数据结构程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感.我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。参考文献[1]

李丽娟

.

C语言程序设计教程(第二版).

北京:人民邮电出版社

2009年

[2]

刁成嘉

.

C语言程序设计论文

[D].北京:清华大学出版社

2004年[3]

杨文军,杨柳

.

C语言程序设计教程[M].

北京:清华大学出版社

2010年

[4]

周启海

.

C语言程序设计报告[R].北京:中国水利工程出版社

2005年

[5]

谭浩强

.

C程序设计(第三版)[M].北京:清华大学出版社

2005年物业安保培训方案为规范保安工作,使保安工作系统化/规范化,最终使保安具备满足工作需要的知识和技能,特制定本教学教材大纲。一、课程设置及内容全部课程分为专业理论知识和技能训练两大科目。其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。二.培训的及要求培训目的1)保安人员培训应以保安理论知识、消防知识、法律常识教学为主,在教学过程中,应要求学员全面熟知保安理论知识及消防专业知识,在工作中的操作与运用,并基本掌握现场保护及处理知识2)职业道德课程的教学应根据不同的岗位元而予以不同的内容,使保安在各自不同的工作岗位上都能养成具有本职业特点的良好职业道德和行为规范)法律常识教学是理论课的主要内容之一,要求所有保安都应熟知国家有关法律、法规,成为懂法、知法、守法的公民,运用法律这一有力武器与违法犯罪分子作斗争。工作入口门卫守护,定点守卫及区域巡逻为主要内容,在日常管理和发生突发事件时能够运用所学的技能保护公司财产以及自身安全。2、培训要求1)保安理论培训通过培训使保安熟知保安工作性质、地位、任务、及工作职责权限,同时全面掌握保安专业知识以及在具体工作中应注意的事项及一般情况处置的原则和方法。2)消防知识及消防器材的使用通过培训使保安熟知掌握消防工作的方针任务和意义,熟知各种防火的措施和消防器材设施的操作及使用方法,做到防患于未燃,保护公司财产和员工生命财产的安全。3)法律常识及职业道德教育

温馨提示

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

评论

0/150

提交评论