一.问题描述
实验题目1 定义一个学生类,其中包括如下内容:
(1)私有数据成员
①年龄 age;
②姓名 string name;
(2)公有成员函数:
①构造函数:带参数的构造函数Student(int m, string n);
不带参数的构造函数Student()
②改变数据成员值的函数:设置姓名void SetName(int m, string n)
获取数据成员的函数: 获取年龄int Getage();
获取名字string Getname();
在main()中定义一个有3个元素的对象数组并分别初始化,然后输出对象数组的信息。
实验题目2 定义一个产品类,通过如下方式来创建产品对象:
(1)通过指定产品名创建
(2)通过指定产品名和产品价格创建
(3)通过指定产品名、产品价格、出厂日期创建
(4)还应该包含:生产厂家、有效日期
在main()中定义对象并初始化,输出相关的产品信息,
实验题目3 为一门课写一个评分程序,评分原则如下:
(1)有两次随堂测试,每次满分10分
(2)有一次期中和一次期末考试,每次满分100分;
(3)期末占总成绩50%,期中占总成绩25%,两次随堂测试占总成绩25%;
(4)总成绩大于等于90为A,80-89为B,70-79为C,60-69为D,60以下为E;
设计一个类,记录学生的姓名、每次成绩、总成绩、对应的等级,在main()定义对象并初始化,由键盘录入信息,等级、总成绩不可直接初始化,需通过计算获得。输出某个同学的上述信息。
二.算法的设计思路
三.代码
四.运行结果
这是固定输入
#include
#include
using namespace std;
class Stu {
private:
int age;
string name;
public:
void Student(int m, string n) {
name = n;
age = m;
}
void Student() {};
void SetName(int m,string n) {
name = n;
age = m;
}
int Getage() {
return age;
}
string Getname() {
return name;
}
};
int main() {
Stu people;
people.SetName(18,"翠花");
cout << "我爱的人是" << people.Getname() << "," << people.Getage() << "岁";
}
这是自定义输入
#include
#include
using namespace std;
class Stu {
private:
int age = 0;
string name = "";
public:
void Student(int m, string n) {
name = n;
age = m;
}
void Student() {};
void SetName(int m, string n) {
name = n;
age = m;
}
int Getage() {
return age;
}
string Getname() {
return name;
}
};
int main() {
Stu people;
int age=0;
string name;
cout << "请输入名字\n";
cin >> name;
cout << "请输入年龄\n";
cin >> age;
people.SetName(age, name);
cout << "我爱的人是" << people.Getname() << "," << people.Getage() << "岁";
}
通过class的类命名,区分私有数据和公共函数,完成对类的命名
主函数中通过本身数据的获取,传递到定义好的类中,就可以完成功能要求
#include
#include
using namespace std;
class Pro {
private:
double price=0;
string name="";
string maijia="";
string chuchang="";
string youxiao = "";
public:
void Product(double m, string n,string b,string v,string c) {
name = n;
price = m;
maijia = b;
chuchang = v;
youxiao = c;
}
void Student() {};
void SetName(int m,string n, string b, string v, string c) {
name = n;
price = m;
maijia = b;
chuchang = v;
youxiao = c;
}
double Getprice() {
return price;
}
string Getname() {
return name;
}
string Getmaijia() {
return maijia;
}
string Getchuchang() {
return chuchang;
}
string Getyouxiao() {
return youxiao;
}
};
int main() {
Pro product;
double price;
string name, shangjia, chuchang, youxiao;
cout << "请输入商品名\n";
cin >> name;
cout << "请输入产品价格\n";
cin >> price;
cout << "请输入出厂日期(请按20220101规范输入)\n";
cin >> chuchang;
cout << "请输入有效日期(请按20220101规范输入)\n";
cin >> youxiao;
cout << "请输入生产厂家\n";
cin >> shangjia;
product.SetName(price, name, shangjia, chuchang, youxiao);
cout << "产品价格为" << product.Getprice();
cout << "\n产品名为" << product.Getname();
cout << "\n出厂日期为" << product.Getchuchang();
cout << "\n生产厂家为" << product.Getmaijia();
cout << "\n有效日期为" << product.Getyouxiao();
}
通过命名要求的数据,挨个要求规定输入后能获取到数据,再挨个输出
#include
using namespace std;
struct student
{
private:
int first_test;
int second_test;
int midsemester;
int end_of_term;
char grade;
public:
void get_first_test();
void get_second_test();
void get_midsemester();
void get_end_of_term();
void end_grade();
};
int main()
{
student student1, student2;
student1.get_first_test();
student1.get_second_test();
student1.get_midsemester();
student1.get_end_of_term();
student1.end_grade();
student2.get_first_test();
student2.get_second_test();
student2.get_midsemester();
student2.get_end_of_term();
student2.end_grade();
return 0;
}
void student::get_first_test()
{
int signal = 1;
cout << "请输入第一次成绩:";
cin >> first_test;
if ((first_test >= 0) && (first_test <= 10))
{
signal = 0;
}
while (signal)
{
cout << "输入有误,请输入第一次成绩:";
cin >> first_test;
if ((first_test >= 0) && (first_test <= 10))
{
signal = 0;
}
}
}
void student::get_second_test()
{
int signal = 1;
cout << "请输入第二次成绩:";
cin >> second_test;
if ((second_test >= 0) && (second_test <= 10))
{
signal = 0;
}
while (signal)
{
cout << "输入有误,请输入第二次成绩:";
cin >> second_test;
if ((second_test >= 0) && (second_test <= 10))
{
signal = 0;
}
}
}
void student::get_midsemester()
{
int signal = 1;
cout << "请输入期中成绩:";
cin >> midsemester;
if ((midsemester >= 0) && (midsemester <= 100))
{
signal = 0;
}
while (signal)
{
cout << "输入有误,请输入期中成绩:";
cin >> midsemester;
if ((midsemester >= 0) && (midsemester <= 100))
{
signal = 0;
}
}
}
void student::get_end_of_term()
{
int signal = 1;
cout << "请输入期末成绩:";
cin >> end_of_term;
if ((end_of_term >= 0) && (end_of_term <= 100))
{
signal = 0;
}
while (signal)
{
cout << "输入有误,请输入期末成绩:";
cin >> end_of_term;
if ((end_of_term >= 0) && (end_of_term <= 100))
{
signal = 0;
}
}
}
void student::end_grade()
{
double a = (double(first_test) * 10 + double(second_test) * 10) * 0.125 + double(midsemester) * 0.25 + double(end_of_term) * 0.5;
if ((a <= 100) && (a >= 90))
grade = 'A';
else if ((a < 90) && (a >= 80))
grade = 'B';
else if ((a < 80) && (a >= 70))
grade = 'C';
else if ((a < 70) && (a >= 60))
grade = 'D';
else
grade = 'E';
cout << grade << endl;
}
首先,对成绩的输入进行判断,如果是负数或者大于一百的数据则返回输入有误,要求重新输入
其次在类中定义好四个要求好的数据类型。
最后进行数值的运算,得出成绩等地
wechat :yjn_wangshu
qq:2453043450