版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽新华学院数据结构课程设计设计题目:学生信息管理系统(顺序)小组成员姓名:陈家东张道奎朱慧敏王莹张永明小组成员学号:1032104103/55/62/41/60专业班级:10软件技术(1)班指导教师:李红梅安徽新华学院信息工程学院日期:数据结构课程设计任务及成绩院系:信息工程学院教研室:软件教研室成员姓名承担分工任务陈家东算法设计、文档编排张道奎流程图、算法设计朱慧敏算法修改、截图王莹总结、文档编排张永明算法修改、总结课程设计任务概述课程设计任务是为了实现学生信息的相关操作,方面 用户快速得到学生的各种信息,并且能进行信息的更新、 插入、删除等操作。课程设计的主要目的:熟练利用数 据结构各种
2、算法思想设计程序;掌握 C语言基本语法; 通过课程设计,加深对数据结构课程所学内容的进一 步理解和巩固;加深对结构化课程设计思想的理解,并设 计合理的模块化结构;提高程序开发功能,能运用合理的 控制流程编写清晰高效的程序;培养分析问题、解决问题 的能力。在课程设计中,我们充分发挥小组优势完成课程设计, 同时也体会到小组合作的重要性与必要性。成绩成绩:指导教师签字:年月日课程设计要求:1 第一页是封面,第二页是成绩评定页,第三页是目录,后面是 正文。2 正文包括:实验目的、实验内容、实验基本要求(软、硬件) 、 算法设计思想、算法的流程图、算法源代码、运行结果、收获 及体会。3 正文要有页眉和页
3、脚,其中页眉的格式为课程设计的题目,页 脚的格式为“共 N 页,第 X 页”。页码要求从正文从第一页开 始,即:封面、成绩评定页和目录页不能有页眉和页脚。4 要求全部用 A4 纸打印,每组装订成册在课程设计结束后 3 日内上交指导老师处目录一、实验目的 1二、实验内容 1三、基本要求 1四、算法设计思想 1五、算法流程图 1六、算法源代码 6七、运行结果 22八、收获和体会 2525九、致谢1. 实验目的:通过制作学生信息管理系统(1) 基本掌握面向过程程序设计的的基本思路和方法;(2) 达到熟练掌握C语言的基本知识和技能;(3) 能够利用所学的基本知识和技能,解决简单的程序设计问题。2. 实
4、验内容:输入一个班学生的学号,姓名,性别,成绩。编程插入学生信 息,设计查找每个学生的信息,删除学生信息,输出学生信息,修改 学生信息,报表和显示学生信息,及退出学生信息管理系统。3. 基本要求:(1) 硬件:微机,打印机各一台(2) 软件:Visual C+,windows74. 算法设计思想(1) .分析程序的功能要求,划分程序功能模块。(2) .画出系统流程图。(3) .代码的编写。定义数据结构和各个功能子函数。(4) .程序的功能调试。5. 算法的流程图Ma in 主函数开始程序结束6算法源代码#include<stdio.h> #include<stdlib.h&g
5、t; #include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 10#define List_INIT_SPACE 10#define List_INC_SPACE 1typedef structchar number10;char name10;char sex10;int score;Elemtype;typedef structElemtype *elem;int length;int listsize;sqlist;/*1 创建空顺序表并初始化 */void creatLi
6、st(sqlist *L)int i=0,n;Elemtype *newbase;L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype)5if(!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=(El
7、emtype*)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->elemL->length.number);printf("姓名(15
8、)n");scanf("%16s",L->elemL->);printf("性别(男:M 女:F)n");scanf("%16s",L->elemL->length.sex);printf(" 成绩 n");scanf("%10d",&L->elemL->length.score);L->length+;printf("%d 名学生信息如下 :n",L->length);printf(&q
9、uot;学号(15)姓名(15)性别(男:M女:F)成绩n");for(i=0;i<L->length;i+)printf("%-16s%-16s%-16s%-10dn",L->elemi.number,L->elemi.n ame,L->elemi.sex,L->elemi.score);/*2 向顺序表中插入元素 */void insertlist(sqlist*L)int i,j,k;char sign='y'Elemtype *newbase;Elemtype newelem;while(sign!=
10、39;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;else exit(OVERFLOW);printf(" 请输入要插入的同学的信息: n");printf(" 学号 (15)n");scanf("%16s",
11、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>
12、;L->length+1)printf("不能插入到第%d个位置!n只能插入第1到第%d个位置上!n请重新输入要插入的位置:"丄->length+1);scanf("%d",&i);L->length+;for(j=L->length-1;j>i-2;j-)for(k=0;k<16;k+)L->k=L->k;L->elemj.numberk=L->elemj-1.numberk;L->elemj.sexk=L->elemj-1.se
13、xk;L->elemj.score=L->elemj-1.score;j+;for(k=0;k<16;k+)L->k=k;L->elemj.numberk=newelem.numberk;L->elemj.sexk=newelem.sexk;L->elemj.score=newelem.score;printf(" 是否还要输入? (Y or N)");getchar();scanf("%c",&sign);if(sign='n'|sign=
14、39;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%-10dn",L->elemi.number,L->elemi.n ame,L->elemi.sex,L->elemi.score);/*3 查找学生信息 */ int findlist(sqlist *L)in
15、t j;char i16;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->elemj.number)/i=L->elemj.number 用数 组函数return j+1;return 0;elseprintf(" 请输入姓名: ");scanf("%s&
16、quot;,i);for(j=0;j<L->length;j+)if(!strcmp(i,L->)/ 用数组函数return j+1;return 0;/*4 删除学生信息 */int delnode(sqlist *L)int j;char i10;printf("1.按学号删除n2按姓名删除n请选择:");scanf("%d",&j);if(j=1)printf(" 请输入学号: ");scanf("%s",i);for(j=0;j<L->length;
17、j+)if(!strcmp(i,L->elemj.number)/i=L->elemj.number 用数组函数for(;j<L->length;j+)L->elemj=L->elemj+1;L->length-;return 1;return 0;elseprintf(" 请输入姓名: ");scanf("%s",i);for(j=0;j<L->length;j+)if(!strcmp(i,L->)/ 用数组函数for(;j<L->length;j+)L->
18、;elemj=L->elemj+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;i<L->length;i+)printf("%-16s%-16s%-16s%-10dn",L->elemi.number,
19、L->elemi.n ame,L->elemi.sex,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. 修
20、改学生的学号 n");printf("3. 修改学生的性别 n");printf("4. 修改学生的成绩 n"); scanf("%d",&x);switch(x)case 1:for(i=0;i<L->length;i+)if(strcmp(name,L->)=0)printf(”请输入新名字");scanf("%16s",name);strcpy(L->,name);a=1;if(a=0)printf(" 对不
21、起你要改的名字不存在 n");break;case 2:for(i=0;i<L->length;i+)if(strcmp(name,L->)=0) printf("请输入新学号");scanf("%16s",number);strcpy(L->elemi.number,number);a=1;if(a=0)printf(" 对不起你要改的名字不存在 n");break;case 3:for(i=0;i<L->length;i+) if(strcmp(name,L->
22、;)=0)printf(”请输入新性别");scanf("%16s",sex);strcpy(L->elemi.sex,sex);a=1;if(a=0)printf(" 对不起你要改的名字不存在 n"); break;case 4:for(i=0;i<L->length;i+)if(strcmp(name,L->)=0) printf(" 请输入新成绩 ");scanf("%d",score);L->elemi.score=score;
23、a=1;if(a=0)printf(" 对不起你要改的名字不存在 n"); break;/*0 退出学生信息管理系统 */void tuichu(sqlist *L)if(!L->elem)free(L->elem);printf("nn 再见 ,欢迎下次使用 ");exit(-2);void main()sqlist a,*L=&a;int i;*n");printf("* 学 生 信 息 管 理 系 统 *n");printf("*=n");printf("*1. 创建学
24、生信息库并初始化 *n");printf("*2. 添加学生信息 *n");printf("*3. 查找学生信息 *n");printf("*4. 删除学生信息 *n");printf("* 5. 输出学生信息 *n");printf("*6. 修改学生信息 *n");printf("* 0. 退出学生信息管理系统 *n");printf(H*H);while(1)printf("nn 请选择 (0-6):");scanf("%d&qu
25、ot;,&i);while(i<0|i>6)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(&q
26、uot;学号姓名 性别成绩n");printf("%-10s%-10s%-10s%-dn",L->elemi.number,L->elemi.nam e,L->elemi.sex,L->elemi.score);break;case 4: i=delnode(L); if(!i)printf(" 没有该学生 n"); else printf(" 该学生已删除 "); break;case 5:printlist(L);break;case 6:reviselist(L);break;case 0:tu
27、ichu(L);7运行结果(1)初始化半土信辰,篙王甲萍编M:化姑初库口1:息息占3思S:一 涪 inn-fBfsfn一 ,Tr庄庄4庄庄一“ 建期茂茁的岀一 甸窖删倉返一场一M1弊启1 2(2)信息录入F n(3)信息插入L- S 6 8 S ? 7 h 8 9 9 9 9 9女<0冥" 择入* 迭做32:馅和>u4MnjiL.aEt(4)信息查询fin性別味裁 东话选择怕-吕-E=£lD ± KSXTAD eb<ug 砂瓦柱半二U童选择.1(5)删除信息亡亠-b =sitrii)iKfaiiKj青诜择<0-6>s5 洋甞蚌信愿如K石腓丄号删 5号.扫,胃 毕葦笙 选莪羸于I55I fflnzimi 血北33104142032104JL60>5奎敏明 名竈:H雀7k性弓収翌沖女皿)成绩HHHH沁FF97M97(6)修改学生信息'性孙男冷女问成绩请輸入新学弓丄砌也«4<«1gm °D; VXSXTDiebiiExxx ese-名番囂8 7 79 9 9*窑息蚪信呼的?同同專豊 5专唆勺勺勺勺 y 3k R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业管理-报账管理制度
- 江苏省常熟市第三中学2025-2026学年初三第二学期期末检测试题含解析
- 福建省漳州市云霄县达标名校2026届初三3月学生学业能力调研考试物理试题含解析
- 四川省广安市邻水县2026年初三下学期期末学业水平调研物理试题试卷含解析
- 2026年长春市二道区达标名校中考模拟最后十套:物理试题(四)考前提分仿真卷含解析
- 广州市番禺区重点名校2025-2026学年初三2月命制数学试题含解析
- 江西省莲花县2025-2026学年初三第二学期期中练习(一模)物理试题试卷含解析
- 2026年天津市大港油田重点达标名校初三4月模拟训练物理试题含解析
- 肾结石的非手术治疗护理
- 2026年及未来5年市场数据中国基金管理公司行业市场发展现状及投资战略咨询报告
- 2025年院感试题及参考答案
- 药厂卫生管理知识培训课件
- 2025国家义务教育质量监测小学德育测评估考试试题库及答案
- 2026届江苏省南京市鼓楼区重点达标名校中考联考语文试题含解析
- 肠梗阻护理个案病例汇报
- 高血压糖尿病的护理问题和措施
- 施工项目管理制度
- 公路处安全培训课件
- BIM技术在城市绿化项目中的应用
- 隧道突水突泥风险评估与防控技术
- 建筑设计策略分享
评论
0/150
提交评论