ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:175.51KB ,
资源ID:27221853      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27221853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生信息管理系统顺序表实验.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生信息管理系统顺序表实验.docx

1、学生信息管理系统顺序表实验 数 据 结 构 课 程 设 计设 计 题 目: 学生信息管理系统(顺序) 姓名及学号 : 专 业 班 级: 09计算机科学与技术 指 导 教 师: 完 成 时 间: 信息工程学 院 计算机科学 系课题名称学生信息管理系统(顺序表)院 系信息工程学院年级专业10计科特色学 号姓 名成 绩1042157103何业祥1042157104孔磊磊10421571019王 舒课题设计目的与设计意义1、课题设计目的:课程设计任务是为了实现学生信息的相关操作,方面用户快速得到学生的各种信息,并且能进行信息的更新、插入、删除等操作。课程设计的主要目的:熟练利用数据结构各种算法思想设计

2、程序;掌握C语言基本语法;通过课程设计,加深对数据结构课程所学内容的进一步理解和巩固;加深对结构化课程设计思想的理解,并设计合理的模块化结构;提高程序开发功能,能运用合理的控制流程编写清晰高效的程序;培养分析问题、解决问题的能力。在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到小组合作的重要性与必要性。2、课题设计意义:指导教师:年 月 日 安徽新华学院课程设计成绩评定表(本科)一、实验目的 1二、实验内容 1三、基本要求 1四、算法设计思想 1五、算法流程图 1六、算法源代码 6七、运行结果 22八、收获和体会 25九、致谢 251. 实验目的:通过制作学生信息管理系统 (1)基

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

4、法的流程图6. 算法源代码:#include#include#include#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 10#define List_INIT_SPACE 10#define List_INC_SPACE 1typedef struct char number15; char name10; char sex10; int score;Elemtype;typedef struct Elemtype *elem; int length; int listsize;sqlist;/*1创建空顺序表并初

5、始化*/void creatList(sqlist *L) int i=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;ilength=L-listsize) newbase=(Elemtype*)realloc(L-elem,(List_INIT_SPACE+Li

6、st_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)n); scanf(%16s,L-elemL-length.name); printf(性别(男:M女:F)n); scanf(%16s,L-elemL-length.sex); printf(成

7、绩n); scanf(%10d,&L-elemL-length.score); L-length+; printf(%d名学生信息如下:n,L-length); printf(学号(15) 姓名(15) 性别(男:M女:F) 成绩n); for(i=0;ilength;i+) printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-elemi.name,L-elemi.sex,L-elemi.score);/*2向顺序表中插入元素*/ void insertlist(sqlist*L) int i,j,k; char sign=y; Elemtype *ne

8、wbase; Elemtype newelem; 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; else exit(OVERFLOW); printf(请输入要插入的同学的信息:n); printf(学号(15)n); scanf(%16s,newelem.number); print

9、f(姓名(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(iL-length+1) printf(不能插入到第%d个位置!n只能插入第1到第%d个位置上!n请重新输入要插入的位置:,L-length+1); scanf(%d,&i); L-length+; for(j=L-length-1;ji-2;j-) for(k=0;k

10、elemj.namek=L-elemj-1.namek; L-elemj.numberk=L-elemj-1.numberk; L-elemj.sexk=L-elemj-1.sexk; L-elemj.score=L-elemj-1.score; j+; for(k=0;kelemj.namek=newelem.namek; L-elemj.numberk=newelem.numberk; L-elemj.sexk=newelem.sexk; L-elemj.score=newelem.score; printf(是否还要输入?(Y or N); getchar(); scanf(%c,&si

11、gn); if(sign=n|sign=N) sign=n; printf(%d名学生信息如下:n,L-length); printf(学号(15) 姓名(15) 性别(男:M女:F) 成绩n); for(i=0;ilength;i+) printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-elemi.name,L-elemi.sex,L-elemi.score);/*3查找学生信息*/int findlist(sqlist *L) int j;char i16; printf(1.按学号查找n2.按姓名查找n请选择:); scanf(%d,&j); if

12、(j=1) printf(请输入学号:); scanf(%s,i); for(j=0;jlength;j+) if(!strcmp(i,L-elemj.number)/i=L-elemj.number用数组函数 return j+1; return 0; else printf(请输入姓名:); scanf(%s,i); for(j=0;jlength;j+) if(!strcmp(i,L-elemj.name)/用数组函数 return j+1; return 0; /*4删除学生信息*/int delnode(sqlist *L) int j;char i10; printf(1.按学号删

13、除n2.按姓名删除n请选择:); scanf(%d,&j); if(j=1) printf(请输入学号:); scanf(%s,i); for(j=0;jlength;j+) if(!strcmp(i,L-elemj.number)/i=L-elemj.number用数组函数 for(;jlength;j+) L-elemj=L-elemj+1; L-length-; return 1; return 0; else printf(请输入姓名:); scanf(%s,i); for(j=0;jlength;j+) if(!strcmp(i,L-elemj.name)/用数组函数 for(;jl

14、ength;j+) L-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;ilength;i+) printf(%-16s%-16s%-16s%-10dn,L-elemi.number,L-elemi.name,L-elemi.sex,L-elemi.score);/*6修改功能*/

15、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+) if(strcmp(name

16、,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;ilength;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; case 3:

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

18、); break;/*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);

19、printf(*6.修改学生信息 *n); printf(* 0.退出学生信息管理系统 *n); printf(*=n); printf(*n); while(1) printf(nn请选择(0-6):); scanf(%d,&i); while(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); els

20、e i-; printf(要查找的学生:n); printf(学号 姓名 性别 成绩n); printf(%-10s%-10s%-10s%-dn,L-elemi.number,L-elemi.name,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:tuichu(L); 7.运行结果:(1)初始化(2)信息

21、录入(3)信息插入(4)信息查询(5)删除信息(6)修改学生信息(7)退出系统8收获及体会: 通过这次实训,增加了我们学习软件技术的兴趣,加强了小组成员之间的协作能力。虽然对软件技术的具体内容还不是很了解,但通过对C语言这门课程的学习,已发现程序设计的乐趣。在对C语言学习的过程中,我们也学到了许多关于计算机应用基础方面的知识,对计算机的机体也有了一个大体的了解。 这次实训由老师提供课题,参照范例程序,经过自己的改写,实现要求。先做简单的输出,一步步的再做其它图案,在实际操作过程中所犯的一些错误,通过学习还会有意外的收获,感觉实训真的很有意思。在具体操作中,对这学期所学C语言的理论知识得到巩固,

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1