版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目2.学生信息管理系统一、课程设计目的1. 数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构, 以及程序设计语言(c语言),自行实现一个较为完整的应用系统的设计与开发2 通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等 环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结 构在软件开发中的应用。3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能 力。学生信息管理系统:(1 )熟练掌握链表存储结构及其建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧二、课程设计内容建立学生信息管理系统,通过链表实现对学生信息的输入
2、,查找,删除,插 入和排序等操作。三、需求分析1 .每位学生的信息有:学号,姓名,性别,出生日期,E-mile,电话,c成 绩,数学成绩等,用链表对学生的信息进行存储。2. 全部数据可以只放在内存中;3. 系统能实现的操作和功能如下:a)输入学生信息:对不同学生分别输出下列信息:学号,姓名,性别,出生日期,E-mile , 电话,c成绩,数学成绩等。b)查找学生信息:根据学生的学号或姓名对学生的信息进行查找。c)删除学生信息:删除某个学生的所有信息。d)插入学生信息:将某个学生的信息插入到已经输入的信息中。e)显示学生信息:将所有学生的信息显示出来。f)排序:将所有学生按某个学科的成绩依次排序
3、。概要设计1系统结构图(功能模块图)2.功能模块说明 输入学生信息,creat()S数:建立单向链表,组织循环,将学生的信息依次录入。 :查找学生信息:a按学号查找,findl ()函数;b按姓名查找,find2 ()函数; 删除学生信息,del ()函数:建立指针,在链表中寻找要删除信息的学生的学号,找到后 p-> next=p-> next- > next,将其删除。 插入学生信息,insert ()函数;输入要插入的信息,建立指针,寻找要插入的节点。 显示学生信息,print ()函数;将以存在的学生信息输出 按某科成绩对学生进行排序” sort ()函数;五、详细设计
4、及运行结果输入:creat ()输入:开始main ()输入:32.fhid2()1.find 1()del ()输入:4insert ()输入:print ()输入:sort ()输入:0退出exit ()1.菜单:序Lkr:息息息息息尅 隹隹隹隹嫦>: 操生生生生生雾W WHAW<0 绘入找除入示宙岀择 淫迤:®瀝遢灌选1 2 3 4 5 6 0说Wp!=null学号姓名性别岀生日期E-nail电话c成绩数学成绩1nan1989- 3-21.xxxxxxxxxxxx9999学号姓名性别岀生日期E-nail电话c成绩数学成绩2nannan1999- 9- 9aaaaaG
5、163-conaaaaaa9898982. creat ()函数.*D: 文档VC6lyPro jectseeqDebugeeq. exe*请输入学号2姓名nan性别nan岀生日期1999-09-09E-nail电话aaaaaac成绩98数学成绩按回车键返回3. find ()函数.find2():3. del ()函数.2d序FF 白心息白心自心白舗 fIB信居言信用 擀竺一一r工雰刪=$XXHHX絮CU要 纪入找除入示C1-岀烽人 学Q:p:t3:l4:5fe:le:请请 1319>:除4. insert ()函数.5. print ()函数.序Lkr 息息息息息前 信信信信始 &g
6、t; 墾生生生生雾先名q名n wzHHHaww姓yw姓na 结入找除入示奇岀择 生聾删播显餐选号1号2 学bL:!2:l3:l4:5:l6:l0:注舉学岀生日期E-nail19893-岀生日期E-nail1999- 9- 9aaaaa(?163 .con电话 C成绩数学成绩xxxxxxxx 9999电话 C成绩数学成绩aaaaaa 9898按回车键返回6. sort ()函数. X:息息息息息护信信信信賭>: 电话 C成绩数学成绩xxxxxxxx 9999电话 C成绩数学成绩aaaaaa 9898操生生生生生聖名q名n >于O糸<0姓yw姓na 纪入找除入示cl岀择 竝聾删播
7、显餐诡号1号2 学1:|2:|3:|4:5:SK1舉学按回车键返回六、调试倩况,设计技巧及体会通过这次课程设计,我对这门课又有了一个新的理解,最大的喜悦不是写出 程序,而是从中学会了怎么去写,该如何去写,在老师的严格监督下,自己也养 成了独立思考的习惯,真的从中得到了很多好处,从思想到着手,所有都是程序 化的,必须踏踏实实的来。通过学生信息管理系统的设计,使我对链表有了更深的了解,也懂得了如何 用链表进行输入,插入,排序等操作,两个礼拜的实习很快就过去了,这一次真 的学到了很多东西,我也将会将自己所学到的东西用到自己以后的学习中去。七、参考文献C语言程序设计科学出版社数据结构(C语言描述)一清
8、华大学出版社数据结构(使用C语言)电子科技大学出版社八. 附录:源代码# include<stdio.h># include<string.h>#in clude<stdlib.h>#define N sizeof(struct stu) void clearscreen()厂清屏函数/ getchar();system("cls");struct date厂定义出生年月日的结构体*/int year;int mouth;int day;struct stu/*定义学生信息的结构体*/int number;char name30;char
9、 sex5;struct date birthday;char mail30;char phone30;int cscore.mscore;struct stu *next;厂输出函数/int print(struct stu *p)while(p!二NULL)厂如果P所指的结点不为空执行循坏*/printf("学号姓名性别 出生日期 E-mail电话C成绩数学成绩W);printf(" %2d%6s%6s%8d-%2d-%2d%lls%lls%6d%8dn",p->number,p->name,p-> sex,p-> birthday .
10、year,p->birthday.mouth,p->birthday.day,p->mail,p-> ph on e,p-> cscore,p->mscore);p=p->n ext;printf ("nn 按回车键返回nn");getchar();return 0;厂创建链表*/struct stu *creat() struct stu *p,*head;int i,k;printf("请输入学生的数:n");scanf("%d&k);p二head二(struct stu *)malloc(
11、N);printfC请输入学号F);scanf(,%d"/&p-> number);printf("姓名n");scanf("%s&p->name);printf("惕 in");scanf("%s&p->sex);printf("岀生日期 n");scanf(,%d-%d-%d,/&p-> birthday .year,&p->birthday.mouth,&p-> birthday, day); printf(&quo
12、t;E-mailn");scanf("%s&p->mail);printf("电话n");scanf("%s&p- > phone);printf("c 成绩n");scanf("%d &p- > cscore);printf("数学成绩n");scanf("%d &p- > mscore);if(k>l)for(i=l;i<k;i+) p->next= (struct stu *)malloc(N);p=p &
13、gt; next;printf("请输入学号n");scanf("%d&p-> number);printf("姓名n);scanfC%s;&p->name);printf("ft§On');scan f("%s&p->sex);printf(出生日期n");scanfC%cb%d-%d;&p-> birthday .year,&p->birthdaymouth&p> birthday, day);printf("
14、E-mailn");scanf("%s&p->mail);print"*电话rT);scanf("%s&p- > phone);printfCcMn");scanf("%d&p->cscore);printf("数学成绩 n");scanf("%d&p-> mscore);p->next=NULL;return head;/喳找链表*/struct stu *findl(struct stu *p) int number;if (p二二 NUL
15、L)printf("n提示:没有资料可以查询!n");return 0;printf("请输入要查找的学生学号:");scanf("%d",&number);while(p!二 NULL)if(p->nu mber=二 nu mber)return(p);break;elsep 二 p->n ext;return NULL;struct stu *find2(struct stu *p)char name30;if (p二二 NULL)printf("n提示:没有资料可以查询!n");retur
16、n 0;printf("请输入要查找的学生姓名:");scanf("%sname);while(p!二 NULL)if(strcmp(p->nam 巳 n ame)=0) return(p);elsep=p->next;return NULL;厂删除链表/int del(struct stu *h)int number;struct stu *p/pO;if(*h 二二 NULL)retun 0;printf("请输入要删除的学号n");scanf("%d&number);p0=*h;if(p0->nu mb
17、er= = number)*h=p0->next;free(pO);return 1;p=pO->next;while(p!二 NULL)if(p-> number 二二 number)pO->n ext=p->n ext;free(p);return 1;pO 二 p;p=p->next;printf("n按回车键返回n");getchar();return 0;厂插入链表*/int insert (struct stu *h)struct stu *p/pO;p=(struct stu *)malloc(N); printf(&quo
18、t;请输入要插入的学号n"); scanf(,%ld,/&p-> number); pO=*h;if(pO ->n umber= = p-> number)return 0;printf(姓名n);scanf("%s&p->name);printf("tt§ 叭nJ;scanfC%s;&p->sex);printf ("Hi 生日期n");scanf("%d%d%d"/&p->birthday.year/&p- > birthday.
19、mouthr&p- > birthday.day);printf("E-mailn");scanf("%s&p->mail);printf ("电话 n");scanf("%s&p-> phone);printfCc 成绩n");scanf("%d &p- > cscore);printfC数学成绩 n");scanf("%d :&p > mscore);p-> next=NULL;if(*h 二二 NULL)*h =
20、p;return 1;pO=*h;if(pO->n umber>p-> number)p->next=*h;*h = p;return 1;while(pO-> next! = NULL&&pO-> next->number<p-> nu mber) pO=pO->next;if(pO-> next 二二 N ULL)pO->n ext=p;return 1;p->next=pO->next;pO->next=p;pri ntf("nn 按回车键返回nn"); getc
21、har();return 1;厂排序*/struct stu* sort(struct stu *pO)struct stu *t,*p,*q,*乙if(pO 二二 NULL)printf("没有学生信息可排序!n");return 0;if(p0二二NULL)|(pO->next二二NULL)/*当节点不存在或者只有一个节点时*/return p0;t 二 p0;p=t->n ext;t- > next二NULL;厂将头节点孤立出来*/while(p)/牡始终指向头节点*/q = p- >n ext;if(p->cscore>t->
22、; cscore)厂用头节点的后一个节点与头节点进行比较*/p-> next二t;厂将分数大的放在前面六/t二p;小始终指向当前第一个节点*/elseZ=t;wh ile(z-> next&&z- > next- > cscore > = p-> cscore) z=z->next;p->next=z->next;z->n ext=p;p 二 q;pO 二 t;return pO;void main()struct stu *head/p;int a;int b;printf("*g 由 g 电学院学生管理
23、字统*pri ntf (”要进入系统请按任意键n");getchar();printf("*欢迎您!您已进入管理系统*printf("*卄学生成绩管理系统W);it*doclearscreen();printf("学生纪录操作:n"); printfC'l输入学生信息n"); printf("2:查找学生信息n"); printf("3:删除学生信息n"); printf("4:插入学生信息n"); printf("5:显示学生信息n"); printf("6按C语言成绩排序 n"); printfCO:退出系统W);printf("请选择(06):");scanf("%d",&b);switch(b)case l:head=creat();prin t(head);break;case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省衡水市2024-2025学年高三上学期10月学科素养检测物理(无答案)
- 2024年代理推广合作合同范本
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试生物试卷(含解析)
- 别墅基础知识培训
- 变频器技术培训
- 临床围手术期
- 会计知识点培训
- 2024山东省物业服务合同范本
- 2024《手房买卖合同范本》
- 2024至2030年中国超涂层环带行业投资前景及策略咨询研究报告
- 瓶装水项目市场营销方案
- 狮子王-中英文-剧本台词(全)
- 【幼儿园语言文字教学的规范化分析3000字(论文)】
- 瓶口分液器校准规范
- 硅pu塑胶施工方案
- 学校学生会学生干部工作素质提升培训教学课件
- 2023年辽阳市宏伟区事业单位考试真题
- 环境工程专业英语 课件
- 四川美丰梅塞尔气体产品有限公司5000吨-年干冰技术改造项目环境影响报告
- 教学工作中存在问题及整改措施
- 2013部编版九年级物理全一册《测量小灯泡的电功率》评课稿
评论
0/150
提交评论