收藏 分销(赏)

学生信息管理系统(顺序)实验8.doc

上传人:w****g 文档编号:2556965 上传时间:2024-05-31 格式:DOC 页数:31 大小:264.04KB
下载 相关 举报
学生信息管理系统(顺序)实验8.doc_第1页
第1页 / 共31页
学生信息管理系统(顺序)实验8.doc_第2页
第2页 / 共31页
学生信息管理系统(顺序)实验8.doc_第3页
第3页 / 共31页
学生信息管理系统(顺序)实验8.doc_第4页
第4页 / 共31页
学生信息管理系统(顺序)实验8.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、学生信息管理系统(顺序)实验8 作者: 日期:2 个人收集整理 勿做商业用途安徽新华学院数据结构课程设计设 计 题 目: 学生信息管理系统(顺序) 小组成员姓名: 陈家东 张道奎 朱慧敏 王莹 张永明 小组成员学号: 10321041 03/55/62/41/60 专 业 班 级: 10软件技术(1)班 指 导 教 师: 李红梅 安徽新华学院信息工程学院日期: 年 月 日数据结构课程设计任务及成绩成员姓名承担分工任务陈家东算法设计、文档编排张道奎流程图、算法设计朱慧敏算法修改、截图王莹总结、文档编排张永明算法修改、总结课程设计任务概述课程设计任务是为了实现学生信息的相关操作,方面用户快速得到学

2、生的各种信息,并且能进行信息的更新、插入、删除等操作。课程设计的主要目的:熟练利用数据结构各种算法思想设计程序;掌握C语言基本语法;通过课程设计,加深对数据结构课程所学内容的进一步理解和巩固;加深对结构化课程设计思想的理解,并设计合理的模块化结构;提高程序开发功能,能运用合理的控制流程编写清晰高效的程序;培养分析问题、解决问题的能力。在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到小组合作的重要性与必要性.成绩成 绩: 指导教师签字: 年 月 日院系:信息工程学院 教研室:软件教研室课程设计要求:1 第一页是封面,第二页是成绩评定页,第三页是目录,后面是正文。2 正文包括:实验目的

3、、实验内容、实验基本要求(软、硬件)、算法设计思想、算法的流程图、算法源代码、运行结果、收获及体会.3 正文要有页眉和页脚,其中页眉的格式为课程设计的题目,页脚的格式为“共N页,第X页”。页码要求从正文从第一页开始,即:封面、成绩评定页和目录页不能有页眉和页脚。4 要求全部用A4纸打印,每组装订成册在课程设计结束后3日内上交指导老师处。 目录一、实验目的 1二、实验内容 1三、基本要求 1四、算法设计思想 1五、算法流程图 1六、算法源代码 6七、运行结果 22八、收获和体会 25九、致谢 251 实验目的:通过制作学生信息管理系统 (1) 基本掌握面向过程程序设计的的基本思路和方法;(2)

4、达到熟练掌握C语言的基本知识和技能;(3) 能够利用所学的基本知识和技能,解决简单的程序设计问题。2实验内容: 输入一个班学生的学号,姓名,性别,成绩。编程插入学生信息,设计查找每个学生的信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统.3基本要求:(1)硬件:微机,打印机各一台(2)软件:Visual C+,windows74。 算法设计思想(1).分析程序的功能要求,划分程序功能模块。 (2). 画出系统流程图。 (3)。 代码的编写。定义数据结构和各个功能子函数. (4)。 程序的功能调试。 5 算法的流程图根据printf函数输出的提示信息选择

5、相关操作3.查找学生信息4.删除学生信息5.输出学生信息6.修改学生信息0.退出学生信息管理系统1.创建学上信息表并初始化Main 主函数开始根据while语句选择06相应数字Switch语句实现具体操作2.添加学生信息根据相关调用函数输出相应学生信息程序结束6算法源代码#includeincludestdlib。h#includestring.h#define OK 1define ERROR 0#define OVERFLOW 2define MAXSIZE 10#define List_INIT_SPACE 10define List_INC_SPACE 1typedef structc

6、har number10;char name10;char sex10;int score;Elemtype;typedef structElemtype elem;int length;int listsize;sqlist;/1创建空顺序表并初始化/void creatList(sqlist *L)int i=0,n;Elemtype *newbase;Lelem=(Elemtype*)malloc(List_INIT_SPACE(sizeof(Elemtype);if(!L-elem) exit(OVERFLOW);L-length=0;Llistsize=List_INIT_SPACE

7、;printf(有几位同学:n);scanf(”d”,n);for(i=0;in;i+)if(Llength=Llistsize)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”,LelemLlength。number);p

8、rintf(”姓名(15)n”);scanf(”16s”,LelemL-length。name);printf(性别(男:M女:F)n);scanf(”16s,L-elemLlength.sex);printf(”成绩n”);scanf(”10d,&L-elemLlength.score);L-length+;printf(d名学生信息如下:n”,Llength);printf(”学号(15)姓名(15)性别(男:M女:F) 成绩n);for(i=0;iL-length;i+)printf(”-16s%-16s%16s-10dn”,Lelemi.number,Lelemi.name,Lelem

9、i.sex,L-elemi.score);/*2向顺序表中插入元素*/void insertlist(sqlist*L)int i,j,k;char sign=y;Elemtype newbase;Elemtype newelem;while(sign!=n)if(L-length=Llistsize)newbase=(Elemtype*)realloc(Lelem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype);if(newbase) Lelem=newbase;Llistsize+=List_INC_SPACE;else exit(OVE

10、RFLOW);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(i1|iL-length+1)printf(”不能插入到第d个位置!n只能插入第1到第d个位置上!n请重新输入要插

11、入的位置:,Llength+1);scanf(”%d”,&i);L-length+;for(j=L-length1;ji2;j)for(k=0;k16;k+)L-elemj。namek=L-elemj1.namek;Lelemj.numberk=Lelemj-1.numberk;L-elemj。sexk=Lelemj-1.sexk;Lelemj。score=L-elemj-1.score;j+;for(k=0;k16;k+)Lelemj。namek=newelem。namek;L-elemj。numberk=newelem。numberk;Lelemj.sexk=newelem.sexk;L-

12、elemj.score=newelem.score;printf(”是否还要输入?(Y or N)”);getchar();scanf(%c,sign);if(sign=n|sign=N)sign=n;printf(”%d名学生信息如下:n,Llength);printf(”学号(15)姓名(15)性别(男:M女:F) 成绩n”);for(i=0;ilength;i+)printf(”%16s-16s-16s-10dn”,L-elemi.number,Lelemi。name,L-elemi。sex,Lelemi。score);/*3查找学生信息/int findlist(sqlist L)in

13、t j;char i16;printf(”1.按学号查找n2.按姓名查找n请选择:);scanf(”%d,&j);if(j=1)printf(请输入学号:”);scanf(”s,i);for(j=0;jLlength;j+)if(!strcmp(i,Lelemj.number))/i=L-elemj.number用数组函数return j+1;return 0;elseprintf(”请输入姓名:”);scanf(%s,i);for(j=0;jL-length;j+)if(!strcmp(i,L-elemj.name)/用数组函数return j+1;return 0;/*4删除学生信息*/i

14、nt delnode(sqlist *L)int j;char i10;printf(”1。按学号删除n2。按姓名删除n请选择:”);scanf(d”,&j);if(j=1)printf(请输入学号:”);scanf(%s”,i);for(j=0;jL-length;j+)if(!strcmp(i,Lelemj。number)/i=Lelemj。number用数组函数for(;jLlength;j+)L-elemj=Lelemj+1;L-length-;return 1;return 0;elseprintf(”请输入姓名:”);scanf(%s”,i);for(j=0;jL-length;j

15、+)if(!strcmp(i,L-elemj。name)/用数组函数for(;jL-length;j+)L-elemj=Lelemj+1;/L-elemj以后的向前挪L-length-;return 1;return 0;/5输出学生信息*/void printlist(sqlist L)int i;printf(d名学生信息如下:n,L-length);printf(”学号(15)姓名(15)性别(男:M女:F) 成绩n);for(i=0;iLlength;i+)printf(%16s%-16s-16s-10dn”,Lelemi.number,L-elemi.name,L-elemi。sex

16、,L-elemi.score);/*6修改功能/void reviselist(sqlist L)int i,x,a=0;char name16;char sex16;char number16;int score;printf(请选择你要改的同学的姓名”);scanf(16s,name); printf(请选择你要改的同学的信息n”); printf(1。修改学生的姓名n);printf(2。修改学生的学号n”);printf(3.修改学生的性别n);printf(”4.修改学生的成绩n);scanf(”%d”,&x);switch(x)case 1:for(i=0;ilength;i+)i

17、f(strcmp(name,L-elemi。name)=0)printf(请输入新名字”);scanf(16s”,name);strcpy(L-elemi.name,name);a=1;if(a=0)printf(对不起你要改的名字不存在n”);break;case 2:for(i=0;iL-length;i+) if(strcmp(name,L-elemi。name)=0) printf(请输入新学号”);scanf(”16s”,number);strcpy(L-elemi.number,number);a=1; if(a=0)printf(对不起你要改的名字不存在n”);break;cas

18、e 3:for(i=0;iLlength;i+)if(strcmp(name,Lelemi.name)=0)printf(”请输入新性别);scanf(”%16s”,sex);strcpy(L-elemi.sex,sex);a=1;if(a=0)printf(对不起你要改的名字不存在n”);break;case 4:for(i=0;iL-length;i+)if(strcmp(name,L-elemi。name)=0)printf(请输入新成绩”);scanf(”%d,score);Lelemi.score=score;a=1;if(a=0)printf(”对不起你要改的名字不存在n”);br

19、eak;/0退出学生信息管理系统/void tuichu(sqlist L)if(!L-elem)free(L-elem);printf(nn再见,欢迎下次使用”);exit(2);void main()sqlist a,*L=&a;int i;printf(*n);printf(”* 学生信息管理系统 *n”); printf(*=n”);printf(*1。创建学生信息库并初始化 n); printf(*2。添加学生信息 *n”);printf(3.查找学生信息 n”); printf(*4.删除学生信息 n”); printf(* 5.输出学生信息 *n); printf(”6。修改学生

20、信息 n”); printf( 0。退出学生信息管理系统 *n); printf(”*);while(1)printf(”nn请选择(06):”);scanf(”%d”,i);while(i0|i6)printf(”只能选择0到6!请重新选择:);scanf(”d”,&i);switch(i)case 1:creatList(L);printf(初始化完毕!”);break;case 2:insertlist(L);break;case 3:i=findlist(L);if(!i)printf(”没有该学生n”);elsei-;printf(要查找的学生:n”);printf(学号 姓名 性别

21、 成绩n);printf(-10s-10s%10s%-dn”,Lelemi。number,L-elemi.name,Lelemi.sex,Lelemi.score);break;case 4:i=delnode(L);if(!i)printf(”没有该学生n);elseprintf(该学生已删除”);break;case 5:printlist(L);break;case 6:reviselist(L);break;case 0:tuichu(L);7 运行结果(1) 初始化(2) 信息录入(3) 信息插入(4) 信息查询(5) 删除信息(6) 修改学生信息(7) 退出系统8收获及体会 通过这

22、次实训,增加了我们学习软件技术的兴趣,加强了小组成员之间的协作能力。虽然对软件技术的具体内容还不是很了解,但通过对C语言这门课程的学习,已发现程序设计的乐趣.在对C语言学习的过程中,我们也学到了许多关于计算机应用基础方面的知识,对计算机的机体也有了一个大体的了解。 这次实训由老师提供课题,参照范例程序,经过自己的改写,实现要求.先做简单的输出,一步步的再做其它图案,在实际操作过程中所犯的一些错误,通过学习还会有意外的收获,感觉实训真的很有意思.在具体操作中,对这学期所学C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到了C语言具有的语句简洁

23、,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解之后。 通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,的寓意。 计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平. 致 谢本设计是在李红梅老师的悉心指导下完成的。通过我们的设计选题、资料查找,李老师修改等方面对我进行了悉心的指导和鼓励。值此设计完成之际,谨向指导老师李老师致以最衷心的感谢。通过我们组成员的努力做出了这个学生管理系统,当我们看到我们的劳动成果,无比的开心,在这几个星期中,我们认真的工作,参考了大量资料,努力克服遇到的困难.在这次课程设计中,我们一起谈论,我们一起研究,一起欢笑。通过这次的数据结构的课程设计,让我们更加加深了它的语句思想!让我从这次课程设计中获得了好多知识,获益匪浅!第 25 页 共25页

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服