婚姻介绍所系统说明书.doc_第1页
婚姻介绍所系统说明书.doc_第2页
婚姻介绍所系统说明书.doc_第3页
婚姻介绍所系统说明书.doc_第4页
婚姻介绍所系统说明书.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

婚姻介绍所系统婚姻介绍所系统,男士信息(姓名,身高,职业,出生日期,工作时间,年龄);女士信息(姓名,身高,职业,出生日期,工作时间,年龄)功能要求:1. 设计一个People类,由People派生一个Man类和一个Woman类;2. 设计构造函数初始化数据;#include #include #include #define maxsize 100 fstream iofile; class Time public: int year; int month; int day; ; class Telem public: char name20; Time birthtime; char num20; char career20;char character20;Time worktime; int year; friend istream& operator(istream& input,Telem& T); friend ostream& operator(ostream& output,Telem& T); friend int operator-(Time & t1,Time & t2); ; class People 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 Character(); virtual void Del(char n)=0; virtual void Del(int );protected: Telem datamaxsize; Time now; int length; ;3. 使用多态输出各个派生类的数据;class Man:virtual public People public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display();virtual void Character(); virtual void Del(int i); virtual void Del(char n);virtual void Findyear(int ); class Woman:virtual public People public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display();virtual void Character(); virtual void Del(int i); virtual void Del(char n);virtual void Findyear(int ); People:People() length=0; now.year=2009; now.month=5; now.day=26; 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.career,p)=0) cout输出选择姓名1 身高2 职业3 出生日期4 工作时间5 年龄6 退出选择7c) switch(c) case 1: cout姓名:endl;break;case 2: cout身高:datai.numendl;break; case 3: cout职业:datai.careerendl;break; case 4: cout出生日期:datai.birthtime.year datai.birthtime.month datai.birthtime.day endl;break; case 5: cout工作时间:datai.worktime.year datai.worktime.month datai.worktime.day endl;break; case 6: cout年龄:datai.yearendl;break;case 7: cout姓名,性别,身高,职业,出生日期,工作时间,年龄endl;break;case 8: 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) Man man; Woman woman; People *pt=&man; People *ps=&woman;int i; for(i=0;ilength;i+) if(datai.year=y) coutdataidatai.yeardatai.year; void People:Character() int i,s=0; for(i=0;ilength;i+) if(datai.character)coutdatai; void People:Del(int i) int j; for(j=i;jlength;j+) dataj-1=dataj; length-; cout删除成功; void Woman:AddF() int flag=0; iofile.open(Woman_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); coutendl; 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) coutdatalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout添加人员信息成功.endl; length+; loop: if(1=flag) coutendl; iofile.close(); void Woman:Display() cout*女士信息*endl; if(0=length) cout小美, 1米68, 自主创业, 1923-5-21, 10年,35岁endl;cout小加, 1米60,小学教师, 1924-3-6, 12年,27岁endl;cout飞飞, 1米70, 舞蹈教师, 1590-1-22, 9年,30岁endl;cout阿阿, 1米61, 中科院研究员,1990-2-4, 5年,25岁endl;cout哭哭, 1米58, 外企总裁, 1478-3-4, 13年,31岁endl;cout好吧, 1米62, 公务员, 1448-3-5, 11年,26岁endl;int i; for(i=0;ilength;i+) coutdatai; void Woman:Character()int i,s=0; for(i=0;ilength;i+) if(datai.character)coutdatai;void Woman:Del(char n) int i,j,k; for(i=0;ilength;i+) if(strcmp(,n)=0) k=i+1;break; if(k1) cout; for(j=k;jlength;j+) dataj-1=dataj; length-; cout删除人员信息成功.endl; void Woman:Del(int i) int j; if(ilength) cout删除成功; for(j=i;jlength;j+) dataj-1=dataj; length-; coutendl; void Woman:Findyear(int y) int i; for(i=0;ilength;i+) if(datai.year=y) coutdatai; void Man:AddF() int flag=0; iofile.open(Man_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); coutendl; 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) coutendl; iofile.close(); void Man:Display() cout*男士信息*endl; if(0=length) cout王子, 1米80, 自主创业, 1923-4-21,10年,30岁endl;cout喷嚏, 1米78, 律师, 1934-2-3, 4年,28岁endl;cout哈沁, 1米72, 金融理财师, 1929-3-2, 3年,31岁endl;cout大树, 1米78, 高中教师, 1934-3-1, 10年,35岁endl;cout嘿嘿, 1米79, 大学教师, 1945-4-22, 2年,22岁endl;cout哎呀, 1米80, 酒店老板, 1946-2-12, 4年,33岁endl;int i; for(i=0;ilength;i+) coutdatai; void Man:Del(char n) int i,j,k; for(i=0;ilength;i+) if(strcmp(,n)=0) k=i+1;break; if(k1) cout; for(j=k;jlength;j+) dataj-1=dataj; length-; cout删除人员信息成功.endl; void Man:Character()if(0=length)coutendl;int i,s=0; for(i=0;ilength;i+) s+=datai.year; void Man:Del(int i) int j; if(ilength) cout删除成功; for(j=i;jlength;j+) dataj-1=dataj; length-; coutendl; void Man:Findyear(int y) int i; for(i=0;ilength;i+) if(datai.year=y) cout(istream& input,Telem& T) int y,m,d; cout请输入姓名(以#结尾):endl; input.getline(T.name,20,#); cout身高(以#结尾 ?厘米):endl; input.getline(T.num,20,#); cout年龄(以#结尾 ?):endl; input.getline(T.career,20,#); cout请输入出生日期(?年?月?日):ymd; T.birthtime.year=(y=1900&y=1&m=1&d=31)?d:1; 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.numendl; cout职业:; outputT.careerendl; cout出生日期:; outputT.birthtime.year T.birthtime.month T.birthtime.dayendl; 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() cout*颀阳硕萌婚姻介绍所*endl; cout*1-从键盘录入全部人员(男士、女士)记录 *endl; cout*2-增加一位人员(男士、女士)记录 *endl;cout*3-显示全部人员记录 *endl;cout*4-对对方性格的要求 *endl; cout*5-删除一个人员记录 *endl; cout*6-按年龄输入人员信息(可选) *endl;cout*7-按姓名或年龄检索所有信息 *endl; cout*8-显示菜单目录 *endl;cout*9-结束程序运行 *endl; cout*endl; coutc; switch(c) case 1: cout*录入全部人员(男士、女士)记录*endl; cout*男士操作请按1 女士操作请按2*k;if(1=k)pt-Addall();Showmenu(); break;else if(2=k)ps-Addall();Showmenu(); break; Showmenu(); break; case 2: cout*从键盘增加一位人员(男士、女士)记录*endl; cout*男士操作请按1 女士操作请按2*k; if(1=k)pt-Add();Showmenu(); break; else if(2=k)ps-Add();Showmenu(); break; else cout操作错误.endl;Showmenu(); break; case 3: cout*显示全部人员记录*Display(); ps-Display();cout操作结束,请选择主菜单(09)endl;Showmenu(); break; case 4: cout*对对方性格的要求*endl; cout*男士操作请按1 女士操作请按2*k;if(1=k)cout请男士选择endl;cout1.温柔型endl;cout2.可爱型endl;cout3.野蛮型endl;cout4.淑女型endl;cout5.万人迷型endl;cout6.高贵典雅型i;if(1=i)cout小美, 1米68, 自主创业, 1923-5-21, 10年,35岁endl;if(2=i)cout小加,1米60,小学教师, 1924-3-6, 12年,27岁endl;if(3=i)cout飞飞, 1米70, 舞蹈教师, 1590-1-22, 9年,30岁endl;if(4=i)cout阿阿,1米61, 中科院研究员,1990-2-4, 5年,25岁endl;if(5=i)cout哭哭, 1米58, 外企总裁, 1478-3-4, 13年,31岁endl;if(6=i)cout好吧, 1米62, 公务员, 1448-3-5, 11年,26岁endl;Showmenu(); break; else if(2=k)cout请女士选择endl;cout1.美男型endl;cout2.冷酷型endl;cout3.猛男型endl;cout4.雇家型endl;cout5.爱妻型endl;cout6.钻石王老五型i;if(1=i)cout王子, 1米80, 自主创业, 1923-4-21,10年,30岁endl;if(2=i)cout喷嚏, 1米78, 律师, 1934-2-3, 4年,28岁endl;if(3=i)cout哈沁, 1米72, 金融理财师, 1929-3-2, 3年,31岁endl;if(4=i)cout大树, 1米78, 高中教师, 1934-3-1, 10年,35岁endl;if(5=i)cout嘿嘿, 1米79, 大学教师, 1945-4-22, 2年,22岁endl;if(6=i)cout哎呀, 1米80, 酒店老板, 1946-2-12, 4年,33岁endl;Showmenu(); break; Showmenu(); break;case 5: cout*删除一个人员记录*endl; cout*男士操作请按1 女士操作请按2*k; if(1=k) cout按姓名删除1 按年龄删除2l;if (1=l) cout请输入要删除人员的姓名(以#结尾):Del(nam); else if(2=l) cout请输入要删除人的年龄:i; pt-Del(i); elsecout操作错误.endl; else if(2=k) cout按姓名删除1 按年龄删除2l; if (1=l) cout请输入要删除人员的姓名(以#结尾):Del(nam); else if(2=l) cout请输入要删除人的年龄:i; ps-Del(i); else cout操作错误.endl; else cout操作错误.endl;Showmenu(); break; case 6: cout*按年龄输入人员信息(可选)*endl; cout*男士操作请按1 女士操作请按2*k; if(1=k) cout请输入要输出人员的年龄(以#结尾):Add();else if(2=k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论