高校人员信息管理系统开发一个简易的高校人员信息管理系统,主要针对高校人员的基本信息进行管理。
采用对象链表或对象数组存放各个对象,实现新增、修改、删除、查询以及统计等功能。
下面源代码用c++三段式格式实现1 ** peo.h**#ifndef _P#define _Pclass person{protected:char number[30];//学号char name[30];//姓名char sex[30];//性别int age;//年龄char department[30];//部门char tel[30];//联系方式person *next; // 基类的指针作为next指针public:friend class manage;person(char a[],char b[],char c[],int d,char e[],char f[]);~person();virtual void change(const char*)=0;virtual void display()=0;virtual void save()=0;};class student:public person //学生类{protected:char grade[30];//班级char major[30];//专业double result;//成绩public:student(char a[],char b[],char c[],int d,char e[],char f[],char g[],char h[],double i);~student();void save();void change(const char*);void display(); //在派生类实现具体方法,即所谓的"多种方法"};class teacher:public person{protected:char title[30];//职称char major[30];//专业public:teacher(char a[],char b[],char c[],int d,char e[],char f[],char j[],char k[]);~teacher();void save();void change(const char*);void display(); //在派生类实现具体方法,即所谓的"多种方法"};class worker:public person{protected:char job[30];//职务char rank[30];//级别public:worker(char a[],char b[],char c[],int d,char e[],char f[],char l[],char m[]);~worker();void save();void change(const char*);void display(); //在派生类实现具体方法,即所谓的"多种方法"};//template<class T>class manage{protected:static int count;//人员数量person *head; //链表头指针public:manage();~manage();void insert(person*); //添加人员信息插入结点void add();void search(const char*);//按学号查询信息void del(const char*);//删除人员信息void change(const char* s);//修改人员信息void display();//显示显示结点信息void save();//保存将所有人员信息写入到文件};#endif//****************************2**peo.cpp*************************// #include"peo.h"#include<iostream.h>#include<string.h>#include<fstream.h>person::person(char a[],char b[],char c[],int d,char e[],char f[]){strcpy(number,a);strcpy(name,b);strcpy(sex,c);age=d;strcpy(tel,f);strcpy(department,e);cout<<"人员开始"<<endl;}person::~person(){}student::student(char a[],char b[],char c[],int d,char e[],char f[],char g[],char h[],double i):person(a,b,c,d,e,f){strcpy(grade,g);strcpy(major,h);result=i;}student::~student(){}void student::display(void){cout<<"学号"<<number<<"姓名"<<name<<"性别"<<sex<<"年龄"<<age<<endl;cout<<"部门"<<department<<"联系方式"<<tel<<"班级"<<grade<<"专业"<<major<<"成绩"<<result<<endl;}void student::save(){fstream file1;file1.open("student.txt",ios::out|ios::app);if(!file1){cout<<"打开文件失败";}file1<<number<<" "<<name<<" "<<sex<<" "<<age<<" "<<department<<" "<<tel<<""<<grade<<" "<<major<<" "<<result<<endl;file1.close();}void student::change(const char*){cout<<"输入修改后的信息"<<endl;cout<<"学号姓名性别年龄部门联系方式班级专业成绩"<<endl;cin>>number>>name>>sex>>age>>department>>tel>>grade>>major>>result;}teacher::teacher(char a[],char b[],char c[],int d,char e[],char f[],char j[],char k[]):person(a,b,c,d,e,f) {strcpy(title,j);strcpy(major,k);}teacher::~teacher(){}void teacher::display(void){cout<<"学号"<<number<<"姓名"<<name<<"性别"<<sex<<"年龄"<<age<<endl;cout<<"部门"<<department<<"联系方式"<<tel<<"职称"<<title<<"专业"<<major<<endl; }void teacher::save(){ofstream file1;file1.open("teacher.txt",ios::out|ios::app);if(!file1){cout<<"打开文件失败";}file1<<number<<" "<<name<<" "<<sex<<" "<<age<<" "<<department<<" "<<tel<<" "<<title<<" "<<major;file1.close();}void teacher::change(const char*){cout<<"输入修改后的信息"<<endl;cout<<"学号姓名性别年龄部门联系方式职称专业"<<endl;cin>>number>>name>>sex>>age>>department>>tel>>title>>major;}worker::worker(char a[],char b[],char c[],int d,char e[],char f[],char l[],char m[]):person(a,b,c,d,e,f){strcpy(job,l);strcpy(rank,m);}void worker::display(void){cout<<"学号"<<number<<"姓名"<<name<<"性别"<<sex<<"年龄"<<age<<endl;cout<<"部门"<<department<<"联系方式"<<tel<<"职务"<<job<<"级别"<<rank<<endl;}worker::~worker(){}void worker::save(){fstream file1;file1.open("worker.txt",ios::out);if(!file1){cout<<"打开文件失败";}file1<<number<<" "<<name<<" "<<sex<<" "<<age<<" "<<department<<" "<<tel<<" "<<job<<" "<<rank<<endl;file1.close();}void worker::change(const char*){cout<<"输入修改后的信息"<<endl;cout<<"学号姓名性别年龄部门联系方式职务级别"<<endl;cin>>number>>name>>sex>>age>>department>>tel>>job>>rank;}/****************************************************************************** */manage::manage(){head=0;cout<<"链表开始"<<endl;}manage::~manage(){cout<<"链表结束"<<endl;}void manage::insert(person *i){person *node;if(head==0){head=i;head->next=0;}else{node=head;while(node->next)node=node->next;node->next=i;i->next=0;}}void manage::search(const char* s)//按学号查询人员信息{person* node=head;int flog=0;while(node){if(strcmp(node->number,s)==0){flog=1;node->display();//显示查询结果break;}elsenode=node->next;}if(flog){// node->display();cout<<"查找成功"<<endl;}elsecout<<"未找到该结点"<<endl;}void manage::del(const char* s)//按学号删除人员信息{person *node1,*node2;int flog=0;node1=head;if(strcmp(head->number,s)==0){head=head->next;node1->~person();flog=1;}else{while(node1)if(strcmp(node1->number,s)==0){node2->next=node1->next;node1->~person();flog=1;break;}else{node2=node1;node1=node1->next;}}if(!flog)cout<<"未找到要删除的结点"<<endl;elsecout<<"结点被删除"<<endl;}void manage::display(void){person *node;if(head==0)cout<<"空链表"<<endl;else{node=head;while(node){node->display();node=node->next;}}}void manage::save(){person *node;if(head==0)cout<<"空链表"<<endl;else{node=head;while(node){node->save();node=node->next;}}}void manage::change(const char* s)//按学号修改人员信息{person* node=head;int flog=0;while(node){if(strcmp(node->number,s)==0){flog=1;node->change(s);//显示修改结果break;}elsenode=node->next;}if(flog){// node->display();cout<<"修改成功"<<endl;}elsecout<<"未找到该结点"<<endl;}void manage::add() //添加人员信息{cout<<"****************************添加人员信息*****************************"<<endl;char name[30];char sex[30];int age;int i;char number[30];char tel[30];char major[30];char department[30];char grade[30];double result;char job[30];char title[30];char rank[30];person *a;cout<<"**********************************高校人员管理系统*******************************"<<endl;cout<<" 请选择需要操作的对象:(选择其他则退出)"<<endl; cout<<" 1.学生"<<endl;cout<<" 2.老师"<<endl;cout<<" 3.职工"<<endl;cin>>i;cout<<"请输入个人信息"<<endl;cout<<"请输入学号"<<endl;cin>>number;cout<<"请输入姓名"<<endl;cin>>name;cout<<"请输入性别"<<endl;cin>>sex;cout<<"请输入年龄"<<endl;cin>>age;cout<<"请输入院系/部门"<<endl;cin>>department;cout<<"请输入联系方式"<<endl;cin>>tel;if(i==1){cout<<"请输入班级、专业、成绩"<<endl;cin>>grade>>major>>result;a=new student(number,name,sex,age,department,tel,grade,major,result);//table.insert(a);}if(i==2){cout<<"请输入职称及专业"<<endl;cin>>title>>major;a=new teacher(number,name,sex,age,tel,department,title,major);//table.insert(a);}if(i==3){cout<<"请输入教职工的职务及级别"<<endl;cin>>job>>rank;a=new worker(number,name,sex,age,tel,department,job,rank);//table.insert(a);}insert(a);save();display();cout<<"***添加成功***"<<endl;}//******************3**peopp.cpp*************************// #include"peo.h"#include<fstream.h>#include<string.h>#include<stdlib.h>#include<iostream.h>int main(){int j=0,k=1;char number[30]={0};manage table;//定义一个对象while(k){system("cls");cout<<"**********************************高校人员管理系统***************************"<<endl;cout<<" 请选择需要操作:(选择其他则退出)"<<endl;cout<<" 1.添加人员信息"<<endl;cout<<" 2.查询人员信息"<<endl;cout<<" 3.删除人员信息"<<endl;cout<<" 4.保存人员信息"<<endl;cout<<" 5.显示人员信息"<<endl;cout<<" 6.修改人员信息"<<endl;cin>>j;switch(j){//read(i);case 1://添加{table.add();//table.display();}break;case 2://查询{cout<<"请输入需要查询的号码"<<endl;cin>>number;table.search(number);}break;case 3: //删除{cout<<"请输入需要删除的号码"<<endl;cin>>number;table.del(number);}break;case 4://保存{cout<<"文件已保存"<<endl;}break;case 5://显示{table.display();}break;case 6://修改{cout<<"请输入需要修改的号码"<<endl;cin>>number;table.change(number);}break;default:system("cls"); //清屏break;// return 0;}cout<<" 0.退出操作 1.继续操作"<<endl;cin>>k;}}。