版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学文华学院
数据结构
课程设计报告
题目:学生信息管理系统
专业:计算机应用与技术
学号:
姓名:
指导老师:
•时间:
一、总体框架图
1、题目:学生信息管理系统
2、设计内容及要求:
内容;完成简单的学生信息管理系统
要求:
(1)学生信息包括:学号、姓名、数学成绩、英语成绩、数构成绩;
(2)用链表存放学生信息;
(3)实现简单的菜单调用;
(4)程序的功能包括:
学生信息链表的建立;
学生信息的显示;
学生信息的查询;
学生信息的删除;
学生信息的插入;
编写算法,以实现根本要求。
二、本程序用到的根本操作
InintList(&l):
操作结果:构造一个空的线性表L。
DestroList(&L)
初始条件:线性表已存在。
操作结果:销毁线性表。
ListInsert(&L,i,e)
初始条件:线性表L已存在,
操作结果:在L中第i个位置之前插入新的数据元素e。L的长度加1.
ListDelete(&L,i,e)
初始条件:线性表L已存在且非空
操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减L
}ADTList
三、模块设计
模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,
对函数进行声明
模块二:结构体的建立,定义学生的学号,名字,和各成绩
模块三:学生信息系统使用菜单声明函数voidmenu(),对整个系统进行明
模块四:链表的建立,用voidcrcat()来建立链表
模块五:显示学生信息,声明voidprint。显示学生的信息
模块六:学生信息的查找声明voidsearch。为查找函数,通过switch(a)
设定用学号查找,用姓名查找两个分支
模块七:删除学生信息通过voiddelete。实现学生信息的删除,
确定要删除的信息,再删除掉。
模块七:插入学生信息,通过voidinsert。为插入函数,通过switch(a)插入到指定
学生的后面。
模块八:学生信息按学号排序声明voidsort。将录入学生系按升序排列,
用的是“冒泡排序法〃实现排序
四、系统设计流程图
五、源代码
学生信息管理系统
#includeustdio.h"
#include
菜单项选择
查
建
删
插
显
退
询
立
除
示
出
入
学
链
某
学
菜
一
表
生
生
个
个
单
信
信
学
学
系
息
息
统
生
生
信
信
息
息
,'stdlib.h"
#include"string.h"
#defineSTUDENT2
typedefstructstudent
(
intnum;〃学号
charname[20];〃姓名
intmath;〃高数
intEnglish;〃英语
intDaia;//数据结构
structstudent*next;
}student;
student*head=NULL;
intlength;〃链表的长度
voidcreate()
student*pl,*p2;
length=O;
intnumber=0;
p1-(sludcul*)iiialluc(sizcuf(studcnl));
pl->num=-l;
if(head==NULL)
head=p1;
prinlf(”请输入学生的学号、姓名、高数、英语、数据结构:\n");
while(number<=3)
(
p2=(studcnt*)malloc(sizcof(studcnt));
scanf(n%d%s%d%d%d,,,&p2->num,p2->name,&p2->math,&p2->English,&p2->Da[a);〃输入
学生信息
if(p2->num==0)
(
printf("链表创立完成!\n");
break;
1
]eng[h++;〃链表的长度
pl->next=p2;
p2->next=NULL;
pl=pl->next;
numbcr++;
)
return;
1
voiddisplayO
(
student*p=head->next;
printf("链表中所有的学生信息如下
while(p!=NULL)
printf("%d%s%d%d%d\n",p->num,p->name,p->math,p->English,p->Data);
p-p->ucxl;
return;
}
voidsearch()
(
intnum_;
student*p=hcad->ncxt;
printf("需要查找的学生学号为:”);
scanf("%d",&num_);
while(p!=NULL)
!
if(p->num==num_)
(
printf("学号为%d的学生的信息如下:\n*',num_);
printf("%d%s%d%d%d\n",p->num,p->name,p->math,p->English,p->Data);
return;
)
p=p->next;
)
if(p==NULL)
printf("无此记录!\n");
return;
)
voidsearch1()
(
charna_me[20J;
student*p=head->next;
printf(”需要查找的学生姓名为:”);
scanf("%s",na_me);
whilc(p!-NULL)
if(!(strcmp(p->name,na_me)))
(
printf("姓名为%s的学生的信息如下:\n",na_me);
printf("%d%s%d%d%d\n',,p->num,p->name,p->math,p->English,p->Data);
return;
)
p=p->next;
)
if(p二二NULL)
prinlf("无此记录!\nM);
return;
)
voidinsert()
(
intnum_,i;
student*p,*q;
p二head;
printf("请输入你要插入位置:");
scanf(n%dn,&num_);
if(num_>length)
{
printf("找不到要插入的位置\n");
return;
)
else
(
printf("请输入你要插入的学生的学号、姓名、高数、英语、数据结构:W");
q=(student*)malloc(sizeof(student));
scanf("%d%s%d%d%dn,&q->num,q->namc,&q->math,&q->EngIish,&q->Data);
while(p!=NULL)
(
if(p->num==q->num)
(
pcntf(“该学号已经存在,无法插入!\n");
return;
}
p=p->next;
}
p=head;
for(i=0;i<num_;i++)
p=p->next;
q->ncxt=p->next;
p->next=q;
length++;
printf("插入成功!\n");
return;
)
1
voidDclcteO
(
intnum_;
student*p,*q;
q=head,p=head->next;
prinlf("请输入要删除的学生的学号:\n”);
scanf("%d",&num_);
while(p!=NULL)
if(p->num==num_)
q->ncxt=p->ncxt;
free(p);
length-;
printf("删除成功!\n");
return;
)
p=p->ncxt;
q=q->next;
)
if(p==NULL)
(
printf("找不到要删除的编号!\n");
return;
)
I
voidmenu()
printfC\n");
printf(H|学生信息管理系统|\nH);
printf(u|退出系统|\nH);
printf(n|1>建立链表|\nH);
printf(,'|2>显示链表|\nH);
printf(”|3、查找链表中的某个学生信息|\n");
printfC|4.删除链表中指定学号的学生|\n");
prinlf(”|5、指定的位置上插入一个学生|\n");
printfC\n");
return;
}
ininiain(vuid)
inta;
menu();
intchoice;
while(l)
(
printf(”请选择相应的功能:”);
scanf(”%d”,&a);
switch(a)
(
case0:
return0;
case1:
create();
menu();
break;
case2:
if(head)
{
displayO;
mcnu();
(
else
{
primf("链表为空,请先建立链表!\n");
menu();
)
break;
case3:
if(head)
printf(”请选择是按学号查找还是按姓名查找,假设是学号就按
7,姓名按8\n");
scanf("%dn,&choice);
if(choice==7)
(
search();
)
else(
search1();
)
menu();
)
else
{
printf("链表为空,请先建立链表!\n");
menu();
1
break;
case4:
if(hcad)
(
Delete();
menu();
)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息安全责任书2026年规范
- 2026年基础电脑操作测试题及答案
- 2026年着火了逃生心理测试题及答案
- 2026年水利水运检测试题及答案
- 2026年测试题目和答案
- 2026年龙游反诈测试题及答案
- 2026年职场人才盘点测试题及答案
- 2026年数学观察力测试题及答案
- 2026年营销的心理测试题及答案
- 2025年滨州展鸿人力资源管理有限公司12月份公开招聘劳务派遣工作人员(第四批)笔试历年参考题库附带答案详解
- 2025年宫颈癌考试题及答案
- 2026年部编版新教材语文七年级下册第六单元教案设计
- 生活中的法律知识课件
- 药品辨别知识培训课件
- 2026年保安员资格证理论知识考试题库
- 2025法考《刑法》真题及解析
- 护士职业礼仪行为规范
- 不锈钢管焊接质量控制方案
- 浙江越秀外国语学院《高等数学》2024-2025学年期末试卷(A卷)
- 工程项目进度评估与优化方案
- 备婚接亲游戏卡片互动小游戏演示模板
评论
0/150
提交评论