C语言课程设计实习报告Word下载.docx
- 文档编号:20501096
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:16
- 大小:49.96KB
C语言课程设计实习报告Word下载.docx
《C语言课程设计实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实习报告Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
2求个分数段的人数
fori=0toi<
37
stu[i].math<
60
真假
math_60++stu[i].math<
=69
math60_69++stu[i].math<
=79
math70_79++stu[i].math<
=89
math80_89++math_90++
同理求出英语和物理在这个分数段的人数
打印出不及格人的序号,不及格科目,分数
3不及格人数
60stu[i].engl<
60stu[i].phys<
真假真假真假
输出输出输出
stu[i].id,stu[i].id,stu[i].id,
"
数学"
"
英语"
物理"
stu[i].mathstu[i].englstu[i].phys
4优秀人数
fori=0toi<
37
(stu[i].ave>
90||stu[i].ave>
85&
&
((stu[i].math==100||stu[i].engl==100||
stu[i].phys==100)||(stu[i].math>
95&
stu[i].engl>
95||stu[i].math>
95
stu[i].phys>
95||stu[i].engl>
95)))&
(stu[i].mc>
=1&
stu[i].mc<
=3)&
(stu[i].math>
60&
60)
真假
输出
stu[i].id,stu[i].name,stu[i].math,stu[i].engl,
stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc
三、源程序清单(此部分采用小五号宋体,行间距-固定值14)
#include<
stdio.h>
stdlib.h>
structstudent
{
intid;
charname[9];
intmath;
intengl;
intphys;
inttotal;
floatave;
intmc;
}stu[37];
structstudent*p=&
stu[0];
//-----------------mc--------------------------
voidmc()
inti;
printf("
读取文件结果如下:
\n"
);
printf("
%8s%8s%8s%8s%8s\n"
"
序号"
"
姓名"
for(i=0;
i<
37;
i++)
{
%8d%8s%8d%8d%8d\n"
p[i].id,
p[i].name,p[i].math,p[i].engl,p[i].phys);
}
p[i].total=p[i].math+p[i].engl+p[i].phys;
p[i].ave=p[i].total/3.0;
p[i].mc=1;
{
for(intj=0;
j<
j++)
{
if(p[j].ave>
p[i].ave)
{
p[i].mc++;
}
}
}
----------MC-------------------\n"
%8s%8s%8s%8s%8s%8s%8s%6s\n"
总分"
平均分"
名次"
%8d%8s%8d%8d%8d%8d%8.3f%6d\n"
p[i].name,p[i].math,p[i].engl,
p[i].phys,p[i].total,p[i].ave,p[i].mc);
FILE*fp1;
fp1=fopen("
D:
\\mc.txt"
w"
fprintf(fp1,"
"
fprintf(fp1,"
p[i].id,p[i].name,p[i].math,p[i].engl,
}
//-----------------------------cjt---------------------------
voidcjt()
inti;
stu[i].id,stu[i].name,stu[i].math,stu[i].engl,
stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);
-----------------------------------------------------------------------------\n"
FILE*fp5;
fp5=fopen("
\\cjt.txt"
fprintf(fp5,"
//----------------fsd------------------------------------------------------------------
voidfsd()
inttotal_math=0;
intmath_60=0;
intmath60_69=0;
intmath70_79=0;
intmath80_89=0;
intmath_90=0;
{total_math+=stu[i].math;
if(stu[i].math<
60)math_60++;
elseif(stu[i].math<
=69)math60_69++;
=79)math70_79++;
=89)math80_89++;
elsemath_90++;
floatave_math=total_math/37.0;
inttotal_engl=0;
intengl_60=0;
intengl60_69=0;
intengl70_79=0;
intengl80_89=0;
intengl_90=0;
{total_engl+=stu[i].engl;
if(stu[i].engl<
60)engl_60++;
elseif(stu[i].engl<
=69)engl60_69++;
=79)engl70_79++;
=89)engl80_89++;
elseengl_90++;
floatave_engl=total_engl/37.0;
inttotal_phys=0;
intphys_60=0;
intphys60_69=0;
intphys70_79=0;
intphys80_89=0;
intphys_90=0;
{total_phys+=stu[i].phys;
if(stu[i].phys<
60)phys_60++;
elseif(stu[i].phys<
=69)phys60_69++;
=79)phys70_79++;
=89)phys80_89++;
elsephys_90++;
floatave_phys=total_phys/37.0;
----------------分数段统计结果文件-------------------\n"
%8s%8s%8s%8s\n"
分数段"
C语言"
%8s%8d%8d%8d\n"
<
60"
math_60,engl_60,phys_60);
60_69"
math60_69,engl60_69,phys60_69);
70_79"
math70_79,engl70_79,phys70_79);
89_89"
math80_89,engl80_89,phys80_89);
>
90"
math_90,engl_90,phys_90);
%8s%8.3f%8.3f%8.3f\n"
平均成绩"
ave_math,ave_engl,ave_phys);
FILE*fp2;
fp2=fopen("
\\fsd.txt"
fprintf(fp2,"
fprintf(fp2,"
//--------------------------bjg--------------------------------------
voidbjg()
----------打印不及格学生名单-----\n"
%8s%8s%8s\n"
不及格课程"
该课程成绩"
for(i=0;
60)printf("
%8d%8s%8d\n"
stu[i].id,"
stu[i].math);
if(stu[i].engl<
stu[i].id,"
stu[i].engl);
if(stu[i].phys<
stu[i].id,"
stu[i].phys);
FILE*fp3;
fp3=fopen("
\\bjg.txt"
60)fprintf(fp3,"
//-----------------------------yds---------------------------
voidyds()
优等生名单\n"
"
if((stu[i].ave>
((stu[i].math==100||stu[i].engl==100||stu[i].phys==100)||(stu[i].math>
95||
stu[i].engl>
60))
printf("
stu[i].id,stu[i].name,stu[i].math,stu[i].engl,
stu[i].phys,stu[i].total,stu[i].ave,stu[i].mc);
FILE*fp4;
fp4=fopen("
\\yds.txt"
for(i=0;
if((stu[i].ave>
fprintf(fp4,"
//----------------menu---------------------------------------
voidmenu()
voidmc();
voidcjt();
voidbjg();
voidyds();
lop_1:
****************1:
计算平均分并排名****************\n"
****************2:
统计分数段*********************\n"
****************3:
打印成绩条*********************\n"
****************4:
打印不及格学生信息*************\n"
****************5:
打印优等生名单*****************\n"
****************6:
退出***************************\n"
scanf("
%d"
&
i);
switch(i)
case1:
mc();
gotolop_1;
case2:
fsd();
gotolop_1;
case3:
cjt();
case4:
bjg();
case5:
yds();
case6:
exit(0);
//-------------------main-----------------------------------------
voidmain()
{FILE*fp;
fp=fopen("
\\cj.txt"
r"
for(inti=0;
{fscanf(fp,"
%d%s%d%d%d"
stu[i].id,stu[i].name,&
stu[i].math,&
stu[i].engl,&
stu[i].phys);
menu();
//--------MC-------------------------
}
四、调试过程
在程序运行的过程中,出现了很多的错误。
有很复杂的问题,也不乏许多低级的错误。
1、在读取文件时,一开始总是出现乱码,后来才发现原始数据的第一行时空格,删除后就可以正确读取了。
2、一开始我忘记了定义的函数也需要加“{}”,导致运行时出现了很多的错误,后来再查书才发现了症结所在。
3、在编写代码时,经常忽略中英文的切换,导致代码中出现了大量的中文标点,严重影响了程序的运行。
4、在编辑fsd函数时,采用了大量的if语句,一开始只使用两端的成绩利用逻辑且编辑判定条件,后来才想起来可以用if语句的嵌套语句。
五、程序有待改进的地方
1、在编辑程序时,定义了大量的变量,是程序看上去有些混乱。
需要减少部分变量。
2、在程序中使用了大量的printf语句,应考虑是否可以使用for语句将其简化。
3、在编辑时,有大量的重复语句,严重影响了成绩的简洁性。
六、本次实习的收获和建议
收获:
通过本次实习,让我了解了理论与事实的差距,同时也提高了我的C语言基础,为今后的工作打下了坚实的基础。
在编辑时,必须注意一些小的细节。
让我意识到自己在学习生活中经常不注意小节,忽略一些自以为可有可无的事情,这是非常错误的。
使我深深的知道,细节决定成败。
还有,通过实习,锻炼了我的耐心。
编程是一个很耗功夫的工作,必须有足够的耐心,才能完成全部工作。
建议:
应多出一些题目,让我们自主选择题目作答。
附录(此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 实习 报告