欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    最新版C语言课程设计实验报告4297210.docx

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

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

    最新版C语言课程设计实验报告4297210.docx

    1、最新版C语言课程设计实验报告4297210C语言课程设计课程设计报告专 业: 网络工程 班 级: 网络10601 姓 名: 缪 军 指导教师: 汪北阳 余法红 二00八年元月十五日目 录系统摘要 3系统设计 4系统实现 7系统使用说明 11测试数据 15结论 18附录 19(一) 系统摘要1. 功能要求在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生5门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。然后显示菜单,利用菜单调用每个函数,完成如下功能:1) 用C语言创建一个数据文件,文件名为:“MC0116”。用来存放

    2、班级排名后的成绩,要求按以下形式存放。名次学号姓名英语C语言离散数学线形代数大学物理密码学平均成绩101缪军96959493959594.7302陈军90849178926885.11603曹军69908186826479.1904胡均92878958927183.31805武军57768192837677.11406陶均84699472778380.7807喻均91917774669181.41108周均93827875649380.41909吴军94767574845977.8610张俊82948484876783.71011王俊86927982896182.32212李军74729294

    3、546475.4513赵俊76789393798283.61514郑君93738185747380.02015钱均67818267767975.82416欧均81847561598474.21317汤俊87897987677280.2418廖均79879289629483.52119扬峻77648451948176.3220孙俊83948194828686.12321冯均86586491846774.22522周君93766257896273.9723曾俊92736382929181.01224董均59948484917281.01725高军91825984668476.32) 分别统计全班每

    4、门课的平均分和标准差,并计算个分数段的学生人数;课程标准差的计算公式为:Y= s2=1/n(x1-m)2+(x2-m)2+.+(xn-m)23) 用C语言创建一个数据文件,文件名为:“KC0116”。将文件中存放的数据以如下形式存放编号课程名称平均分标准差优秀良好中等及格不及格1英语82.921.81074222C语言81.620.0787213离散数学80.620.3696314线性代数79.525.1695235大学物理79.224.3684526密码学76.822.5566714) 打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:“cj0116”。成绩条格式自定。5

    5、) 屏幕上显示所有存在不及格的课程的学生的名单(含学号、不及格的课程名称、课程的学分及成绩)。6) 屏幕上显示优等生名单(含学号、6门课程成绩、平均分、名次)。(二)系统设计准备工作:编写两个记事本文件作为原始数据源。本程序中建立两个文件,第一个中的内容是全班同学的5功课的成绩(英语,C语言,数学,大学物理,线性代数),保 存在D盘下,其完整的路径名为D: wl0116.txt.第二个中的内容是所有的五门功课的属性(编号,名称,学分),同样保 存在D盘下内,起完整的路径名为D: wl01kc.txt.1.系统功能模块框架图2. 菜单结构图。3. 数据结构说明/* 学生结构体 */struct

    6、studentlong num; /* 学号 */char name20; /* 姓名 */int scoreN; /* 各科分数构成的一维数组 */double ave; /* 每名学生所有科目的加权平均分 */int t; /* 名次 */stM;struct subjectint num; /* 课程编号 */int excellent; /* 成绩优秀 */int good; /* 成绩良好 */int mid; /* 成绩中等 */int pass; /* 成绩及格 */int fail; /* 不及格 */char kc30; /* 课程名称 */float xuefen; /*

    7、课程学分 */double ave; /* 课程平均分 */double bzc; /* 课程标准差 */courseN;整个系统的设计,可以将所有数据划分到两个结构体中,一个与学生有关,一个与课程有关。数据的引入,可以从两个文件中读入,一个是学生成绩表,一个是课程与学分相关。然后,将数据进行(1)加权平均;(2)标准差处理,排出每个学生在班级的名次。最后,写出文件。(三)系统实现(一).部分函数的实现过程:1.读入数据函数eadDat1()和eadDat() 用函数打开目标文件,通过文件指针指向目标文件,然后调用库函数(fscanf,fgets)将数据读入到定义的结构体当中。第一步用fget

    8、s函数将文件中的的 第一行的字符串读入到数组中,然后用一个for循环控制每个人的变化,将各种数据按照不同的类型规格赋值给结构体。2.求平均分和标准差:求五门功课的平均分,用一个for循环控制着科目的变化,然后在内部再一个for循环控制人的变化将全班的人的某门功课的成绩累加起来,再除以总人数即得平均分,类似的即可求的各门课的标准差。求每个人的加权平均成绩: 首先用for循环得到五门课程的学分的总和,然后再通过for循环控制每个人的不断变化,把每个人的每门成绩乘以各门课的学分,将其累加起来,再除以学分的和即得各个人的加权平均成绩排名次:首先用for循环控制各个人的变化,每一次将其名次赋值为,然后将

    9、其平均成绩通过for循环于其他人进行比较,若小就将其自加,最终即可得名次。统计各分数段的人数:首先通过两个for循环检查每个人的每门课程,再通过switch语句判断起属于的类型。C语言创建全班同学成绩单的数据文件和全班成绩分析:首先通过函数建立一个新的文件,for循环控制将分数输出到指定的文件中 (二)程序调试过程中的要点和难点:在程序调试过程中,经常出现警告,这是因为数据类型不一致导致而成的。由于不小心输入法的改变,容易造成一些不易发现的问题,比如在英文输入中的引号与在中文输入中的引号就是又区别的,应该保持在英文输入的环境中编辑此程序。难点是,各个函数运行,要注意先后顺序。因为一个函数的运行

    10、,需要上一个函数运行的结果为数据。另外,还注意主函数的编写,是各个函数相互联系在一起。 (四) 系统使用说明源代码编写完成后,可以存放在记事本中,保存起来。然后,选择打开方式为TC环境,打开运行程序。在打开的界面上会显示如下菜单界面:A在光标处输入:2 在屏幕上显示未及格学生名单;B在光标处输入:3 在屏幕上显示优等生名单;C在光标处输入:4 显示成绩分布(一个“”代表一个人);D在光标处输入:5 查询成绩 a在光标处输入:1 安学号查寻 b在光标处输入:2 按姓名查寻 E在光标处输入:0 退出界面;F在光标处输入:1 进入子菜单选项在光标处输入:1 创建班级名次文档到D盘;在光标处输入:2

    11、创建课程成绩文档到D盘;在光标处输入:3 在屏幕上显示每个学生的成绩条;在光标处输入:5 返回主菜单;在光标处输入:0 退出编辑界面;(五)测试数据1. 两个原始数据 (1)学生成绩表名次学号姓名英语C语言离散数学线形代数大学物理密码学平均成绩101缪军96959493959594.7302陈军90849178926885.11603曹军69908186826479.1904胡均92878958927183.31805武军57768192837677.11406陶均84699472778380.7807喻均91917774669181.41108周均93827875649380.41909吴军

    12、94767574845977.8610张俊82948484876783.71011王俊86927982896182.32212李军74729294546475.4513赵俊76789393798283.61514郑君93738185747380.02015钱均67818267767975.82416欧均81847561598474.21317汤俊87897987677280.2418廖均79879289629483.52119扬峻77648451948176.3220孙俊83948194828686.12321冯均86586491846774.22522周君93766257896273.972

    13、3曾俊92736382929181.01224董均59948484917281.01725高军91825984668476.3(2) 课程与学分相关编号课程名称平均分标准差优秀良好中等及格不及格1英语82.921.81074222C语言81.620.0787213离散数学80.620.3696314线性代数79.525.1695235大学物理79.224.3684526密码学76.822.5566712. 测试结果 (1)学生名次表 (2)学生个人成绩单 (3) 不及格学生名单(4)优秀学生名单情况(六)结论1. 通过对这一课题的设计和实现,我对TC3.0环境进行了深一步的了解,并逐渐开始熟练

    14、tc3.0环境的工作界面,以及对每一个快捷键的熟悉。并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。2. 编程时要养成良好的风格,注意相同内容的缩进和对齐。这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。3. 通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。4. 这个程序设计主要涉及到了C语言中的结构体、指针及文件操作等内容,只有充分掌握了C语言中的结构体、指针及文件操作等内容,才有可能组织好这些代码,使

    15、之符合运算逻辑,得到理想的结果。5. 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实际动手做,我们才真正领略到“艰苦奋斗”这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。对我们而言,知识上的收获重要,精神上的丰收是可喜的。挫折是一份财富,经历是一份拥有。这次实际操作必将成为我们人生旅途上一个非常美好的回忆!6. 回顾起

    16、此次课程设计,至今仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指

    17、针通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。同时,在汪老师和余老师的身上我学得到很多实用的知识,在此表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!(七)附录程序全部代码:#define M 25#define N 6#include stdio.h#include math.h#include stdlib.h#include string.hstruct studentlong num;char name20;int scoreN;double ave;int t;stM;struct subjectint num;int excellent;int

    18、good;int mid;int pass;int fail;char kc30;float xuefen;double ave;double bzc;courseN;/* 读取wl0116.txt */void read1()int i,j;char str1100;FILE *fp;if(fp=fopen(d:wl0116.txt,r)=NULL)printf(Cannot open the file!n);exit(0);fgets(str1,100,fp);for(i=0;iM;i+)fscanf(fp,%ld%s,&sti.num,sti.name);for(j=0;jN;j+)fs

    19、canf(fp,%d,&sti.scorej);fclose(fp);/* 读取wl01kc.txt */void read2()FILE *fp=fopen(d:wl01kc.txt,r);int k;char str2100;if(fp=NULL)printf(Cannot open the file !n); exit(0);fgets(str2,100,fp);for(k=0;kN;k+)fscanf(fp,%d%s%f,&coursek.num,coursek.kc,&coursek.xuefen);fclose(fp);void jaquan()double s=0,sum;int

    20、 i,j;for(i=0;iN;i+)s=s+coursei.xuefen;for(i=0;iM;i+)sum=0; for(j=0;jN;j+) sum=sum+(sti.scorej)*(coursej.xuefen); sti.ave=(int)(sum*10.0/s+0.5)/10.0;void mingci() int i,j,t; for(i=0;iM;i+) t=1; for(j=0;jM;j+) if(sti.avestj.ave) t+; sti.t=t;/* 计算课程平均分和优劣分布 */void ave() double s; int i,j; for(j=0;jN;j+

    21、) s=0;coursej.excellent=0;coursej.good=0; coursej.mid=0;coursej.pass=0; coursej.fail=0; for(i=0;iM;i+) switch(sti.scorej/10) case 10: case 9:coursej.excellent+;break; case 8:coursej.good+;break; case 7:coursej.mid+;break; case 6:coursej.pass+;break; default :coursej.fail+; s+=sti.scorej; coursej.ave

    22、=s/M;void bzcha()int i,j; double s; for(j=0;jN;j+) s=0; for(i=0;iM;i+) s+=(sti.scorej-coursej.ave)*(sti.scorej-coursej.ave); coursej.bzc=sqrt(s/N);/* 创建班级成绩排名 */void writefile1()FILE *fp;int i,j;if(fp=fopen(d:mc0116.txt,w)=NULL)printf(fail!n);exit(0);fprintf(fp,名次 学号 姓名 英语 C语言 离散 线性 物理 密码学 *平均成绩n);f

    23、or(i=0;iM;i+)fprintf(fp,%3d%10ld%10s,sti.t,sti.num,sti.name);for(j=0;jN;j+)fprintf(fp,%6d,sti.scorej);fprintf(fp, .%4.1fn,sti.ave);fclose(fp);/* 创建班级课程成绩分布 */writefile3() FILE *fp;int i;if(fp=fopen(d:kc0116.txt,w)=NULL)printf(Faile to build the file!n); exit(0);fprintf(fp,编号 课程名称 平均分 标准差 优秀 良好 中等 及格

    24、 不及格n);for(i=0;iN;i+)fprintf(fp,%4d%10s%8.1f%8.1f%6d%6d%6d%4d%4dn,i+1,coursei.kc,coursei.ave,coursei.bzc, coursei.excellent,coursei.good,coursei.mid,coursei.pass,coursei.fail);fclose(fp);void writefile4() FILE *fp=fopen(d:cjt0116.txt,w); int i,j; if(fp=NULL)printf(Faile to build a new file !n);exit(0); for(i=0;iM;i+) fprintf(fp,n学号 姓名 英语 C语言 离散 线性 物理 密码学 *平均成绩n%8ld%8s,sti.num,sti.name);printf(n学号 姓名 英语 C语言 离散 线性 物理 密码学 *平均成绩n%8ld%8s,sti.num,sti.name);for(j=0;jN;j+)fprintf(fp,%6d,sti.scorej);printf(%6d,sti.scorej);fprintf(fp, .%4.1fn,sti.ave);printf( .%4.1fn,sti.ave);fprintf(fp,* *


    注意事项

    本文(最新版C语言课程设计实验报告4297210.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开