资源描述:
《C语言课设实习报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言课程设计实习报告目录一、程序分析与设计1二、流程图2三、源程序清单6四、调试过程9五、程序有待改进的地方10六、本次实习的收获和建议10附录11一、程序分析与设计1、先用记事本编辑文件stu1.dat存储一个班学习成绩。然后在C环境下,建立一个学生信息的结构体,用r方式打开上述文件,再用fscanf读入、用printf在屏幕上显示文件内容。2、利用循环使每个学生的三门功课的成绩相加,然后再把和除以三就得到了平均成绩。接着用冒泡法利用平均分的高低排出名次。最后用fprintf将每个学生的信息写入到stu2.dat文
2、件。3.计算各科成绩的分数段时,用到for循环if条件,事先定义各分数段人数变量,并赋值为0.如果符合各分数段符合if条件变量++自增。再用fprintf将分数段的信息写入到stu2.dat文件。4.在屏幕上打印学生的成绩,用printf函数for循环即可打出每个学生的成绩。格式对齐用换行t制表符。5.打印不及格学生的信息,不及格应满足stu[i].score<60。Printf打出stu[i].num,stu[i].name即学号,姓名。第二次调用printf分别打出stu[i].score[0],stu[i]
3、.score[1],stu[i].score[2]相应的不及格成绩。6.在屏幕上打印优等学生。首先分析优等生需要的条件,有四种并列关系的条件都可。A均成绩>=90B均成绩>=85且至少一科为100C均分>=85且至少有两科>=95D均分排名前三名。满足着四个条件中的任一个且每门功课及格以上,即为优秀。即可表示为:(满足A
4、
5、满足B
6、
7、满足C
8、
9、满足D)&&(各科成绩>=60)A即为stu[i].aver>=90B即为stu[i].aver>=85&&(stu[i].score[0]==100
10、
11、stu[i].score
12、[1]==100
13、
14、stu[i].score[2]==100)C即为stu[i].aver>=85&&(a
15、
16、b
17、
18、c)a为英语C语言都>=95即为(stu[i].score[0]>=95&&stu[i].score[1]>=95)b为英语高数都>=95即为(stu[i].score[0]>=95&&stu[i].score[2]>=95)c为C语言高数都>=95即为(stu[i].score[1]>=95&&stu[i].score[2]>=95)D即为stu[i].rank<=3各科成绩>=60即可表示为(stu[
19、i].score[0]>=60&&stu[i].score[1]>=60&&stu[i].score[2]>=60)用逻辑运算符&&及
20、
21、ifelseif语句即可实现程序。二、流程图voidmain()//主函数voidduwenjian()//读入文件函数voidxiewenjian()//向文件写出函数voidgekepingjun()//求各科平均分voidpingjunScore()//每学生三门功课平均分voidRankStudent()//学生排名voidfengshuduan()//各科分数段voidPr
22、int()//向屏幕打印学生成绩条voidprintbujige()//向屏幕打印不及格学生信息voidprintyoudenStudent()//向屏幕打印优等生信息各个函数流程图如下:设计思路数函主读入文件各学生平均分各科平均分排名算分数段写文件屏幕上打印学生成绩打印不及格信息打印优等生Ifelseif语句菜单程序语句ElseifIfelseI结果运行voidmain()voidduwenjian()主函数读入文件结束voidxiewenjian()写文件voidgekepingjun()求各科平均分函数voidp
23、ingjunScore()三门功课平均分定义变量开始循环算平均分结束voidRankStudent()学生排名voidfengshuduan()各分数段人数结束结束相比较小排名加1voidprintbujige()打印不及格信息voidPrint()打印各科成绩开始结束结束voidprintyoudenStudent()优等生If语句的嵌套三、源程序清单#include#include#defineN15structstudent{intnum;charname[20];intsc
24、ore[3];floataver;intrank;}stu[N];intE1=0,E2=0,E3=0,E4=0,E5=0,C1=0,C2=0,C3=0,C4=0,C5=0,M1=0,M2=0,M3=0,M4=0,M5=0;floataverEnglish=0,averClanguage=0,averMath=0;voidduwen