C++课程设计(大一)利用面向对象职工管理系统

本文介绍了一个职工信息管理系统的实现,该系统使用C++编程语言,并利用类和数组来组织职工信息。系统提供了录入、修改、删除、查询和显示职工信息等功能。

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

#include<iostream>
#include<string>
#include<cstring>
#include<fstream>
#include <stdlib.h>
#include <stdio.h>
#define N 100    //最多录入的职工人数 
using namespace std;
string p;    //选择是否返回主菜单的变量 


//定义职工信息类 
class Amployee
{
public:
  Amployee(){} //构造函数 
  void show(); //职工信息显示 
  ~Amployee(){}   //析构函数 
  friend class Amployee_List;   //友元 
private:
int ID;           //定义职工号 
char Name[20];     //定义职工姓名 
string Sex;           //定义职工性别 
int Age;         //定义职工年龄 
string Education;         //定义职工学历 
float Wage;         //定义职工工资 
char Address[30];    //定义职工住址 
int Telephone;    //定义职工电话 
};
//定义数组、函数类 
class Amployee_List
{
private:
  Amployee Amplo[N];   //把职工定义成数组形式 
  int NUM;      //用来计录职工数目
  int n;       //用来暂时记录当前操作第几个职工
public:
  void add();    //录入职工信息
  void find();     //查询职工信息
  void deleate();     //删除职工信息
  void change();    //修改职工信息
  void save_file();    //以文件形式保存职工信息
  void Show_Amployee();   //把职工信息显示在屏幕上
  Amployee_List(){
  NUM=0; 
n=0;
  }
};
//系统功能菜单
void menu() 
{
system ("color 30");
cout<<"\n"; 
cout<<"                         欢迎使用公司职工信息管理软件\n"<<endl; 
cout<<"                         ----------------------------"<<endl;
cout<<"                         -------1.录入职工信息-------"<<endl;
cout<<"                         -------2.修改职工信息-------"<<endl;
cout<<"                         -------3.删除职工信息-------"<<endl;
cout<<"                         -------4.查询职工信息-------"<<endl;
cout<<"                         -------5.浏览职工信息-------"<<endl;
cout<<"                         -------6.保存职工信息-------"<<endl;
cout<<"                         ---------7.退出系统---------"<<endl;
cout<<"                         ----------------------------"<<endl;
}
//主菜单
void main_menu()  
{
Amployee_List s;
int a;
  while(1)
  {
  menu();
  cout<<"请选择功能编号1~7"<<endl;
  cin>>a;
  if(a<1||a>7)
  {
  cout<<"输入错误,请选择有效指令1~7!"<<endl;
  cin>>a;
}
  switch(a)
  {
  case 1:s.add();break;
  case 2:s.change();break;
  case 3:s.deleate();break;
  case 4:s.find();break;
    case 5:s.Show_Amployee();break;
  case 6:s.save_file();break;
  case 7:system ("color 8F");cout<<"谢谢使用公司职工信息管理软件!"<<endl;
  exit(0);
  default:
  break;
  }
  cout<<"是否返回主菜单? Y/N"<<endl;
  cin>>p;
  if(p=="n"||p=="N")
  { 
  cout<<"系统退出!!"<<endl;
  exit(0);
  }
  }
}


//录入职工信息
void Amployee_List::add()
{
system ("color B0");
int id; 
cout<<"请输入职工信息:"<<endl;
cout<<"请输入职工号:";
cin>>id;
  for(int i=0;i<NUM;i++)
  while(id==Amplo[i].ID)        //判断是否有重复的职工号 
  {
  cout<<"此职工号已存在,请重新输入:"<<endl;
  cout<<"请输入职工号:";
  cin>>id;
  }
  Amplo[NUM].ID=id;
  cout<<"请输入职工姓名:";cin>>Amplo[NUM].Name;
  cout<<"请输入职工性别:";cin>>Amplo[NUM].Sex;
  cout<<"请输入职工年龄:";cin>>Amplo[NUM].Age;
  cout<<"请输入职工学历:";cin>>Amplo[NUM].Education;
  cout<<"请输入职工工资:";cin>>Amplo[NUM].Wage;
  cout<<"请输入职工地址:";cin>>Amplo[NUM].Address;
  cout<<"请输入职工电话:";cin>>Amplo[NUM].Telephone;
  ++NUM;
  n=NUM;
}


//修改职工信息
void Amployee_List::change()
{
system ("color EC");
  if(NUM<=0)
  {
  cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
  menu(); 
  }
  cout<<"请输入需要修改信息职工的职工号:"<<endl;
  int id;
  cin>>id;
  int j,k,f=1;
  while(f)
  {
  for(j=0;j<n;j++)
  {
  if(id==Amplo[j].ID)
  {
  f=0;
  k=j;
  break;
}
  }
  if(f)
  {
  cout<<"此职工信息不存在,请重新输入:"<<endl;
  j=0;
  cin>>id;
  }
  }
  cout<<"选择修改的职工原信息为:"<<endl;
  cout<<"\n";
cout<<"职工号:"<<Amplo[k].ID<<endl;
cout<<"姓名:"<<Amplo[k].Name<<endl;
  cout<<"年龄:"<<Amplo[k].Age<<endl;
  cout<<"性别:"<<Amplo[k].Sex<<endl;
  cout<<"学历:"<<Amplo[k].Education<<endl;
  cout<<"工资:"<<Amplo[k].Wage<<endl;
  cout<<"地址:"<<Amplo[k].Address<<endl;
  cout<<"电话:"<<Amplo[k].Telephone<<endl;
  cout<<endl;
  cout<<"***********************"<<endl;
  cout<<"1.修改职工号"<<endl;
  cout<<"2.修改职工姓名"<<endl;
  cout<<"3.修改职工性别"<<endl;
  cout<<"4.修改职工年龄"<<endl;
  cout<<"5.修改职工学历"<<endl;
  cout<<"6.修改职工工资"<<endl;
  cout<<"7.修改职工地址"<<endl;
  cout<<"8.修改职工电话"<<endl;
  cout<<"9.返回主菜单"<<endl;
  cout<<"**********************"<<endl;
  cout<<endl;
  cout<<"请选择功能前的编号1~9"<<endl;
  int b;
  cin>>b;
  while(b<1||b>9)
  {
  cout<<"输入有误,请重新输入:"<<endl;
  cin>>b;
  }
  switch(b)
  {
  case 1:{
  cout<<"请重新输入职工号:";
  cin>>Amplo[k].ID;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 2:{
  cout<<"请重新输入职工姓名:";
  cin>>Amplo[k].Name;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
menu();
break;
  }
  case 3:{
  cout<<"请重新输入职工性别:";
  cin>>Amplo[k].Sex;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 4:{
  cout<<"请重新输入职工年龄:";
  cin>>Amplo[k].Age;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 5:{
  cout<<"请重新输入职工学历:";
  cin>>Amplo[k].Education;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 6:{
  cout<<"请重新输入职工工资:";
  cin>>Amplo[k].Wage;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 7:{
  cout<<"请重新输入工地址:";
  cin>>Amplo[k].Address;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 8:{
  cout<<"请重新输入职工电话:";
  cin>>Amplo[k].Telephone;
  cout<<"修改信息已保存,现返回主菜单:"<<endl;
  menu();
break;
  }
  case 9:menu();
  default:break;
  }
}


//删除职工信息函数
void Amployee_List::deleate() 
{
system ("color DF");
int id;
  if(NUM<=0)
  {
  cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
  menu();
  }
  cout<<"请输入需要删除信息职工的职工号:"<<endl;
  cin>>id;
  int j,k,f=1;
  while(f)
  {
  for(j=0;j<n;j++)
  {
  if(id==Amplo[j].ID)
  {
  f=0;
  k=j;
  break;
  }
  }
  if(f)
  {
  cout<<"无此员工信息,请重新输入:"<<endl;
  j=0;
  cin>>id;
  }
  }
  cout<<"将要删除的职工信息为:"<<endl;
  cout<<"\n";
  cout<<"职工号:"<<Amplo[k].ID<<endl;
  cout<<"职工姓名:"<<Amplo[k].Name<<endl;
  cout<<"职工性别:"<<Amplo[k].Sex<<endl;
  cout<<"职工年龄:"<<Amplo[k].Age<<endl;
  cout<<"职工学历:"<<Amplo[k].Education<<endl;
  cout<<"职工工资:"<<Amplo[k].Wage<<endl;
  cout<<"职工地址:"<<Amplo[k].Address<<endl;
  cout<<"职工电话:"<<Amplo[k].Telephone<<endl;
  cout<<endl;
  cout<<"确认删除请输入Y,返回主菜单请输入N "<<endl;
  cin>>p;
  while(1)
  {
  if(p=="y"||p=="Y")
  {
  cout<<"员工信息已删除!"<<endl;
  for(int i=0;i<n;i++)
  if(Amplo[i].ID==id)
  for(j=i;j<=n-1;j++)
  Amplo[j]=Amplo[j+1];
  n--;
  break;
  }
  else if(p=="n"||p=="N")
  {
  menu();
  break;
  }
  else
  {
  cout<<"输入有误,请重新输入:Y或者N:";
  cin>>p;
  }
  }
}


//查询职工信息函数
void Amployee_List::find()
{
system ("color F2");
int c;
  if(NUM<=0)
  {
  cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
  menu();
  }
  else
  cout<<"-----------------"<<endl;
  cout<<"请选择查询方式:"<<endl;
  cout<<"1.按职工号查询"<<endl;
  cout<<"2.按职工姓名查询"<<endl;
  cout<<"3.按职工学历查询"<<endl;
  cout<<"4.返回主菜单"<<endl;
  cout<<"-----------------"<<endl;
  cout<<endl;
  cout<<"请选择查询方式:1~4"<<endl;
  cin>>c;
  while(c<1||c>4)
  {
  cout<<"输入有误,请重新输入:"<<endl;
  cin>>c;
  }
  if(c==1)
  { 
int id;
  cout<<"请输入要查询的职工的工号:"<<endl;
  cin>>id;
  int j1,k1,f1=1;
  while(f1)
  {
  for(j1=0;j1<n;j1++)
  {
  if(id==Amplo[j1].ID)
  {
  f1=0;
  k1=j1;
  cout<<"查询的职工信息如下:"<<endl;
  cout<<"职工号:"<<Amplo[k1].ID<<endl;
  cout<<"职工姓名:"<<Amplo[k1].Name<<endl;
  cout<<"职工性别:"<<Amplo[k1].Sex<<endl;
  cout<<"职工年龄:"<<Amplo[k1].Age<<endl;
  cout<<"职工学历:"<<Amplo[k1].Education<<endl;
  cout<<"职工工资:"<<Amplo[k1].Wage<<endl;
  cout<<"职工地址:"<<Amplo[k1].Address<<endl;
  cout<<"职工电话:"<<Amplo[k1].Telephone<<endl;
  break;
  }
  }
  if(f1)
  {
  f1=0;
  cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
  break;
  }
  }
  } 
  else if(c==2)
  {
  char name[20];
  cout<<"请输入要查询的职工的姓名:"<<endl;
  cin>>name;
  int j2,k2,f2=1;
  while(f2)
  {
  for(j2=0;j2<n;j2++)
  {
  if(name==Amplo[j2].Name)
  {
  f2=0;
  k2=j2;
  cout<<"查询的职工信息如下:"<<endl;
  cout<<"职工号:"<<Amplo[k2].ID<<endl;
  cout<<"职工姓名:"<<Amplo[k2].Name<<endl;
  cout<<"职工性别:"<<Amplo[k2].Sex<<endl;
  cout<<"职工年龄:"<<Amplo[k2].Age<<endl;
  cout<<"职工学历:"<<Amplo[k2].Education<<endl;
  cout<<"职工工资:"<<Amplo[k2].Wage<<endl;
  cout<<"职工地址:"<<Amplo[k2].Address<<endl;
  cout<<"职工电话:"<<Amplo[k2].Telephone<<endl;
  break;
  }
  }
  if(f2)
  {
  f2=0;
  cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
  break;
  }
  }
  }
  else if(c==3)
  {
  string edu;
  cout<<"请输入要查询的职工的学历:"<<endl;
  cin>>edu;
  int j3,k3,f3=1;
  while(f3)
  {
  for(j3=0;j3<n;j3++)
  {
  if(edu==Amplo[j3].Education)
  {
  f3=0;
  k3=j3;
  cout<<"查询的职工信息如下:"<<endl;
  cout<<"职工号:"<<Amplo[k3].ID<<endl;
cout<<"职工姓名:"<<Amplo[k3].Name<<endl;
cout<<"职工性别:"<<Amplo[k3].Sex<<endl;
cout<<"职工年龄:"<<Amplo[k3].Age<<endl;
cout<<"职工学历:"<<Amplo[k3].Education<<endl;
cout<<"职工工资:"<<Amplo[k3].Wage<<endl;
cout<<"职工地址:"<<Amplo[k3].Address<<endl;
cout<<"职工电话:"<<Amplo[k3].Telephone<<endl;
  break;
  }
  }
  if(f3)
  {
  f3=0;
  cout<<"该公司不存在此职工的信息!!\n返回主菜单"<<endl;
  break;
  }
  }
  }
  else if(c=4)
  menu();
}


//显示职工信息函数实现
void Amployee_List::Show_Amployee() 
{
system ("color F0");
  if(NUM<=0)
  {
  cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
  menu();
  }
  else
  cout<<"已保存的职工信息如下:"<<endl;
  for(int i=0;i<n;i++)
  {
  cout<<"------------------"<<endl;
  cout<<"职工号:"<<Amplo[i].ID<<endl;
  cout<<"职工姓名:"<<Amplo[i].Name<<endl;
  cout<<"职工性别:"<<Amplo[i].Sex<<endl;
  cout<<"职工学历:"<<Amplo[i].Education<<endl;
  cout<<"职工年龄:"<<Amplo[i].Age<<endl;
  cout<<"职工工资:"<<Amplo[i].Wage<<endl;
  cout<<"职工地址:"<<Amplo[i].Address<<endl;
  cout<<"职工电话:"<<Amplo[i].Telephone<<endl;
  cout<<"------------------"<<endl;
  }
}


//把职工信息以文件的形式保存函数
void Amployee_List::save_file() 
{
system ("color 0F");
  if(NUM<=0)
  {
  cout<<"没有录入职工信息,系统将返回主菜单,请先录入!"<<endl;
  menu();
  }
  else
  {
  ofstream fout;
  fout.open("职工信息.txt",ios::out);
  cout<<"数据保存成功!"<<endl;
  fout<<"已保存职工信息如下:"<<endl;
  for(int i=0;i<n;i++)
  {
  fout<<"------------------"<<endl;
  fout<<"职工号:"<<Amplo[i].ID<<endl;
  fout<<"职工姓名:"<<Amplo[i].Name<<endl;
  fout<<"职工性别:"<<Amplo[i].Sex<<endl;
  fout<<"职工年龄:"<<Amplo[i].Age<<endl;
  fout<<"职工学历:"<<Amplo[i].Education<<endl;
  fout<<"职工工资:"<<Amplo[i].Wage<<endl;
  fout<<"职工地址:"<<Amplo[i].Address<<endl;
  fout<<"职工电话:"<<Amplo[i].Telephone<<endl;
  fout<<"------------------"<<endl;
}
  cout<<"系统返回主菜单:"<<endl;
  menu();
  fout.close();
  } 
}


//主函数 
int main()
{
main_menu(); 
return 0;
}

*************************************转载注明出处***********************************************



 

面向对象程序设计技术课程设计<br>1.建立一个类簇,描述队列,栈以及优先级队列。要求如下:<br>(1)建立一个一个抽象基类AbDataStrucBase。它是队列类Queue,栈类Stack以及优先级队列类Pqueue的基类。具有插入Add以及删除Remove成员函数;判空操作Isempty,判满操作Full;一个用以保存整数类型数据的一维数组指针;<br>(2)定义一个队列类Queue,它从AbDataStrucBase派生,实现其必要的操作成员函数;<br>(3)定义一个队列类Pqueue,它从AbDataStrucBase派生,实现其必要的操作成员函数;<br>以上各类,为其设计所需要的各种构造函数,析构函数。注意成员覆盖,虚函数的使用。<br>2.建立一个类簇,要求如下:<br>(1)建立一个日期类date。包含年、月以及日属性。建立一个课程类Cources,包括课程名字,课程号,上课老师,上课地点,学分,成绩;<br>(2)建立一个人(people)数据类型,包括以下属性:<br>姓名char name[11] ; 编号 char number[7]; 性别 char sex[3] ;生日 birthday ;身份证号 char id[16];课程表Stu Cources[7] 。birthday为日期类型内嵌对象;StuCources是Cources类型的内嵌对象数组;<br>(3)从people中派生student类,添加属性:班号 Char classNo[7];<br>(4)从people中派生出Teacher类,添加属性:职务 char principalship[11]、部门char department[21];<br>(5)从student类中派生出研究生(graduate)类,添加属性:专业 char subject[21]、导师 teacher_adviser;<br>(6)从graduate类和teacher 类派生TA(助教)类,注意使用虚基类;<br>(7)实现学生选课管理系统。<br>以上类要有构造/析构函数,拷贝构造函数。<br><br>
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值