C++学生信息管理(附源码)

C++学生信息管理(用类实现输入保存、查询、显示)

实现:
(1)从键盘输入N个学生的信息,保存到自定义命名的文件中(比如, Broccoli.txt/dat)。
(2)设计表示学生信息的类Student,其中包括但不限于学生的编号、姓名、电话等数据成员(访问权限均为私有),以及若干成员函数。
(3)从文件(自定义命名)中读取所有学生的信息并显示到屏幕上,对文件的读写分别以ifstream和ofstream实现。
(4)分别定义方法void seek1(int seeknumber)、void seek2(char seekname[])实现按编号和姓名查找学生的信息。

运行截图

在这里插入图描述

代码实现

/*
练习:
(1)从键盘输入N个学生的信息,保存到自定义命名的文件中(比如, Broccoli.txt/dat)。
(2)设计表示学生信息的类Student,其中包括但不限于学生的编号、姓名、电话等数据成员(访问权限均为私有),以及若干成员函数。
(3)从文件(自定义命名)中读取所有学生的信息并显示到屏幕上,对文件的读写分别以ifstream和ofstream实现。
(4)分别定义方法void seek1(int seeknumber)、void seek2(char seekname[])实现按编号和姓名查找学生的信息。
*/


#include"iostream"
#include"fstream"
using namespace std;

#define N 2     //宏定义学生的数量
class Student   //创建学生信息的类Student
{
private:
	int number;
	char name[10];
	char phone[13];
public:
	void input();
	void output();
	void seek1(int seeknumber);
	void seek2(char seekname[10]);
};

void Student::input()  //输入学生信息
{
	//创建Broccoli.txt文件并写入信息
	ofstream file1;
	file1.open("Broccoli.txt", ios::out);

	for (int i = 0; i < N; i++)
	{
		cout << "【请输入第" << i + 1 << "位学生的学生信息】" << endl;
		cout << "编号:";
		cin >> number;
		file1 << number << endl;
		cout << "姓名:";
		cin >> name;
		file1 << name << endl;
		cout << "电话:";
		cin >> phone;
		file1 << phone << endl;
		cout << endl;
	}
	file1.close();
}

void Student::output()  //显示所有学生信息
{
	//调用Broccoli.txt文件中的信息并显示
	ifstream file2;
	file2.open("Broccoli.txt", ios::in);

	for (int i = 0; i < N; i++)
	{
		cout << endl;
		cout << "【第" << i + 1 << "位学生】" << endl;
		file2 >> number;
		cout << "编号:" << number << endl;
		file2 >> name;
		cout << "姓名:" << name << endl;
		file2 >> phone;
		cout << "电话:" << phone << endl;
	}
	file2.close();
}

void Student::seek1(int seeknumber)  //按编号查询学生信息
{
	int time = 0;
	ifstream file3;
	file3.open("Broccoli.txt", ios::in);

	for (int i = 0; i < N; i++)
	{
		file3 >> number;
		file3 >> name;
		file3 >> phone;

		if (seeknumber == number)
		{
			time++;
			cout << endl;
			cout << "【查询结果如下】" << endl;
			cout << "编号:" << number << endl;
			cout << "姓名:" << name << endl;
			cout << "电话:" << phone << endl;
			cout << endl;
			break;
		}
	}
	if (time == 0)
	{
		cout << endl;
		cout << "查无此人!" << endl;
		cout << "请查看是否输入正确的学生编号" << endl;
		cout << endl;
	}
	file3.close();
}

void Student::seek2(char seekname[10])  //按姓名查找学生信息
{
	int time = 0;
	ifstream file4;
	file4.open("Broccoli.txt", ios::in);

	for (int i = 0; i < N; i++)
	{
		file4 >> number;
		file4 >> name;
		file4 >> phone;

		if (strcmp(seekname, name) == 0)  //比较字符串是否相同
		{
			time++;
			cout << endl;
			cout << "【查询结果如下】" << endl;
			cout << "编号:" << number << endl;
			cout << "姓名:" << name << endl;
			cout << "电话:" << phone << endl;
			cout << endl;
			break;
		}
	}
	if (time == 0)
	{
		cout << "查无此人!!!" << endl;
		cout << "请查看是否输入正确的学生姓名" << endl;
		cout << endl;
	}
	file4.close();
}

int main()
{
	Student Eder, *p;  //定义类的对象Eder和指针变量p
	p = &Eder;          //指针变量指向Eder
	p->input();
	//Eder.input();

	cout << " ----------------------" << endl;
	cout << "| 1.按编号查找学生信息 |" << endl;
	cout << "| 2.按姓名查找学生信息 |" << endl;
	cout << "| 3.显示所有学生信息   |" << endl;
	cout << "| 4.保存信息并退出     |" << endl;
	cout << " ----------------------" << endl;

	int choice;
	int seeknumber;
	char seekname[10];
	while (1)
	{
		cout << "请输入你的选择:";
		cin >> choice;
		while (choice != 1 && choice != 2 && choice != 3 && choice != 4)
		{
			cout << "输入错误!" << endl;
			cout << "请重新输入你的选择:";
			cin >> choice;
		}
		
		switch (choice)
		{
		case 1:
			cout << "请输入要查找的学生编号:";
			cin >> seeknumber;
			p->seek1(seeknumber);
			//Eder.seek1(seeknumber);
			break;
		case 2:
			cout << "请输入要查找的姓名:";
			cin >> seekname;
			p->seek2(seekname);
			//Eder.seek2(seekname);
			break;
		case 3:
			p->output();
			//Eder.output();
			break;
		case 4:
			break;
		}
	}
	return 0;
}

代码小白,仅作学习记录📝

  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,使用MFC可以方便地创建Windows界面应用程序。以下是一个简单的图书管理系统读者信息录入的示例代码: 首先,需要创建一个MFC窗口应用程序,包含一个对话框。 在对话框上添加一些控件,如静态文本、编辑框和按钮,用于显示和输入读者信息。 在类视图中添加一个类,用于处理对话框的消息和逻辑。 在该类的头文件中定义控件的成员变量,例如: ```cpp class CReaderInfoDlg : public CDialogEx { public: CReaderInfoDlg(CWnd* pParent = nullptr); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_READER_INFO }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() private: CString m_strName; CString m_strID; CString m_strPhone; CString m_strEmail; }; ``` 在类的实现文件中,使用DDX/DDV机制将控件与成员变量关联起来,例如: ```cpp void CReaderInfoDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_NAME, m_strName); DDX_Text(pDX, IDC_EDIT_ID, m_strID); DDX_Text(pDX, IDC_EDIT_PHONE, m_strPhone); DDX_Text(pDX, IDC_EDIT_EMAIL, m_strEmail); // 针对每个控件添加验证规则,例如: DDV_MaxChars(pDX, m_strName, 20); DDV_MaxChars(pDX, m_strID, 18); DDV_MaxChars(pDX, m_strPhone, 11); DDV_MaxChars(pDX, m_strEmail, 50); } ``` 在类的实现文件中,处理各个控件的消息和按钮的点击事件,例如: ```cpp void CReaderInfoDlg::OnOK() { UpdateData(TRUE); // TODO: 将读者信息保存到文件或数据库中 CDialogEx::OnOK(); } void CReaderInfoDlg::OnCancel() { CDialogEx::OnCancel(); } ``` 最后,将对话框的类与主窗口的菜单命令关联起来,例如: ```cpp void CMainFrame::OnReaderInfo() { CReaderInfoDlg dlg; dlg.DoModal(); } ``` 这样就完成了一个简单的图书管理系统读者信息录入的MFC示例。需要注意的是,该示例仅供参考,实际应用中还需要考虑数据验证、错误处理、数据库连接等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值