



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计报告( 2008/ 2009 学年 第 二 学期)题目: 学生成绩管理系统专学生业姓名班级学号指导教师指导单位计算机学院软件基础教学中心日期评分项优秀良好中等差评分细则遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简教师签名:短日月年评语评分等级备评分等级有五种:优秀、良好、中等、及格、不及格注学生成绩管理系统一、 课题内容和要求学生成绩的管理是每个学校必须具有的管理功能, 主要是对学生的学习成绩这方面的管理。该系统模拟一个简单的学生成绩管理系统, 要求对文件中
2、所存储的学生成绩进行各种常规操作,如:排序、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生成绩管理系统。查询某门课成绩总分排二、需求分析学生成绩管理系统名前生信息i=i+1,j=j+1计算基本信息录入学号与各科成绩NNNj<COURSE -NUMY 输出成绩总分,平均分结束i<STU -NUMSi.Scorea -1=90主菜单排序按排序YY平均与总分输出学号分总分=90,5的学门 ,student.dat1)数据录入功能: 对进行数据录入录入每个学生的学号、4( 课程的成绩 4 门课程的总分与平均分)计算功能
3、:计算每个学生(2)排序功能:按总分从高到低排出名次,并按名次输出每个学生的情况,包3(括学号、各科成绩、平均分和总分。分以上 (根据用户要求输出某门课程查询功能:成绩在由键盘输入课程号)90(4)含(且总分在前五名的学生情况,包括:学号、各科成绩、平均分和总分。)分90 要求:所有输入和输出结果能保存在文件中。输入一个学号时, 查询出此生的所有课程情况,格式如下:学号 xxx 成绩 xxx 成绩 xxx成绩xxx成绩xxx总分xxx平均分xxx学号 xxx 成绩学号 xxx 成绩学号 xxx 成绩学号 xxx 成绩xxx 成绩 xxx 成绩xxx 成绩 xxx 成绩xxx 成绩 xxx 成绩
4、xxx 成绩 xxx 成绩xxx 成绩 xxx 总分 xxx 平均分 xxxxxx 成绩 xxx 总分 xxx 平均分 xxxxxx 成绩 xxx 总分 xxx 平均分 xxxxxx 成绩 xxx 总分 xxx 平均分 xxx三、源程序代码#define STU_NUM5/*最多的学生人数*/*最多的考试科目4*/#define COURSE_NUM#define TUB 30/*学生数*/#include<stdio.h>FILE *fp;struct studentintnumber;/*每个学生的学号*/*每个学生M 门功课的成绩*/intscoreCOURSE_NUM;su
5、m;int/*每个学生的总成绩*/float average;/*每个学生的平均成绩*/sTUB=0,0,0,0;typedef struct student STU;char menu(void)/* 菜单函数 */char ch;Management for Students' scores n);printf(Append recordn);printf(List record n);printf(printf(printf(w Write to a File n); printf(Search record by score over 90n); Sort Score in d
6、escending order by sum n);Read from a File n);printf(Exitn );printf(Please Input your choice:);scanf( %c,&ch);return(ch);void append()/*添加记录 ,计算出总分和平均值*/int i,j;牰湩晴尨请输入数据:n);/ 输入数据for(i=0;i<STU_NUM;i+) 牰湩晴尨学号 :); scanf(%d,&si.number);牰湩晴尨成绩:);for(j=0;j<COURSE_NUM;j+)scanf(%d,&si.sc
7、orej);for(i=0;i<STU_NUM;i+)/求总分for(j=0;j<COURSE_NUM;j+) si.sum=si.sum+si.scorej;si.average=(double)(si.sum)/(COURSE_NUM);牰湩晴尨学号%d ,si.number);牰湩晴尨成绩);for(j=0;j<COURSE_NUM;j+)printf(%d ,si.scorej);牰湩晴尨总分%d ,si.sum);牰湩晴尨平均分%.2f n,si.average);void list()/* 显示记录 _在屏幕中打印所有学生成绩*/int i,j;for(i=0;i
8、<STU_NUM;i+) 牰湩晴尨学号 =,si.number);for(j=0;j<COURSE_NUM;j+)牰湩晴尨分数M,si.scorej);牰湩晴尨总分M, 平均分%4.2fn,si.sum,si.average);且总分在前分以上由键盘输入课程号void score_search()/* 输出某门课程() 成绩在 90( 含 90) 分*/五名的学生情况int a,i,j;printf(Please input student's score number(1,2,3,4) you want:n);scanf(%d,&a);for(i=0;i<S
9、TU_NUM;i+)if(si.scorea -1>=90)%d ,si.number);牰湩晴尨学号for(j=0;j<COURSE_NUM;j+)%d ,si.scorej);牰湩晴尨成绩%.2fn,si.sum,si.average);平均分 %d 总分牰湩晴尨void descending_sum()/* 按总分排序 _降序排列 ,打印出学生姓名和成绩 */ int i,j;STU t;for(i=0;i<STU_NUM;i+)for(j=i+1;j<STU_NUM;j+)if(si.sum<sj.sum)t=sj;sj=si;si=t;for(i=0;i
10、<STU_NUM;i+)%d ,si.number);牰湩晴尨学号 );牰湩晴尨成绩 for(j=0;j<COURSE_NUM;j+)printf(%d ,si.scorej);%.2fn,si.sum,si.average);平均分 %d总分牰湩晴尨 */ void write()/*写入文件 FILE *fp;int i;fp=fopen(student_data,wb);for(i=0;i<STU_NUM;i+)fwrite(&si,sizeof(struct student),1,fp);printf(write to file successfully.n)
11、;fclose(fp);void read()/* 从文件中读出成绩*/FILE *fp;int i,j;fp=fopen(student_data,b);if(fp=NULL)printf(cannot open this file!n);for(i=0;i<STU_NUM;i+)fread(&si,sizeof(struct student),1,fp);for(i=0;i<STU_NUM;i+)牰湩晴尨学号%d ,si.number);牰湩晴尨成绩);for(j=0;j<COURSE_NUM;j+)printf(%d ,si.scorej);%.2fn,si.s
12、um,si.average);平均分%d 总分牰湩晴尨 fclose(fp);*/主程序 void main()/*_选择要执行的命令FILE *fp;char ch;while(1)ch=menu();switch(ch)case'1':append();break;case'2':list();break;case'3':score_search();break;case'4':descending_sum();break;case'w':write();break;case'r':read()
13、;break;default:printf(Wrong choice!n);概要设计三、结构体类型的studentstruct studentintnumber;/*每个学生的学号*/*每个学生M 门功课的成绩intscoreCOURSE_NUM;*/sum;/*每个学生的总成绩*/intfloat average;/*每个学生的平均成绩*/sTUB=0,0,0,0;typedef struct student STU;流程图:(按课程号查找成绩在 90 分以上 ( 含 90 分 ) 且总分在前五名的学生情况,包括:学号、各科成绩、平均分和总分)开始输入课程号i=o,j=0四、测试数据及其结果
14、分析界面1 Append record2 List record3 Search record by score over 904 Sort Score in descending order by sum w Write to a Filer Read from a File0 ExitPlease Input your choice : 1:请输入数据:学号: 1成绩: 98 94 93 93学号: 2成绩: 95 94 93 99学号 1 成绩 98 成绩 94 成绩 93 成绩 93 总分 376 平均分 94.5 学号 2 成绩 95 成绩 94 成绩 93 成绩 99 总分 381
15、 平均分 95.251 Append record2 List record3 Search record by score over 904 Sort Score in descending order by sum w Write to a Filer Read from a File0 ExitPlease Input your choice : 4学号 2 成绩 95 成绩 94 成绩 93 成绩 99 总分 381 平均分 95.25 学号 1 成绩 98 成绩 94 成绩 93 成绩 93 总分 376 平均分 94.5Append record12 List record3 Se
16、arch record by score over 904 Sort Score in descending order by sum w Write to a Filer Read from a File0 ExitPlease Input your choice : 3Please input student's score number(1,2,3,4) you want:1学号 2 成绩 95 成绩 94 成绩 93 成绩 99 总分 381 平均分 95.25 学号 1 成绩 98 成绩 94 成绩 93 成绩 93 总分 376 平均分 94.5五、心得体会这两周的实验让我
17、体会到了用 C 编写一个真正完整系统的艰难,任何细枝末节都不能忽略,每一个功能都要做到完美, 不能给使用者造成误解和操作上的困难。实验刚开始我就遇到了很大的麻烦, 因为涉及到了文件操作, 包括文本文件和二进制文件两种文件格式的操作,无论是学习 C 语言还是 C+,文件这一章总是令我最费解的, 因此刚开始进行这个实验的时候, 就让我棘手不已, 连续几天毫无进展,于是想老师和同学请教,终于开始有所收获,工程逐渐有了进展,再后来已经能基本掌握文件的读写操作。 我也变得越来越有自信, 对每一个功能都变的很有耐心了, 有了错误, 就一次一次反复修改和调试, 每次课前都做好了准备工作,课上更是学会了独立思考, 让每节课都充满了创意和思考的乐趣。 虽然经过了这么多天的历练, 我的知识已经变得更加丰富和牢固, 但是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年置物架行业研究报告及未来行业发展趋势预测
- 2025年客运火车站行业研究报告及未来行业发展趋势预测
- 2025年电子测量仪器行业研究报告及未来行业发展趋势预测
- 备战高考:语文必背知识点总结
- 检验检测机构资质认定评审员考试题库(附答案)
- 食品与饮料行业:2025年食品行业新兴技术与应用前景分析
- 儿科护理考试模拟题+答案
- 2025年哈尔滨双城区公开招募储备公益性岗位人员备考练习题库及答案解析
- 2025浙江金华市磐安县新渥实验幼儿园招聘教师和保育员3人备考练习试题及答案解析
- 2025年二手电商平台信用体系建设与诚信体系建设协同研究报告
- 2025至2030中国纤维素纳米纤维(CNF)行业项目调研及市场前景预测评估报告
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 山东淄博小升初数学真题试卷
- 网约车公司风险管理制度
- 企业丧事慰问管理办法
- 医院智慧管理分级评估标准体系(试行)-全文及附表
- 中国画基础知识课件
- 厨房燃气安全管理办法
- 即时零售配送骑手管理痛点破解报告 2025
- 神经重症患者镇痛镇静治疗中国专家共识解读
- 教科版2025小学二年级科学教学发展规划计划
评论
0/150
提交评论