11-12-2-数据结构-课程设计任务书
更新时间:2024-04-05 20:03:01 阅读量: 综合文库 文档下载
郑州轻工业学院
课 程 设 计 任 务 书
题 目:姓 名:院(系):专业班级:学 号:指导教师:时 间:学生成绩分析
周凯丽 数学与信息科学系 信科10-1班 541010010160 时海亮,裴云霞
2012年6月04日至2012年6月15日
1
一、基本要求及主要内容
1. 学生成绩分析问题
(1)问题描述。录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。
(2)基本要求。a)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。b)对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出;计算每个人的平均成绩,按平均成绩排序,并生成文件;求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数;根据姓名或学号查询某人的各门课成绩。c)使用Visual C++ 6.0 控制台应用程序开发,界面美观。
(3)测试数据,如下图所示。 学号 01 02 03 04 05 06 07
姓名 王芳 张强 李浩 黄鹏 尚校 赵鹏 蒋泽 数学 78 89 56 89 67 45 78 英语 77 67 66 86 88 54 76 计算机 90 88 78 85 76 67 70 2
1 问题描述
1.1 问题描述
问题描述。录入并保存一个班级学生多门课程的成绩,并对成绩进行分析
1.2 基本要求
1、通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。2、对文件input.dat中的数据进行处理,要求具有如下功能:
按各门课程成绩排序,并生成相应的文件输出;
计算每个人的平均成绩,按平均成绩排序,并生成文件; 求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数; 根据姓名或学号查询某人的各门课成绩。
3、使用Visual C++ 6.0 控制台应用程序开发,界面美观
3
4
2 程序结构及功能描述
void menu();//主菜单
int printf_student(student stu[]);//输入学生信息 void math(student stu[]);//按数学成绩排序 void eng(student stu[]);//按英语成绩排序 void computer(student stu[]);//按计算机成绩排序 void averg(student stu[]);//按平均成绩输出 void data_analyse(student stu[]);//各科成绩分析 void search_no(student stu[]);//按学号查询 void search_name(student stu[]);//按姓名查询 void main()//主函数
5
3 算法描述
#include\#include\#include\#include\#include\#define N 7
int degree(int num); struct student { char NO[3]; char name[20]; float math; float eng; float computer; float aver; }stu[N]; void menu();
int printf_student(student stu[]); void math(student stu[]); void eng(student stu[]);
void computer(student stu[]); void averg(student stu[]);
void data_analyse(student stu[]); int degree(float num);
void search_no(student stu[]); void search_name(student stu[]); void main() { printf(\输入你需要在功能号\ menu(); int i; scanf(\ switch(i)
6
{ case 1: math(stu);break; case 2: eng(stu);break; case 3:computer(stu);break; case 4:averg(stu);break; case 5:data_analyse(stu);break; case 6:search_name(stu);break; case 7:search_no( stu);break; case 8:printf_student(stu);break; default:printf(\ error!\ } }
void menu() { cout<<\ cout<<\欢迎进入学生成绩系统 ***********\ cout<<\可以实现的功能有:\ cout<<\、按数学成绩排序,并生成相应的文件输出\ cout<<\、按英语成绩排序,并生成相应的文件输出\ cout<<\、按计算机成绩排序,生成相应的文件输出\ cout<<\、查询个人平均成绩\ cout<<\、各科成绩分布\ cout<<\、按姓名查询\ cout<<\、按学号查询\ cout<<\、输入新学生信息\ cout<<\ }
//输入学生情况
int printf_student(student stu[]) { FILE *mp; int i; if((mp=fopen(\
7
{ printf(\ exit(0); } cout<<\ cout<<\请输入学生信息,用空格隔开!***********\ cout<<\ fprintf(mp,\学号\\t姓名\\t数学\\t英语\\t计算机\\n\ for(i=0;i scanf(\omputer); fprintf(mp,%u[i].computer); } fclose(mp); return 0; } //按数学成绩排序 void math(student stu[]) { system(\ cout<<\ cout<<\按数学成绩排序*******************\ cout<<\ FILE *mp,*np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ 8 exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; } mp=fopen(\数学排序.txt\ if(mp==NULL) { printf(\ exit(0); } int k,j; student t; for(k=0;k fprintf(mp,%u[i].computer); } 9 fclose(mp); } //按英语成绩排序 void eng(student stu[]) { system(\ cout<<\ cout<<\按英语成绩排序*******************\ cout<<\ FILE *mp,*np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; } mp=fopen(\英语排序.txt\ if(mp==NULL) { printf(\ exit(0); } int k,j; student t; for(k=0;k 10 stu[j]=stu[j+1]; stu[j+1]=t; } } cout<<\学号\\t\姓名\\t\英语\\t\数学\\t\计算机\ fprintf(mp,\学号\\t姓名\\t英语\\t数学\\t计算机\\n\ for(i=0;i fprintf(mp,%u[i].computer); } fclose(mp); } //按计算机成绩排序 void computer(student stu[]) { system(\ cout<<\ cout<<\按计算机成绩排序*****************\ cout<<\ FILE *mp,*np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; 11 } mp=fopen(\计算机排序.txt\ if(mp==NULL) { printf(\ exit(0); } int k,j; student t; for(k=0;k fprintf(mp,\ng,stu[i].math); } fclose(mp); } //求个人平均成绩 void averg(student stu[]) { system(\ cout<<\ 12 cout<<\按个人平均成绩排序****************\ cout<<\ FILE *mp,*np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; } mp=fopen(\按个人平均成绩排序.txt\ if(mp==NULL) { printf(\ exit(0); } int j; for(j=0;j 13 } cout<<\学号\\t\姓名\\t\计算机\\t\数学\\t\英语\\t\平均成绩\ fprintf(mp,\学号\\t姓名\\t计算机\\t数学\\t英语\\t平均成绩\\n\ for(i=0;i fprintf(mp,%u[i].eng,stu[i].math,stu[i].aver); } fclose(mp); } //学科成绩 void data_analyse(student stu[])//各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数; { float ma[8],en[8],co[8];//各门课0.平均1.最高2.最低3.不及格。。。。 for(int j=0;j<8;j++) { ma[j]=0; en[j]=0; co[j]=0; } FILE *np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { 14 //平均 ma[0]+=stu[i].math; en[0]+=stu[i].eng; co[0]+=stu[i].computer; //各门课统计、最高 if(stu[i].math>ma[1]) ma[1]=stu[i].math; if(stu[i].eng>en[1]) en[1]=stu[i].eng; if(stu[i].computer>co[1]) co[1]=stu[i].computer; //各门课统计、最低 if(stu[i].math switch(degree(stu[i].math)) { case 0:ma[3]++;break; case 1:ma[4]++;break; case 2:ma[5]++;break; case 3:ma[6]++;break; case 4:ma[7]++;break; } switch(degree(stu[i].eng)) { case 0:en[3]++;break; case 1:en[4]++;break; case 2:en[5]++;break; case 3:en[6]++;break; 15 case 4:en[7]++;break; } switch(degree(stu[i].computer)) { case 0:co[3]++;break; case 1:co[4]++;break; case 2:co[5]++;break; case 3:co[6]++;break; case 4:co[7]++;break; } i++; } fclose(np); ma[0]=ma[0]/N; en[0]=en[0]/N; co[0]=co[0]/N; printf(\平均\\t最高\\t最低\\t不及格\\t60~69\\t70~79\\t80~89\\t90~100\\n\ printf(\数学\\t\ for(int k=0;k<8;k++) printf(\ printf(\英语\\t\ for(int n=0;n<8;n++) printf(\ printf(\计算机\\t\ for(int m=0;m<8;m++) printf(\ printf(\ } int degree(float num) { if(num<60) return 0; if(num<70&&num>59) return 1; if(num<80&&num>69) 16 return 2; if(num<90&&num>79) return 3; if(num<100&&num>89) return 4; } //按学号查找 void search_no(student stu[]) { system(\ cout<<\ cout<<\请输入要查询同学的学号**************\ cout<<\ cout<<\请输入要查询学生学号(01-07):\ char no[3]; cin>>no; FILE *np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; } int j,flag=0; for(j=0;j 17 printf(%u[j].computer); flag=1; } } if(flag==1) printf(\找到该学生信息!\\n \ else printf(\没有该学生的信息!\\n\ } //按姓名查找 void search_name(student stu[]) { system(\ cout<<\ cout<<\请输入要查询同学的姓名**************\ cout<<\ cout<<\请输入要查询学生姓名:\ char name[20]; cin>>name; FILE *np; np=fopen(\学生信息.txt\ if(np==NULL) { printf(\ exit(0); } int i=0; while(fscanf(np,\].eng,&stu[i].computer)!=EOF) { i++; } 18 int j,flag=0; for(j=0;j 19 4 实验数据和实验结果 20 21 22 23 24 5 开发难点及解决技巧 难点:在求各科成绩分析情况的时候,各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。要求的数据太多 解决方法:建立了三个数组,每个中含有八个数据,分别代表要求的数据 25 6 小结 通过本次课程设计,巩固复习了的以前学习c++和c语言的知识;提高了函数之间调用的使用能力,提高了对问题的综合处理能力。 26 课程设计成绩评定表 评定项目 学习态度 答疑和设计情况 内 容 学习认真,态度端正,遵守纪律。 认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。 设计方案正确、表达清楚;设计思路、说明书质量 实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。 回答问题情况 总成绩 回答问题准确,基本概念清楚,有理有据,有一定深度。 采用五级分制:优、良、中、及格、不及格 10 40 40 满分 10 评分 总分 指导教师评语: 签名: 年 月 日 27 28
正在阅读:
11-12-2-数据结构-课程设计任务书04-05
三段式教学法在高中化学中的应用10-08
烧结厂余热锅炉应急救援预案05-01
八年级上册数学教学计划总结范文06-02
以土地使用权作为出资的合作开发合同的效力认定标准及司法实务研究01-17
大学生实习纳入统一管理03-12
三年级上册英语教案Unit 3 Whats Your Number Lesson 2 重大版04-20
森林健康与林业生物灾害管理01-10
PDF全文阅览- 在生物化学教学中渗透人文素养教育05-22
优秀员工代表获奖感言(8篇)03-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 任务书
- 数据结构
- 课程
- 设计
- 11
- 12
- 文档1:安装SAP和BW
- 《华严》奥旨 - 修五止六观,入一真法界
- 《篮球最佳出场阵容的选拔》
- 高一化学《2.2 离子反应》教案 新人教版
- 随岗实习报告
- 混凝土灌注桩工程单桩及单元工程(施工、监理单位用表样式)(1)
- 2008年安全员考试试题
- 《心经》全文详细解读
- 李佳总结:行政法常用15句话
- 《“十二五”期间深化医药卫生体制改革规划暨实施方案》(国发[2
- 三年级上册品德与社会教案
- 政府投资项目应禁止以BT方式发包
- 流体力学课后作业
- XXXX企业安全生产标准化现场评审首次会议讲话稿
- 水暖施工组织设计
- 计算机网络实验3TCP实验
- 狠抓基础管理 强化责任落实
- 最新北师大版小学 五年级数学上册全册教学设计教案 - 图文
- 青州中心小学班主任费考核方案
- 化学工程基础实验指导书