一.题目
1.定义3个重载的求体积函数,函数名为volume,函数返回值类型为double,其中求正方体体积的函数只带一个形式参数,求圆体积的函数有两个形式参数,一个是半径,含有一个是圆周率,求长方体体积的函数带有三个形式参数,用于获取长方体的长宽高。
2.定义一个简单的学生成绩管理系统,需要处理NUMBER(用户自定义常量)个学生的高等数学成绩数据,每个学生的信息包括姓名、学号、性别、年龄、成绩,初始数据从键盘输入,存入由指针申请的一组动态数组空间。如果年龄不在16-21之间,显示“Age is out of range!”。如果输入的成绩不在0-100之间,显示“Score does not exist!”。如果输入的性别不是F和M,显示“Unknown sex!”.利用C++的异常处理机制检测并且处理异常。主函数中输出前面有效的学生完整信息。
二.代码
#include<iostream>
using namespace std;
double volume(double a)//正方体
{
return a*a*a;
}
double volume(double r,double PI)//圆
{
return 4/3*PI*r*r*r;
}
double volume(double x,double y,double z)//长方体
{
return x*y*z;
}
int main()
{
double PI = 3.1415926;
double a,r,x,y,z;
cin>>a>>r>>x>>y>>z;
double S1,S2,S3;
S1 = volume(a);
S2 = volume(r,PI);
S3 = volume(x,y,z);
cout<<"正方体的体积 = "<<S1<<endl;
cout<<"圆的体积 = "<<S2<<endl;
cout<<"长方体的体积 = "<<S3<<endl;
return 0;
}
#include<iostream>
using namespace std;
const int NUMBER =3 ;
class Student{
public:
char name[16];
int id;
char gender;
int age;
float score;
};
int main()
{
Student* stu = new Student[NUMBER];
int* s = new int[NUMBER];
for(int i = 0;i < NUMBER;i++)
{
s[i] = 1;
}
for(int i = 0;i < NUMBER;i++)
{
cout<<"姓名:";
cin>>stu[i].name;
cout<<"学号:";
cin>>stu[i].id;
cout<<"性别:";
cin>>stu[i].gender;
cout<<"年龄:";
cin>>stu[i].age;
cout<<"分数:";
cin>>stu[i].score;
}
for(int i = 0;i < NUMBER;i++)
{
try
{
if(stu[i].age<16||stu[i].age>21)
{
s[i] = 0;
throw stu[i].age;
}
}
catch(int)
{
cout<<"第"<<i+1<<"同学 "<<"Age is out of range!"<<endl;
}
try
{
if(stu[i].score<0||stu[i].age>100)
{
s[i] = 0;
throw stu[i].score;
}
}
catch(float)
{
cout<<"第"<<i+1<<"同学 "<<"Score does not exist!"<<endl;
}
try
{
if(stu[i].gender != 'F'&&stu[i].gender != 'M' )
{
s[i] = 0;
throw stu[i].gender;
}
}
catch(char)
{
cout<<"第"<<i+1<<"同学 "<<"Unknown sex!"<<endl;
}
}
for(int i = 0;i<NUMBER;i++)
{
if(s[i] == 1)
{
cout<<"姓名:"<<stu[i].name<<endl;
cout<<"学号:"<<stu[i].id<<endl;
cout<<"性别:"<<stu[i].gender<<endl;
cout<<"年龄:"<<stu[i].age<<endl;
cout<<"分数:"<<stu[i].score<<endl;
}
}
return 0;
}