数据结构课程设计——学生成绩管理系统报告书_第1页
数据结构课程设计——学生成绩管理系统报告书_第2页
数据结构课程设计——学生成绩管理系统报告书_第3页
数据结构课程设计——学生成绩管理系统报告书_第4页
数据结构课程设计——学生成绩管理系统报告书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

XXX课程设计报告书 设计名称: 数据结构(C+版) 题 目: 学生成绩管理系统 学生姓名: XXX 专 业: 计算机科学与技术 班 别: 计科本XXX班 学 号: XXXXXX 指导老师: XXX 日 期: 2012 年 7 月 12 日一问题描述:设计目的: 1.掌握线性链表的建立。 2.掌握线性链表的基本操作。 3.掌握查找的基本算法。 设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、退出,并能在屏幕上输出操作前后的结果。二基本要求1.写出系统需求分析,并建模。 2.编程实现,界面友好。 3.输出操作前后的结果。三工具/准备工作在此次课程设计中,我们用到了Microsoft Visual C+ V6.0,所以在开始课程设计前我们首先要安装好这个软件。此外,在开始编程之前要做好相应的系统构思,以及想好实现相应的功能的算法。四分析与实现 1.系统功能分析本系统主要实现对学生成绩信息进行管理,需要实现以下几个方面的管理功能:(0)创建学生成绩信息:输入学生的信息。(1)查找学生成绩信息:按学号、姓名查找。(2)修改学生成绩信息:找到要修改的学号,修改相应信息。(3)追加学生成绩信息:找到要追加的学生成绩的学号,对相应科目的成绩进行追加。(4)显示学生成绩信息:显示全部学生的成绩信息(5)插入学生成绩信息:插入一个新的学生。(6)删除学生成绩信息;按学号、姓名删除。目或者总分排序。2.系统模块结构图学生成绩管理系统输入学生成绩按学号查询成绩按姓名查询成绩修改学生成绩信息追加学生成绩显示全部学习信息插入学生成绩信息删除学生信息3.模块分析:3.1系统首页:功能介绍:输入相应功能序号即可进行相应的功能操作。 图1.系统首页相应的代码:#include#include#includeusing namespace std;#define MAX 100typedef struct studentint num;char name20;int english;int chinese;int math;int total;int length;struct student *next ;s,*LinkList;int main() coutttt 欢迎登录学生成绩管理系统!endl;coutttt+-+endl;coutttt|序号 |请选择相应的操作功能的序号: |endl; coutttt+-+-+endl;coutttt| 0 |请输入学生的相关信息与成绩: |endl; coutttt+-+-+endl;coutttt| 1 |按学生学号查询学生成绩: |endl; coutttt+-+-+endl;coutttt| 2 |按学生姓名查询学生成绩: |endl; coutttt+-+-+endl;coutttt| 3 |追加学生的成绩信息: |endl; coutttt+-+-+endl;coutttt| 4 |显示全部学生的信息: |endl; coutttt+-+-+endl;coutttt| 5 |插入学生信息: |endl; coutttt+-+-+endl; coutttt| 6 |修改学生信息: |endl; coutttt+-+-+endl; coutttt| 7 |删除学生信息: |endl; coutttt+-+-+next=NULL;char ch,ch2;while(flag)cout请输入你要进行的操作数:ch;while(ch7|ch0)cout输入有误,请重新输入ch;switch(ch)case 0:input(l);cout学生的基本信息存储成功endl;break;case 1:check(l);break;case 2:check_name(l);break;case 3:add(l);break;case 4:output(l);break;case 5:insert_stu(l);break; case 6:xiugai(l);break; case 7:Delete_stu(l);break;cout你要继续操作还是退出(y/n)ch2;while(flag1)if(ch2=Y)|(ch2=y)flag=1;flag1=0;else if(ch2=N)|(ch2=n)/flag=0;/flag1=0;else flag1=1;cout输入有误,请重新输入(y/n)(y:继续)(n:退出)!ch2;return 0;3.2输入学生信息功能介绍:输入0,选择进入输入学生信息功能中,输入想输入的学生信息个数,并输入相应的学生信息。 图2.输入信息相关代码:int InitLink(LinkList &L)/输入学生信息L=(LinkList)malloc(sizeof(struct student);L-next=NULL;return 0;int input(LinkList &L)int i, n;L-next=NULL;LinkList p;LinkList q;cout请输入学生人数:n;L-length=n;cout请输入学生的基本信息:endl;for(i=0;ilength;i+)p = (LinkList)malloc(sizeof(student);coutp-num;coutendl;coutp-name;coutendl;coutp-english;coutendl;coutp-chinese;coutendl;coutp-math;couttotal=p-english+p-chinese+p-math;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+next = NULL)L-next = p;p-next = NULL;q = p;elsep-next = NULL; q-next = p;q = p;/L=L-next;return 0;3.3显示学生全部信息功能简介:显示连表中的全部学生信息。 图3.显示全部信息相关代码:int output(LinkList &L)/显示全部信息LinkList p = L-next;if(L-next=NULL)cout链表中没有学生信息,请先输入学生信息!endl;elsecout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;while(p)coutnum name english chinese math totalnext;cout+-+next;if(p=NULL)cout链表中没有学生信息,请先输入学生信息!endl;else cout请输入你要查找的同学的学号:n;while(p&p-num!=n)p=p-next;if(!p)cout链表中没有学号为:n的同学信息!endl;else cout学号为:n的同学信息如下:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl; cout+-+next;if(p=NULL)cout链表中没有学生信息,请先输入学生信息!endl;else cout请输入你要查找的同学的姓名:name;while(p&strcmp(p-name,name) /strcmp(p-name,name)如果p-name=name,则比较的函数值为0p=p-next;if(!p)cout链表中没有姓名为:namename:的同学信息!endl;else cout姓名为:name=name:的同学信息如下:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+next;if(p=NULL)cout链表中没有学生信息,请先输入学生信息!endl;else cout请输入你要追加的同学成绩的学号:n;while(p&p-num!=n)p=p-next;if(!p)cout链表中没有学号为:n的同学信息!endl;else cout请输入要追加的成绩:(相应的追加分数分别为英语i,语文j,数学k,若是不追加,请输入0.)endl;couti;coutendl;coutj;coutendl;coutk;coutenglish +=i; p-chinese +=j;p-math +=k;cout学号为:n的同学信息如下:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+next;if(p=NULL)cout链表中没有学生信息,请先输入学生信息!endl;else cout请输入你要修改的同学成绩的学号:n;while(p&p-num!=n)p=p-next;if(!p)cout链表中没有学号为:n的同学信息!endl;else cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+endl;cout是否要修改学号为n的同学的信息?(y/n)x;if(x=Y)|(x=y)coutp-name;coutendl;coutp-english;coutendl;coutp-chinese;coutendl;coutp-math;couttotal=p-english+p-chinese+p-math;cout学号为n的同学修改后的信息为:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+next=NULL)cout链表中没有学生信息,请先输入学生信息!endl;elsecout请输入你要在链表第i个位置中插入学生信息的i值:i;p=L;while(p&jnext;+j;if(!p|ji-1)cout输入i值小于1或者大于表长+1,请重新输入!endl;flag=1;else flag=0;s=(LinkList)malloc(sizeof(student);cout请输入学生的基本信息:endl;coutp-num;coutendl;coutp-name;coutendl;coutp-english;coutendl;coutp-chinese;coutendl;coutp-math;couttotal=p-english+p-chinese+p-math;cout插入的学生信息为:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl;cout+-+next=p-next;p-next=s;return 0;3.7删除学生信息功能介绍:删除某个学生的信息。相关代码:int Delete_stu(LinkList &L)/删除学生信息int n;char x;LinkList q=L,p=L-next;if(p=NULL)cout链表中没有学生信息,请先输入学生信息!endl;else cout请输入你要查找的同学的学号:n;while(p&p-num!=n)q=p;p=p-next;if(!p)cout链表中没有学号为:n的同学信息!endl;else cout学号为:n的同学信息如下:endl;cout+-+endl;cout学号: 姓名: 英语: 语文: 数学: 总成绩:endl;coutnum name english chinese math totalendl; cout+-+endl;cout是否要删除该同学信息?(y/n)x;if(x=Y)|(x=y)p=p-next;q-next=p;cout该学生信息已删除!endl;return 0;五测试与结论1.系统测试结果如下:1.1系统首页:功能介绍:输入相应功能序号即可进行相应的功能操作。 图1.2系统首页1.2输入学生信息功能介绍:输入0,选择进入输入学生信息功能中,输入想输入的学生信息个数,并输入相应的学生信息。 图2.2输入学生信息 1.3显示学生全部信息功能简介:显示连表中的全部学生信息。 图3.2显示全部信息1.4追加学生信息 图4.2追加学生信息1.5修改学生信息功能介绍:修改相应学号学生信息。 图5.2修改学生信息1.6插入学生信息功能介绍:在链表的第i个

温馨提示

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

评论

0/150

提交评论