版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计实习报告班 级:学生姓名:序 号: 21 指导老师:陈老师/刘老师日 期: 2012.2目 录一、程序分析与设计1二、流程图1三、源程序清单3四、调试过程8五、程序有待改进的地方9六、本次实习的收获和建议9附录9一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距固定值18,首行缩进2字符)1、先用记事本编辑文件cj.txt存储一个班学习成绩。然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。接着用冒泡法利用平均分的高低排出名
2、次。最后用fprintf将每个学生的信息写入到mc.txt文件。3、利用for语句下的printf语句把每个同学的信息在屏幕上显示出来。每名同学之间用分割线分开,作为每个学生的成绩条。4、利用for语句配合if嵌套语句计算出每科每个分数段的学生人数。在for语句中计算出每科的全班总成绩,再把总分除以三十七算出每科的平均分。最后用printf语句把结果按格式输出。5、利用for语句和if、printf语句配合找出不及格的学生的序号及该科成绩。6、利用for语句和if语句配合再利用逻辑或和逻辑且找出优等生的信息,并用printf语句在屏幕上显示出来。7、把以上几点分别定义五个函数,再定义一个菜单函
3、数,利用switch语句和goto配合,完成输入进行运行。二、流程图1计算平均分并排名 for i=0 to 37 stui.total=stui. math +stui.engl +stui.phys stui.ave=stui.total/3.0 打印出各个学生的每门课的成绩,平均分 for i=0 to 37 for j=0 to 37 stuj.avestui.ave 真 假 stui.mc+ 打印出各个学生的每门课的成绩,平均分,名次 2求个分数段的人数for i=0 to i37 stui.math60真 假math_60+ stui.math=69 真 假 math60_69+
4、stui.math=79 真 假 math70_79+ stui.math=89 真 假 math80_89+ math_90+同理求出英语和物理在这个分数段的人数打印出不及格人的序号,不及格科目,分数3不及格人数for i=0 to i37 stui.math60 stui.engl60 stui.phys60真 假 真 假 真 假输出 输出 输出stui.id, stui.id, stui.id, 数学, 英语, 物理,stui.math stui. engl stui. phys 4优秀人数 for i=0 to i90|stui.ave85&(stui.math=100|stui.en
5、gl=100|stui.phys=100)|(stui.math95&stui.engl95|stui.math95&stui.phys95|stui.engl95&stui.phys95)&(stui.mc=1&stui.mc60&stui.engl60&stui.phys60) 真 假 输出 stui.id,,stui.math,stui.engl,stui.phys,stui.total,stui.ave,stui.mc三、源程序清单(此部分采用小五号宋体,行间距固定值14)#include#includestruct studentint id;char name9;
6、int math;int engl;int phys;int total;float ave;int mc; stu37;struct student*p=&stu0;/-mc-void mc()int i; printf(读取文件结果如下:n); printf(%8s %8s %8s %8s %8sn, 序号,姓名,数学,英语,物理); for(i=0;i37;i+) printf(%8d %8s %8d %8d %8dn,pi.id, ,pi.math,pi.engl,pi.phys); for(i=0;i37;i+) pi.total= pi.math+pi.engl+pi
7、.phys; pi.ave=pi.total/3.0; pi.mc=1; for(i=0;i37;i+) for(int j=0;jpi.ave) pi.mc+; printf(-MC-n); printf(%8s %8s %8s %8s %8s %8s %8s %6sn,序号,姓名,数学,英语,物理,总分,平均分,名次); for(i=0;i37;i+) printf(%8d %8s %8d %8d %8d %8d %8.3f %6dn,pi.id, ,pi.math,pi.engl,pi.phys,pi.total,pi.ave,pi.mc); FILE* fp1; fp1=
8、fopen(D:mc.txt,w); fprintf(fp1,%8s %8s %8s %8s %8s %8s %8s %6sn, 序号,姓名,数学,英语,物理 ,总分,平均分,名次); for(i=0;i37;i+) fprintf(fp1,%8d %8s %8d %8d %8d %8d %8.3f %6dn, pi.id,,pi.math,pi.engl,pi.phys,pi.total,pi.ave,pi.mc); /-cjt-void cjt()int i;for(i=0;i37;i+) pi.total= pi.math+pi.engl+pi.phys; pi.ave=p
9、i.total/3.0; pi.mc=1; for(i=0;i37;i+) for(int j=0;jpi.ave) pi.mc+; printf(%8s %8s %8s %8s %8s %8s %8s %6sn, 序号,姓名,数学,英语,物理 ,总分,平均分,名次); for(i=0;i37;i+) printf(%8d %8s %8d %8d %8d %8d %8.3f %6dn, stui.id,,stui.math,stui.engl,stui.phys,stui.total,stui.ave,stui.mc); printf(-n); FILE* fp5; fp5=
10、fopen(D:cjt.txt,w); for(i=0;i37;i+) fprintf(fp5,%8d %8s %8d %8d %8d %8d %8.3f %6dn, stui.id,,stui.math,stui.engl,stui.phys,stui.total,stui.ave,stui.mc); fprintf(fp5,-n); /-fsd-void fsd()int total_math=0;int math_60=0;int math60_69=0;int math70_79=0;int math80_89=0;int math_90=0; int i;for(i
11、=0;i37;i+)total_math+=stui.math; if(stui.math60) math_60+; else if(stui.math=69) math60_69+; else if(stui.math=79) math70_79+; else if(stui.math=89) math80_89+;else math_90+;float ave_math=total_math/37.0;int total_engl=0;int engl_60=0;int engl60_69=0;int engl70_79=0;int engl80_89=0;int engl_90=0;fo
12、r(i=0;i37;i+)total_engl+=stui.engl; if(stui.engl60) engl_60+; else if(stui.engl=69) engl60_69+; else if(stui.engl=79) engl70_79+; else if(stui.engl=89) engl80_89+;else engl_90+; float ave_engl=total_engl/37.0; int total_phys=0;int phys_60=0;int phys60_69=0;int phys70_79=0;int phys80_89=0;int phys_90
13、=0;for(i=0;i37;i+)total_phys+=stui.phys; if(stui.phys60) phys_60+; else if(stui.phys=69) phys60_69+; else if(stui.phys=79) phys70_79+; else if(stui.phys=89) phys80_89+;else phys_90+;float ave_phys=total_phys/37.0;printf(-分数段统计结果文件-n); printf(%8s %8s %8s %8sn,分数段,C语言,英语,数学); printf(%8s %8d %8d %8dn,9
14、0,math_90,engl_90,phys_90); printf(%8s %8.3f %8.3f %8.3fn,平均成绩,ave_math,ave_engl,ave_phys);FILE* fp2; fp2=fopen(D:fsd.txt,w); fprintf(fp2,%8s %8s %8s %8sn,分数段,C语言,英语,数学); fprintf(fp2,%8s %8d %8d %8dn,90,math_90,engl_90,phys_90); fprintf(fp2,%8s %8.3f %8.3f %8.3fn,平均成绩,ave_math,ave_engl,ave_phys);/-b
15、jg- void bjg() int i; printf(-打印不及格学生名单-n); printf(%8s %8s %8sn,序号,不及格课程,该课程成绩); for(i=0;i37;i+) if(stui.math60)printf(%8d %8s %8dn,stui.id, 数学,stui.math);if(stui.engl60)printf(%8d %8s %8dn, stui.id, 英语,stui.engl);if(stui.phys60)printf(%8d %8s %8dn, stui.id,物理,stui.phys); FILE* fp3; fp3=fopen(D:bjg.
16、txt,w); for(i=0;i37;i+) if(stui.math60) fprintf(fp3,%8d %8s %8dn,stui.id, 数学,stui.math); if(stui.engl60) fprintf(fp3,%8d %8s %8dn, stui.id, 英语,stui.engl); if(stui.phys60) fprintf(fp3,%8d %8s %8dn, stui.id,物理,stui.phys); /-yds- void yds() int i; printf(优等生名单n); printf(%8s %8s %8s %8s %8s %8s %8s %6sn
17、, 序号,姓名,数学,英语,物理 ,总分,平均分,名次); for(i=0;i90|stui.ave85&(stui.math=100|stui.engl=100|stui.phys=100)|(stui.math95&stui.engl95|stui.math95&stui.phys95|stui.engl95&stui.phys95)&(stui.mc=1&stui.mc60&stui.engl60&stui.phys60)printf(%8d %8s %8d %8d %8d %8d %8.3f %6dn, stui.id,,stui.math,stui.engl, st
18、ui.phys,stui.total,stui.ave,stui.mc); FILE* fp4; fp4=fopen(D:yds.txt,w);for(i=0;i90|stui.ave85&(stui.math=100|stui.engl=100|stui.phys=100)|(stui.math95&stui.engl95|stui.math95&stui.phys95|stui.engl95&stui.phys95)&(stui.mc=1&stui.mc60&stui.engl60&stui.phys60)fprintf(fp4,%8d %8s %8d %8d %8d %8d %8.3f
19、%6dn, stui.id,,stui.math,stui.engl, stui.phys,stui.total,stui.ave,stui.mc); /-menu-void menu()int i;void mc(); void cjt(); void bjg(); void yds();lop_1: printf(*1:计算平均分并排名*n); printf(*2:统计分数段*n); printf(*3:打印成绩条*n); printf(*4:打印不及格学生信息*n); printf(*5:打印优等生名单*n); printf(*6:退出*n); scanf(%d,&i); switch(i) case 1:mc(); goto lop_1; case 2:fsd();goto lop_1; case 3:cjt();goto lop_1; case 4:bjg();goto lop_1; case 5:yds();goto lop_1; case 6:exit(0); /-main-void main() FILE* fp; fp=fopen(D:cj.txt,r); for(int i=0;i37;i+) fscanf(fp,%d %s %d %d %d,&stui.id,,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市存量房买卖合同中的税费优惠政策2025年度协议3篇
- 二零二五年度苗木种植与生态保护工程合作合同4篇
- 二零二五版家居用品广告合作合同范本3篇
- 2025年度地热资源开发打井技术服务合同模板4篇
- 2025年度大学教授学术成果奖励与分配协议4篇
- 2025年度个人绿色建筑贷款合同环保先锋版4篇
- 2024无人机物流网络建设与合作运营合同
- 2025年度城市供水管道零星工程施工合同4篇
- 2025年度存量房买卖广告设计与制作合同4篇
- 2025年车贷信用保险合同范本3篇
- 中国文化概论(第三版)全套课件
- 117-钢结构工程质量常见问题与管控措施
- SHS5230三星指纹锁中文说明书
- 诺和关怀俱乐部对外介绍
- 保定市县级地图PPT可编辑矢量行政区划(河北省)
- 新苏教版科学六年级下册全册教案(含反思)
- 供方注册指南-ZTE
- 真心英雄合唱歌词
- 旅游感知形象研究综述 论文
- 如何提高办文办会办事能力
- GB_T 37494-2019 粮油机械 轧坯机(高清版)
评论
0/150
提交评论