学生信息管理系统数据结构课程设计

上传人:cn****1 文档编号:494672138 上传时间:2023-11-17 格式:DOCX 页数:19 大小:188.31KB
返回 下载 相关 举报
学生信息管理系统数据结构课程设计_第1页
第1页 / 共19页
学生信息管理系统数据结构课程设计_第2页
第2页 / 共19页
学生信息管理系统数据结构课程设计_第3页
第3页 / 共19页
学生信息管理系统数据结构课程设计_第4页
第4页 / 共19页
学生信息管理系统数据结构课程设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《学生信息管理系统数据结构课程设计》由会员分享,可在线阅读,更多相关《学生信息管理系统数据结构课程设计(19页珍藏版)》请在金锄头文库上搜索。

1、华中科技大学文华学院数据结构课程设计报告题目:学生信息管理系统专业:计算机应用与 技术学号: 姓名:指导老师:时间:一、总体框架图1、题目:学生信息管理系统2、设计内容及要求:内容:完成简单的学生信息管理系统要求: (1)学生信息包括:学号、姓名、数学成绩、英语成绩、数构成绩; (2)用链表存放学生信息;(3)实现简单的菜单调用;(4)程序的功能包括:学生信息链表的建立;学生信息的显示; 学生信息的查询;学生信息的删除;学生信息的插入;编写算法, 以实现基本要求。二、本程序用到的基本操作lnintList(&l):操作结果:构造一个空的线性表L。DestroList(&L)初始条件:线性表已存

2、在。操作结果:销毁线性表。 Listlnsert(&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()将录入学生系按升序排列,用的是“冒泡排序法”实现排序四、系统设计流程图五、源码#include stdio.h#include stdlib.h#include string.h

4、 #defi ne STUDENT 2 typedef struct student(int num; 学号char name20; / 姓名int math;/高数int English;/ 英语int Data;/数据结构struct student *next;student;student *head=NULL;int length; 链表的长度void create()student *p1,*p2;length=O;int number=O;p1 =(student *)malloc(sizeof(student);p1-num=-1;if(head=NULL)head=p1;pr

5、intf(“请输入学生的学号、姓名、高数、英语、数据结构:n“);while(numbernum,p2-name,&p2-math,&p2-English,&p2-Data);/输入学生信息if(p2-num=0)print一链表创建完成! n“); break; )length+; 链表的长度p1-next=p2;p2-next=NULL;p1=p1-next;number+;return ;void display()student *p=head-next;printf(链表中所有的学生信息如下:n“);while(p!=NULL)(printf(%d %s %d %d %dnH,p-n

6、um,p-name5p-math,p-English,p-Data); p=p-next; return ;while(p!=NULL)if(!(strcmp(p-name,na_me) (printf(姓名为 s的学生的信息如下:n,na_me);printf(%d %s %d %d %dnM,p-num,p-name,p-math,p-English,p-Data); return; p=p-next;if(p=NULL)printf(n无此记录! n“);return ;void insert()(int num_,i;student *p,*q;p=head;printf(请输入你要插

7、入位置:”);scanf(%d,&num_);if(num_length)printf(n return ;找不到要插入的位置nn);)else printf(请输入你要插入的学生的学号、姓名、高数、英语、数据,口 nn);构:q=(student *)malloc(sizeof(student);scanf(%d %s %d %d %d,&q-num5q-name)&q-math5&q-English)&q-Data);while(p!=NULL)if(p-num=q-num)(printf(该学号已经存在 无法插入! n); return ;)p=p-next;)p=head;for(i=

8、0;inext;q-next=p-next;p-next=q;length+;printf(插入成功! nn);return ;)void Delete()int num_;student *p,*q;q=head,p=head-next;printf(”请输入要删除的学生的学号:n);scanf(d”,&num_);while(p!=NULL)if(p-num=num_)q-next=p-next; free(p); length-;printf(M 删除成功! nH); return ;p=p-next;q=q-next;if(p=NULL)(printfC,找不到要删除的编号! n);

9、return ;)void menu()printf(n“);printf(n|学生信息管理系统|nn);printf(n| 0printf(n| 1printf(n| 2printf(n| 3、显示链表|n);、查找链表中的某个学生信息printf(n| 4printf(n| 5、删除链表中指定学号的学生、指定的位置上插入一个学生printf(nn);return ;int main(void)(int a; menu();int choice;while(1)(printf(请选择相应的功能:);scanf(:cT,&a);switch(a)(case 0:return 0;case 1:

10、create();menu();break;case 2:if(head)(display();menu();else(printf(M链表为空,请先建立链表! n); menu();break;case 3:if(head)(printf(”请选择是按学号查找还是按姓名查找,若 是学号就按7,姓名按8n“);scanf(%dH,&choice);if(choice=7)(search();elsesearchi ();menu();else(printf(链表为空,请先建立链表! nn); menu();break;case 4:if(head)Delete();menu();)elsepr

11、intf(链表为空,请先建立链表!)break;case 5:if(head)insert();menu();else(printf(链表为空,请先建立链表!nH); menu();nn); menu();)break;default: break;) systemCause);return 0;六、程序结果建立链表刍主主 言空亍44-1白卜卜式人一 黄ii疣的盲上氯mlo 里充甚甚甚著一匚 蓑涟涟涟涟向急 LL江示戈爰言艮) 聿三位至刑盲主 0 1 2345务名、高数、英语、数据结构;显示链表鼠主主言w U主向於F 31 tF人2急鬟1言充打匕日 上金主一案 为“F 559P528R里充甚甚

12、甚自亘 向向7 4 45 涟连连向 五句8 9 7 7款LL7示戈 落67886595言艮-聿三比杳删勺曰A- D力Q,力主先一及卷与式02 3 4天 主昴匚2_314查询学生信息 按学号查旨定的位置上描入一个学吨随选择相应的功能3情选棒是按学号查找还是按姓名查找,若是学号就按?,姓名按百需曙查找的生鹤为件寻为妻的李生囱詹息Q2 SS 88 94 ?0按姓名查睛选样相应的功能:3窗选糅是按学号查找还是按姓名查找,若是学号就按陶姓名按品器要查找的彩姓名为;dd磋名为d 11的车生的信息如下:33 dd 阴 74 52删除信息 插入信息主主营南 I 统 昧的 系 ,:、:、76 I冗玄茂茂答二 喜

13、涟连连涟的二当RJ,, 七Lr示戈爰言- 立有T8向盲上举人人9方 建显查删挹生 择中2578 98 764 ff Y5 75 86退出系统屈茬连涟的急流 一二示戈翼言艮-” 律三比杳一删勺曰主5- TP 0 12 34 5 环press 艮 ny to continuE七、心得体会这次的学生信息管理系统的设计中,使我懂得课堂上的知识,必须要通过 实践操作才能掌握。在练习中,遇到一些问题,需要具体分析,具体操作,不断调试。在 这过程中,遇到过很多问题。刚建立链表时,总是出错,经过不断 地调试后来解决了。 通过这次的设计,我发现了自身知识的欠缺,上机操作的经验不足,以及粗心。比如, 一些错误不知道怎么改,后来同学讨论后才调试成功,还有字符串的比较都不熟,有时 掉了地址符等等。虽然有很多欠缺,但在这过程中我也受益良多,感觉自己对程序的处理越来越清晰。在调试过程中,我发现有时一个小小的错误也会给程序带来很大的麻烦,所以以后应该更加细心,多多操作,积累经验。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号