学生信息管理系统数据结构课程设计_第1页
学生信息管理系统数据结构课程设计_第2页
学生信息管理系统数据结构课程设计_第3页
学生信息管理系统数据结构课程设计_第4页
学生信息管理系统数据结构课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、(&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()将录入学生系按升序排列,用的是“冒泡排序法”实现排序四、系统设计流程图五、源代码#i ncl

4、ude stdio.h#include stdlib.h#include string.h#defi ne STUDENT 2 typedef struct stude nt 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=0;int number=0;p1=(student *)malloc(si

5、zeof(student); p1-num=-1;if(head=NULL)head=p1;printf( 请输入学生的学号、姓名、高数、英语、数据结构: n);while(numbernum,p2-name,&p2-math,&p2-English,&p2-D ata); /输入学生信息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( 链表中所有的

6、学生信息如下 :n);while(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的学生的信息如下:n,num_);printf(%d %s %d %d %dn,p-num,p-name,p-math,p-English,p-Da

7、ta); return;p=p-next;if(p=NULL)printf( 无此记录! n);return ;void search1()char na_me20;student *p=head-next;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-next;if(p=NU

8、LL)printf( 无此记录! n);return ;void insert()int num_,i;student *p,*q;p=head;printf(请输入你要插入位置:);scanf(%d,&num_);if(num_length)printf( 找不到要插入的位置 n); return ;elseprintf( 请输入你要插入的学生的学号、姓名、高数、英语、数据结构: n);q=(student *)malloc(sizeof(student);scanf(%d %s %d %d %d,&q-num,q-name,&q-math,&q-English,&q-Data);while

9、(p!=NULL)if(p-num=q-num)printf( 该学号已经存在,无法插入! n);return ;p=p-next;p=head;for(i=0;inext;q-next=p-next;p-next=q;length+;printf( 插入成功! n);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-;p

10、rintf( 删除成功! n);return ;p=p-next;q=q-next;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 、指定的位置上插入一个学生|n);printf(_n);return ;int main

11、(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();elseprintf( 链表为空,请先建立链表! n); menu();break;case 3:if(head)printf( 请选择是按学号查找还是按姓名查找,若是学号就按 7,姓名按 8n);scanf(%d,&choice);if(choice=7)search();els

12、esearch1();menu();elsen);n);printf( 链表为空,请先建立链表! n); menu();break;case 4: if(head)Delete(); menu();elseprintf( 链表为空,请先建立链表! menu();break;case 5:if(head)insert(); menu();elseprintf( 链表为空,请先建立链表! menu();break;default:break;system(pause); return 0;六、程序结果建立链表息生注 、 信瓷亍 数 生的个 高 f-IF 一 个学入 名 - 養插1姓 统 的指上:

13、系mtM S 理统表表表香功学 iw系链链链链的的的 息岀立示找矍应生 信退建显查删指塑T 注 择入 学 SJ1.2.3.4.U;选输 请请显示链表息主生 信瓷于 : 生的个 下 書一 如 个学入 2 息 : iffi :信 统 的拒上 能生 系 功学55905286理统表表表畫 的的7 4 45 链链链的 应有8 9 7 7 息岀立币找星 需678B阴95信退建显查删指 犀中a s d 生 选表卷学0,2,3.久久 送屛11?44查询学生信息按学号查:队指定的位置上插入一个学益! 胡选择相应的功能:3情选棒是按学号查找还是按姓名查找,若是学号就按?,姓名按嚣7鬲畧查找的書生兽豈为:22 件寻

14、为的芈注弗詹息如下;22 ss 88 ?4 ?0按姓名查幘选样相应的功能:3彊选律是按学号查找还是按姓名查找,若是学号就按臨姓名按B 器要查找的竽址姓名为;dd强名为般的李生的信息如下:B3 dd 阴 74 52息生生 信烹亍 生的个 孝万j个学入 - J 统 的指上 系mis 理统表表表盍 XS链链的 息出立示找星 信退建显查删指 生*5-11 旦0 12 3 4 5下如2息T信Jdtsfe4冃th澤559B86 应有8 9 77 8 5LT&V 6 8 9 择中a 5 f 选表a 3 fL1I214删除信息插入信息高姓号学5 :生 魅的 功入入76 的8 应要要孑 為你78功 择入入9成5

15、化 请请请55插息生生 生的个 f - 个学入 : 霑插 统 的指上 系 理统表表表畫 乂橐链链链链的 息出立示找星 信退建显查删挹 生请选择担应的功能:2链表中關有的学生信息如下:11 aa 67 87 522 ss 8S 94 9055 日g 78 98 7644 ff Y5 75 6&退出系统息生注 信筈于 生的个 誉万一 : 書插 统 的挹上 系 理统表表表畫 工橐链链链链的 息出立示找矍 信退建显查删指f P F f 0 12 3 4 5请选择相应的功能 0 .jin* kuy to continuE七、心得体会这次的学生信息管理系统的设计中,使我懂得课堂上的知识,必须 要通过实践操作才能掌握。在练习中,遇到一些问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论