南京邮电大学通达学院2023c++实验报告(一)

题目展示

一.问题描述
实验题目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

你可能感兴趣的:(2023c++实验报告,c++,算法,数据结构)