C++程序设计实践报告.doc
河海大学文天学院C&C+程序设计实践报告专业: 计算机科学与技术 班级: 计算机一班 学号: 090310131 姓名: 周文彬 (1)设计目标和内容 巩固C语言语法规则及其过程性方法;加强程序思维、工具思维、工程思维等训练;提高程序设计有关的分析、设计、编码、调试等动手能力 。复习巩固C语言的语法规则、数据类型、流程控制、模块构造、指针运用、文件运用等知识;统一布置设计选题,逐题给出程序分析、程序设计、程序编码、程序调试等设计内容;加强程序思维、工具思维、工程思维的综合训练。程序调试在TC V2.0或VC 6.0开发环境中进行。(2)选题内容选题1 选择结构应用设计题:输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。选题2输入5个学生、5门课程成绩,分别求每个学生的平均成绩和每门课程的平均成绩。选题3输入30个整数,升序排列后输出。选题4输入30个人的姓名,升序排列后输出。选题5 函数模块综合应用设计。在二维整型数组中找出每行最大元素及其行列位置,再找出每列最小元素及其行列位置。选题6 函数模块综合应用设计。找出二维数组中全部鞍点元素及其行列位置(所在行上最大并且所在列上最小)。说明:在选题1到选题6中至少选择完成3个选题;。(3)设计内容选作题目为1,2,3,。第一题:算法分析:要定义变量保存三角形的三边判断是否为三角形如果是三角形判断三角形的类型,不是退出。代码部分如下:#include <iostream>using namespace std;/定义Judge函数判断三角形类型void Judge(double a,double b,double c);/主函数void main()again:double Tria_one,Tria_two,Tria_three;/定义Tria_one,Tria_two,Tria_three为三角形的三个边cout<<"这是一个判断三角形的程序"<<endl;cout<<"请依次输入三角形的三个边"<<endl;cin>>Tria_one;cin>>Tria_two;cin>>Tria_three;Judge(Tria_one,Tria_two,Tria_three);goto again;return;void Judge(double a,double b,double c)/判断是否为三角形if (a+b>c)&&(a+c>b)&&(b+c>a)/判断是否满足等边三角形的条件if (a=b)&&(a=c)cout<<"这是一个等边三角形"<<endl;cout<<endl;/判断是否满足等腰三角形的条件if (a=b)&&(a!=c)|(b=c)&&(c!=a)|(a=c)&&(a!=b)if (a*a=b*b+c*c)|(b*b=a*a+c*c)|(c*c=a*a+b*b)cout<<"这是一个等腰直角三角形"<<endl;cout<<endl; elsecout<<"这是一个等腰三角形"<<endl;cout<<endl;/判断是否满足直角三角形的条件if (a*a=b*b+c*c)|(b*b=a*a+c*c)|(c*c=a*a+b*b)cout<<"这是一个直角三角形"<<endl;cout<<endl; elsecout<<"这不是一个三角形"<<endl;cout<<endl;第二题:算法分析:1. 要循环输入5个学生的姓名和成绩2. 对每门课平均成绩和每个学生的平均成绩进行计算3. 循环输出每门课平均成绩和每个学生的平均成绩代码部分如下#include <iostream>#include <string>using namespace std;void main()string student5;/定义一个字符串数组存放学生姓名int score55,C_average5=0,S_average5=0;/score55存放每个学生的分数,C_average为课程平均分 ,S_average是个人平均分int i,j;/循环输入学生姓名和每门课的成绩for (i=0;i<5;i+)cout<<"请输入学生的姓名"<<endl;cin>>studenti;cout<<"请依次输入该学生五门课的成绩"<<endl;for (j=0;j<5;j+)cin>>scoreij;/计算每个人的平均分for (i=0;i<5;i+)for (j=0;j<5;j+)S_averagei+=scoreij;/计算每门课的平均分for (i=0;i<5;i+)for (j=0;j<5;j+)C_averagej+=scoreij;/循环输出课程平均分和个人平均分for (i=0;i<5;i+)cout<<"5门课的的平均成绩分别为"<<C_averagei/5<<endl;for (i=0;i<5;i+)cout<<studenti<<"的平均成绩为"<<S_averagei/5<<endl;第三题:算法分析:使用冒泡排序进行30个整数的升序排列代码部分如下#include <iostream>using namespace std;void main()int a30=0,i,j;cout<<"请输入三十个整数"<<endl;for(i=0;i<30;i+)cin>>ai;/冒泡法排序(升序)for(i=0;i<29;i+)for (j=i+1;j<30;j+)int temp;if (aj<ai)temp=ai;ai=aj;aj=temp;cout<<"输出30个数按照升序排列"<<endl;for (i=0;i<30;i+)cout<<ai<<endl;