学校人员信息管理系统呕心沥血整理版.docx
- 文档编号:24021158
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:38
- 大小:25.15KB
学校人员信息管理系统呕心沥血整理版.docx
《学校人员信息管理系统呕心沥血整理版.docx》由会员分享,可在线阅读,更多相关《学校人员信息管理系统呕心沥血整理版.docx(38页珍藏版)》请在冰豆网上搜索。
学校人员信息管理系统呕心沥血整理版
1。
学校人员信息管理系统
#include〈iostream>
#include〈string>
#include〈fstream〉
#include〈stdlib。
h〉
#inlcude〈windows。
h>
Usingnamespacestd;
Intmain();
StaticintT=0;//用于标记老师类对象的个数
StaticintS=0;//用于标记学生类对象的个数
Classpeople{//people基类
Public:
Intnum;
Charname[30];
Charsex[15];
Charmajor_or_department[50];
Chardate[30];
Intage;
People(intn,charnam[30],chars[15],charo[50],chard[30],inta)
{
Num=n;
Strcpy(name,nam);
Strcpy(sex,s);
Strcpy(major_or_department,o);
Strcpy(date,d);
Age=a;
}
};
Classteacher:
virtualpublicpeople
Public:
Teacher(intn=0,charnam[30]=””,chars[15]="”,charo[50]=””,chard[30]=””,inta=0,charj[50]=””,doublesa=0):
people(n,nam,s,o,d,a),salary(sa){strcpy(job,j);}
Charjob[50];
Doublesalary;
Friendistream&operator>>(istream&is,teacher&tea)//重载〉>运算符函数声明
{
Is>>tea,num;
Is.getline(tea。
name,30,'\n’);//使其能够读入字符串中的空格
Is〉〉tea。
sex;
Is〉>tea。
major_or_department;
Is〉>tea。
date;
Is〉>tea.age;
Is>〉tea。
job;
Is〉>tea.salary;
Returnis;//退出函数
}
friendostream&operator<〈(ostream&os,teacher&tea)//重载”<〈”运算符函数声明
{
os〈〈tea。
num〈〈’\n’;
os<〈tea。
name〈〈’\n’;
os< os〈〈tea。 major_or_department〈〈’\n’; os<〈tea.date〈〈'\n’; os〈〈tea。 age〈〈’\n'; os<〈tea.job〈<’\n'; os〈 salary<〈’\n'; returnos;//退出函数 } VoidAddDate() {system(“cls"); Cout〈<”请输入教工号: ”; Cin〉>num; For(intk=1;k〈11;k++) If(num==k) K=11; If(k==11) { Cout<<”请输入10以内的教工号”〈 AddDate();//添加函数; } Cout<<”请输入教师姓名: ”; Cin〉〉name; Cout〈〈"请输入教师性别: ”; Cin〉>sex; Cout<<"请输入教师出生时间: ”; Cin〉〉date; Cout<〈"请输入教师工作系别部门: ”; Cin>>major_or_department; cout〈〈"请输入教师年龄: ”; cin〉〉age; cout<<”请输入教师职称(如教授/副教授/讲师): ”; cin>〉job; cout<〈”请输入教师工资: "; cin>〉salary; try//处理教师工资合法性 {if(salary〈0) {throwsalary; } } catch(double) { Cout〈〈”输入有误,请重新输入"〈 Main(); } } voidDisplayData()//如何实现 { cout〈〈”教工号"<<”"<〈"姓名"<<””〈〈”性别"〈〈””〈〈"工作部门”〈〈"”〈<”出生时间”〈<””〈<"年龄”〈〈"”〈〈”职称”<<”"<<"工资”〈〈endl; cout〈 } voidsave(ofstream&outf)//samequestion {outf〈〈”教工号”<〈"”<〈"姓名”〈<””<<”性别”<〈””<〈”工作部门”〈〈"”<〈”出生时间”<〈""〈<”年龄"〈〈””〈〈”职称”<<””〈<"工资"〈〈endl; outf〈〈num<〈”\t”〈〈name<〈"\t”〈〈sex<<”\t"<〈major_or_department〈<”\t"〈〈date〈〈”\t"< } Voidload(ifstream&inf) { Int〉〉num>〉name〉〉sex>〉major_or_department〉〉date〉>age>>job〉〉salary; } }tea[10]; Template〈typenameQ〉 QMax(Q*x,intlen) { Qmax=x[0]; For(inti=1;I Max=max〉x[i]? max: x[i]; Returni; } voidTAddData()//对教师类对象的添加功能函数 {tea[T].AddData(); for(inti=0;i<10;i++) { If(i! =T&&tea[T].num==tea[i].num) { Cout〈〈"输入教工号重复,请重复输入! ”<〈endl; Main(); } } Cout〈〈”添加记录成功! "<〈endl; Tea[T]。 DisplayData(); T++; } VoidTDeleteData()//对教师类对象的删除功能函数 { Intn; If(T==0) Cout<<”没有可以删除的记录! "〈〈endl; Else { Cout<<”请输入10以内的教工号: ”; cin〉〉n; for(inti=0;i〈T;i++) if(tea[i]。 num==n) { For(;i〈T;i++) tea[i]=tea[i+1]; T-—; cout<〈”成功删除记录! ”〈 } } VoidTUpdateData()//对教师类对象的修改功能函数 { Intn; If(T==0) Cout〈〈”没有可以删除的记录! ”< Else{ Cout<〈”请输入10以内的教工号: "; Cin〉〉n; For(inti=0;i If(tea[i].num==n) { Cout〈<”原有的记录: ”< Tea[i]。 DisplayData(); Cout〈〈”请输入新的记录: ”〈〈endl; cout<〈”请输入教师职称(如教授/副教授/讲师): ”; cin〉〉tea[i]。 job; cout〈〈”请输入教师工资: ”; cin>>tea[i].salary; cout〈〈"新的记录: ”<〈endl; tea[i].DisplayData(); } } } voidTSearchData_num()//按教工号查询教师类对象 { intn; cout〈〈”请输入10以内的教工号: ”; cin〉〉n; for(inti=0;i〈T;i++) if(tea[i]。 num==n) { tea[i]。 DisplayData(); i=T; } if(i==T) { cout〈〈"查询的记录不存在,请重新输入! ”〈〈endl; TSearchData_num(); } } voidTSearchData_nam()//按姓名查询教师类对象 { charnam_s[30]; cout〈〈”请输入教师名字: "<〈endl; cin〉〉nam_s; for(intj=0;j〈T;j++) if(strcmp(tea[j]。 name,nam_s)==0) { tea[j].DisplayData(); j=T; } if(j==T) { cout〈〈”查询的记录不存在,请重新输入! "<〈endl; TSearchData_nam(); } } voidTSearchData_sex()//按性别查询教师类对象 { charsex_s[15]; cout〈<”请输入教师性别: ”〈〈endl; cin〉〉sex_s; for(intp=0;p if(strcmp(tea[p]。 sex,sex_s)==0) { tea[p]。 DisplayData(); p=T; } if(p==T) { cout<〈"查询的记录不存在,请重新输入! ”〈 TSearchData_sex(); } } voidTFindMaxData()//对教师类对象的最高工资查询功能函数 { intnu; doublet[10]; for(inta=0;a〈T;a++) t[a]=tea[a].salary; nu=Max(t,T); tea[nu—1]。 DisplayData(); } VoidTDisplayData()//对教师类对象按教工号升序排列打印功能函数 { For(inti=1;i〈11;i++) { for(intc=0;c〈T;c++) { if(tea[c].num==i) { tea[c]。 DisplayData(); } } } } VoidTsave()//对教师类对象的保存功能函数 { Ofstreamoutf(“c: \\teacher。 dat”,ios: : out); for(inti=0;i tea[i].save(outf); outf.close(); cout〈〈”成功保存记录! ”〈〈endl; } voidTload()//对教师类对象的读取功能函数 { ifstreaminf("c: \\teacher_ext.dat”,ios: : out); for(inti=0;i〈T;i++) tea[i]。 load(inf); inf。 close(); cout〈〈”成功读取记录! "〈 cout<<”所有教师记录: ”〈 for(i=0;i〈T;i++) tea[i].DisplayData(); } Classstudent: virtualpublicpeople { Public: Student(intn=0,charnam[30]=””,chars[15]="",charo[50]=””,chard[15]="",inta=0,intc=0,inte=0,intm=0): people(n,nam,s,o,d,a),score_chinese(c),score_english(e),score_mathematices(m){} Intscore_chinese; intscore_english; intscore_mathematices; friendistream&operator>〉(istream&is,student&stu)//重载"〉〉”运算符函数声明 { Is〉〉stu。 num; Is。 getline(stu。 name,30,’\n’);//使其能够读入字符串中的空格 is〉〉stu。 sex; is>〉stu。 major_or_department; is>>stu.date; is〉〉stu.age; is>〉stu.score_chinese; is>>stu。 score_english; is〉>stu.score_mathematices; returnis;//退出函数 } Friendostream&operator〈〈(ostream&os。 student&stu)//重载”〈<”运算符函数声明 {os< num〈<'\n'; os〈 name〈<’\n'; os〈〈stu.sex〈〈’\n’; os〈〈stu。 major_or_department<〈'\n'; os〈〈stu.date〈〈'\n’; os〈 os〈〈stu.score_chinese〈<’\n'; os〈 score_english〈<’\n'; os<〈stu。 score_mathematices〈<’\n'; returnos;//退出函数 } voidAddData() {system("cls"); cout<〈”请输入学号: ”; cin〉〉num; for(intk=1;k〈11;k++) if(num==k) k=11; if(k==11) { cout<<”请输入10以内的学号”〈 AddData(); } cout〈<"请输入学生姓名: "; cin〉〉name; cout〈<”请输入学生性别: ”; cin〉〉sex; cout<〈”请输入学生专业: "; cin〉〉major_or_department; cout〈〈”请输入学生出生时间: ”; cin〉>date; cout<〈"请输入学生年龄: "; cin>>age; cout〈<"请输入学生语英数三科成绩: "; cin〉〉score_chinese; cin〉〉score_english; cin〉〉score_mathematices; } VoidDisplayData() { Cout〈<”学号”<〈"”〈<”姓名”〈〈"”〈<”性别”<〈””<<”专业”〈<"”〈〈"出生时间”〈〈"”〈<”年龄"〈<"”〈<”语文成绩"〈〈””〈<”英语成绩”〈〈”"〈〈”数学成绩”<〈endl; cout〈〈num〈<"\t"〈〈name<<"\t”〈〈sex〈〈"\t”<〈major_or_department〈〈”\t"<〈date〈〈"\t”< } Voidsave(ofstream&outf) { outf〈〈"学号”〈〈"“<〈”姓名"〈<"”<<”性别”〈〈"”〈〈”专业”<〈""〈<"出生时间”〈〈"”〈<"年龄”〈〈””<〈”语文成绩”〈〈””〈<”英语成绩"〈<””<<”数学成绩”〈〈endl; outf〈 } voidload(ifstream&inf) { Inf〉〉num>〉name>〉sex>〉major_or_department〉〉date〉〉age>>score_chinese〉>score_english〉〉score_mathematices; } }stu[10]; voidSAddData()//对学生类对象的添加功能函数 { {stu[S].AddData(); for(inti=0;i〈10;i++) { if(i! =S&&stu[S].num==stu[i]。 num) { cout〈〈”输入学号重复,请重新输入! ”<〈endl; main(); } } cout〈〈”添加记录成功! ”〈 stu[S].DisplayData(); S++; } } voidSDeleteData()//对学生类对象的删除功能函数 { intn; if(S==0) cout〈〈”没有可删除的记录! "<〈endl; else { cout〈〈”请输入10以内的学号: ”; cin>>n; for(inti=0;i〈S;i++) if(stu[i].num==n) for(;i stu[i]=stu[i+1]; S--; cout<〈"成功删除记录! ”〈〈endl; } } voidSUpdateData()//对学生类对象的修改功能函数 {intn; if(S==0) cout〈<”没有可删除的记录! "〈 else {cout〈〈"请输入10以内的学号: "; cin>〉n; for(inti=0;i if(stu[i].num==n) { cout〈<”原有的记录: "〈 stu[i]。 DisplayData(); cout〈〈”请输入新的记录: "〈〈endl; cout〈<”请输入语英数成绩: "; cin>>stu[i].score_chinese; cin>>stu[i]。 score_english; cin>〉stu[i].score_mathematices; cout<〈"新的记录: "〈〈endl; stu[i]。 DisplayData(); } } } voidSSearchData_num()//按学号查询学生类对象 { intn; cout<〈”请输入10以内的学号: "; cin〉>n; for(inti=0;i〈S;i++) if(stu[i].num==n) { stu[i].DisplayData(); i=S; } if(i==S) { cout〈<”查询的记录不存在,请重新输入! "< SSearchData_num(); } } voidSSearchData_nam()//按姓名查询学生类对象 { charnam_s[15]; cout〈<”请输入学生名字: ”<〈endl; cin〉>nam_s; for(intj=0;j if(stu[j]。 name==nam_s) {stu[j].DisplayData(); j=S; } if(j==S) { cout<<”查询的记录不存在,请重新输入! ”〈〈endl; SSearchData_nam(); } } voidSSearchData_sex()//按性别查询学生类对象 { charsex_s[15]; cout<〈”请输入学生性别: ”〈〈endl; cin>〉sex_s; for(intp=0;p〈S;p++) if(stu[p]。 sex==sex_s) { stu[p]。 DisplayData(); p=S; } if(p==S) { cout<〈”查询的记录不存在,请重新输入! ”<〈endl; SSearchData_sex(); } } voidSFindMaxData()//对学生类对象的最高英语成绩查询功能函数 { intnu; doublet[10]; for(inta=0;a t[a]=stu[a]。 score_english; nu=Max(t,S); stu[nu—1]。 DisplayData(); } voidSDisplayData()//对学生类对象按学号升序排序打印功能函数 { for(inti=1;i〈11;i++) { for(intc=0;c〈S;c++) { if(stu[c]。 num==i) { stu[c]。 DisplayData(); } } } } voidSsave()//对学生类对象的保存功能函数 { ofstreamoutf("c: \\student.dat",ios: : out); for(inti=0;i〈S;i++) stu[i].save(outf); outf。 close(); cout<〈”成功保存记录! ”〈〈endl; } voidSload()//对学生类对象的读取功能函数 { ifstreaminf(”c: \\student_ext.dat”,ios: : out); for(inti=0;i〈S;i++) stu[i].load(inf); inf.close(); cout〈〈”成功读取记录! "< cout〈<”所有学生记录: "<〈endl; for(i=0;i〈S;i++) stu[i].DisplayData(); } voidShowmenu() { cout〈〈”************欢迎进入人员信息管理系统************"〈 cout〈<”**1。 添加数据**”〈〈endl; cout〈<”**2.删除数据**”<〈endl; cout<〈”**3。 修改数据**"〈 cout〈〈”**
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学校 人员 信息管理 系统 呕心沥血 整理