欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数据结构课程设计——成绩管理系统.doc

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

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

    数据结构课程设计——成绩管理系统.doc

    Guangxi University of Science and Technology课程设计报告课程名称: 数据结构 课题名称: 成绩管理系统的设计 姓 名: 王永源 学 号: 院 系: 计算机学院 专业班级: 通信121 指导教师: 完成日期: 2013年12月15日 目 录 第1部分 课程设计报告3第1章 课程设计目的3第2章 课程设计内容和要求42.1 问题描述42.2 设计要求4第3章 课程设计总体方案及分析43.1 问题分析43.2 概要设计53.3 模块结构图63.4 流程图63.5 详细设计63.6 调试分析83.7 测试结果83.8 参考文献10第2部分 课程设计总结10附录(源代码)12第1部分 课程设计报告第1章 课程设计目的数据结构作为一门计算机专业必修的学科之一,主要研究数据的各种逻辑结构和存储结构,以及对数据的各种基本操作。一般来说,大体上可以分为三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。作为计算机专业的学生,我们应该很好的掌握这门技术。在课堂上,我们学到的只是理论知识,很少有过自己动手实践的机会。那么,课程设计就是为解决这个问题的一个很好平台。 数据结构这门课具有比较强的理论性,同时也具有较强的实践性。其中课程设计就是是一个重要的教学环节。通过课程设计,我们需要达到以下目的:¨ 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力,并进一步学习 和掌握C语言基础、数据结构算法基础;¨ 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;¨ 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;¨ 通过上机操作和调试程序,培养用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;¨ 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;第2章 课程设计内容和要求2.1问题描述: 学生成绩管理系统是学校教务管理的重要组成部分,处理信息量很大。该题目是对学生的成绩管理做简单的模拟,其中学生信息包括学号、姓名与成绩。成绩分为课程1成绩、课程2成绩、课程3成绩、课程4成绩和总成绩及平均成绩。另外还需统计出成绩优秀的学生人数。该成绩管理系统要求可以登记学生成绩、查询学生成绩、插入学生成绩、删除学生成绩等功能。2.2设计要求:1. 用链表实现应用系统,完成链表的建立以及链表中信息的插入、删除、查找、修改、输出等操作。2.建立学生成绩单链表,链表中每个节点由五个域组成,分别是学号、姓名、性别、成绩、存放下一个结点地址的next域。3. 通过菜单选择操作方式完成以下功能:(1) 登记学生成绩;(2) 查询学生成绩;(3) 插入学生成绩;(4) 删除学生成绩;(5) 输出学生成绩;(6) 统计优秀学生人数; 第3章 课程设计总体方案及分析3.1 问题分析:该题目涉及到单链表的各种操作,包括单链表的建立,结点的查找、插入、删除等基本运算。首先建立学生成绩单链表,链表中每个节点由五个域组成,分别是学号、姓名、性别、成绩、存放下一个结点地址的next域。然后将要求完成的各项功能写成函数,登记学生成绩对应建立单链表的功能。由于该系统处理的信息量大,采用单链表的形式容易处理插入、删除学生信息,故采用单链表来存储学生信息,用结构体类型定义每个学生记录,这样单链表中每个结点可描述为:typedef struct Nodeint num;char nameMALLEN;char sex20int score1;int score2;int score3;int score4;int total;double average;struct Node *next;Node;3.2 概要设计本项目的模块结构如图。图中方块表示函数,方块中指出函数名,箭头表示函数间的调用关系,虚线表示文件的组成。学生成绩管理系统程序包含以下函数:(1) Node *create(Node *h,int n):创建学生成绩信息表。(2) void find(Node *h):查找学生成绩。(3) void insert(Node *h):插入学生信息。(4) void shanchu(Node *h):删除学生信息。(5) void youxiu(Node *p):统计优秀学生人数。(6) void output(Node *h):输出全部学生信息。 3.3 模块结构图: 图3.3.13.4 流程图图3.4.13.5 详细设计1. 创建学生成绩信息表Node *create(Node *h,int n)Node *p,*r;int i;h=(Node *)malloc(sizeof(Node);h->next=NULL;r=h;for(i=1;i<=n;i+)2. 插入学生成绩使用以下程序:void insert(Node *h)Node *p,*q,*r;/r=h;p=h->next;q=(Node *)malloc(sizeof(Node);printf("请输入插入学生的学号:");scanf("%d",&q->num);printf("请输入学生的姓名:");scanf("%s",q->name);printf("请输入学生的第1门成绩:");scanf("%d",&q->score1);printf("请输入学生的第2门成绩:");scanf("%d",&q->score2);printf("请输入学生的第3门成绩:");scanf("%d",&q->score3);printf("请输入学生的第4门成绩:");scanf("%d",&q->score4);q->total=q->score1+q->score2+q->score3+q->score4;q->average=q->total/4;q->next=NULL;while(p!=NULL)r=p;p=p->next;/whiler->next=q;/r=r->next;/insert3. 查找学生成绩:void find(Node *h)4.删除学生信息:void shanchu(Node *h) 5. 统计优秀学生人数:void yoxiu(Node *p)6.输出全部学生信息:void output(Node *h)注:具体源代码见附录3.6 调试分析 (1) 开始执行程序,系统创建链表,进入输出的选择界面; (2)按需要进行的操作选择输入相应的选项,系统执行输入的字符命令; (3)输出相应的数据; (4)测试无误,完成测试;3.7 测试结果1. 首先,进入成绩管理系统的界面 图3.7.1 2.输入“1”,进入成绩登记界面,登记成绩 .图3.7.2 3.输入“5”,输出所有所登记学生的成绩及平均成绩 图3.7.3 4.输入“6”,输出优秀学生总人数及其各自的信息 图3.7.4 5.输入“2”,查询学生成绩 图3.7.5 6.输入“3”,插入学生成绩 图3.7.6 7.,输入“4”,删除学生成绩 图3.7.7 3.8 参考文献 【1】 刘勇 郭韶升 张炜 周丽雅 数据结构实验与实训教程 国防工业出版社 2011年7月 【2】 严蔚敏 吴伟民 数据结构(C语言版) 清华大学出版社 2007年 【3】 谭浩强 C语言程序设计(第四版) 清华大学出版社 2010年6月 第2部分 课程设计总结为了备考4级,花了大量的时间复习,本想说终于松了一口气。但回想了一下,16周还有更重的任务,数据结构课程设计及考试、信号与系统测试等。所以,考完4级后我立马转身把时间投入到课程设计中。整个过程花了一周多的时间才完成。回想过去的一周,当我看到题目的时候,一头雾水,什么都不懂,回想往事,忙于学生会工作、班级工作等我忽视了学习这一块,也就在此时我认识到了学习刻不容缓的真实性。看不懂怎么办?我去了图书馆找资料,学校的图书是多,但关于数据结构这一块,虽然书不算少,但自我感觉对本次课程设计有用的不多,而且还是很旧的。在图书馆找了许久,终于找到了我设计的源泉数据结构实验与实训教程(国防工业出版社),从此开始了我的数据结构课程设计之路。我的C语言基础不好,兴趣也不在程序这一块,所以刚开始的时候有很大的难度,在这里,我不得不感谢大三计Y的一个学长和跟我同在一个学生会部门同届计Y的一个同学。他们给予了我很大的帮助,也就是在他们的帮助,我顺利地做好了课程设计,当然,最重要的是我的不懈努力。 通过本次的课程设计,我进一步学习和掌握了C语言、数据结构的基础知识和理论,各方面都有了一定的收获。尤其是C语言的进步让我深刻的感受到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。在理论学习和上机实践的各个环节中,通过自主学习和请教学长及同学,我收获了不少。当然也遇到不少的问题,也正是因为这些问题引发的思考给我带了收获。在这段时间里,我对for、while等的循环函数用法更加熟悉,逐渐形成了较好的编程习惯。在学长的指导帮助下,同学们课余时间的讨论中,这些问题都一一得到了解决。在程序的调试能力上,无形中得到了许多的提高。例如:头文件的使用,变量和数组的范围问题,定义变量时出现的问题等等。在实际的上机操作过程中,不仅是让我们了解数据结构的理论知识,更重要的是培养解决实际问题的能力,所以相信通过此次课程设计可以提高我们分析设计能力和编程能力,为后续课程的学习及实践打下良好的基础。在这次短短的课程实践里,我就清楚的认识到实践是检验真理的正确性,我学会了如何解决现实问题,如何将理论知识应用到实际问题上。总的来说,我认为课程设计很有必要,也很重要。附 录/ 成绩管理系统2.cpp : 定义控制台应用程序的入口点。/#include "stdafx.h"/ 成绩系统.cpp : 定义控制台应用程序的入口点。/#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define MAXLEN 100#define NULL 0typedef struct Nodeint num;char nameMAXLEN;char sex20;int score1;int score2;int score3;int score4;int total;double average ;struct Node *next;Node;/*创建学生成绩信息表*/Node *create(Node *h,int n)Node *p,*r;int i;h=(Node *)malloc(sizeof(Node);h->next=NULL;r=h;for(i=1;i<=n;i+)p=(Node *)malloc(sizeof(Node);printf("请输入学生的学号:");scanf("%d",&p->num);printf("请输入学生的姓名:");scanf("%s",p->name);printf("请输入学生的性别:");scanf("%s",p->sex);printf("请输入学生的第1门成绩:");scanf("%d",&p->score1);printf("请输入学生的第2门成绩:");scanf("%d",&p->score2);printf("请输入学生的第3门成绩:");scanf("%d",&p->score3);printf("请输入学生的第4门成绩:");scanf("%d",&p->score4);p->total=p->score1+p->score2+p->score3+p->score4;p->average=1.0*p->total/4;p->next=NULL;r->next=p;r=r->next;/forreturn h;/createvoid add(Node *h)Node *p,*q,*r;/r=h;p=h->next;q=(Node *)malloc(sizeof(Node);printf("请输入插入学生的学号:");scanf("%d",&q->num);printf("请输入学生的姓名:");scanf("%s",q->name);printf("请输入学生的性别:");scanf("%s",q->sex);printf("请输入学生的第1门成绩:");scanf("%d",&q->score1);printf("请输入学生的第2门成绩:");scanf("%d",&q->score2);printf("请输入学生的第3门成绩:");scanf("%d",&q->score3);printf("请输入学生的第4门成绩:");scanf("%d",&q->score4);q->total=q->score1+q->score2+q->score3+q->score4;q->average=1.0*q->total/4;q->next=NULL;while(p!=NULL)r=p;p=p->next;/whiler->next=q;/r=r->next;/addvoid find(Node *h)int k;Node *p;p=h->next;printf("请输入要查找学生的学号:n");scanf("%d",&k);while(p&&p->num!=k)p=p->next;if(p)printf("学号t姓名t性别t成绩1t成绩2t成绩3t成绩4t总成绩t平均成绩n");printf("%dt%st%st%dt%dt%dt%dt%dt%0.2lfn",p->num,p->name,p->sex,p->score1,p->score2,p->score3,p->score4,p->total,p->average);/ifelseprintf("没找到!n");/findvoid Delete(Node *h)int k;Node *p,*q;q=h;p=h->next;printf("请输入待删除学生的学号:");scanf("%d",&k);while(p&&p->num!=k)q=p;p=p->next;/whileif(p)q->next=p->next;free(p);elseprintf("该学生信息不存在,无法删除!n");/Deletevoid List(Node *h)Node *p;p=h->next;printf("学号t姓名t性别t成绩1t成绩2t成绩3t成绩4t总成绩t平均成绩n");while(p!=NULL)printf("%dt%st%st%dt%dt%dt%dt%dt%0.2lfn",p->num,p->name,p->sex,p->score1,p->score2,p->score3,p->score4,p->total,p->average);p=p->next;/Listvoid youxiu(Node *p)Node *q=p->next ;int n=0;while(q!=NULL)if(q->average >=90)n+;q=q->next;q=p;printf("优秀学生总数:%dn",n); printf("优秀学生详细信息如下:n"); printf("学号t姓名t性别t成绩1t成绩2t成绩3t成绩4t总成绩t平均成绩n"); while(q!=NULL) if(q->average >=90)printf("%dt%st%st%dt%dt%dt%dt%dt%0.2lfn",q->num,q->name,q->sex,q->score1,q->score2,q->score3,q->score4,q->total,q->average);q=q->next;void main()Node *p;int k,n; /控制循环的标志while(1)printf(" -n");printf(" 数据结构课程设计 Copyright:王永源 201200402016n ");printf(" |+|n");printf(" | 学生成绩管理 |n");printf(" |+|n");printf(" | 1.登记成绩 |n");printf(" | 2.查询成绩 |n");printf(" | 3.插入成绩 |n");printf(" | 4.删除成绩 |n");printf(" | 5.输出所有学生成绩 |n");printf(" | 6.输出优秀学生总人数及各自成绩|n");printf(" | 0.退出程序 |n");printf(" -n");printf(" | 请输入你的选择(0-6): |n");printf(" -n");scanf("%d",&k);switch(k)case 1:printf("请输入学生人数:");scanf("%d",&n);p=create(p,n);break;case 2:find(p); break;case 3:add(p);break;case 4:Delete(p);break;case 5:List(p);break;case 6: youxiu(p);break;case 0:exit(0);default:printf("选择错误,重新开始!n");/switch/while

    注意事项

    本文(数据结构课程设计——成绩管理系统.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开