/*
高校人员信息管理系统
作者:徐世兴
时间:2019年11月1日
*/
//预定义区
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
#include<time.h>
#include <windows.h>
#include<conio.h>
#pragma comment(lib, "Winmm.lib")
//类区
class Person{
//声明Person类作为基类
protected:
string number;
string name;
string sex;
string age;
public:
Person(){
} //默认构造函数
Person(string num,string na,string se,string ag) //带参数的构造函数
{
number=num;name=na;sex=se;age=ag;
}
void point()//定义显示函数
{
cout.setf(ios::left);//设置格式为左对齐
cout<<setw(12)<<number;
cout<<setw(8)<<name;
cout<<setw(5)<<sex;
cout<<setw(8)<<age;
}
};
class Teacher:public Person{
//共有派生教师类
private:
string xi_bu;
string zhuan_ye;
string zhi_cheng;
public:
Teacher *next;
Teacher(){
} //默认构造函数
Teacher(string num,string na,string se,string ag,string xi,string zhuan,string zhi):Person(num,na,se,ag) //带参构造函数
{
xi_bu=xi;zhuan_ye=zhuan;zhi_cheng=zhi;
}
void point()
{
Person::point();
cout.setf(ios::left);//设置格式为左对齐
cout<<setw(20)<<xi_bu;
cout<<setw(20)<<zhuan_ye;
cout<<setw(8)<<zhi_cheng<<endl;
}
friend void teacheradd(); //声明添加函数为友元函数
friend int yn(string);//声明判断是否编号已存在
friend void search();//声明查找函数
friend void bain_ji(Teacher&);//声明编辑函数
friend void teacher_tong_ji();//声明统计函数
friend int rencount();//统计总人数
friend void teacherSave();//保存信息到文件
friend int jdadd(Teacher *p1);//将节点加入链表
friend void delall();//清空
};
class xingzheng:public Person{
private:
string bumen;
string zhengzhi;
string zhicheng;
public:
xingzheng(){
}
xingzheng *next;
xingzheng(string num,string na,string se,string ag,string bu,string zz,string zhi):Person(num,na,se,ag)
{
bumen=bu;zhengzhi=zz;zhicheng=zhi;
}
void point(){
Person::point();
cout.setf(ios::left);//设置格式为左对齐
cout<<setw(20)<<bumen;
cout<<setw(20)<<zhengzhi;
cout<<setw(8)<<zhicheng<<endl;
}
friend void xzadd(); //声明添加函数为友元函数
friend int xzyn(string);//声明判断是否编号已存在
friend void xzsearch();//声明查找函数
friend void xzbain_ji(xingzheng&);//声明编辑函数
friend void xz_tong_ji();//声明统计函数
friend int xzrencount();//统计总人数
friend void xzSave();//保存信息到文件
friend int xzjdadd(xingzheng *p1);//将节点加入链表
friend void xzdelall();//清空
};
class shiyan:public Person{
//实验员类
private:
string shiyanshi;
string zhiwu;
public:
shiyan *next;
shiyan(){
}//默认构造
shiyan(string num,string na,string se,string ag,string sy,string zw):Person(num,na,se,ag)
{
shiyanshi=sy;zhiwu=zw;}//带参构造
void point()
{
Person::point();
cout.setf(ios::left);//设置格式为左对齐
cout<<setw(30)<<shiyanshi;
cout<<setw(8)<<zhiwu<<endl;
}
friend void shiyanadd(); //声明添加函数为友元函数
friend int shiyanjdadd(shiyan *p1);//添加节点
friend int shiyanyn(string);//声明判断是否编号已存在
friend void shiyansearch();//声明查找函数
friend void shiyanbain_ji(shiyan&);//声明编辑函数
friend void shiyan_tong_ji();//声明统计函数
friend void shiyandelall();//清空
friend int shiyanrencount();//统计总人数
friend void shiyanSave();//保存信息到文件
};
//函数定义区/*****************************************************/
Teacher head;//声明教师类的头节点为全局变量
shiyan head1;
xingzheng head2;
void home();//首页
void tuichu();//感谢语
void huanying();//欢迎语
int question(const char *pstr);//获取判断,声明
void music()//播放音乐
{
PlaySound(TEXT("teacher.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
}
void symusic()//播放音乐
{
PlaySound(TEXT("shiyanyuan.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
}
void xzmusic()//播放音乐
{
PlaySound(TEXT("xz.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
}
void offmusic()//关闭音乐
{
PlaySound(NULL, NULL, SND_FILENAME | SND_ASYNC);
}
void putout(Teacher *p)//显示全部的信息
{
p=p->next;
int count=0;
system("cls");//清屏
if(!p)
{
cout<<"信息为空,请先添加信息!\n";
return;
}
void teacher_list();
teacher_list();
while(p)
{
p->point();
count++;
p=p->next;
}
void __();
__();
cout<<"共有"<<count<<"条信息。\n";
}
void shiyanputout(shiyan *p)//显示全部的信息
{
p=p->next;
int count=0;
system("cls");//清屏
if(!p)
{
cout<<"信息为空,请先添加信息!\n";
return;
}
void shiyan_list();
shiyan_list();
while(p)
{
p->point();
count++;
p=p->next;
}
void __();
__();
cout<<"共有"<<count<<"条信息。\n";
}
void xzputout(xingzheng *p)//显示全部的信息
{
p=p->next;
int count=0;
system("cls");//清屏
if(!p)
{
cout<<"信息为空,请先添加信息!\n";
return;
}
void xingzheng_list();
xingzheng_list();
while(p)
{
p->point();
count++;
p=p->next;
}
void __();
__();
cout<<"共有"<<count<<"条信息。\n";
}
char menu()//菜单,获取用户选择
{
system("cls");
cout<<"----------------------------教师信息管理系统--------------------------------\n";
cout<<"\n\t1.清除所有信息 2.显示所有信息 3.添加信息\n";
cout<<"\t4.查找信息 5.统计 6.保存信息至文件\n";
cout<<"\t7.退出系统 8.播放背景音乐 9.关闭背景音乐\n";
cout<<"\n-------------------------------------------------------------------------------\n";
void dqsj();
dqsj();
char choose;
cout<<"请输入数字1—9\n";
cin>>choose;
while(choose<'1'||choose>'9')//判断输入是否正确
{
cout<<"输入错误,请重新输入:";cin>>choose;
}
return choose;
}
char xzmenu()//菜单,获取用户选择
{
system("cls");
cout<<"----------------------------行政人员信息管理系统--------------------------------\n";
cout<<"\n\t1.清除所有信息 2.显示所有信息 3.添加信息\n";
cout<<"\t4.查找信息 5.统计 6.保存信息至文件\n";
cout<<"\t7.退出系统 8.播放背景音乐 9.关闭背景音乐\n";
cout<<"\n-------------------------------------------------------------------------------\n";
void dqsj();
dqsj();
char choose;
cout<<"请输入数字1—9\n";
cin>>choose;
while(choose<'1'||choose>'9')//判断输入是否正确
{
cout<<"输入错误,请重新输入:";cin>>choose;
}
return choose;
}
char shiyanmenu()//菜单,获取用户选择
{
system("cls");
cout<<"----------------------------实验员信息管理系统--------------------------------\n";
cout<<"\n\t1.清除所有信息 2.显示所有信息 3.添加信息\n";
cout<<"\t4.查找信息 5.统计 6.保存信息至文件\n";
cout<<"\t7.退出系统 8.播放背景音乐 9.关闭背景音乐\n";
cout<<"\n-------------------------------------------------------------------------------\n";
void dqsj();
dqsj();
char choose;
cout<<"请输入数字1—9\n";
cin>>choose;
while(choose<'1'||choose>'9')//判断输入是否正确
{
cout<<"输入错误,请重新输入:";cin>>choose;
}
return choose;
}
void teacherfun(char n)//功能实现
{
while(1)
{
switch(n)
{
case '1':delall();system("pause");putout(&head);system("pause");teacherfun(menu());break;
case '2':putout(&head);if(question("是否返回主菜单?")) teacherfun(menu());break;
case '3':teacheradd();if(!question("是否继续添加?"))teacherfun(menu());break;
case '4':search();if(!question("是否继查找?"))teacherfun(menu());break;
case '5':teacher_tong_ji();if(!question("是否继续统计?"))teacherfun(menu());break;
case '6':teacherSave();system("pause");teacherfun(menu());break;
case '7':cout<<"1.返回首页 2.退出程序\n请选择:";char t;while(1){
cin>>t;if(t=='1'){
if(question("你即将离开系统,是否保存信息?"))teacherSave();home();}else if(t=='2'){
if(question("你即将离开系统,是否保存信息?"))teacherSave();tuichu();exit(1);}else cout<<"输入错误,请重新输入:\n";}break;
case '8':if(question("是否播放背景音乐?"))music();teacherfun(menu());break;
case '9':if(question("是否关闭背景音乐?"))offmusic();teacherfun(menu());break;
default:break;
}
}
}
void xzfun(char n)//功能实现
{
while(1)
{
switch(n)
{
case '1':xzdelall();system("pause");xzputout(&head2);system("pause");xzfun(xzmenu());break;
case '2':xzputout(&head2);if(question("是否返回主菜单?")) xzfun(xzmenu());break;
case '3':xzadd();if(!question("是否继续添加?"))xzfun(xzmenu());break;
case '4':xzsearch();if(!question("是否继查找?"))xzfun(xzmenu());break;
case '5':xz_tong_ji();if(!question("是否继续统计?"))xzfun
高校人员信息管理系统(C++课设)
最新推荐文章于 2024-06-17 00:35:12 发布
本文档介绍了一种使用C++编程语言实现的高校人员信息管理系统。该系统利用链表作为主要的数据结构,实现对教职工和学生信息的增删查改功能,旨在提升高校信息管理效率。
摘要由CSDN通过智能技术生成