




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z华中科技大学文华学院数 据 结 构课 程 设 计 报 告题 目:学生信息管理系统专业:计算机应用与技术*:*:指导教师: 时间:一、总体框架图题目:学生信息管理系统设计容及要求: 容:完成简单的学生信息管理系统 要求: (1)学生信息包括:*、数学成绩、英语成绩、数构成绩; (2)用链表存放学生信息; (3)实现简单的菜单调用; (4)程序的功能包括:学生信息链表的建立;学生信息的显示;学生信息的查询;学生信息的删除;学生信息的插入;编写算法,以实现根本要求。二、本程序用到的根本操作 InintList(&l):操作结果:构造一个空的线性表L。DestroList(&L)初始条件:线性
2、表已存在。操作结果:销毁线性表。ListInsert(&L,i,e)初始条件:线性表L已存在,操作结果:在L中第i 个位置之前插入新的数据元素e。L的长度加1.ListDelete(&L,i,e)初始条件:线性表L已存在且非空操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.ADT List三、模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进展定义,对函数进展声明模块二:构造体的建立,定义学生的*,名字,和各成绩模块三:学生信息系统使用菜单声明函数void menu(),对整个系统进展明 模块四:链表的建立,用void creat()来建立链表模块五:显示学生信息
3、,声明void print()显示学生的信息模块六:学生信息的查找声明void search()为查找函数,通过switch(a)设定用*查找,用查找两个分支模块七:删除学生信息通过void delete()实现学生信息的删除, 确定要删除的信息,再删除掉。模块七: 插入学生信息,通过void insert()为插入函数,通过switch(a)插入到指定学生的后面。模块八:学生信息按*排序声明void sort()将录入学生系按升序排列,用的是冒泡排序法实现排序四、系统设计流程图学生信息管理系统菜单项选择择退出菜单系统建立链表显示学生信息查询学生信息删除*个学生信息插入一个学生信息五、源代码#
4、include stdio.h#include stdlib.h#include string.h#define STUDENT 2typedef struct student int num; /* char name20; / int math;/高数 int English;/英语 int Data;/数据构造 struct student *ne*t;student;student *head=NULL;int length; /链表的长度void create() student *p1,*p2; length=0; int number=0; p1=(student *)mallo
5、c(sizeof(student); p1-num=-1; if(head=NULL) head=p1; printf(请输入学生的*、高数、英语、数据构造:n); while(numbernum,p2-name,&p2-math,&p2-English,&p2-Data); /输入学生信息 if(p2-num=0) printf(链表创立完成!n); break; length+; /链表的长度 p1-ne*t=p2; p2-ne*t=NULL; p1=p1-ne*t; number+; return ;void display() student *p=head-ne*t; printf(
6、链表中所有的学生信息如下:n); while(p!=NULL) printf(%d %s %d %d %dn,p-num,p-name,p-math,p-English,p-Data); p=p-ne*t; return ;void search() int num_; student *p=head-ne*t; printf(需要查找的学生*为:); scanf(%d,&num_); while(p!=NULL) if(p-num=num_) printf(*为%d的学生的信息如下:n,num_); printf(%d %s %d %d %dn,p-num,p-name,p-math,p-E
7、nglish,p-Data); return; p=p-ne*t; if(p=NULL) printf(无此记录!n); return ;void search1() char na_me20; student *p=head-ne*t; printf(需要查找的学生为:); scanf(%s,na_me); while(p!=NULL) if(!(strcmp(p-name,na_me) printf(为%s的学生的信息如下:n,na_me); printf(%d %s %d %d %dn,p-num,p-name,p-math,p-English,p-Data); return; p=p-
8、ne*t; if(p=NULL) printf(无此记录!n); return ;void insert() int num_,i; student *p,*q; p=head; printf(请输入你要插入位置: ); scanf(%d,&num_); if(num_length) printf(找不到要插入的位置n); return ; else printf(请输入你要插入的学生的*、高数、英语、数据构造:n); q=(student *)malloc(sizeof(student); scanf(%d %s %d %d %d,&q-num,q-name,&q-math,&q-Engli
9、sh,&q-Data); while(p!=NULL) if(p-num=q-num) printf(该*已经存在,无法插入!n); return ; p=p-ne*t; p=head; for(i=0;ine*t; q-ne*t=p-ne*t; p-ne*t=q; length+; printf(插入成功!n); return ; void Delete() int num_; student *p,*q; q=head,p=head-ne*t; printf(请输入要删除的学生的*:n); scanf(%d,&num_); while(p!=NULL) if(p-num=num_) q-n
10、e*t=p-ne*t; free(p); length-; printf(删除成功!n); return ; p=p-ne*t; q=q-ne*t; if(p=NULL) printf(找不到要删除的编号!n); return ;void menu() printf(_n); printf(| 学生信息管理系统 |n); printf(| 0、 退出系统 |n); printf(| 1、 建立链表 |n); printf(| 2、 显示链表 |n); printf(| 3、 查找链表中的*个学生信息 |n); printf(| 4、 删除链表中指定*的学生 |n); printf(| 5、 指
11、定的位置上插入一个学生 |n); printf(_n); return ;int main(void) int a; menu(); int choice; while(1) printf(请选择相应的功能:); scanf(%d,&a); switch(a) case 0: return 0; case 1: create(); menu(); break; case 2: if(head) display(); menu(); else printf(链表为空,请先建立链表!n); menu(); break; case 3: if(head) printf(请选择是按*查找还是按查找,假
12、设是*就按7,按8n); scanf(%d,&choice); if(choice=7) search(); else search1(); menu(); else printf(链表为空,请先建立链表!n); menu(); break; case 4: if(head) Delete(); menu(); else printf(链表为空,请先建立链表!n); menu();break; case 5: if(head) insert(); menu(); else printf(链表为空,请先建立链表!n); menu(); break; default: break; system(pause); return 0;六、程序结果建立链表显示链表查询学生信息按*查按查删除信息插入信息退出系统七、心得体会 这次的学生信息管理系统的设计中,使我懂得课堂上的知识,必须要通过实践操作才能掌握。在练习中,遇到一些问题,需要具体分析,具体操作,不断调试。在这过程中,遇到过很多问题。刚建立
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年三片式球阀项目发展计划
- 2025年度汽车销售市场调研与分析合同
- 2025版商业综合体电梯清洁维护协议
- 2022年江苏高考英语真题及答案-2
- 2025年度健康食堂牛羊肉绿色采购配送协议4篇
- 2025年度足疗行业市场调研分析合同
- 2025年全自动滗水器合作协议书
- 幼儿园节奏感与韵律教育方案计划
- 班级活动与团队合作训练计划
- 跨学科合作项目的设计与实践计划
- JBT 1472-2023 泵用机械密封 (正式版)
- 价格法价格违法行为和明码标价法律法规价格欺诈知识
- 2016-2023年山东力明科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 中外历史纲要上大事年表
- 高标准农田建设项目监理计划
- 2022版《义务教育教学新课程标准》解读课件
- 小学二年级(上册)-乘法口诀-练习题-A4直接打印
- 采购行业的swot分析
- 设备采购 投标方案(技术方案)
- 振荡指标MACD(波段操作精解)
- 儿科常见病的病例讨论和诊断思维培训课件
评论
0/150
提交评论