




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教职工信息管理系统源码#include #include #include #include#define maxsize 100 fstream iofile; /文件指针class time /时间类 public: int year; int month; int day; class telem /个人信息 public: char name20; char sex10; time birthtime; /组合time类 char num20; char wage20; time worktime; int year; char department20; friend istream& operator(istream& input,telem& t); friend ostream& operator(ostream& output,telem& t); friend int operator-(time & t1,time & t2); ; class people:virtual public telem /雇员类 public: people(); virtual void addf()=0; /添加 virtual void addall()=0; virtual void add()=0; virtual void display(); /输出数组的内容 virtual void displaypart(char p); virtual void findname(char n); virtual void findyear(int ); virtual void del(char n)=0; virtual void del(int ); protected: telem datamaxsize; time now; int length; ; class teacher:virtual public people /派生虚基类 public: virtual void addf(); virtual void addall(); virtual void add(); virtual void display(); virtual void del(int i); virtual void del(char n); ; class worker:virtual public people /派生虚基类 public: virtual void addf(); virtual void addall(); virtual void add(); virtual void display(); virtual void del(int i); virtual void del(char n); ; people:people() /系统自动生成的构造函数 length=0; now.year=2010; now.month=7; now.day=6; void people:display() /引用 int i; for(i=0;ilength;i+) coutdatai; void people:displaypart(char p)/引用数组 int i,c; for(i=0;ilength;i+) if(strcmp(datai.wage,p)=0) cout输出选择姓名1 性别2 编号3 工资4 出生日期5 工作时间6 年龄7 系别8 退出选择9c) switch(c) case 1: cout姓名:endl;break; case 2: cout性别:datai.sexendl;break; case 3: cout编号:datai.numendl;break; case 4: cout工资:datai.wageendl;break; case 5: cout出生日期:datai.birthtime.year datai.birthtime.month datai.birthtime.day endl;break; case 6: cout工作时间:datai.worktime.year datai.worktime.month datai.worktime.day endl;break; case 7: cout年龄:datai.yearendl;break; case 8: cout系别:datai.departmentendl;break; case 9: goto loop; default:cout操作错误.endl; loop:; void people:findname(char n) /引用 int i; for(i=0;ilength;i+) if(strcmp(,n)=0) /对象引用 coutdatai; void people:findyear(int y) int i; for(i=0;ilength;i+) if(datai.year=y) coutdatai; void people:del(int i) int j; if(ilength) cout不存在第i个元素; for(j=i;jlength;j+) dataj-1=dataj; length-; void worker:addf() int flag=0; iofile.open(worker_information.txt,ios:in|ios:binary); /文件的打开与关闭 while(iofile.seekg(ios:cur) iofile.seekg(length*sizeof(datalength),ios:beg); iofile.read(char*)&datalength,sizeof(datalength); /文件的随机访问 length+; if(length=maxsize) flag=1; goto loop; people:del(length); cout添加人员信息成功.endl; loop: if(1=flag) cout人员信息储存空间已满.datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout添加人员信息成功.endl; length+; if(length=maxsize) flag=1; goto loop; coutans; while(y=ans|y=ans); loop: if(1=flag) cout人员信息储存空间已满.datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout添加人员信息成功.endl; length+; loop: if(1=flag) cout人员信息储存空间已满.endl; iofile.close(); void worker:display() cout 工人信息 endl; if(0=length) cout无.endl; int i; for(i=0;ilength;i+) coutdatai; void worker:del(char n) int i,j,k; for(i=0;ilength;i+) if(strcmp(,n)=0) k=i+1;break; if(k1) cout不存在姓名n的人员信息; for(j=k;jlength;j+) dataj-1=dataj; length-; cout删除人员信息成功.endl; void worker:del(int i) int j; if(ilength) cout不存在第i个元素; for(j=i;jlength;j+) dataj-1=dataj; length-; cout删除成功.endl; void teacher:addf() int flag=0; iofile.open(teacher_information.txt,ios:in|ios:binary); while(iofile.seekg(sizeof(datalength),ios:cur) if(iofile.seekg(length*sizeof(datalength),ios:beg) iofile.read(char*)&datalength,sizeof(datalength); else break; length+; if(length=maxsize) flag=1; goto loop; people:del(length); cout添加人员信息成功.endl; loop: if(1=flag) cout人员信息储存空间已满.datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout添加人员信息成功.endl; length+; if(length=maxsize) flag=1; goto loop; coutans; while(y=ans|y=ans); loop: if(1=flag) cout人员信息储存空间已满.datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout添加人员信息成功.endl; length+; loop: if(1=flag) cout人员信息储存空间已满.endl; iofile.close(); void teacher:display() cout 教师信息 endl; if(0=length) cout无.endl; int i; for(i=0;ilength;i+) coutdatai; void teacher:del(char n) int i,j,k; for(i=0;ilength;i+) if(strcmp(,n)=0) k=i+1;break; if(k1) cout不存在姓名n的人员信息; for(j=k;jlength;j+) dataj-1=dataj; length-; cout删除人员信息成功.endl; void teacher:del(int i) int j; if(ilength) cout不存在第i个元素; for(j=i;jlength;j+) dataj-1=dataj; length-; cout删除成功.(istream& input,telem& t) int y,m,d; cout请输入姓名(以*结尾):endl; input.getline(t.name,20,*); cout请输入性别(以*结尾 男或女):endl; input.getline(t.sex,10,*); cout编号(以*结尾):endl; input.getline(t.num,20,*); cout工资(以*结尾):endl; input.getline(t.wage,20,*); cout请输入出生日期:ymd; t.birthtime.year=(y=1900&y=1&m=1&d=31)?d:1; cout请输入系别(以*结尾):endl; input.getline(t.department,20,*); cout参加工作时间:ymd; t.worktime.year=(y=1900&y=1&m=1&d=31)?d:1; return input; ostream& operator(ostream& output,telem& t) cout姓名:; outputt.nameendl; cout性别:; outputt.sexendl; cout编号:; outputt.numendl; cout工资:; outputt.wageendl; cout出生日期:; outputt.birthtime.year t.birthtime.month t.birthtime.dayendl; cout系别:; outputt. departmentendl; cout参加工作时间:; outputt.worktime.year t.worktime.month t.worktime.dayendl; cout年龄:; outputt.yearendl; return output; int operator-(time & t1,time & t2) return t1.year-t2.year; void showmenu() coutendl; cout 欢 迎 进 入 教 职 工 信 息 管 理 系 统endlendl; cout 2010 年7月7日发布 版权所有: swaendlendlendl; cout 人员信息管理系统 endlendl; cout 1-从键盘录入全部人员记录 endlendl; cout 2-增加一位人员记录 endlendl; cout 3-显示全部人员记录 endlendl; cout 4-按系别输出人员信息(可选) endlendl; cout 5-按姓名或年龄检索所有信息 endlendl; cout 6-显示菜单目录 endlendl; cout 7-结束程序运行 endlendl; cout endl; int main() teacher tea; worker stu; people *pt=&tea; people *ps=&stu; int c=0,k=0,l=0,i=0; char nam20,part20; showmenu(); for(;) coutc; switch(c) case 1: cout 录入全部人员记录 endl; cout 从键盘输入教师信息 addall(); cout 从键盘输入工人信息 addall(); break; case 2: cout 从键盘增加一位人员记录 endl; cout 教师操作请按1 工人操作请按2 k; if(1=k) pt-add(); else if(2=k) ps-add(); else cout操作错误.endl; break; case 3: cout 显示全部人员记录 display(); ps-displ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省中甸县2025年上半年事业单位公开遴选试题含答案分析
- 毛织品行业透视
- 河北省新河县2025年上半年事业单位公开遴选试题含答案分析
- 河北省无极县2025年上半年事业单位公开遴选试题含答案分析
- 2025版商场电工系统调试与验收服务合同
- 2025年度水泥产品质量保证与售后服务合同
- 2025年充电桩安装与电力系统接入合同模板
- 2025版影视动画设计费合作协议书下载
- 2025年度企业员工劳动合同绩效评估与薪酬调整合同
- 2025版石膏制品批发采购合同范本
- 物业管理员职业技能大赛线上试题及答案
- 2025年工会专业知识考试题库及答案(真题版)
- 2025年国家法律职业资格考试《客观题卷一》模拟题及答案
- 2024森林防火道路建设基本要求
- 中班健康《我会用伞》
- 北京市东城区2024-2025学年高一下学期期末生物试题
- DG-TJ08-2461-2024 旧住房更新改造查勘标准
- 电梯型式试验规则
- 福建省漳州市2024-2025学年七年级下学期期末生物试题(解析)
- 事故隐患内部报告奖励制度培训
- 广西2025年初中学业水平考试英语真题(含答案及听力音频听力原文)
评论
0/150
提交评论