版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华中科技大学文华学院数 据 结 构课 程 设 计 报 告题 目:学生信息管理系统专 业:计算机应用与技术学 号:姓 名:指导老师: 时间:一、总体框架图1、 题目:学生信息管理系统2、 设计内容及要求: 内容:完成简单的学生信息管理系统 要求: (1)学生信息包括:学号、姓名、数学成绩、英语成绩、数构成绩; (2)用链表存放学生信息; (3)实现简单的菜单调用; (4)程序的功能包括: 学生信息链表的建立; 学生信息的显示; 学生信息的查询; 学生信息的删除; 学生信息的插入;编写算法,以实现基本要求。二、本程序用到的基本操作 InintList(&l):操作结果:构造一个空的线性表L
2、。DestroList(&L)初始条件:线性表已存在。操作结果:销毁线性表。ListInsert(&L,i,e)初始条件:线性表L已存在,操作结果:在L中第i 个位置之前插入新的数据元素e。L的长度加1.ListDelete(&L,i,e)初始条件:线性表L已存在且非空操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.ADT List三、模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明 模块二:结构体的建立,定义学生的学号,名字,和各成绩 模块三:学生信息系统使用菜单声明函数void menu(),对整个
3、系统进行明 模块四: 链表的建立,用void creat()来建立链表 模块五:显示学生信息,声明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 *next;student;student *head=N
5、ULL;int length; /链表的长度void create() student *p1,*p2; length=0; int number=0; p1=(student *)malloc(sizeof(student); p1->num=-1; if(head=NULL) head=p1; printf("请输入学生的学号、姓名、高数、英语、数据结构:n"); while(number<=3) p2=(student *)malloc(sizeof(student); scanf("%d %s %d %d %d",&p2-&g
6、t;num,p2->name,&p2->math,&p2->English,&p2->Data); /输入学生信息 if(p2->num=0) printf("链表创建完成!n"); break; length+; /链表的长度 p1->next=p2; p2->next=NULL; p1=p1->next; number+; return ;void display() student *p=head->next; printf("链表中所有的学生信息如下:n"); whil
7、e(p!=NULL) printf("%d %s %d %d %dn",p->num,p->name,p->math,p->English,p->Data); p=p->next; return ;void search() int num_; student *p=head->next; printf("需要查找的学生学号为:"); scanf("%d",&num_); while(p!=NULL) if(p->num=num_) printf("学号为%d的学生的信
8、息如下:n",num_); printf("%d %s %d %d %dn",p->num,p->name,p->math,p->English,p->Data); return; p=p->next; if(p=NULL) printf("无此记录!n"); return ;void search1() char na_me20; student *p=head->next; printf("需要查找的学生姓名为:"); scanf("%s",na_me); w
9、hile(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->next; if(p=NULL) printf("无此记录!n"); return ;void insert() int num_,i; student *p,*q; p=head; p
10、rintf("请输入你要插入位置: "); 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-
11、>English,&q->Data); while(p!=NULL) if(p->num=q->num) printf("该学号已经存在,无法插入!n"); return ; p=p->next; p=head; for(i=0;i<num_;i+) p=p->next; q->next=p->next; p->next=q; length+; printf("插入成功!n"); return ; void Delete() int num_; student *p,*q; q=head
12、,p=head->next; printf("请输入要删除的学生的学号:n"); scanf("%d",&num_); while(p!=NULL) if(p->num=num_) q->next=p->next; free(p); length-; printf("删除成功!n"); return ; p=p->next; q=q->next; if(p=NULL) printf("找不到要删除的编号!n"); return ;void menu() printf(&q
13、uot;_n"); printf("| 学生信息管理系统 |n"); printf("| 0、 退出系统 |n"); printf("| 1、 建立链表 |n"); printf("| 2、 显示链表 |n"); printf("| 3、 查找链表中的某个学生信息 |n"); printf("| 4、 删除链表中指定学号的学生 |n"); printf("| 5、 指定的位置上插入一个学生 |n"); printf("_n")
14、; 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(&q
15、uot;请选择是按学号查找还是按姓名查找,若是学号就按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四川雅安市交通建设(集团)有限责任公司招聘所属子公司工作人员6人笔试参考题库附带答案详解
- 2025四川蜀道资本控股集团有限公司招聘15人笔试参考题库附带答案详解
- 生态旅游景区游客服务中心建设可行性分析:虚拟现实技术应用前景
- 2025四川自贡市国投信息工程有限公司人员招聘1人笔试历年难易错考点试卷带答案解析2套试卷
- 2025四川绵阳科技城科技创新投资有限公司招聘投资专员等岗位笔试笔试历年常考点试题专练附带答案详解
- 2026年时尚行业虚拟试衣技术创新报告及增强现实应用分析报告
- 2025四川省南充市保安服务有限公司员工招聘5人笔试历年难易错考点试卷带答案解析2套试卷
- 2025四川泸州市龙驰实业集团有限责任公司下属子公司招聘12人笔试历年难易错考点试卷带答案解析2套试卷
- it项目采购管理制度
- 2025年四川省成都市中考英语真题(附答案解析)
- 2025贵州省专业技术人员继续教育公需科目考试题库(2025公需课课程)
- 《电影制作流程》课件
- 工程股东协议合同
- 农村厕所改造施工合同
- 幼儿园入园合同协议
- 技术服务合同模板样本范本2024年
- 2024版铝锭采购合同
- YYT 0644-2008 超声外科手术系统基本输出特性的测量和公布
- 建筑工程 施工组织设计范本
评论
0/150
提交评论