每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资 - 合计扣款。
A、教师信息处理
(1) 输入教师信息
(2) 插入(修改)教师信息:
(3) 删除教师信息:
(4) 浏览教师信息:
提示:具体功能及操作参考题1。
(5)排序、查询功能
(6)退出系统功能
B、教师数据处理:
(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2) 教师实发工资、应发工资、合计扣款计算。
提示:计算规则如题目。
(3) 教师数据管理
提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
(4) 教师数据查询:
提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5) 教师综合信息输出
提示:输出教师信息到屏幕。
最后附一份实验报告
https://blog.csdn.net/m0_52568673/article/details/117525785
你这是课题还是?
教职工信息管理系统(C++)
(1)类定义
//teacher.h
#include <string>//用string定义数据类型
#include <iostream>//基本的输入输出函数
#include <vector>//vector数组
#include <fstream>//文件操作,打开文件,关闭文件函数
#include <conio.h>//用getch()函数 ,暂停屏幕,便于观看数据
class employee//雇员类
{
public:
int number;
string name;
string sex;
int birthtime;
string post;
int worktime;
int age;
};
//教师类,继承雇员类 teacher.h
class Teacher:public employee{
public:
string title;
string system;
double salary;
};
//工人类,继承雇员类 teacher.h
class Worker:public employee{
public:
string department;
int level;
double salary;
};
//管理类,实现增删改查 teacher.h
class Admin{
public:
vector<Teacher>tlist;//储存教师信息的vector数组
vector<Worker>wlist;//储存工人信息的 vector数组
int ReadTeacher(); //读取教师信息文件
int ReadWorker();//读取工人信息文件
void Writeteacher();//写入教师信息文件
void Writeworker();//写入工人信息文件
void Display_teacher();//显示所有教师信息
void Display_worker();//显示所有工人信息
void Add_teacher();//添加教师信息
void Add_worker();//添加工人信息
void find_teacher();//按Name查找Teacher
void find_worker();//按Name查找工人
void del_teacher();//删除教师信息
void del_worker();//删除工人信息
void menu_teacher();// 教师菜单
void menu_worker();// 工人菜单
double arrage_teacher();// 教师平均Age
double arrage_worker();// 工人平均Age
void change_teacher();//修改教师信息
void change_worker();//修改工人信息
};
(2)增删改查函数的实现
//教职工信息管理系统.cpp
int Admin::ReadTeacher()//读取文件内的教师数据
{
fstream readfile("teacher.txt");
int tow=0;
if(readfile)
{
Teacher t;
if (!(readfile >> t.number>>t.name>>t.sex>>t.salary>>t.birthtime>>t.post>>t.worktime>>t.age>>t.title>>t.system))//如果第一次读取为空
{
cout << "\t空"<<endl;
return 1;
}
tlist.push_back(t);
tow++;
while(readfile >> t.number>>t.name>>t.sex>>t.salary>>t.birthtime>>t.post>>t.worktime>>t.age>>t.title>>t.system)//读取后存入vector容器中
{
tow++;
tlist.push_back(t); //vector数组第要调用 push_back函数进行读入
}
cout<<"所有 信息加载成功......."<<endl;
readfile.close();//文件操作完成后,需要关闭文件
return tow;
}
else
{
ofstream outfile;//磁盘中不存在文件的话则创建
outfile.open("teacher.txt");//创建通讯录文件
if (!outfile.is_open()) //未能打开新创建的文件
{
cout << "文件没有创建!"<<endl;
return -1;
}
else
{
cout << "文件不存在,但是已经创建!\n";
cout << "\t文件夹为空\n";
}
outfile.close();//文件操作完成后,需要关闭文件
}
return 2;
}
//教职工信息管理系统.cpp
int Admin::ReadWorker()//读取文件内的工人数据
{
fstream readfile("worker.txt");
int wow=0;
if(readfile)
{
Worker w;
if (!(readfile >> w.number>>w.name>>w.sex>>w.salary>>w.birthtime>>w.post>>w.worktime>>w.age>>w.department>>w.level))//如果第一次读取为空
{
cout << "\t空"<<endl;
return 1;
}
wlist.push_back(w);
wow++;
while(readfile >> w.number>>w.name>>w.sex>>w.salary>>w.birthtime>>w.post>>w.worktime>>w.age>>w.department>>w.level)//读取后存入vector容器中
{
wow++;
wlist.push_back(w); //vector数组第要调用 push_back函数进行读入
}
cout<<"所有 信息加载成功......."<<endl;
readfile.close();//文件操作完成后,需要关闭文件
return wow;
}
else
{
ofstream outfile;//磁盘中不存在文件的话则创建
outfile.open("worker.txt");//创建通讯录文件
if (!outfile.is_open()) //未能打开新创建的文件
{
cout << "文件没有创建!"<<endl;
return -1;
}
else
{
cout << "文件不存在,但是已经创建!\n";
cout << "\t文件夹为空\n";
}
outfile.close();//文件操作完成后,需要关闭文件
}
return 2;
}
//教职工信息管理系统.cpp
void Admin::Writeteacher()//向文件内写入教师数据
{
ofstream outfile("teacher.txt");//打开文件
vector<Teacher>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)
{
iter->age=2020-iter->birthtime/10000;
outfile<<iter->number<<"\t"<<iter->name<<"\t"<<iter->sex<<"\t"<<iter->salary<<"\t"<<iter->birthtime<<"\t"<<iter->post<<"\t"
<<iter->worktime<<"\t"<<iter->age<<"\t"<<iter->title<<"\t"<<iter->system<<endl;
}
outfile.close(); //关闭文件
}
//教职工信息管理系统.cpp
void Admin::Writeworker()//向文件内写入工人数据
{
ofstream outfile("worker.txt");//打开文件
vector<Worker>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)
{
iter->age=2020-iter->birthtime/10000;
outfile<<iter->number<<"\t"<<iter->name<<"\t"<<iter->sex<<"\t"<<iter->salary<<"\t"<<iter->birthtime<<"\t"<<iter->post<<"\t"
<<iter->worktime<<"\t"<<iter->age<<"\t"<<iter->department<<"\t"<<iter->level<<endl;
}
outfile.close(); //关闭文件
}
//教职工信息管理系统.cpp
void Admin::Display_teacher()//显示所有的教师信息
{
vector<Teacher>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)
{
cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\tBirthtime: "<<iter->birthtime<<"\nPost:"<<iter->post<<"\tWorktime:"
<<iter->worktime<<"\tAge:"<<iter->age<<"\ttitle: "<<iter->title<<"\tsystem:"<<iter->system<<endl<<endl;
}
}
void Admin::Display_worker() //显示所有的工人信息
{
vector<Worker>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)
{
cout<<"Number: "<<iter->number<<"\t\t Name:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\tBirthtime: "<<iter->birthtime<<"\nPost:"<<iter->post<<"\tWorktime:"
<<iter->worktime<<"\tAge:"<<iter->age<<"\tdepartment: "<<iter->department<<"\tlevel:"<<iter->level<<endl<<endl;
}
}
//教职工信息管理系统.cpp
void Admin::Add_teacher() //添加教师信息
{
Teacher t;
cout<<"Input Teacher Number:";cin>>t.number;
cout<<"Input Teacher Name:";cin>>t.name;
cout<<"Input Teacher Sex:";cin>>t.sex;
cout<<"Input Teacher Salary:";cin>>t.salary;
cout<<"Input Teacher出生日期:";cin>>t.birthtime;
cout<<"Input Teacher WorkTime:";cin>>t.worktime;
cout<<"Input Teacher岗位:";cin>>t.post;
cout<<"Input Teacher title:";cin>>t.title;
cout<<"Input Teacher所在系:";cin>>t.system;
t.age=2020-t.birthtime/10000;//计算输入人物的Age
tlist.push_back(t);//向Teacher数组中添加数据
this->Writeteacher();//保存数据
}
//教职工信息管理系统.cpp
void Admin::Add_worker()//添加工人信息
{
Worker w;
cout<<"Input Worker Number:";cin>>w.number;
cout<<"Input Worker Name:";cin>>w.name;
cout<<"Input Worker Sex:";cin>>w.sex;
cout<<"Input Worker Salary:";cin>>w.salary;
cout<<"Input Worker出生日期:";cin>>w.birthtime;
cout<<"Input WorkerWorkTime:";cin>>w.worktime;
cout<<"Input Worker岗位:";cin>>w.post;
cout<<"Input Worker Department:";cin>>w.department;
cout<<"Input Worker技术级:";cin>>w.level;
w.age=2020-w.birthtime/10000;//计算输入的Worker的Age
wlist.push_back(w);//向vector数组中添加数据
this->Writeworker();//向文件中写入
}
//教职工信息管理系统.cpp
void Admin::find_teacher()//查找教师信息
{
string _name;
cout<<"Input TeacherName: "; cin>>_name;
vector<Teacher>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==_name)
{
cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\n出生日期: "<<iter->birthtime<<"\t岗位:"<<iter->post<<"\tWorkTime:"
<<iter->worktime<<"\tAge:"<<iter->age<<"\ttitle: "<<iter->title<<"\t所在系:"<<iter->system<<endl; }
}
}
//教职工信息管理系统.cpp
void Admin::find_worker()//查找工人信息
{
string _name;
cout<<"Input WorkerName: "; cin>>_name;
vector<Worker>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==_name)
{
cout<<"Number: "<<iter->number<<"\t\tName:"<<iter->name<<"\tSex:"<<iter->sex<<"\tSalary:"<<iter->salary<<"\n出生日期: "<<iter->birthtime<<"\t岗位:"<<iter->post<<"\tWorkTime:"
<<iter->worktime<<"\tAge:"<<iter->age<<"\nDepartment: "<<iter->department<<"\t技术级:"<<iter->level<<endl;}
}
}
//教职工信息管理系统.cpp
void Admin::del_teacher()//删除教师信息
{
if(tlist.empty()){//调用empty函数判断数组是否为空
cout << "没有信息可以删除!"<<endl;
return;
}
string _name;
cout<<"Input TeacherName: "; cin>>_name;
vector<Teacher>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->tlist.begin();iter!=this->tlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==_name)
{
tlist.erase(iter);//调用erase函数对数组中元素进行删除
this->Writeteacher();//写入文件
cout<<"删除成功!"<<endl;
return;
}
else
++iter;
}
}
//教职工信息管理系统.cpp
void Admin::del_worker()//删除工人信息
{
if(wlist.empty()){//调用empty函数判断数组是否为空
cout << "没有信息可以删除!"<<endl;
return;
}
string _name;
cout<<"Input TeacherName: "; cin>>_name;
vector<Worker>::iterator iter;//vector数组保存的磁盘文件
for(iter=this->wlist.begin();iter!=this->wlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==_name)
{
wlist.erase(iter);//调用erase函数对数组中元素进行删除
this->Writeworker();
cout<<"删除成功!"<<endl;
return;
}
else
++iter;
}
}
//教职工信息管理系统.cpp
double Admin::arrage_teacher()//计算教师的总Age
{
vector<Teacher>::iterator iter;//定义迭代器
double tsum=0;
for(iter=this->tlist.begin();iter!=this->tlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
tsum=tsum+iter->age;
}
return tsum;//返回Teacher的总Age
}
//教职工信息管理系统.cpp
double Admin::arrage_worker()//计算工人的总Age
{
double wsum=0;
int wow=0;
vector<Worker>::iterator iter;//定义迭代器
for(iter=this->wlist.begin();iter!=this->wlist.end();iter++)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
wsum=wsum+iter->age;
}
return wsum;//返回Worker的总Age
}
//教职工信息管理系统.cpp
void Admin::change_teacher() //修改教师的信息
{
string name;
cout<<"Input想修改的Teacher的Name: "; cin>>name;
vector<Teacher>::iterator iter;//定义迭代器
for(iter=this->tlist.begin();iter!=this->tlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==name)
{
cout<<"Input Teacher的Salary:";cin>>iter->salary;
cout<<"Input Teacher的岗位:";cin>>iter->post;
cout<<"Input Teacher的title:";cin>>iter->title;
cout<<"Input Teacher的所在系:";cin>>iter->system;
this->Writeteacher();
return ;
}
else
++iter;
}
cout << "未检索到此Teacher!"<<endl;
}
//教职工信息管理系统.cpp
void Admin::change_worker()//修改工人信息
{
string name;
cout<<"Input想修改的Worker的Name: "; cin>>name;
vector<Worker>::iterator iter;//定义迭代器
for(iter=this->wlist.begin();iter!=this->wlist.end();)//对vector数组进行遍历,必须使用begin()和end() 函数对vector进行遍历
{
if(iter->name==name)
{
cout<<"Input Worker的Salary:";cin>>iter->salary;
cout<<"Input Worker的岗位:";cin>>iter->post;
cout<<"Input Worker所在Department:";cin>>iter->department;
cout<<"Input Worker的技术级:";cin>>iter->level;
this->Writeworker();
return ;
}
else
++iter;
}
cout << "未检索到此Worker!"<<endl;
}
//教职工信息管理系统.cpp
void Admin::menu_teacher()//教师管理端的菜单
{
int n1=ReadTeacher();//Teacher总人数
double sum1=arrage_teacher();//Teacher总Age
while(1)
{
int n;
system("cls");
cout<<"----------------------------"<<endl;
cout<<"| 教 师 管 理 |"<<endl;
cout<<"----------------------------"<<endl;
cout<<"| 1、显示所有教师信息 |"<<endl;
cout<<"| 2、按Name查找教师信息 |"<<endl;
cout<<"| 3、添加教师信息 |"<<endl;
cout<<"| 4、删除教师信息 |"<<endl;
cout<<"| 5、修改教师信息 |"<<endl;
cout<<"| 6、教师平均Age |"<<endl;
cout<<"| 0、返回主菜单 |"<<endl;
cout<<"----------------------------"<<endl;
cout<<"请选择: ";cin>>n;
switch(n)
{
case 1:Display_teacher();getch();break;
case 2:find_teacher(); getch();break;
case 3:Add_teacher();getch();break;
case 4:del_teacher();getch();break;
case 5:change_teacher();getch();break;
case 6: cout<<"所有Teacher的平均Age是: "<<sum1/n1<<" 岁"<<endl; getch();break;
case 0:return;
}
}
}
//教职工信息管理系统.cpp
void Admin::menu_worker()//工人管理端的菜单
{
int n2=ReadWorker();//Worker总人数
double sum2=arrage_worker();//Worker总Age
while(1)
{
int n;
system("cls");
cout<<"-----------------------------"<<endl;
cout<<"| 工 人 管 理 |"<<endl;
cout<<"-----------------------------"<<endl;
cout<<"| 1、显示所有工人信息 |"<<endl;
cout<<"| 2、按Name查找工人信息 |"<<endl;
cout<<"| 3、添加工人信息 |"<<endl;
cout<<"| 4、删除工人信息 |"<<endl;
cout<<"| 5、修改工人信息 |"<<endl;
cout<<"| 6、工人平均Age |"<<endl;
cout<<"| 0、返回主菜单 |"<<endl;
cout<<"-----------------------------"<<endl;
cout<<"请选择: ";cin>>n;
switch(n)
{
case 1:Display_worker();getch();break;
case 2:find_worker(); getch();break;
case 3:Add_worker();getch();break;
case 4:del_worker();getch();break;
case 5:change_worker(); getch();break;
case 6:cout<<"所有Worker的平均Age是: "<<sum2/n2<<" 岁"<<endl; getch();break;
case 0:return;
}
}
}
(3)主函数
//教职工信息管理系统.cpp
int main()
{
Admin a;
while(1)
{
system("cls");
int n;
cout<<" 教职工管理系统 "<<endl;
cout<<" 1、教师管理系统"<<endl;
cout<<" 2、工人管理系统"<<endl;
cout<<" 0、安全退出系统"<<endl;
cout<<"请选择: ";cin>>n;
switch(n)
{
case 1: a.menu_teacher(); getch();break;
case 2: a.menu_worker();getch();break;
case 3: {
int n2=a.ReadWorker()/*n1=a.ReadTeacher()*/;
double sum2=a.arrage_worker();
cout<<"所有Teacher的平均Age是: "<<sum2/n2<<" 岁"<<endl;
a.Writeworker();
}
case 4:{
int n1=a.ReadTeacher();
double sum1=a.arrage_teacher();
cout<<"所有Worker的平均Age是: "<<sum1/n1<<" 岁"<<endl;}
getch();break;
case 0: return 0;
}
}
}
看博客用详细代码http://t.csdn.cn/S6Sy4
下面是一个使用C++编写的教师信息系统的代码,并对每一句代码进行了注释说明。实验报告还请楼主自己来根据自己实际需求编写了。
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
using namespace std;
// 定义教师信息结构体
struct Teacher {
char id[10]; // 教师号
char name[20]; // 姓名
char gender[5]; // 性别
char department[30]; // 单位名称
char address[50]; // 家庭住址
char phone[20]; // 联系电话
double basic_salary; // 基本工资
double subsidy; // 津贴
double living_allowance; // 生活补贴
double pay; // 应发工资
double tel_fee; // 电话费
double utilities; // 水电费
double rent; // 房租
double income_tax; // 所得税
double health_insurance; // 卫生费
double accumulation_fund; // 公积金
double total_deductions; // 合计扣款
double actual_salary; // 实发工资
};
const int MAX_TEACHERS = 100;
Teacher teachers[MAX_TEACHERS]; // 教师数组
int teacher_count = 0; // 当前教师数量
// 根据教师号查找教师在数组中的下标
int find_teacher_index(const char* id) {
for (int i = 0; i < teacher_count; i++) {
if (strcmp(teachers[i].id, id) == 0) {
return i;
}
}
return -1;
}
// 输入教师信息
void input_teacher_info() {
if (teacher_count >= MAX_TEACHERS) { // 判断教师数量是否已达到上限
cout << "已达到最大教师数量,无法添加新教师。" << endl;
return;
}
cout << "请输入教师号、姓名、性别、单位名称、家庭住址、联系电话:" << endl;
cin >> teachers[teacher_count].id >> teachers[teacher_count].name >> teachers[teacher_count].gender
>> teachers[teacher_count].department >> teachers[teacher_count].address >> teachers[teacher_count].phone;
teacher_count++; // 更新教师数量
}
// 插入(修改)教师信息
void insert_teacher_info() {
char id[10];
cout << "请输入要修改的教师号:" << endl;
cin >> id;
int index = find_teacher_index(id);
if (index == -1) { // 判断是否找到教师
cout << "没有找到教师信息。" << endl;
return;
}
cout << "请输入修改后的教师信息:" << endl;
cin >> teachers[index].id >> teachers[index].name >> teachers[index].gender
>> teachers[index].department >> teachers[index].address >> teachers[index].phone;
}
// 删除教师信息
void delete_teacher_info() {
char id[10];
cout << "请输入要删除的教师号:" << endl;
cin >> id;
int index = find_teacher_index(id);
if (index == -1) { // 判断是否找到教师
cout << "没有找到教师信息。" << endl;
return;
}
for (int i = index; i < teacher_count - 1; i++) {
// 将后面的教师信息向前移动一位
teachers[i] = teachers[i + 1];
}
teacher_count--; // 更新教师数量
cout << "删除成功!" << endl;
}
// 浏览教师信息
void browse_teacher_info() {
cout << "教师号\t姓名\t性别\t单位名称\t家庭住址\t联系电话" << endl;
for (int i = 0; i < teacher_count; i++) {
cout << teachers[i].id << "\t" << teachers[i].name << "\t" << teachers[i].gender << "\t"
<< teachers[i].department << "\t" << teachers[i].address << "\t" << teachers[i].phone << endl;
}
}
// 教师数据处理
// 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据
void input_teacher_data() {
char id[10];
cout << "请输入教师号:" << endl;
cin >> id;
int index = find_teacher_index(id);
if (index == -1) { // 判断是否找到教师
cout << "没有找到教师信息。" << endl;
return;
}
cout << "请输入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金:" << endl;
cin >> teachers[index].basic_salary >> teachers[index].subsidy >> teachers[index].living_allowance
>> teachers[index].tel_fee >> teachers[index].utilities >> teachers[index].rent
>> teachers[index].income_tax >> teachers[index].health_insurance >> teachers[index].accumulation_fund;
// 计算应发工资、合计扣款、实发工资
teachers[index].pay = teachers[index].basic_salary + teachers[index].subsidy + teachers[index].living_allowance;
teachers[index].total_deductions = teachers[index].tel_fee + teachers[index].utilities +
teachers[index].rent + teachers[index].income_tax + teachers[index].health_insurance +
teachers[index].accumulation_fund;
teachers[index].actual_salary = teachers[index].pay - teachers[index].total_deductions;
cout << "录入成功!" << endl;
}
// 教师数据管理
// 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
void manage_teacher_data() {
char id[10];
cout << "请输入教师号:" << endl;
cin >> id;
int index = find_teacher_index(id);
if (index == -1) { // 判断是否找到教师
cout << "没有找到教师信息。" << endl;
return;
}
cout << "教师号\t姓名\t性别\t单位名称\t家庭住址\t联系电话\t基本工资\t津贴\t生活补贴\t应发工资\t电话费\t水电费\t房租\t所得税\t卫生费\t公积金\t合计扣款\t实发工资" << endl;
cout << teachers[index].id << "\t" << teachers[index].name << "\t" << teachers[index].gender << "\t"
<< teachers[index].department << "\t" << teachers[index].address << "\t" << teachers[index].phone << "\t"
<< teachers[index].basic_salary << "\t" << teachers[index].subsidy << "\t" << teachers[index].living_allowance << "\t"
<< teachers[index].pay << "\t" << teachers[index].tel_fee << "\t" << teachers[index].utilities << "\t"
<< teachers[index].rent << "\t" << teachers[index].income_tax << "\t" << teachers[index].health_insurance << "\t"
<< teachers[index].accumulation_fund << "\t" << teachers[index].total_deductions << "\t" << teachers[index].actual_salary << endl;
cout << "请输入修改后的教师信息:" << endl;
cin >> teachers[index].id >> teachers[index].name >> teachers[index].gender
>> teachers[index].department >> teachers[index].address >> teachers[index].phone
>> teachers[index].basic_salary >> teachers[index].subsidy >> teachers[index].living_allowance
>> teachers[index].tel_fee >> teachers[index].utilities >> teachers[index].rent
>> teachers[index].income_tax >> teachers[index].health_insurance >> teachers[index].accumulation_fund;
// 计算应发工资、合计扣款、实发工资
teachers[index].pay = teachers[index].basic_salary + teachers[index].subsidy + teachers[index].living_allowance;
teachers[index].total_deductions = teachers[index].tel_fee + teachers[index].utilities +
teachers[index].rent + teachers[index].income_tax + teachers[index].health_insurance +
teachers[index].accumulation_fund;
teachers[index].actual_salary = teachers[index].pay - teachers[index].total_deductions;
// 将修改后的教师信息写入文件
ofstream outfile("teacher_info.txt");
outfile << teacher_count << endl;
for (int i = 0; i < teacher_count; i++) {
outfile << teachers[i].id << "\t" << teachers[i].name << "\t" << teachers[i].gender << "\t"
<< teachers[i].department << "\t" << teachers[i].address << "\t" << teachers[i].phone << "\t"
<< teachers[i].basic_salary << "\t" << teachers[i].subsidy << "\t" << teachers[i].living_allowance << "\t"
<< teachers[i].pay << "\t" << teachers[i].tel_fee << "\t" << teachers[i].utilities << "\t"
<< teachers[i].rent << "\t" << teachers[i].income_tax << "\t" << teachers[i].health_insurance << "\t"
<< teachers[i].accumulation_fund << "\t" << teachers[i].total_deductions << "\t" << teachers[i].actual_salary << endl;
}
outfile.close();
cout << "修改成功!" << endl;
}
// 统计教师工资情况
void statistics_teacher_salary() {
double total_pay = 0, total_deductions = 0, total_actual_salary = 0;
for (int i = 0; i < teacher_count; i++) {
total_pay += teachers[i].pay;
total_deductions += teachers[i].total_deductions;
total_actual_salary += teachers[i].actual_salary;
}
cout << "应发工资总额:" << fixed << setprecision(2) << total_pay << endl;
cout << "扣款总额:" << fixed << setprecision(2) << total_deductions << endl;
cout << "实发工资总额:" << fixed << setprecision(2) << total_actual_salary << endl;
}
// 从文件中读取教师信息
void read_teacher_info_from_file() {
ifstream infile("teacher_info.txt");
if (!infile) { // 判断文件是否存在
cout << "文件不存在。" << endl;
return;
}
infile >> teacher_count;
for (int i = 0; i < teacher_count; i++) {
infile >> teachers[i].id >> teachers[i].name >> teachers[i].gender
>> teachers[i].department >> teachers[i].address >> teachers[i].phone
>> teachers[i].basic_salary >> teachers[i].subsidy >> teachers[i].living_allowance
>> teachers[i].pay >> teachers[i].tel_fee >> teachers[i].utilities
>> teachers[i].rent >> teachers[i].income_tax >> teachers[i].health_insurance
>> teachers[i].accumulation_fund >> teachers[i].total_deductions >> teachers[i].actual_salary;
}
infile.close();
cout << "读取成功!" << endl;
}
int main() {
read_teacher_info_from_file(); // 从文件中读取教师信息
while (true) {
cout << "请输入命令(1-6):" << endl;
cout << "1. 输入教师信息" << endl;
cout << "2. 插入(修改)教师信息" << endl;
cout << "3. 删除教师信息" << endl;
cout << "4. 浏览教师信息" << endl;
cout << "5. 教师数据处理" << endl;
cout << "6. 统计教师工资情况" << endl;
cout << "0. 退出程序" << endl;
int command;
cin >> command;
switch (command) {
case 0: {
cout << "程序已退出。" << endl;
return 0;
}
case 1: {
input_teacher_info();
break;
}
case 2: {
insert_teacher_info();
break;
}
case 3: {
delete_teacher_info();
break;
}
case 4: {
browse_teacher_info();
break;
}
case 5: {
manage_teacher_data();
break;
}
case 6: {
statistics_teacher_salary();
break;
}
default: {
cout << "无效命令。" << endl;
break;
}
}
}
return 0;
}
这个代码实现了一个教师信息系统,可以对教师的基本信息、工资、扣款等进行录入、修改、删除和查看。主要包含如下几个函数:
input_teacher_info()
:输入教师信息,包括教师编号、姓名、性别、部门、家庭地址、联系电话、基本工资、津贴、生活补助等。insert_teacher_info()
:插入或修改教师信息,可以根据教师编号查找到对应的信息并进行修改。delete_teacher_info()
:删除教师信息,可以根据教师编号查找到对应的信息并进行删除。browse_teacher_info()
:浏览教师信息,可以查看所有教师的信息。manage_teacher_data()
:教师数据处理,可以计算教师的电话费、水电费、房租、个人所得税、医疗保险、公积金等,以及计算教师的实际工资。statistics_teacher_salary()
:统计教师工资情况,包括应发工资总额、扣款总额和实发工资总额。read_teacher_info_from_file()
:从文件中读取教师信息。参考 https://blog.csdn.net/cjl1831050185/article/details/109231072
c++实现的教师信息系统,支持增删改查等基本功能,代码地址:https://download.csdn.net/download/jinxin031988/1320806
如果你是要做实验报告的话,可能还需要写设计的流程,那你可以直接参考相关的设计论文:
教师信息管理系统C++课程设计论文:https://www.docin.com/p-521880486.html
简单很,就是信息有点多,网上一搜仿照一下就行
发来看看?