跪求C++课程设计:教师工资管理系统

2024-12-27 12:28:10
推荐回答(2个)
回答1:

#include
#include
#include
#include

using namespace std;

const char* filename = "paid.txt";
class EmployeeData
{
public:
EmployeeData():id(0),name(),salary(0.0),allowance(0.0),bonus(0.0),deduction(0.0){}
void Input();
void Print();
void Save() const;
void Load(ifstream& fin);

inline int Id() const{return id;}
inline string Name() const{return name;}
inline float Salary() const{return salary;}
inline float Allowance() const{return allowance;}
inline float Bonus() const{return bonus;}
inline float Deduction() const{return deduction;}
inline float NetPay() const
{return (salary+allowance+bonus-deduction);}

private:
int id; // 职工号
string name; // 姓名
float salary; // 基本工资
float allowance; // 补贴
float bonus; // 奖金
float deduction;// 扣除金额
};

void EmployeeData::Input()
{
cout<<"输入职工号:";
cin >> id;
cout<<"输入姓名:";
cin >> name;
cout<<"输入基本工资:";
cin >> salary;
cout<<"输入补贴金额:";
cin >> allowance;
cout<<"输入奖励金额:";
cin >> bonus;
cout<<"输入扣除金额:";
cin >> deduction;
}

void EmployeeData::Print()
{
cout<<"职工号: \t"<< id< cout<<"姓名: \t"<< name< cout<<"基本工资:\t"<< salary< cout<<"补贴金额:\t"<< allowance< cout<<"奖励金额:\t"<< bonus< cout<<"扣除金额:\t"<< deduction< cout<<"实发金额:\t"<< NetPay()<}

void EmployeeData::Save() const
{
ofstream fout;
fout.open(filename, ios::app);
fout << id <<'\t' << name<<'\t' << salary<<'\t' < << bonus<<'\t' << deduction<<'\t'<< NetPay()<<'\n';
fout.close();
}
void EmployeeData::Load(ifstream& fin)
{
//ifstream fin(filename);
int netpay(0);
fin >> id >> name >> salary >>allowance >> bonus >> deduction >> netpay;
fin.close();
}

class DataManager
{
public:
DataManager(){entries.clear();}
~DataManager(){entries.clear();}
//菜单
void DisplayMenu();

private:
// 录入
void Input();
//查询
void Search();
//统计
void Stat();
//默认构造函数
EmployeeData Find(int id) const;
//添加
void Append(EmployeeData entry);
//保存
void Save() const;
//读取
void Load();

private:
vector entries;
};

void DataManager::Input()
{
cout << "[职工信息录入]\n请输入员工信息"< EmployeeData entry;
entry.Input();
Append(entry);
cout << endl;
}

void DataManager::Search()
{
cout << "[信息查询]\n请输入员工的职工号:"< int id(0);
cin >> id;
EmployeeData found=Find(id);
if(found.Id() == 0 && found.Name()=="")
{
cout << "无此员工号:" << id<< endl;
} else {
found.Print();
}
cout << endl;
}

void DataManager::Stat()
{
float s(0.0);
float a(0.0);
float b(0.0);
float d(0.0);
float p(0.0);
unsigned int count(entries.size());
for(unsigned int i(0);i {
s+=entries.at(i).Salary();
a+=entries.at(i).Allowance();
b+=entries.at(i).Bonus();
d+=entries.at(i).Deduction();
p+=entries.at(i).NetPay();
}
cout << " \t\t总金额\t平均金额"< cout << "----------------------------------"< cout << "基本工资\t"< cout << "补贴金额\t"< cout << "奖励金额\t"< cout << "扣除金额\t"< cout << "实发工资\t"< cout << endl;
}

EmployeeData DataManager::Find(int id) const
{
EmployeeData res;
for(unsigned int i(0);i {
if(entries.at(i).Id() == id)
{
res = entries.at(i);
break; // for
}
}
return res;
}

void DataManager::Append(EmployeeData entry)
{
entries.insert(entries.end(), entry);
}

void DataManager::Save() const
{
ofstream fout;
fout.open(filename, ios::app );
fout.clear(); // 重新保存
fout << entries.size() <<'\t'<< endl; //保存总数
fout.close();
for(unsigned int i(0);i {
entries.at(i).Save();
}
}

void DataManager::Load()
{
ifstream fin(filename);
unsigned int count(0);
fin >> count;

entries.clear();
for(unsigned int i(0);i {
EmployeeData entry;
entry.Load(fin);
Append(entry);
}
fin.close();
}

void DataManager::DisplayMenu()
{
int opt(0);
Load();
do
{
cout << "1.职工信息录入"< cout << "2.信息查询"< cout << "3.工资统计"< cout << "4.退出"< cin >> opt;
switch(opt)
{
case 1:
Input();
Save();
break;
case 2:
Search();
break;
case 3:
Stat();
break;
}
} while (opt!=4);
}

int main()
{
DataManager dm;

dm.DisplayMenu();
return 0;
}

回答2:

1.2
系统目标
最大限度实现企业员工工资的自动化、系统化管理。
1.3
系统范围
l
电子、电器、医药、服装、建筑、物资、化工、商贸、超市、旅游、机械、建材、科技、通讯等各类企业公司
l
机关、事业单位、学校、研究所等事业型单位。
1.4
系统特点
l
界面设计美观友好
l
规范、完善的基础信息设置
l
信息查询灵活、方便、快捷
l
系统运行稳定,安全可靠
第2章
运行环境
系统开发平台:Visual
C++
6.0
运行平台:Windows
xp/Windows
2000/Windows
2003
分辨率:最佳效果
800*600
第3章
系统登录
双击工资管理系统图标
,弹出如图1.1所示的登录界面。
图1.1
系统登录界面
在“用户名”的文本框,输入用户名:mr,单击“密码”的文本框,输入密码:mrsoft,单击按钮进入系统主界面,如图1.2所示。
图1.2
工资管理系统主界面
第4章
基本工资管理
基本工资管理菜单包括:员工录入和员工删除。通过基本工资管理可以基本实现员工信息的添加及删除操作。
4.1
教师录入
单击“基本工资管理”/“员工录入”选项,弹出如图1.3所示的界面。员工录入模块主要录入员工信息。
.........
有这个详细的课程设计