【c++】课设实验报告

这是一个使用C++设计的高校人员信息管理系统,涵盖了教师、实验员、行政人员和教师兼行政人员四类人员。系统实现了添加、查询、显示、编辑、删除、统计和文件操作等功能,通过面向对象编程思想进行类的设计和继承,确保程序的简洁和高效。
摘要由CSDN通过智能技术生成

 

 

 

 

面向对象编程实验报告

 

 

 

题目:     高校人员信息管理系统设计与实现                                   

 

 

 

 

学生姓名:          

学    号:      

院 (系): 电气与信息工程学院

专    业:     网络工程       

 

2016   6  25

 

 

一、            实验目的

1.要求能够熟练掌握C++语言的基本知识和技能。

2.基本掌握面向对象程序设计的基本思路和方法。

3.能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

二、            实验内容

1、问题描述

某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。

2、功能要求

(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数,

统计男、女员工的数量。

(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。

(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

三、            实验环境

Microsoft Visual studio 2010

四、            设计思路或方案 

1.类设计

此系统共设计了5个类:公有类(class  CCommon),教师类(class Cteacher),实验员类(class Cassistant),行政人员类(class Cexecution),教师兼行政人员类(class Ctea_exe) 

(1)      人员的管理需包含人员的基本信息,所以定义一个公有类如下表所示

                               表一      公有类

类名

公有类

 

数据成员

protected:   int number;     //编号

string name;    //姓名

string sex;    //性别

int age;   //年龄

 

(2)      根据高校人员的工作性质的不同,将所以员工分为五类, 分别是教师类(class Cteacher),实验员类(class Cassistant),行政人员类(class Cexecution),教师兼行政人员类(class Ctea_exe)

                                 表二   教师类

类名

               教师类

 

数据成员

protected:  string department;//所在系部

string profession;//专业 

          string position;//职称

 

成员函数

public: void set(int _number,string _name,string_sex,int_age,string_department,string_profession,string _position)

           void output()

                               表三   实验员类

类名

实验员类

数据成员

protected: string laboratory;   //所在实验室

string position;   //职称

成员函数

public: void set(int_number,string _name,string_sex,int_age,string_laboratory,string_position)

            void output()

表四  行政人员类

类名

行政人员类

数据成员

protected: string politics;//政治面貌

string position;//职称

 

成员函数

public:void set(int _number,string _name,string _sex,int _age,string _politics,string _position)

void output()

表五  教师兼行政人员类

类名

教师兼行政人员类

数据成员

protected: string politics;//政治面貌

string department;//所在系部

string profession;//专业

string position;//职称

成员函数

public:void . set(int _number, string _name,string_sex,int_age,string_politics,string_department,string _profession,string _position)

void output()

2.类之间的关系

公有类是基类,教师类、实验员类、行政人员类是其派生类,教师兼行政人员类是教师和行政人员类的派生类,这样定义能使程序变得更加简单,派生类的成员函数和数据成员可使用基类的,使用了派生和继承,使程序变得简单化。

3.函数设计

定义了教师菜单函数,实验员菜单函数,行政人员菜单函数,教师兼行政人员类,这些函数可调用派生类中的添加成员函数,查询成员函数,显示成员函数,编辑成员函数,删除成员函数,统计成员函数,保存成员函数,读取成员函数。

                           

五、            程序清单

/*-------------------------------------共 有 类-------------------------------------*/

class CCommon//公有类

{

protected:

int number;//编号

string name;//姓名

string sex;//性别

int age;//年龄

};

/*------------------------教 师 类--------------------------------------*/

class Cteacher:

public CCommon//教师类

{

protected:

string department;//所在系部

string profession;//专业 

 string position;//职称

public:

void set(int _number,string _name,string _sex,int_age,string _department,string

_profession,string _position)

{

number = _number;

name = _name;

sex = _sex;

age = _age;

department = _department;

profession = _profession;

position = _position;

}//输入教师数据

void output();

~Cteacher()

{

}//析构函数

friend int find_nu(Cteacher teacher[], int _nu, int&t);

friend int find_na(Cteacher teacher[], string _na, int&t);

friend void add(Cteacher teacher[], int _fa);

friend void dele(Cteacher teacher[], int _fa);

friend void closefile(Cteacher teacher[] ,int &t);

friend void _statistics(Cteacher teacher[], int &t);

};

void teacher_manage();

/*----------------------------实 验 员 类-------------------------------------------*/

class Cassistant:public CCommon//实验员类

{

protected:

string laboratory;//所在实验室

string position;//职称

public:

void set(int _number,string _name,string _sex,int_age,string _laboratory,string

_position)

{

number = _number;

name = _name;

sex = _sex;

age = _age;

laboratory = _laboratory;

position = _position;

}//输入实验员数据

void output();

~Cassistant()

{

}//析构函数

friend int find_nu(Cassistant assistant[], int _nu, int&t);

friend int find_na(Cassistant assistant[], string _na,int &t);

friend void add(Cassistant assistant[], int _fa);

friend void dele(Cassistant assistant[], int _fa); 

 friend voidclosefile(Cassistant assistant[] ,int &t);

friend void _statistics(Cassistant assistant[], int&t);

};

void assistant_manage();

/*----------------------------行 政 人 员 类--------------------------------------------*/

class Cexecution:public CCommon//行政人员类

{

protected:

string politics;//政治面貌

string position;//职称

public:

void set(int _number,string _name,string _sex,int_age,string _politics,string

_position)

{

number = _number;

name = _name;

sex = _sex;

age = _age;

politics = _politics;

position = _position;

}//输入行政人员数据

void output();

~Cexecution()

{

}//析构函数 

friend int find_nu(Cexecution execution[], int _nu, int&t);

friend int find_na(Cexecution execution[], string _na,int &t);

friend void add(Cexecution execution[], int _fa);

friend void dele(Cexecution execution[], int _fa);

friend void closefile(Cexecution execution[] ,int&t);

friend void _statistics(Cexecution execution[], int&t);

};

void execution_manage();

/*---------------------------行 政 人 员 兼 教 师 类-------------------------------------*/

class Ctea_exe:public CCommon//行政人员兼教师类

{

protected:

string politics;//政治面貌

string department;//所在系部

string profession;//专业

string position;//职称

public:

void set(int _number,string _name,string _sex,int_age,string _politics,string

_department,string _profession,string _position)

{

number = _number;

name = _name;

sex = _sex;

age = _age;

politics = _politics;

department = _department; 

 profession =_profession;

position = _position;

}//输入行政人员兼教师数据

void output();

~Ctea_exe()

{

}//析构函数

friend int find_nu(Ctea_exe tea_exe[], int _nu, int&t);

friend int find_na(Ctea_exe tea_exe[], string _na, int&t);

friend void add(Ctea_exe tea_exe[], int _fa);

friend void dele(Ctea_exe tea_exe[], int _fa);

friend void closefile(Ctea_exe tea_exe[] ,int &t);

friend void _statistics(Ctea_exe tea_exe[], int &t);

};

void tea_exe_manage();

/*---------------------------------统 计 总 人 数---------------------------------------*/

void statistics_all();//数据统计数

void statistics_teacher();

void statistics_assistant();

void statistics_execution();

void statistics_tea_exe();

void order(); 

const int Max = 100;//各人员总人数最大值

#endif

共设计了5个类:公有类(class  CCommon), 教师类(class Cteacher),实验员类(class Cassistant),行政人员类(class Cexecution),教师兼行政人员类(class Ctea_exe)

函数部分

教师系统(部分代码)

/*----------------------------教师类中的各个函数操作-----------------------*/

void _add(Cteacher *teacher, int &t)//1教师添加信息

{

 int number,age;

 stringname,sex,department,profession,position;

 cout<<"添加信息->请输入:"<<endl;

 while(1)

 {

  number=t+1;

       cout<<"姓名(输入0结束输入)";

  cin>>name;

  if("0"== name)

   break; 

        cout<<"性别(M--man,W--woman)";

  while(1)

  {

   cin>>sex; 

    if(sex =="M"||sex == "W")

    {

         cout<<"年龄";

    cin>>age;

         cout<<"系部";

   cin>>department;

         cout<<"专业";

   cin>>profession;

         cout<<"职称";

   cin>>position;        

   teacher[t].set(number,name,sex,age,department,profession,position);

    ++t;

    break;

    }

    else

         cout<<"输入性别错误,请重新输入!"<<endl;

  }   

 }

}

void _query(Cteacher teacher[], int &t)//2查询信息

{

 int choice;

 int flag,nu;

 string na;

 cout<<"1---编号,2---姓名"<<endl;

     while(1)

  { 

         cin>>flag;

  if(1 == flag||2== flag)

   break;

  else 

  cout<<"输入错误请重新输入!"<<endl;

  }

 switch(flag)

 {

 case 1://编号查询

 {

       do

    {

 cout<<"请输入编号!"<<endl;

  cin>>nu;

 if(find_nu(teacher,nu,t) < t)

  teacher[find_nu(teacher,nu,t)].output();

  else

  cout<<"查无此人!"<<endl;

 cout<<"是否继续1是2否"<<endl;

  cin>>choice;

   if(choice == 2)

    break;

    }while(choice== 1);

 };break;

 case 2://姓名查询

 {

     do

    {

 cout<<"请输入姓名!"<<endl;

  cin>>na;

 if(find_na(teacher,na,t)<t)

   teacher[find_na(teacher,na,t) ].output();

  else

  cout<<"查无此人!"<<endl;

  cout<<"是否继续1是2否"<<endl;

     cin>>choice;

          if(choice == 2)

    break;

    }while(choice== 1);

 };break;

 }

}

int find_nu(Cteacher teacher[], int _nu, int &t)//编号查询方式

{

 int i;

 for(i=0;i<t;i++)

 if(teacher[i].number==_nu)

   return i;

 return t;

}

int find_na(Cteacher teacher[], string _na, int &t)//姓名查询方式

{

 int i;

 for(i=0;i<t;i++)

 if(teacher[i].name==_na)

   return i;

 return t; 

}

void _display(Cteacher teacher[], int &t)//3显示功能

{

 int i;

 cout<<endl;

 cout<<"编号\t姓名\t性别\t年龄\t系部\t专业\t职称"<<endl;

 for(i=0;i<t;i++)

 teacher[i].output();

 cout<<"--------------------------------------------"<<endl<<endl;

}

void _delete(Cteacher teacher[], int &t)//删除数据

{

 intscore,de,choice1;

 while(1)

 {

 cout<<"请输入需要删除的编号!"<<endl;

 cin>>score;

 de=find_nu(teacher,score,t);

 if(de<t)

 {

  teacher[ de].output();

  dele(teacher,de);

 }

 else

 cout<<"查无此人!"<<endl;

 cout<<"是否继续(1是2否):";

 cin>>choice1;

 if(choice1 == 2)

 {     cout<<"已退出!"<<endl;

  break;

 }

 }

}

void teacher_put()//退出

{

 cout<<"谢谢使用教师系统!"<<endl;

}

void teacher_manage()//教师类总调用函数-

{

 Cteacherteacher[Max];

 int i,t; 

 while (1)

 {

   t =openfile(teacher);//文件中的行数

  teacher_muen();//打印菜单

  cin >> i;

  switch (i)

  {

   case 1:_add(teacher,t);     break;//添加功能

   case 2:_query(teacher, t);     break;//查询功能

   case 3:_display(teacher, t);   break;//显示功能

   case 4:_edit(teacher, t);  break;//编辑功能

   case 5: _delete(teacher,t);     break;//删除功能

   case 6:_statistics(teacher,t); break;//统计功能

   default :teacher_put(); goto loop;//退出功能

  }

 closefile(teacher,t);

 }

loop:

 cout<<"--------------------------------------------"<<endl;

}

void _statistics(Cteacher teacher[], int &t)//统计数据

{

 inti,boy=0,girl=0,sum=0;

 for(i=0;i<t;i++)

 {

  if(teacher[i].sex== "W")

   girl++; 

  if(teacher[i].sex=="M")

   boy++;

 }

 sum = girl+boy;

 cout<<"教师总共有"<<sum<<endl;

 cout<<"男有"<<boy<<"人  女有"<<girl<<"人"<<endl;

}

void statistics_teacher()//教师统计函数

{

 int t;

 Cteacherteacher[Max];

 t =openfile(teacher);

 _statistics(teacher,t);

}

实验员系统(部分代码)

/*****************实 验 员*********************/

/*--------------------------添 加 数 据------------------------*/

void _add(Cassistant *assistant, int &t)

{

 int number,age;

 stringname,sex,laboratory,position;

 cout<<"添加信息->请输入:"<<endl;

 while(1)

 {

  number=t+1;

 cout<<"姓名(输入0结束):";

 cin>>name; 

 if(name=="0")

   break;

 cout<<"性别(M--man,W--woman):";

  while(1)

  {

  cin>>sex;

  if(sex =="M"||sex == "W")

  {

     cout<<"年龄:";    

   cin>>age;

           cout<<"实验室:";

  cin>>laboratory;

           cout<<"职称:"; 

  cin>>position;

  assistant[t].set(number,name,sex,age,laboratory,position);

   ++t;

   break;

  }

  else

  cout<<"输入性别错误,请重新输入!"<<endl;

  }

 }

}//添加信息

/*------------------------查 询 数 据-----------------------------*/

void _query(Cassistant assistant[], int &t)

    int choice;

 int flag,nu;

 string na;

 cout<<"1---编号,2---姓名"<<endl;

 while(1)

  {

  cin>>flag;

  if(1 == flag||2== flag)

   break;

  else 

  cout<<"输入错误请重新输入";

  }

switch(flag)

{

 case 1://编号查询

 {

  do

  {

 cout<<"请输入编号!"<<endl;

  cin>>nu;

 if(find_nu(assistant,nu,t)<t)

   assistant[find_nu(assistant,nu,t) ].output();

  else

  cout<<"查无此人!"<<endl;

 cout<<"是否继续1是2否"<<endl;

  cin>>choice;

   if(choice == 2)

    break;

  }while(choice ==1); 

 };break;

 case 2://姓名查询

 {

      do

  {

 cout<<"请输入姓名!"<<endl;

  cin>>na;

 if(find_na(assistant,na,t)<t)

   assistant[find_na(assistant,na,t) ].output();

  else

  cout<<"查无此人!"<<endl;

   cout<<"是否继续1是2否"<<endl;

  cin>>choice;

   if(choice == 2)

    break;

    }while(choice== 1);

 };break;

};

}//查询信息

/*------------使 用 编 号 查 询 数 据 方 式--------------------*/

int find_nu(Cassistant assistant[], int _nu, int &t)

{

    int i;

 for(i=0;i<t;i++)

 if(assistant[i].number==_nu)

  return i;

 return t;

}//编号查询方式

/*---------使 用 姓 名 查 询 数 据 方 式-----------------*/

int find_na(Cassistant assistant[], string _na, int&t)

{

 int i;

 for(i=0;i<t;i++)

 if(assistant[i].name==_na)

   return i;

 return t;

}//姓名查询方式

/*----------------------------删 除 数 据--------------------------*/

void _delete(Cassistant assistant[], int &t)

{

 intscore,de,choice1;

 while(1)

 {

 cout<<"请输入需要删除的编号!"<<endl; 

 cin>>score;

 de=find_nu(assistant,score,t);

 if(de<t)

 {

  assistant[ de].output();

 dele(assistant,de);

 }

 else

 cout<<"查无此人!"<<endl;

 cout<<"是否继续(1是2否):";

 cin>>choice1;

 if(choice1 == 2)

 {

 cout<<"已退出!"<<endl;

  break;

 }

 }

}

/*-----------------统 计 数 据--------------------------------*/

void _statistics(Cassistant assistant[], int &t)

{

 inti,boy=0,girl=0,sum=0;

 for(i=0;i<t;i++)

 {

 if(assistant[i].sex=="W")

   girl++;

 if(assistant[i].sex=="M")

   boy++;

 }

 sum=girl+boy; 

 cout<<"实验员总共有"<<sum<<endl;

 cout<<"男有"<<boy<<"人  女有"<<girl<<"人"<<endl;

}//统计

/*-----------------------实 验 员 类 总 调 用 函 数-----------------------------*/

void assistant_manage()

{

 Cassistantassistant[Max];

 int i,t;

 while (1)

 {

  t=openfile(assistant);

  assistant_muen();//打印菜单

  cin >> i;

  switch (i)

  {

   case 1:_add(assistant,t);     break;//添加功能

   case 2:_query(assistant, t);     break;//查询功能

   case 3:_display(assistant, t);   break;//显示功能

   case 4:_edit(assistant, t);  break;//编辑功能

   case 5:_delete(assistant,t);     break;//删除功能

   case 6:_statistics(assistant,t); break;//统计功能

   default :assistant_put(); goto loop;//退出功能

  }

 closefile(assistant,t);

 }

loop:

 cout<<"--------------------------------------------"<<endl; 

 }

/*--------------------------------实 验 员 统 计 函 数-----------------------------*/

void statistics_assistant()

{

 int t;

 Cassistant assistant[Max];

 t=openfile(assistant);

 _statistics(assistant,t);

}

行政人员系统(部分代码)

/*************************行 政 人 员*****************************/

/*----------------------------添 加 数 据-----------------*/

void _add(Cexecution *execution, int &t)

{

 int number,age;

 stringname,sex,politics,position;

 cout<<"添加信息->请输入:"<<endl;

 while(1)

 {

  number=t+1;

 cout<<"姓名(输入0结束):";

  cin>>name;

 if(name=="0")

  break;

 cout<<"性别(M--man,W--woman):";

  while(1)

  {

  cin>>sex;

  if(sex =="M"||sex == "W")

  { 

 cout<<"年龄:";

   cin>>age;

     cout<<"政治面貌:";

  cin>>politics;

     cout<<"职称:";

  cin>>position;

  execution[t].set(number,name,sex,age,politics,position);

   ++t;

   break;

  }

  else

  cout<<"输入性别错误,请重新输入!"<<endl;

  }

 }

}//添加信息

/*---------------------------查 询 数 据--------------------*/

void _query(Cexecution execution[], int &t)

{

 int choice;

 int flag,nu;

 string na;

 cout<<"1---编号,2---姓名"<<endl;

  while(1)

  {

  cin>>flag;

  if(1 == flag||2== flag) 

      break;

  else 

  cout<<"输入错误请重新输入";

  }

switch(flag)

{

    case 1://编号查询

  {

     do

     {

 cout<<"请输入编号!"<<endl;

  cin>>nu;

 if(find_nu(execution,nu,t)<t)

   execution[find_nu(execution,nu,t) ].output();

  else

  cout<<"查无此人!"<<endl;

   cout<<"是否继续1是2否"<<endl;

  cin>>choice;

   if(choice == 2)

    break;

     }while(choice== 1);

  };break;

    case 2://姓名查询

  {

      do

   {

 cout<<"请输入姓名!"<<endl;

  cin>>na;

 if(find_na(execution,na,t)<t) 

      execution[ find_na(execution,na,t)].output();

  else

  cout<<"查无此人!"<<endl;

cout<<"是否继续1是2否"<<endl;

  cin>>choice;

   if(choice == 2)

    break;

   }while(choice ==1);

  };break;

}

 

 

 

 

 

}//查询信息

/*-----------------使 用 编 号 查 询 数 据 方 式------------------*/

int find_nu(Cexecution execution[], int _nu, int &t)

{

 int i;

 for(i=0;i<t;i++)

 if(execution[i].number==_nu)

   return i;

 return t;

}//编号查询方式

/*---------------------------使 用 姓 名 查 询 数 据 方 式 ----------------------------*/

int find_na(Cexecution execution[], string _na, int&t)

{

 int i;

 for(i=0;i<t;i++)

 if(execution[i].name==_na)

   return i;

 return t;

}//姓名查询方式

/*-----------------------------------编 辑 数 据-----------------------------*/

void _edit(Cexecution execution[], int &t)

{

 intscore,fa,choice;

while(1)

{  cout<<"请输入需要编辑的编号:"<<endl;

 cin>>score;

 fa =find_nu(execution,score,t);

 if(fa<t)

 {

 execution[fa].output();

 add(execution,fa);

 }

 else

 cout<<"查无此人!"<<endl;

 cout<<"是否继续(1是2否):";

    cin>>choice;

     if(choice !=1)

      break;

}

}//编辑功能

/*----------------------------删 除 数 据-----------------------*/

void _delete(Cexecution execution[], int &t)

{

 intscore,de,choice1;

 while(1)

 {

 cout<<"请输入需要删除的编号!"<<endl;

 cin>>score;

 de=find_nu(execution,score,t);

 if(de<t)

 {

  execution[ de].output();

 dele(execution,de);

 }    else

 cout<<"查无此人!"<<endl;

 cout<<"是否继续(1是2否):";

 cin>>choice1;

 if(choice1 == 2)

 {

 cout<<"已退出!"<<endl;

  break;

 }

 }

}

/*-------------------------统 计 数 据-----------------------------*/

void _statistics(Cexecution execution[], int &t)

{

 inti,boy=0,girl=0,sum=0;

 for(i=0;i<t;i++)

 {

 if(execution[i].sex=="W")

   girl++;

 if(execution[i].sex=="M")

   boy++;

 }

 sum=girl+boy;

 cout<<"实验员总共有"<<sum<<endl;

 cout<<"男有"<<boy<<"人  女有"<<girl<<"人"<<endl;

}//统计

/*--------------------------------退 出--------------------------------*/

void execution_put()

cout<<"谢谢使用教师系统!"<<endl;

}//退出

/*-----------------------行 政 人 员 类 总 调 用 函 数-----------------*/

void execution_manage()

{

 Cexecutionexecution[Max];

 int i,t; 

 while (1)

 {

  t=openfile(execution);

  execution_muen();//打印菜单

  cin >> i;

  switch (i)

  {

   case 1:_add(execution,t);     break;//添加功能

   case 2:_query(execution, t);     break;//查询功能

   case 3:_display(execution, t);   break;//显示功能

   case 4:_edit(execution, t);  break;//编辑功能

   case 5:_delete(execution,t);     break;//删除功能

   case 6:_statistics(execution,t); break;//统计功能

   default :execution_put(); goto loop;//退出功能

  }

 closefile(execution,t);

 }

loop:

 cout<<"--------------------------------------------"<<endl;

}

行政人员兼教师系统(部分代码)

*************************行 政 人 员 兼 教 师******************/

//主菜单 

/*----------------------------添 加 数 据-------------------------*/

void _add(Ctea_exe *tea_exe, int &t)

{

 int number,age;

 stringname,sex,politics,department,profession,position;

 cout<<"添加信息->请输入:"<<endl;

 while(1)

 {

  number=t+1;

       cout<<"姓名(输入0结束):";

  cin>>name;

  if(name == "0")

   break;

 cout<<"性别(M--man,W--woman):";

  while(1)

  {

  cin>>sex;

  if(sex =="M"||sex == "W")

  {

   cout<<"年龄:";

   cin>>age;

           cout<<"政治面貌:";

  cin>>politics;

           cout<<"系部:";

  cin>>department;

           cout<<"专业:"; 

           cin>>profession;

           cout<<"职称:";

  cin>>position;

 tea_exe[t].set(number,name,sex,age,politics,department,profession,position

);

   ++t;

   break;

  }

  else

  cout<<"输入性别错误,请重新输入!"<<endl;

  }

 }

}//添加信息

/*----------------------------------查 询 数 据-----------------------------*/

void _query(Ctea_exe tea_exe[], int &t)

{

 int choice;

 int flag,nu;

 string na;

  • 13
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
、问题描述(功能要求): 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。 要求: 1) 添加删除功能:能根据学院人事的变动情况,添加删除记录; 2) 查询功能:能根据编号和姓名进行查询; 3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储; 4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数); 5) 保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。 6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书。 四、报告:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值