版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机应用技术系课程设计报告书数据结构与算法课程设计报告书题目: 学生成绩管理 班级: 学号: 姓名: 指导教师: 周期: 2013-12-9至2013-12-13成绩: 2013年 12月 13日一、课程设计的目的与要求 (一)课程设计目的与任务目的:通过本课程设计的实践,全面总结c+课程学习中的数据类型、结构类型、数组、函数、指针、结构体等基本概念,掌握其使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写用用程序。培养使用面向对象的程序设计方法编写与计算机程序的功能。数据结构是一门实践性很
2、强的课,必须重视实践环节。要通过实践积累自己的知识。要求:通过设计一个学生成绩管理系统要求以学生成绩管理业务为背景,设计一个“学生成绩管理系统”程序。对于学校来讲,学生成绩管理系统是不可缺少的组成部分,主要是对学生成绩资料的录入、浏览、插入、查询和删除等基本功能的实现(二)题目要求 用链表数据结构完成一个学生管理系统。设学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有学号和各门功课的成绩。设每位学生学习数学、英语、语文、物理和化学5门课程。具体功能要求如下:1、学生信息录入功能:输入每个学生的信息:学号、姓名、性别、数学、语文、英语、物理、化学五门课的成绩。可插入一个或多个学生信
3、息到当前编辑的班级数据中。可删除一个或多个学生信心。2、文件保存功能:学生信息每一个班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。3、查询功能:浏览所有学生信息。按学号查询信息。按姓名查询信息。查询一个班的总成绩和平均成绩。查询某一门课的总成绩和平均成绩。查询某一门课分数段学生数。4、输出功能:按学号输出一个班学生信息:学号、姓名、性别、和各科成绩到文件。按总成绩输出从高到低输出学号、姓名信息。 二、设计正文1、系统分析(1)自定义数据结构体,用于存储学生的基本信息,然后定义一个单链表结构,并为该链表定义结构变量和指针变量。(2)运用指针进行下一条记录的地址查找。(3)运用了链表
4、的插入排序法对学生成绩的总分进行了排序。2、功能详细描述及框图功能:(1)、成绩的录入:包括学生学号、姓名、性别和各门课程成绩的录入。(2)、成绩的查询:可以根据学号或姓名查询某个学生的成绩。(3)、 成绩的修改:可以根据学号或姓名来修改相应的学生的成绩。(4)、 数据的删除:可以根据学号或姓名指定删除某个学生的数据。(5)、成绩的统计分析:包括总人数、最高成绩、最低成绩、平均成绩、各个分段的人数(100-90、89-80、79、69-60、59、50以下)、及格率。(6)、总成绩和平均成绩的查询:可以根据学号或姓名查询。(7)、浏览所有学生信息。(8)、将所有学生信息保存成文件。(9)、打开
5、指定的数据文件。(10)、按总成绩排序输出学生信息。(11)、按学号顺序输出学生信息,并可保存成文件。框学生成绩管理系统成绩管理学生基本信息输入学生成绩查询学生信息删除学生信息修改学生信息插入学生成绩按平均分查询信息保存文件退出本系统按总分查询浏览学生信息 图11系统结构功能图3、主要功能逻辑过程和实现算法功能逻辑过程:开始值1,3,4值8值9值7,2,6,5值10,11文件保存功能模块学生信息录入模块文件打开功能模块查询功能模块报表输出功能模块用户输入,并将值保存至m中m结束图系统流程图实现算法:#include#include#include#includeusing namespace
6、std;const int M = 20;class stucopypublic: char id20; char sex10; char name10; double grade5; double sumsum; double average;/;class student friend class list;public: char id20; char sex10; char name10; double grade5; student() int i; next=0; for (i=0; i20; i+) idi=0; for (i=0; i10; i+) sexi=0; for (i
7、=0; i10; i+) namei=0; void s(); void setid(char id120) for(int i=0; i20; i+) idi=id1i; void setsex(char sex110) for(int i=0; i10; i+) sexi=sex1i; void setname(char name110) for(int i=0; i10; i+) namei=name1i; void setgrade(double grade15) for(int i=0; i5; i+) gradei=grade1i; student *next; char * ou
8、tid() return id; ; char * outsex() return sex; ; char * outname() return name; ; double outsum() double sum=0; for(int i=0; ioutgrade(i); return sum; double outav() return this-outsum()/5; double outgrade(int i) return gradei; ; void intgrade(int);void student:intgrade(int j) switch (j) case 1: cout
9、grade0; break; case 2: coutgrade1; break; case 3: coutgrade2; break; case 4: coutgrade3; break; case 5: coutgrade4; break; void student:s() coutid; coutname; coutsex; coutgrade0; coutgrade1; coutgrade2; coutgrade3; coutgrade4;class listprivate: double high5,low5;public: student *last,*first; double
10、totoal; list() last=0; first=0; ; list(); void instu();void outstu(char *); int delstu(char *n); void outstu1(char *); int delstu1(char *n); void outsum(char *); void outsum1(char *); void think(); void search(char s10,int);void search1(char s20,int); double hi(int i); double lo(int i); void av(int
11、i); void ev(int i); void scanall();int main()stucopy stuM; stucopy stutemp; list will; student *p, *p1=new student(),*q; ifstream input; ofstream output; char file20,classname20,temp80,id20,name9,sex110; int m=0,n=0,j=0,i=0; double grade15; for(i=0; i20; i+) idi=0; for(i=0; i9; i+) namei=0; do cout/
12、-n 0、退出系统。n 1、成绩的录入:包括学生学号、姓名、性别和各门课程成绩的录入。n 2、成绩的查询:可以根据学号或姓名查询某个学生的成绩。n 3、 成绩的修改:可以根据学号或姓名来修改相应的学生的成绩。n 4、 数据的删除:可以根据学号或姓名指定删除某个学生的数据。n 5、成绩的统计分析:包括总人数、最高成绩、最低成绩、平均成绩、n 各个分数段的人数(100-90、89-80、79、69-60、59、50以下)、及格率。n 6、总成绩和平均成绩的查询:可以根据学号或姓名查询。n 7、浏览所有学生信息。n 8、将所有学生信息保存成文件。n 9、打开指定的数据文件。n 10、按总成绩排序输出
13、学生信息。n 11、按学号顺序输出学生信息,并可保存成文件。n /-n; coutendlm; if (m=1) cout请输入文件名:file; cout请输入班级名称:classname; output.open(file); outputclassname成绩单endlsetw(8)学号setw(8)姓名setw(6)性别setw(6)数学setw(6)英语setw(6)语文setw(14)化学setw(6)物理setw(8)setw(10)平均成绩endl; for(j=0; ji; j+) outputsetw(8)stuj.idsetw(8)setw(6)stuj
14、.sexsetw(6)stuj.grade0setw(6)stuj.grade1setw(6)stuj.grade2setw(14)stuj.grade3setw(6)stuj.grade4setw(8)stuj.sumsumsetw(10)stuj.averageendl; output.close(); break; coutm; while(m=1);5、界面设计6、系统测试 (1)主界面(2)成绩的录入:包括学生学号、姓名、性别和各门课程成绩的录入。(3)成绩的查询:可以根据学号或姓名查询某个学生的成绩。(4) 成绩的修改:可以根据学号或姓名来修改相应的学生的成绩。(5)数据的删除:可以根据学号或姓名指定删除某个学生的数据。(6)成绩的统计分析:包括总人数、最高成绩、最低成绩、平均成绩、各个分数段的人数、及格率。(7)总成绩和平均成绩的查询:可以根据学号或姓名查询(8) 浏览所有学生信息(9) 将所有学生信息保存成文件(10) 打开指定的数据文件(11) 按总成绩排序输出学生信息(12) 按学号顺序输出学生信息,并可保存成文件三、小组成员分工说明独立完成四、课程设计总结或结论1 课程设计过程中出现的技术难点和解决方法:技术难点:开始对文件的理解和操作不明白,不能很好的操作文件,其中最大的问题是对已存在的文件的读取问题,和程序运行不了问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子封装材料制造工岗前技术操作考核试卷含答案
- 景泰蓝点蓝工安全培训评优考核试卷含答案
- 甲壳类繁育工岗前模拟考核试卷含答案
- 铸管工岗中基础在岗考核试卷含答案
- 制卤工复试知识考核试卷含答案
- 铸管备品工岗中水平考核试卷含答案
- 农药制剂操作工操作知识竞赛考核试卷含答案
- 野生植物监测工工作质量考核试卷含答案
- 机场场务员基础验收知识考核试卷含答案
- 石膏制品生产工岗前基础在岗考核试卷含答案
- 有课件怎么生成教学设计
- 埃及创意绘画课件
- HB20542-2018航空用高闪点溶剂型清洗剂规范
- SJG 193-2025 《新型产业用地(M0)建筑设计通则》
- 口腔材料学 第三章 牙体缺损的修复学习课件
- YY-T 0764-2009 眼科仪器 视力表投影仪
- 第一节土石方工程课件
- 2024年普通话水平测试朗读短文50篇
- 水利小型农田水利工程质量评定常用表式
- 乒乓球循环赛积分表决赛
- 土地复垦验收确认文件范本
评论
0/150
提交评论