C语言课程设计实习报告班级:地质10901学生姓名:曾超学号:35指导老师:陈老师/朱老师日期:2011-3-3目录一、程序分析与设计.......................................................................................................................1二、流程图.......................................................................................................................................1三、源程序清单...............................................................................................................................7四、调试过程.................................................................................................................................14五、程序有待改进的地方...............................................................................错误!未定义书签。六、本次实习的收获和建议.........................................................................................................14附录................................................................................................................................................15C语言课程设计实习报告1一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1、先用记事本编辑文件“成绩.txt”存储一个班学习成绩和“学分.txt”。然后在C环境下,建立一个学生信息的结构体和学分信息的结构体,用r方式打开上述文件,再用fscanf读入。2、利用循环使每个学生的三门功课的成绩相加,然后除以总科目,得到平均分;接着用冒泡法利用平均分的高低排出名次。最后用fprintf将每个学生的信息写入到“成绩1.txt”文件中。3、定义a[3],b[3],c[3],d[3],e[3]分别对应三门科目的五个成绩段,现将五个数组赋初值0,然后用if语句,落在哪个分数段,哪个数组就自加一回。然后用“fprintf”将得到的人数以及对应的分数段写入文件。4、利用循环,将每个学生的同一门相加,再除以学生的总人数,就得到了单科的平均分,再写入另一个文件中。5、利用循环找出每个学生小于60分的成绩,打印出不及格学生名单:姓名、序号、不及格科目、分数。再用fprintf写入文件6.用if语句选择排名前3的学生,然后用循环和if语句套用,选择无不及格课程的学生,再用if选择平均分大于90的学生或平均分大于85且至少有一门为100分或至少有两科成绩再95分以上则为优等生。将得到的数据再用printf打印出来,再用fprintf将数据写入文件。7、用一个函数被主函数调用,该函数制作菜单。8、先定义一个字符c,用while语句选择c,把printf、fsd、bjg、youden四个函数套用到case语句中,用scanf输入c,最后用while语句造成死循环使得运行程序时可以重复输入c。。。。。。。二、流程图读文件平均分C语言课程设计实习报告2开始inti,jFILE*fp1i=0iSIZEfscanf(fp1,””,姓名,学号)j=0j3fscanf(fp1,成绩)j++i++结束开始i=0iSIZE平均分=(数学+无力+c语言)/3.0i++结束C语言课程设计实习报告3排名开始i=0iSIZEstud[i].rank=1;j=0;jSIZE[i].aver[j]aver[i]rank++j++i++结束C语言课程设计实习报告4各分数段人数printf(分数段\t数学\t英语\tc语言\n);j=0j3j++printf(\n);j=0j3j++Multia[j]=0;MultiMultiC语言课程设计实习报告5主函数:主函数get();1scanf(%f,&c);c=1c=2YESIFprint();printf(\n);;break;C语言课程设计实习报告6优等生开始i=0iSIZE判断始否符合优等生条件打印优等生信息i++结束C语言课程设计实习报告7三、源程序清单#includestdio.hstructstudent{charname[10];intnum;floatscore[3];floataver;intrank;}stud[9];voidget()//读文件{inti;intj;FILE*fp1;fp1=fopen(c:\\成绩.txt,r);for(i=0;i9;i++){fscanf(fp1,%d\t%s\t,&stud[i].num,stud[i].name);for(j=0;j3;j++)fscanf(fp1,%f\t,&stud[i].score[j]);}fclose(fp1);}voidpjf()//平均分{inti;for(i=0;i9;i++)stud[i].aver=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;}voidwrite()//写文件{inti;intj;FILE*fp2;fp2=fopen(c:\\成绩1.txt,w);C语言课程设计实习报告8fprintf(fp2,序号\t姓名\t数学\t英语\tc语言\t平均分\t排名\n);for(i=0;i9;i++){fprintf(fp2,%d\t%s\t,stud[i].num,stud[i].name);for(j=0;j3;j++){fprintf(fp2,%.2f\t,stud[i].score[j]);}fprintf(fp2,%.2f\t,stud[i].aver);fprintf(fp2,%d\n,stud[i].rank);}fclose(fp2);}voidpm()//排名{inti;intj;for(i=0;i9;i++){stud[i].rank=1;for(j=0;j9;j++){if(stud[i].averstud[j].aver)stud[i].rank++;}}}voidprintf()//打印{inti;intj;printf(序号\t姓名\t数学\t英语\tc语言\t平均分\t排名\n);for(i=0;i9;i++){printf(%d\t%s\t,stud[i].num,stud[i].name);for(j=0;j3;j++){printf(%.2f\t,stud[i].score[j]);}printf(%.2f\t,stud[i].aver);printf(%d\n,stud[i].rank);}}voidfsd()//分数段C语言课程设计实习报告9{printf(分数段\t数学\t英语\tc语言\n);inti;intj;inta[3];intb[3];intc[3];intd[3];inte[3];floatsum;floatpj[3];FILE*fp4;fp4=fopen(c:\\分数段.txt,w);printf(60\t);fprintf(fp4,60\t);for(j=0;j3;j++){a[j]=0;for(i=0;i9;i++){if(stud[i].score[j]=60){a[j]++;}}printf(%d\t,a[j]);fprintf(fp4,%d\t,a[j]);}printf(\n);fprintf(fp4,\n);printf(60~69\t);fprintf(fp4,60~69\t);for(j=0;j3;j++){b[j]=0;for(i=0;i9;i++){if(stud[i].score[j]60&&stud[i].score[j]70){b[j]++;}}printf(%d\t,b[j]);fprintf(fp4,%d\t,b[j]);C语言课程设计实习报告10}printf(\n);fprintf(fp4,\n);printf(70~79\t);fprintf(fp4,70~79\t);for(j=0;j3;j++){c[j]=0;for(i=0;i9;i++){if(stud[i].score[j]=70&&stud[i].score[j]80){c[j]++;}}printf(%d\t,c[j]);fprintf(fp4,%d\t,c[j]);}printf(\n);fprintf(fp4,\n);printf(80~89\t);fprintf(fp4,80~89\t);for(j=0;j3;j++){d[j]=0;for(i=0;i9;i++){if(stud[i].score[j]=80&&stud[i].score[j]90){d[j]++;}}printf(%d\t,d[j]);fprintf(fp4,%d\t,d[j]);}printf(\n);fprintf(fp4,\n);printf(=90\t);fprintf(fp4,=90\t);for(j=0;j3;j++){e[j]=0;for(i=0;i9;i++)C语言课程设计实习报告11{if(stud[i].score[j]=90){e[j]++;}}printf(%d\t,e[j]);fprintf(fp4,%d\t,e[j]);}printf(\n);fprintf(fp4,\n);printf(平均分\t);fprintf(fp4,平均分\t);for(j=0;j3;j++){sum=0;for(i=0;i9;i++){sum=sum+stud[i].score[j];}pj[j]=sum/20.0;printf(%.2f\t,pj[j]);fprintf(fp4,%.2f\t,pj[j]);}fclose(fp4);}voidbjg()//打印不及格名单{inti;intj;FILE*fp5;fp5=fopen(c:\\不及格.txt,w);printf(\n);printf(不及格名单\n);printf(姓名\t序号\t科目\t成绩\n);fprintf(fp5,不及格名单\n);fprintf(fp5,姓名\t序号\t科目\t成绩\n);for(i=0;i9;i++){for(j=0;j3;j++){if(stud[i].score[j]60){printf(%s\t%d\t,stud[i].name,stud[i].num);C语言课程设计实习报告12fprintf(fp5,%s\t%d\t,stud[i].name,stud[i].num);if(j==0){printf(数学\t);fprintf(fp5,数学\t);}if(j==1){printf(英语\t);fprintf(fp5,英语\t);}if(j==2){printf(c语言\t);fprintf(fp5,c语言\t);}printf(%.2f\n,stud[i].score[j]);fprintf(fp