欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计——学生成绩管理系统报告书.doc

    • 资源ID:36213354       资源大小:1.26MB        全文页数:21页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计——学生成绩管理系统报告书.doc

    课程设计报告书 设计名称: 数据结构(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<stdio.h>#include<stdlib.h>#include<iostream>using 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() cout<<"ttt 欢迎登录学生成绩管理系统!"<<endl;cout<<"ttt+-+"<<endl;cout<<"ttt|序号 |请选择相应的操作功能的序号: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 0 |请输入学生的相关信息与成绩: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 1 |按学生学号查询学生成绩: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 2 |按学生姓名查询学生成绩: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 3 |追加学生的成绩信息: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 4 |显示全部学生的信息: |"<<endl; cout<<"ttt+-+-+"<<endl;cout<<"ttt| 5 |插入学生信息: |"<<endl; cout<<"ttt+-+-+"<<endl; cout<<"ttt| 6 |修改学生信息: |"<<endl; cout<<"ttt+-+-+"<<endl; cout<<"ttt| 7 |删除学生信息: |"<<endl; cout<<"ttt+-+-+"<<endl; int flag=1,flag1=1;LinkList l;l=(LinkList)malloc(sizeof(student);l->next=NULL;char ch,ch2;while(flag)cout<<"请输入你要进行的操作数:"<<endl; cin>>ch;while(ch>'7'|ch<'0')cout<<"输入有误,请重新输入"<<endl;cin>>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)"<<endl;cin>>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:退出)!"<<endl;cin>>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<<"请输入学生人数:"<<endl;cin>>n;L->length=n;cout<<"请输入学生的基本信息:"<<endl;for(i=0;i<L->length;i+)p = (LinkList)malloc(sizeof(student);cout<<"学号:"cin>>p->num;cout<<endl;cout<<"姓名:"cin>>p->name;cout<<endl;cout<<"英语:"cin>>p->english;cout<<endl;cout<<"语文:"cin>>p->chinese;cout<<endl;cout<<"数学:"cin>>p->math;cout<<endl;p->total=p->english+p->chinese+p->math;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;if (L->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)cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;p=p->next;cout<<"+-+"<<endl;return 0;int check(LinkList &L)int n;LinkList p=L->next;if(p=NULL)cout<<"链表中没有学生信息,请先输入学生信息!"<<endl;else cout<<"请输入你要查找的同学的学号:"<<endl; cin>>n;while(p&&p->num!=n)p=p->next;if(!p)cout<<"链表中没有学号为:"<<n<<"的同学信息!"<<endl;else cout<<"学号为:"<<n<<"的同学信息如下:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl; cout<<"+-+"<<endl;return 0;int check_name(LinkList &L)char name20;LinkList p=L->next;if(p=NULL)cout<<"链表中没有学生信息,请先输入学生信息!"<<endl;else cout<<"请输入你要查找的同学的姓名:"<<endl; cin>>name;while(p&&strcmp(p->name,name) /strcmp(p->name,name)如果p->name=name,则比较的函数值为0p=p->next;if(!p)cout<<"链表中没有姓名为:name"<<name<<":的同学信息!"<<endl;else cout<<"姓名为:name="<<name<<":的同学信息如下:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;return 0;3.4学生成绩追加功能介绍:追加相应学生的相应成绩。相关代码:int add(LinkList &L)/追加学生信息int n,i,j,k;LinkList p=L->next;if(p=NULL)cout<<"链表中没有学生信息,请先输入学生信息!"<<endl;else cout<<"请输入你要追加的同学成绩的学号:"<<endl; cin>>n;while(p&&p->num!=n)p=p->next;if(!p)cout<<"链表中没有学号为:"<<n<<"的同学信息!"<<endl;else cout<<"请输入要追加的成绩:(相应的追加分数分别为英语i,语文j,数学k,若是不追加,请输入0.)"<<endl;cout<<"i="cin>>i;cout<<endl;cout<<"j="cin>>j;cout<<endl;cout<<"k="cin>>k;cout<<endl; p->english +=i; p->chinese +=j;p->math +=k;cout<<"学号为:"<<n<<"的同学信息如下:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;return 0;3.5修改学生信息功能介绍:修改相应学号学生信息。相关代码:int xiugai(LinkList &L)/修改学生信息int n;char x;LinkList p=L->next;if(p=NULL)cout<<"链表中没有学生信息,请先输入学生信息!"<<endl;else cout<<"请输入你要修改的同学成绩的学号:"<<endl; cin>>n;while(p&&p->num!=n)p=p->next;if(!p)cout<<"链表中没有学号为:"<<n<<"的同学信息!"<<endl;else cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;cout<<"是否要修改学号为"<<n<<"的同学的信息?(y/n)"<<endl;cin>>x;if(x='Y')|(x='y')cout<<"姓名修改为:"cin>>p->name;cout<<endl;cout<<"英语成绩修改为:"cin>>p->english;cout<<endl;cout<<"语文成绩修改为:"cin>>p->chinese;cout<<endl;cout<<"数学成绩修改为:"cin>>p->math;cout<<endl;p->total=p->english+p->chinese+p->math;cout<<"学号为"<<n<<"的同学修改后的信息为:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;return 0;3.6插入学生信息功能介绍:在链表的第i个节点插入学生信息。相关代码:int insert_stu(LinkList &L)/插入学生信息LinkList p,s=L;int j,i,flag=1;if(s->next=NULL)cout<<"链表中没有学生信息,请先输入学生信息!"<<endl;elsecout<<"请输入你要在链表第i个位置中插入学生信息的i值:"<<endl;while(flag)j=0;cin>>i;p=L;while(p&&j<i-1)p=p->next;+j;if(!p|j>i-1)cout<<"输入i值小于1或者大于表长+1,请重新输入!"<<endl;flag=1;else flag=0;s=(LinkList)malloc(sizeof(student);cout<<"请输入学生的基本信息:"<<endl;cout<<"学号:"cin>>p->num;cout<<endl;cout<<"姓名:"cin>>p->name;cout<<endl;cout<<"英语:"cin>>p->english;cout<<endl;cout<<"语文:"cin>>p->chinese;cout<<endl;cout<<"数学:"cin>>p->math;cout<<endl;p->total=p->english+p->chinese+p->math;cout<<"插入的学生信息为:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl;cout<<"+-+"<<endl;s->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<<"请输入你要查找的同学的学号:"<<endl; cin>>n;while(p&&p->num!=n)q=p;p=p->next;if(!p)cout<<"链表中没有学号为:"<<n<<"的同学信息!"<<endl;else cout<<"学号为:"<<n<<"的同学信息如下:"<<endl;cout<<"+-+"<<endl;cout<<"学号: 姓名: 英语: 语文: 数学: 总成绩:"<<endl;cout<<p->num<<" "<<p->name<<" "<<p->english<<" "<<p->chinese<<" "<<p->math<<" "<<p->total<<endl; cout<<"+-+"<<endl;cout<<"是否要删除该同学信息?(y/n)"<<endl;cin>>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个节点插入学生信息。相关代码: 图6.2插入学生信息1.7删除学生信息功能介绍:删除某个学生的信息。 图7.2删除学生信息2.结论本课程设计学生成绩管理系统从最后的测试结果来看,基本上实现了成绩管理系统的几大功能:成绩信息输入、成绩信息显示等。并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。本系统经过测试,证明其运行是稳定、可靠的。但在系统设计中也也遇到很多的问题,并且本系统的功能还需要不断的完善和改进,在以后空闲时间里逐一进行完善,使系统功能更加完善。 六课程设计总结此次数据结构课程设计,从编辑程序到测试,从理论到实践,我学到了很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到很多问题,但经过老师的耐心指导和我自己的努力,问题都一一解决了!此外在设计的过程中还发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,对数据结构有了深入的认识和理解,把以前所学过的知识都重新温故了一遍。20 / 21

    注意事项

    本文(数据结构课程设计——学生成绩管理系统报告书.doc)为本站会员(叶***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开