计算机实践-C/C++语言程序设计报告-1-计算机实践C/C++程序设计报告指导教师孙大松学号1002040114学生姓名张东专业材料成型及控制工程班级材型10-1电话18745003626成绩计算机实践-C/C++语言程序设计报告-2-二〇一二年六月廿六日一.设计题目题目编号:B5题目名称:写一个统计学生成绩的程序。分别用子函数求出:(1)输入n个学生m门功课的成绩(2)每个学生的平均分(3)每门功课的平均分(4)找出最高分所对应的学生和功课。(每次10道,每道2分)。二。题目意义分别用单独的函数来运行,已达到题目的要求。三。程序设计功能图程序由5个功能模块(函数)组成,功能模块图如下:图3-1程序设计功能图表3-1主函数main()说明模块名称main模块功能主函数模块说明调用输入成绩、计算学生/课程平均成绩、计算最高分对应的学生和课程的函数,删除变量释放空间。类型变量名初值值域变量说明inti0[0,32767]作为计数使用intj0[0,32767]作为计数使用intstudentNums[1,32767]全局变量:学生数量intcourseNums[1,32767]全局变量:课程数量charstudentName学生姓名charcourseName课程名称计算机实践-C/C++语言程序设计报告-3-floataveCourseScores[0,100]该课程的平均分数floataveScores[0,100]该生的平均分数intscores[0,100]相应课程的分数main()函数程序代码如下:intmain(){inti=0,j=0;//计数用inputScore();//输入成绩calAveScores();//计算学生的平均成绩calAveCourseScores();//计算课程的平均成绩getmaxScores();//计算最高分对应的课程和学生for(i=0;icourseNums;i++){deletecourseName[i];}for(i=0;istudentNums;i++){deletestudentName[i];deletescores[i];}delete[]studentName;delete[]scores;delete[]aveScores;delete[]aveCourseScores;计算机实践-C/C++语言程序设计报告-4-delete[]courseName;}表3-2输入成绩inputScore()说明模块名称voidinputScore()模块功能输入学生成绩模块说明输入课程和学生数量,并输入对应的分数类型变量名初值值域变量说明inti0[0,32767]计数用intj0[0,32767]计数用intstudentNums[1,32767]全局变量:学生数量intcourseNums[1,32767]全局变量:课程数量intscores[0,100]相应课程的分数charstudentName学生姓名charcourseName课程名称floataveCourseScores[0,100]该课程的平均分数floataveScores[0,100]该生的平均分数inputScore()函数程序代码如下://输入成绩voidinputScore(){inti=0,j=0;//计数用cout请输入学生数量():;cinstudentNums;if(studentNums=0){cout学生数量至少为1,请重新输入:;cinstudentNums;}计算机实践-C/C++语言程序设计报告-5-cout请输入课程数量:;cincourseNums;if(courseNums=0){cout课程数量至少为1,请重新输入:;cincourseNums;}//与课程相关变量初始化courseName=newchar*[courseNums];aveCourseScores=newfloat[courseNums];cout\n请根据提示输入所有课程名字\n;for(i=0;icourseNums;i++){cout输入第i+1个课程名:;courseName[i]=newchar[255];cincourseName[i];}//于学生变量相关变量初始化studentName=newchar*[studentNums];scores=newfloat*[studentNums];aveScores=newfloat[studentNums];for(i=0;istudentNums;i++){scores[i]=newfloat[courseNums];计算机实践-C/C++语言程序设计报告-6-}for(i=0;istudentNums;i++){cout输入第i+1个学生名字:;studentName[i]=newchar[255];cinstudentName[i];for(j=0;jcourseNums;j++){lable1:cout输入studentName[i]\t的courseName[j]的成绩:;floatscore=0;cinscore;if(score100||score0){cout请重新输入成绩,成绩应为0到100范围内的;coutendl;gotolable1;}scores[i][j]=score;}}}表3-3计算学生平均成绩calAveScores()说明模块名称voidcalAveScores()模块功能计算学生平均成绩模块说明将该生的各科成绩相加除以课程数得到该生的平均分数计算机实践-C/C++语言程序设计报告-7-类型变量名初值值域变量说明inti0[0.32767]计数用intj0[0,32767]计数用intstudentNums[1,32767]全局变量:学生数量intcourseNums[1,32767]全局变量:课程数量floataveScores[0,100]该生的平均分数calAveScores()函数程序代码如下://计算学生平均成绩voidcalAveScores(){inti=0,j=0;coutendl;for(i=0;istudentNums;i++){aveScores[i]=0;for(j=0;jcourseNums;j++){aveScores[i]+=scores[i][j];}if(courseNums!=0){aveScores[i]/=courseNums;}cout学生studentName[i]\t的平均成绩为:aveScores[i]endl;}}计算机实践-C/C++语言程序设计报告-8-表3-4计算课程平均成绩calAveCourseScorei()说明模块名称voidcalAveCourseScorei();模块功能计算课程平均成绩模块说明将该课程所有学生的成绩相加除以学生数量得到该课平均分数类型变量名初值值域变量说明inti0[0.32767]计数用intj0[0,32767]计数用intstudentNums[1,32767]全局变量:学生数量intcourseNums[1,32767]全局变量:课程数量floataveCourseScores[0,100]该课程的平均分数calAveCourseScorei()函数程序代码如下://计算课程平均成绩voidcalAveCourseScores(){inti=0,j=0;coutendl;for(i=0;icourseNums;i++){aveCourseScores[i]=0;for(j=0;jstudentNums;j++){aveCourseScores[i]+=scores[j][i];}if(studentNums!=0){aveCourseScores[i]/=studentNums;}计算机实践-C/C++语言程序设计报告-9-cout课程courseName[i]\t的平均成绩为:aveCourseScores[i]endl;}}表3-5计算最高分对应的课程和学生getmaxScores()说明模块名称voidgetmaxScores();模块功能计算最高分对应的课程和学生模块说明比较得到最高分数,通过二维数组即可知道对应的学生姓名和课程名称。类型变量名初值值域变量说明inti0[0.32767]计数用intj0[0,32767]计数用floatmaxscore0[0,100]最高分数charstudentName学生姓名charcourseName课程名称getmaxScores()函数程序代码如下://计算最高分对应的课程和学生voidgetmaxScores(){inti=0,j=0;coutendl;intmaxid_course=-1,maxid_student=-1;floatmaxscores=0;for(i=0;icourseNums;i++){for(j=0;jstudentNums;j++){if(scores[j][i]maxscores){maxscores=scores[j][i];maxid_course=i;计算机实践-C/C++语言程序设计报告-10-maxid_student=j;}}}if(maxid_course!=-1||maxid_student!=-1){coutendl;cout最高成绩为:scores[maxid_student][maxid_course]endl;cout对应的最高课程名:courseName[maxid_course]endl;cout对应的学生名字为:studentName[maxid_student]endl;}}四.详细设计计算机实践-C/C++语言程序设计报告-11-图4-1主程序流程图计算机实践-C/C++语言程序设计报告-12-五.程序运行界面计算机实践-C/C++语言程序设计报告-13-计算机实践-C/C++语言程序设计报告-14-图5-1代码编辑界面截图图5-2运行界面截图六.调试、分析及总结No遇到问题解决措施12345对本次设计的收获,对本课程的认识及思考。计算机实践-C/C++语言程序设计报告-15-七.参考资料1.崔武子.C程序设计教程[M],清华大学出版社,20032.沈显君.C++语言程序设计(第二版),清华大学出版社,20103.钱能.C++程序设计教程(第二版),清华大学出版社,20054.八.综合评分以下内容任课教师填写序号考察主项教师评语得分备注1完成题目情况2代码格式规范3题目难度系数4创新性5实验报告文档6平时成绩7成绩合计