欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc

    • 资源ID:986860       资源大小:522.04KB        全文页数:14页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc

    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;

    12、i+)ps = strtok(NULL, t,);xssn.cji = atoi(ps);n+;fgets(str, 80, fin);fclose(fin);void ReadXF()FILE *fin;fin = fopen(wt0107XF.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,)

    13、;/ 更改各个字段的值,考虑了部分字段缺失kcsn.kh = atoi(ps);ps = strtok(NULL, t,);strcpy(kcsn.km, ps);ps = strtok(NULL, t,);kcsn.xf = atof(ps);n+;fgets(str, 80, fin);fclose(fin);void CalcAvg()/求平均成绩for (int i = 0; i M; i+)float sum = 0.0;for(int j = 0; j N; j+)sum += xssi.cjj;xssi.pjcj = sum / 6;void Caljqcj()/求加权平均flo

    14、at ZXF = 0.0;for (int j = 0; j N; j+)ZXF += kcsj.xf;for (int i = 0; i M; i+)float sum1 = 0.0;for(int j = 0; j N; j+)sum1 += xssi.cjj * kcsj.xf;xssi.jqcj = sum1 / ZXF;void Calbzcj()/求各门课程的平均成绩及标准差for (int i = 0; i N; i+)float sum2 = 0.0, sum3 = 0.0;for (int j = 0; j M; j+)sum2 += xssj.cji;TJi.KCave =

    15、 sum2 / M;for (int j = 0; j M; j+)sum3 += (xssj.cji - TJi.KCave) * (xssj.cji - TJi.KCave);TJi.bzcj = sqrt(sum3 / N);void ExportFileMC()/调用函数CalcAvg();Caljqcj();/创建文件并打开FILE *fin1;fin1 = fopen(wt0107MC.txt, w);if (fin1 = NULL)printf(打开文件wt0107MC.txt失败!);system(pause);return;/按平均成绩交换学生for (int i = 0;

    16、i M - 1; i+)for (int j = i; j xssi.pjcj)XS t = xssj;xssj = xssi;xssi = t;/文件输出学生信息fprintf(fin1, 名次t学号t姓名t英语tC语言t高数t大物t地概t线代t平均成绩t加权平均n);for (int i = 0; i M; i+)fprintf(fin1, %3dt%3dt%6st, i+1, xssi.xh, xssi.xm);for(int j = 0; j N; j+)fprintf(fin1, %4dt, xssi.cjj);fprintf(fin1, %8.1ft%8.2fn, xssi.pjc

    17、j, xssi.jqcj); fclose(fin1); void ExportFileFX()/调用函数Calbzcj();/创建文件FILE *fin2;fin2 = fopen(wt0107FX.txt, w);if (fin2 = NULL)printf(打开文件wt0107FX.txt失败!);system(pause);return;/统计学社优良差情况for (int i = 0; i N; i+)TJi.Y = 0, TJi.L = 0, TJi.Z = 0, TJi.J = 0, TJi.BJ = 0;for (int j = 0; j = 90) TJi.Y+;else i

    18、f (xssj.cji = 80) TJi.L+;else if (xssj.cji = 70)TJi.Z+;else if (xssj.cji = 60) TJi.J+;else if (xssj.cji 60)TJi.BJ+;/文件输出fprintf(fin2, 编号t课程名称t课程学分t平均分t标准差t优秀t良好t中等t及格t不及格n);for(int i = 0; i N; i+) fprintf(fin2,%dt%3st%.1ft%.1ft%.1ft%dt%dt%dt%dt%dtn, i+1, kcsi.km, kcsi.xf, TJi.KCave, TJi.bzcj,TJi.Y,

    19、TJi.L, TJi.Z, TJi.J, TJi.BJ);fclose(fin2);printf(输出成绩分析表n);void ExportFileTZD() /打印通知单CalcAvg();FILE *fin3;fin3 = fopen(wt0107CJD.txt, w);if (fin3 = NULL)printf(打开文件wt0107CJD.txt失败!);system(pause);return;fprintf(fin3, 名次t学号t姓名t英语tC语言t高数t大物t地概t线代t平均成绩n);for (int i = 0; i M; i+)fprintf(fin3, %3dt%3dt%

    20、6st, i+1, xssi.xh, xssi.xm);for(int j = 0; j N; j+)fprintf(fin3, %4dt, xssi.cjj);fprintf(fin3, %8.1fn, xssi.pjcj);fclose(fin3);printf(输出成绩通知单n);void PrintBJG() /统计不及格printf(屏显不及格名单n);printf(学号t姓名t课程名称t成绩n);for(int i = 0; i N; i+) for(int j = 0; j M; j+) if(xssj.cji 60)printf(%dt%st%st%10dn, xssj.xh,

    21、 xssj.xm, kcsi.km, xssj.cji);void PrintYDS() /统计优生CalcAvg();printf(屏显优等生名单n);printf(学号t姓名t英语tC语言t高数t大物t地概t线代t平均成绩n);int i, j, k;for(i = 0; i M; i+)for(j = 0; j = 86 | (xssi.pjcj = 88 & xssi.cjj = 99)printf(%dt%st, xssi.xh, xssi.xm);for(k = 0; k N; k+)printf(%dt, xssi.cjk);printf(%.1fn, xssi.pjcj );b

    22、reak;六、调试结果 1 学生成绩排名 2.成绩分析3.成绩通知单4.不及格学生5.优等生七、总结编程题目要求简单易懂,但实际操作却很难,知识贯通整个课本,三种循环语句.函数.结构体以及指针文件,通过课设全面的综合让我感觉到C语言功能的强大,经过这一阶段的初级学习,我们对C语言的一些概念认识还是比较模糊或者说很多东西太抽象,不过我们都有了一个明确的学习方法就是编程,亲自动手实机操作,让机器指导我们学习,让机器告诉我们对错。这为我们的第二阶段的实例化学习做了很好的准备,然后亲自动手做一些程序,并学会调试程序.检验.分析逐步学习。常看一些程序,并能在别人的基础上创新 改进。学习精髓,逐步积累。这对以后学习C语言会有很大的帮助。


    注意事项

    本文(学生成绩分析及排名系统C语言程序设计课程设计实习报告.doc)为本站会员(风****)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922