好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构课程设计报告高校成绩管理系统.doc

21页
  • 卖家[上传人]:新**
  • 文档编号:553157817
  • 上传时间:2023-11-27
  • 文档格式:DOC
  • 文档大小:557KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课程设计说明书课程名称: 数据结构课程设计 专业: 计算机科学与技术 班级: 103012 姓名: 学号: 12 指导教师: 成绩: 完成日期: 2012 年 1 月 13 日16 任 务 书1. 题目:高校成绩管理系统设计内容及要求:1、提供身份验证,和使用系统的权限设置、判定2、(教师用户)能实现103012班同学各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用3、(学生用户或游客)提供对学号或姓名,各学科成绩的查询4、(学生和教师用户)能按各学科分数排序输出(每一科都要能排序输出)5、(教师用户)能统计各科成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出性能需求:1、操作界面美观、友好,有必要的容错处理(如:能判定合理的成绩0~100等);2、查询应根据查询条件合理选择先进的查询方法;3、分数段统计结果要求保存在单独的文件中;开发环境: Microsoft Visual C++ 6.0实现目标:1、身份验证2、成绩查询及管理3、将成绩排序输出4、统计各成绩段分布5、数据容错摘 要本报告叙述了成绩管理的现状况。

      重点介绍了学生成绩管理系统的实现过程:包括系统分析 、数据流程分析、功能设计、系统实现、 系统测试和调试本系统主要功能有用户管理、学生信息录入、学生成绩录入、学生成绩分布、学生成绩查询、成绩排名、登录密码修改、学生记录修改等后面介绍了本系统的具体实现以及关于本系统开发过程中的体会关键词: 学生成绩管理系统,功能,特点 目 录引 言 11 系统设计 22 系统实现 32.1 学生模块实现 32.2 教师模块实现 8结论 13参 考 文 献 14 引 言一、背景几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理但手工管理具有效率低、管理复杂等诸多问题所以我想借实训的机会,开发一个实用的高校成绩管理系统二、目标 建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和 现代化水平帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化三、意义现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。

      在当今信息时代这种传统的管理 方法 必然被计算机为基础的信息管理系统所代替如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率1 系统设计系统功能模块图,如图1.1所示:学生模块修改密码成绩查询成绩排名成绩分布段录入成绩高校成绩管理系统查询成绩教师模块成绩排名修改记录图 1.1 系统功能模块图学生模块: 以学生身份进入系统使用系统的各项功能学生模块包括查询成绩、成绩排名、修改密码三项功能 教师模块:以教师身份进入系统使用系统的各项功能教师模块包括录入成绩、修改记录、成绩排名、成绩分布段、成绩查询共五项功能2 系统实现2.1 学生模块实现功能:查询成绩、成绩排名、修改密码界面 学生界面成绩查询界面(选择查询方式)学号查询界面姓名查询界面查询结果成绩排名界面成绩排名结果修改密码界面先输入旧密码,如输入错误则将提示重新输入直至输入正确;然后再输入新密码,最后再次输入新密码,当两次输入的新密码相同时,密码修改成功主要实现代码以学号查询代码(折半查找)void search_half(int leibie,int gongneng) { unsigned long k; int i,j,m; system("cls"); printf("\n请输入欲查找同学的学号:\n"); scanf("%u",&k); i=0; j=N-1; while(i<=j) { m=(i+j)/2; if (student[m].number==k) { chakan(leibie,gongneng,m); break; } else { if (k=90&&student[i].kemu[m][k]<=100) a++; if(student[i].kemu[m][k]>=80&&student[i].kemu[m][k]<=89) b++; if(student[i].kemu[m][k]>=70&&student[i].kemu[m][k]<=79) c++; if(student[i].kemu[m][k]>=60&&student[i].kemu[m][k]<=69) d++; if(student[i].kemu[m][k]>=0&&student[i].kemu[m][k]<60) e++; } printf("\n成绩分数段统计如下:"); printf("\n优秀(90~100):%d人",a); printf("\n良好(80~89):%d人",b); printf("\n中等(70~79):%d人",c); printf("\n合格(60~69):%d人",d); printf("\n不合格(60以下):%d人",e); printf("\n\n\n是否保存统计结果?(Y/N)"); gets(junt); scanf("%c",&x); if(x=='Y'||x=='y') { printf("\n请输入文件文件路径及文件名:"); scanf("%s",filepn); if((fp=fopen(filepn,"w+"))==NULL) { printf("不能打开文件!\n"); return 0; } fprintf(fp,"成绩分数段统计如下:"); fprintf(fp,"\n优秀(90~100):%d人",a); fprintf(fp,"\n良好(80~89):%d人",b); fprintf(fp,"\n中等(70~79):%d人",c); fprintf(fp,"\n合格(60~69):%d人",d); fprintf(fp,"\n不合格(60以下):%d人",e); fclose(fp); printf("文件已经保存!\n"); getch(); } }堆排序 void sift(struct xueshengxinxi *r[],int t,int w,int k,int m){ int i,j; struct xueshengxinxi *x; i=t; x=r[i]; j=2*i+1; while(j<=w) { if((jkemu[m][k]>r[j+1]->kemu[m][k])) j++; if(x->kemu[m][k]>r[j]->kemu[m][k]) { r[i]=r[j]; i=j; j=2*j+1; } else break; } r[i]=x;}void heapsort(struct xueshengxinxi *r[],int n,int k,int m)/*堆排序*/{ int i; struct xueshengxinxi *x; for(i=n/2-1;i>=0;i--) sift(r,i,n-1,k,m); for(i=n-1;i>0;i--) { x=r[0]; r[0]=r[i]; r[i]=x; sift(r,0,i-1,k,m); } for(i=0;inumber,r[i]->name,r[i]->kemu[m][k]); getch(); }结论程序设计过程有如解决一个实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、指针、链表、命令、函数,然后确定处理过程--算法。

      可得最后结论通过此次的课程设计,在大一C语言学习的基础上,我较为深入的掌握了数据结构与算法的设计方法,具备了一定的独立分析和设计能力和初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能在这次实训的过程中,我上网查阅了很多相关知识,通过查阅资料,掌握了很多以前没有接触到的知识并将其融入自己的程序中我相信这会为以后的编程学习积累经验参 考 文 献 [1] 徐孝凯编著.《数据结构实用教程(第二版)》.北京:清华大学出版社,2006 [2] 范策等.《算法与数据结构(C语言版)》北京:机械工业出版社. 2004 [3] 严蔚敏等.《数据结构(C语言版)》清华大学出版社. 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.