数据结构学籍管理系统.docx
- 文档编号:2169143
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:12
- 大小:125.27KB
数据结构学籍管理系统.docx
《数据结构学籍管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构学籍管理系统.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构学籍管理系统
1.设计目的
1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
2.设计内容
开发环境
操作系统:
Windows7
开发工具:
MicrosoftVisualC++
开发语言:
C++
功能简介:
本程序采用C++编写,用于管理学生信息,基本功能有批量添加学生信息,单个添加学生信息,按学号查找学生,按姓名查找学生,按学号删除学生信息,排序输出全部学生信息以及退出功能。
程序流程:
3.设计要求
1)程序设计要求:
①采用交互工作方式,设计功能菜单;
②建立数据文件,数据包含学生的自然信息和成绩信息(设计几门课以及总成绩);
③对如下关键字:
姓名、学号、各科成绩进行排序(冒泡、选择、插入排序等任选一种)。
2)用二分查找实现如下查询:
①按姓名查询
②按学号查询
3)用堆排序找出总成绩排名的前5名学生
4)输出任一查询结果(可以连续操作)
4.设计过程
1.算法思想分析
根据设计要求,首先定义三个数组,分别存放学号、姓名、成绩.
typedefstructstud统测试
1.菜单
用户运行程序后,显示如下所示菜单,用户根据菜单提示进行操作(如图)。
图
2.批量添加
用户选择批量添加学生信息功能进行批量添加,可连续添加,按0结束添加操作(如图)。
图
3.按学号查找学生
将学生信息录入之后,若想查找某个学生,用户可选择按学号查找学生信息(图)。
图
4.按姓名查找学生
将学生信息录入之后,若想查找某个学生,用户可选择按姓名查找学生信息(图)。
图
5.添加信息
用户可以在批量添加后在单个添加学生信息(图)。
图
6.按学号删除学生信息
用户可根据情况对已添加的学生信息进行删除,通过学号删除(图)。
图
7.排序输出
程序可以将已添加的学生按照成绩的降序排列输出(图).
图
8.退出
操作结束后按0退出程序(图)。
图
5.设计总结
通过一周的课程设计,我从中受益匪浅,使得我对数据结构这门课有了更深一步的认识。
在设计过程中,我们发现问题,解决问题,一同探讨问题,在老师的帮助下把问题一一解决。
在解决问题的过程中得到了成长,在与同学的合作过程中,我获益良多,提高了自己的团队合作能力和实际动手能力,在亲自动手的同时提升自己,锻炼自己。
通过这次设计,我深深的感受到了做系统是一件十分复杂周密的事情,不能有半点的疏忽,需要一个人有周密的思考能力,分析问题、处理问题的能力,还要有足够的耐心。
参考文献
《数据结构程序设计题典》李春葆等编清华大学出版社
《数据结构(C语言版)》黄国瑜叶乃菁编清华大学出版社
《数据结构课程设计》苏仕华等编机械工业出版社
附录:
源代码
#include<>
#include<>
#include<>
typedefstructstud;
getchar();
break;
case'3':
;
getchar();
getchar();
break;
case'4':
;
getchar();
getchar();
break;
case'5':
;
getchar();
getchar();
break;
case'6':
;
getchar();
getchar();
break;
case'0':
批量添加学生信息");
printf("2.按学号查找学生信息*\n");
printf("*3.按姓名查学生信息");
printf("4.按学号删除学生信息*\n");
printf("*5.录入新的学生信息");
printf("6.按分数降序排序输出*\n");
printf("----------0.返回-----------\n");\
printf("**********************************************************************\n");
}
voidread(void)
{
longa;
printf("请输入学号:
");
scanf("%ld",&a);
while(a>0){
inser(a);
printf("请输入学号:
");
scanf("%ld",&a);
}
}
voidinser(longb)
{
Node*last,*current,*p;
current=head;
while(current!
=NULL&&b>current->{
last=current;
current=current->next;
}
if(current==NULL||b
printf("请输入姓名、分数:
");
p=(Node*)malloc(sizeof(Node));
p->=b;
scanf("%s%f",p->,&p->;
p->next=NULL;
if(current==head){
p->next=head;
head=p;
}
else{
p->next=current;
last->next=p;
}
}
elseif(b==current->
printf("errorinputadifferentnumber:
");
}
voidprint()
{
Node*p=head;
printf("\n学号姓名成绩:
\n");
while(p!
=NULL){
printf("%ld%s%f\n",p->,p->,p->;
p=p->next;
}
printf("\n");
}
voidfind(longb)
{
Node*p=head;
while(p!
=NULL&&b!
=p->
p=p->next;
if(!
p)printf("Nofound\n");
else{
printf("\n学号姓名成绩\n");
printf("%ld%s%f\n",p->,p->,p->;
}
}
voidsearchname(char*s)
{
Node*p=head;
intflag=0;
printf("\n学号姓名成绩:
\n");
while(p!
=NULL)
{
if(strcmp(p->,s)==0)
{
printf("%ld%s%f\n",p->,p->,p->;
flag=1;
p=p->next;
continue;
}
elsep=p->next;
}
if(!
flag)printf("没有找到相关信息");
}
Node*del(longn)
{
Node*p=head,*last;
while(p->!
=n){
last=p;
p=p->next;
}
if(p==NULL)returnp;
elseif(p==head)head=p->next;
elselast->next=p->next;
returnhead;
}
voidsort(intflag)
{
Node*p1,*p2,*k;
floatt1;
longt2;
chars[20];
for(p1=head;p1->next;p1=p1->next)
{
k=p1;
for(p2=p1->next;p2;p2=p2->next)
if(flag==1&&k->
flag&&k->>p2->
k=p2;
if(k!
=p1){
t1=p1->;
p1->=k->;
k->=t1;
t2=p1->;
p1->=k->;
k->=t2;
strcpy(s,p1->;
strcpy(p1->,k->;
strcpy(k->,s);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 学籍 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)