学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc
《学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc》由会员分享,可在线阅读,更多相关《学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc(14页珍藏版)》请在沃文网上搜索。
1、 计算机上机实习报告 题 目: 学生成绩分析及排名系统 姓 名: 学 院: _专 业: 班 级: 学 号: 指导教师: 2012-02-22目 录一 设计目的1二 课程设计摘要 2三 课程设计的任务与数据3四 系统功能模块 4五 详细设计(各功能模块的具体实现算法流程图) 5六 调试分析(包含各模块的测试用例及测试结果) 6七 总结及学习感受 7一、设计目的1.进一步熟悉VC2008及VC2010的开发环境,掌握基本的编程方法,熟悉用C语言完成一个应用程序的设计过程、掌握有关编辑和调试程序的方法和技巧;2.主要掌握C语言中的三循环语句、函数、指针、结构体及文件操作等内容;3.了解开发简单应用程
2、序的全过程,包括:分析、设计、编程、调试和编写报告。二、课程设计摘要第一步 原始数据(建立两个数据文件)1. 文件1用来存放学生成绩2. 文件2用来存放课程学分第二步 程序设计思想1. 定义两个结构体数组用来存放文件1和文件2的内容。2. 编写各个函数对应各个应实现的功能。3. 编写第一个函数Readwt0107( )读取文件1(wt01071.txt)读取学生成绩4. 编写第二个函数Readwt0107XF( )读取文件2(wt0107XF.txt)读取课程学分5. 编写第三个函数Calcjqpj ( )计算各个同学的加权平均值和名次,同时创建txt文本文件wt0107MC.txt写入数据,
3、包括各个学生的学号、名次、姓名、各科成绩、加权平均值。6. 编写第四个函数 CalcAvg Calcbzcj( )统计全班每门课程的平均分和标准差,并计算各分数段(60分以下;6069;7079;8089;90分以上的学生人数)。课程设计的计算公式为:式中:y为课程标准差,xi 为第i个学生成绩, 为本门课程的算术平均成绩,N为学生数。创建txt文本文件wt0107.txt写入数据,包括课程编号、课程名称、标准差、分数段人数统计。7编写第五个函数TZD( )打印每名学生的成绩条,同时创建txt文本文件wt0107CJD.txt写入成绩条内容。8编写第六个函数BJG( )屏幕显示所有存在不及格课
4、程的学生名单(含学号、不及格课程名称、课程的学分及成绩)。9编写第七个函数YDS( )屏幕显示优等生名单(含学号、N门课程成绩、平均分、名次)。三、程序设计的任务与数据1.原始文件用记事本新建一文本文件,文件名为:“班名+序号”,将本班的M名学生在本学期的N门考试课的成绩(要求用真实的课程名、假想的分数,并要求将自己的学号假定为1,将自己的每门课的分数都定在90分以上,而将别人的每门课的分数都定在95分以下。)输入到这个文件中,建议按如下形式存放(注:20M50、5N8,下文以M=4,N=3为例): 学号 姓名 英语 C语言 数学 1 我自己 96 93 99 2 张某 76 89 89 3
5、李某 91 96 67 4 王某 75 58 56 Wt0107.txt 用记事本新建另一文本文件,文件名为:“班名+KC”,将本班本学期的N门真实的课程名及其学分输入到这个数据文件中,建议按如下列形式存放: 编号 课程名称 课程学分1 英语 6.02 C语言 4.53 数学 5.5wt0107XF.txt2课设任务在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生N门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。然后显示菜单,利用菜单调用各个函数,分别完成如下功能: 1) 用C语言创建一个数据文件,文件名为:“班号
6、+序号+MC”,如物探11001班的12号同学所建的文件名应为:“wt0107MC.txt”。用来存放班级排名后的成绩表,要求按以下形式存放。 名次 学号 姓名 英语 C语言 数学 平均成绩 1 1 我自己 96 93 99 95.5 3 2 张某 76 89 89 80.5 4 3 李某 91 96 67 78.2 2 4 王某 75 58 56 88.8 5 5 赵某 58 67 77 68.5 2) 分别统计全班每门课的平均分和标准差,并计算各分数段(60分以下;6069;7079;8089;90分以上)的学生人数。课程标准差的计算公式为:式中:y为课程标准差,xi 为第i个学生成绩,
7、为本门课程的算术平均成绩,N为学生数。3) 用C语言创建一个数据文件,文件名为:“KC+班号+序号”, hx1090121.txt 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格1 英语 6.0 16.8 3 10 18 15 3 2 C语言 4.5 11.7 1 5 20 13 83 数学 5.5 18.5 9 12 19 8 14) 打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:“班号+序号+CJD”, wt0107CJD.txt。成绩条的格式自定。5) 屏幕显示所有存在不及格课程的学生的名单(含学号、不及格课程名称、课程的学分及成绩)。6) 屏幕
8、显示优等生名单(含学号、门课成绩、平均分、名次) 优等生条件(只要满足三个条件中的任意一个条件即可):a) 平均分 92分b) 名次在本班位于前五名c) 平均分 88分,并且至少有一门课的成绩 99分模块三:打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名wt0107CJD.txt四、系统功能模块模块二:统计全班每门课的平均分和标准差,并计算各分数段(60分以下;6069;7079;8089;90分以上)的学生人数。创建一个数据文件,文件名为:wt0107FX.txt模块一:计算加权平均值,并排序主函数模块五:屏幕显示优等生名单模块四:屏幕显示所有存在不及格课程的学生的名单五
9、、详细设计(各功能模块的具体实现算法流程图)1.流程图2.源程序清单 1. 头文件: #include stdafx.hstruct XS /学生结构体int xh;char xm10;int cj6;float pjcj;float jqcj;struct KC /课程结构体int kh;char km20;float xf;struct tongji /统计优良差结构体float KCave, bzcj;int Y, L, Z, J, BJ;void ReadCJ(); /读成绩void ReadXF(); /读学分void CalcAvg(); /求平均成绩void Caljqcj();
10、 /求加权成绩void Calbzcj(); /读求标准成绩void ExportFileMC(); /排名void ExportFileFX(); /分析各科 void ExportFileTZD(); /成绩条void PrintBJG(); /输出不及格学生void PrintYDS(); /输出优等生2.源文件:#include stdafx.h#include Grade.h#include #include math.h#define M 22#define N 6#define A 6XS xssM;KC kcsN;tongji TJA;void ReadCJ()FILE *fi
11、n;fin = fopen(wt0107.txt, r);if (fin = NULL)printf(文件不存在!);system(pause);return;char str81;/ 读标题行fgets(str, 80, fin);int n = 0;/ 读第行数据fgets(str, 80, fin);while (!feof(fin)char *ps = strtok(str, t,);/ 更改各个字段的值,考虑了部分字段缺失xssn.xh = atoi(ps);ps = strtok(NULL, t,);strcpy(xssn.xm, ps);for (int i = 0; i 6;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 分析 排名 系统 语言程序设计 课程设计 实习 报告