学生类+学生管理类(数组实现)

本文展示了如何使用C++编程实现一个学生类,包含学号、姓名和出生日期属性,以及输出、构造和销毁等功能。此外,还创建了一个学生管理类,用于存储和操作多个学生对象,包括添加、删除、查找和显示学生信息。程序支持用户交互式输入,提供友好的菜单选项进行操作。
摘要由CSDN通过智能技术生成
#include<iostream>
#include<stdlib.h>
using namespace std;


class student

{

public:

	static void printHeader() {

		cout << "学号\t姓名\t出生日期\n";

	}

	int get_id()

	{

		return ID;

	}

	string get_name()

	{

		return name;

	}

	void output()

	{

		cout << ID << "\t" << name << "\t" << birthday << endl;

	}

	student()

	{

	}

	student(int ID, string name, string birthday = "未知")

	{

		this->ID = ID;

		this->name = name;

		this->birthday = birthday;

	}

	student(string name, string birthday)

	{

		this->name = name;

		this->birthday = birthday;

		this->ID = rand();

	}

private:

	int ID;

	string name;

	string birthday;

};

#define len 10

class STU

{

private:

	student arr[len];

	int number = 0;

public:

	void c_addstu(string _name, string _birthday)

	{

		student a(_name, _birthday);

		addstu(a);

	}

	void c_addstu(int _id, string _name, string _birthday)

	{

		student a(_id, _name, _birthday);

		addstu(a);

	}

	void addstu(student stu)

	{

		arr[number++] = stu;

	}

	void deletestu(int id)

	{

		for (int i = 0; i < number; i++)

		{

			if (arr[i].get_id() == id)

			{

				for (int m = i; m < number; m++)

				{

					arr[m] = arr[m + 1];

				}

				number--;

				cout << "删除成功" << endl;

				break;

			}

			else if (arr[i].get_id() != id && i == number - 1)

			{

				cout << "未找到该学生" << endl;

			}

		}

	}

	void findstu_id(int id)

	{

		for (int i = 0; i < number; i++)

		{

			if (arr[i].get_id() == id)

			{

				cout << "寻找id成功! 学生信息如下" << endl;

				student::printHeader();

				arr[i].output();

				break;

			}

			else if (arr[i].get_id() != id && i == number - 1)

			{

				cout << "未找到该学生" << endl;

			}

		}

	}

	void findstu_name(string _name)

	{

		for (int i = 0; i < number; i++)

		{

			if (arr[i].get_name() == _name)

			{

				cout << "寻找姓名成功! 学生信息如下 " << endl;

				student::printHeader();

				arr[i].output();

				break;

			}

			else if (arr[i].get_name() != _name && i == number - 1)

			{

				cout << "未找到该学生" << endl;

			}

		}

	}

	void print()

	{

		student::printHeader();

		for (int i = 0; i < number; i++) {

			arr[i].output();

		}

	}

};

void menu()

{

	cout << "*******************************" << endl;

	cout << "********1.添加学生信息*********" << endl;

	cout << "*****2.添加学生(姓名生日)****" << endl;

	cout << "********3.学号查找学生*********" << endl;

	cout << "********4.姓名查找学生*********" << endl;

	cout << "********5.显示全部学生*********" << endl;

	cout << "*****6.根据id删除学生信息******" << endl;

	cout << "********    0.退出    *********" << endl;

	cout << "*******************************" << endl;

}

void func()

{

	STU St;

	int x;

	do

	{

		menu();

		cout << "请选择->" << "";

		cin >> x;

		switch (x)

		{

		case 1:

		{

			int _id;

			string _name;

			string _birthday;

			cout << "请输入学生信息(学号 姓名 出生日期)-》" << endl;

			cin >> _id;

			cin >> _name;

			cin >> _birthday;

			St.c_addstu(_id, _name, _birthday);

			cout << "添加成功!" << endl;

			break;

		}

		case 2:

		{

			int _id;

			string _name;

			string _birthday;

			cout << "请输入学生信息(姓名 出生日期)-》" << endl;

			cin >> _name;

			cin >> _birthday;

			St.c_addstu(_name, _birthday);

			cout << "添加成功!" << endl;

			break;

		}

		case 3:

		{

			int y;

			cout << "请输入要寻找学生的学号-》" << endl;

			cin >> y;

			St.findstu_id(y);

			break;

		}

		case 4:

		{

			string z;

			cout << "请输入要寻找学生的姓名-》" << endl;

			cin >> z;

			St.findstu_name(z);

			break;

		}

		case 5:

		{

			cout << "学生名单如下" << endl;

			St.print();

			break;

		}

		case 6:

		{

			int z;

			cout << "请输入要删除学生的id-》" << endl;

			cin >> z;

			St.deletestu(z);

			break;

		}

		case 0:

		{

			cout << "退出成功" << endl;

			break;

		}

		default:

		{

			cout << "输入错入 请重新按菜单输入" << endl;

			break;

		}

		}

	} while (x);

}

int main()

{

	func();

}

 

C++类和对象的基本应用

1.创建一个学生类,包含三个私有成员变量,分别为学号、姓名、出生年月,一个成员函数输出以上三个成员变量;两个构造函数,一个构造函数包含三个字段,一个只有姓名和出生年月,学号系统自动产生。

2.再创建一个学生管理类,包含一个学生对象数组,保存创建的学生对象;三个成员函数,一个是根据姓名出生年月创建学生对象并添加到学生对象数组中,一个是将学生对象直接添加到学生数组中,第三个通过循环方式打印输出所有学生对象,每个学生的信息一行。

3.在学生管理类中添加根据学号删除学生与根据学号查询学生信息;根据学生姓名查询学生信息;在学生类中添加静态函数,输出学生类的表头(学号、姓名、出生年月)。

4.要求学生信息通过交互方式录入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚安刘十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值