实验:编写一个人员信息管理系统。这个系统的功能是:交互式的实现校园人员信息的录入与显示。

本文介绍了一个学校人员信息系统的类设计,包含大学本科学生、教师、研究生和助教四类人员的基本信息及其继承关系。系统使用C++实现,通过类的派生展示了不同角色的特性和共性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学校里,主要有四类人员:大学本科学生、教师、研究生和助教。
大学本科生每周有固定的学时数。教师除了固定的学时数外,还有每周的教学时数。研究生除了固定的学时数外,每周还可以自由做一定的研究。助教生除了上课外,还要做研究和一定的教学工作。
人员的基本信息包括姓名、编号、性别、身份证号、总学时数以及每周固定学时数。各个人员之间的关系: people类派生出student 类和teacher类,student 类派生出graduate类, graduate类和teacher类派生出TA类。

//people.h
#include<iostream>
#include<string>
using namespace std;
class people
{
public:
	people();
	people( string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week);//对数据初始化
    void show();
	string  sexwm(char sex);
	~people();
protected:
	string name;//姓名
	int number;//编号
	char sex;//性别
	int id;//身份证号
	int sum;//总学时数
	int week;//周固定学时数
};
//people.cpp
#include "pch.h"
#include "people.h"


people::people()
{
}


people::people(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week)
{
	name = m_name;
	number = m_number;
	sex = m_sex;
	id = m_id;
	sum = m_sum;
	week = m_week;
}

void people::show()
{
	cout << "人员信息" << endl;
}
string  people::sexwm(char sex)
{
	if (sex == 'm') return "man";
	else return "woman";
}

people::~people()
{
}
//student.h
#pragma once
#include "people.h"
class student :virtual public people
{
public:
	student(); 
	student( string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week);
    void show();
	~student();
};
//student.cpp
#include "pch.h"
#include "student.h"


student::student()
{
}

student::student(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week)
{
	name = m_name;
	number = m_number;
	sex = m_sex;
	id = m_id;
	sum = m_sum;
	week = m_week;
}
void student::show()
{
	cout << "姓名" << '\t' << "编号" << '\t' << "性别" << '\t' << "身份证号" << '\t' << "总学时" << '\t' << "周固定学时" << endl;
	cout << name << '\t' << number << '\t' << sexwm(sex) << '\t' << id << '\t' << sum << '\t' << week << endl;
}


student::~student()
{
}
//teacher.h
#pragma once
#include "people.h"
class teacher :virtual	public people
{
public:
	teacher();
	teacher(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week,int m_teach);
	void show();
	~teacher();
protected:
	int teach;//教学时数
};
//teacher.cpp
#include "pch.h"
#include "teacher.h"


teacher::teacher()
{
}

teacher::teacher(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week, int m_teach)
{
	name = m_name;
	number = m_number;
	sex = m_sex;
	id = m_id;
	sum = m_sum;
	week = m_week;
	teach = m_teach;
}

void teacher::show()
{
	cout << "姓名" << '\t' << "编号" << '\t' << "性别" << '\t' << "身份证号" << '\t' << "总学时" << '\t' << "周固定学时" <<'\t'<<"教学时数"<< endl;
	cout << name << '\t' << number << '\t' << sexwm(sex) << '\t' << id << '\t' << sum << '\t' << week << '\t' << teach << endl;
}

teacher::~teacher()
{
}

//graduate.h
#pragma once
#include "student.h"
class graduate :virtual public student
{
public:
	graduate();
	graduate(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week);
	void show();
	~graduate();
};
//graduate.cpp

#include "pch.h"
#include "graduate.h"


graduate::graduate()
{
}

graduate::graduate(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week)
{
	name = m_name;
	number = m_number;
	sex = m_sex;
	id = m_id;
	sum = m_sum;
	week = m_week;
}
void graduate::show()
{
	cout << "姓名" << '\t' << "编号" << '\t' << "性别" << '\t' << "身份证号" << '\t' << "总学时" << '\t' << "周固定学时" << endl;
	cout << name << '\t' << number << '\t' << sexwm(sex) << '\t' << id << '\t' << sum << '\t' << week << endl;
	cout << "可自由做一定研究" << endl;
}

graduate::~graduate()
{
}

//TA.h
#pragma once
#include "graduate.h"
#include "teacher.h"
class TA :
	public graduate,public teacher
{
public:
	TA();
	TA(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week,int teach);
	void show();
	~TA();
};
//TA.cpp
#include "pch.h"
#include "TA.h"


TA::TA()
{
}

TA::TA(string  m_name, int m_number, char m_sex, int m_id, int m_sum, int m_week, int m_teach)
{
	name = m_name;
	number = m_number;
	sex = m_sex;
	id = m_id;
	sum = m_sum;
	week = m_week;
	teach = m_teach;
}
void TA::show()
{
	cout << "姓名" << '\t' << "编号" << '\t' << "性别" << '\t' << "身份证号" << '\t' << "总学时" << '\t' << "周固定学时" << '\t' << "教学时数" << endl;
	cout << name << '\t' << number << '\t' << sexwm(sex) << '\t' << id << '\t' << sum << '\t' << week << '\t' << teach << endl;
	cout << "可自由做一定研究" << endl;
}
TA::~TA()
{
}

//main.cpp
#include "pch.h"
#include "people.h"
#include "student.h"
#include "teacher.h"
#include "graduate.h"
#include "TA.h"
#include <iostream>
using namespace std;
int main()
{
	student a("a", 1, 'm', 1801, 100, 10);
	a.show();
	teacher b("b", 2, 'w', 1802, 100, 10, 20);
	b.show();
	graduate c("c", 3, 'm', 1803, 100, 10);
	c.show();
	TA d("d", 4, 'w', 1804, 100, 10, 20);
	d.show();
}

某高校,主要人员有:领导、教师和学生,共有的信息包括:编号、姓名、性别、年龄。其中领导还应包含的信息有:任职部门(学院、各系部)、职称;教师还应包含的信息有:职称、任职时间、专业;学生还应包含的信息有:所在班级、所在宿舍等。 某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。 2、功能要求 (1)基本功能 1) 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 2) 查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 3) 显示功能:可显示当前系统中所有记录,每条记录占据一行。 4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
1、问题描述 某高校有四类员工教师、实验员、行政人员教师兼行政人员共有的信息包括编号、姓名、性别、年龄等。其中教师还包含的信息有所在系部、专业、职称实验员还包含的信息由所在实验室、职务行政人员还包含的信息有政治面貌、职称等。 2、功能要求 (1)添加功能程序能够任意添加上述四类人员的记录可提供选择界面供用户选择所要添加的人员类别要求员工的编号要唯一如果添加了重复编号的记录时则提示数据添加重复并取消添加。 (2)查询功能可根据编号、姓名等信息对已添加的记录进行查询如果未找到给出相应的提示信息如果找到则显示相应的记录信息。 (3)显示功能可显示当前系统中所有记录每条记录占据一行。 (4)编辑功能可根据查询结果对相应的记录进行修改修改时注意编号的唯一性。 (5)删除功能主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空”并返回操作否则输入要删除的人员的编号或姓名根据所输入的信息删除该人员记录如果没有找到该人员信息则提示相应的记录不存。 (6)统计功能能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。 (7)保存功能可将当前系统中各类人员记录存入文件中存入方式任意。 (8)读取功能可将保存在文件中的人员信息读入到当前系统中供用户进行使用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值