收藏 分销(赏)

婚姻介绍所系统说明书.doc

上传人:仙人****88 文档编号:9199320 上传时间:2025-03-16 格式:DOC 页数:20 大小:123.50KB
下载 相关 举报
婚姻介绍所系统说明书.doc_第1页
第1页 / 共20页
婚姻介绍所系统说明书.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述
婚姻介绍所系统 婚姻介绍所系统,男士信息(姓名,身高,职业,出生日期,工作时间,年龄);女士信息(姓名,身高,职业,出生日期,工作时间,年龄) 功能要求: 1. 设计一个People类,由People派生一个Man类和一个Woman类; 2. 设计构造函数初始化数据; #include<string.h> #include<fstream.h> #include<stdlib.h> #define maxsize 100 fstream iofile; class Time { public: int year; int month; int day; }; class Telem { public: char name[20]; Time birthtime; char num[20]; char career[20]; char character[20]; 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 data[maxsize]; 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;i<length;i++) cout<<data[i]; } void People::Displaypart(char p[]) { int i,c; for(i=0;i<length;i++) if(strcmp(data[i].career,p)==0) { cout<<"输出选择姓名1 身高2 职业3 出生日期4 工作时间5 年龄6 退出选择7"<<endl; while(cin>>c) { switch(c) { case 1: cout<<"姓名:"<<data[i].name<<endl;break; case 2: cout<<"身高:"<<data[i].num<<endl;break; case 3: cout<<"职业:"<<data[i].career<<endl;break; case 4: cout<<"出生日期:"<<data[i].birthtime.year<<" "<<data[i].birthtime.month<<" "<<data[i].birthtime.day<<" "<<endl;break; case 5: cout<<"工作时间:"<<data[i].worktime.year<<" "<<data[i].worktime.month<<" "<<data[i].worktime.day<<" "<<endl;break; case 6: cout<<"年龄:"<<data[i].year<<endl;break; case 7: cout<<"姓名,性别,身高,职业,出生日期,工作时间,年龄"<<endl;break; case 8: goto loop; default:cout<<"操作错误......"<<endl; } } loop:; } } void People::Findname(char n[]) { int i; for(i=0;i<length;i++) if(strcmp(data[i].name,n)==0) cout<<data[i]; } void People::Findyear(int y) { Man man; Woman woman; People *pt=&man; People *ps=&woman; int i; for(i=0;i<length;i++) if(data[i].year==y) cout<<data[i]<<pt->data[i].year<<endl; ps->data[i].year; } void People::Character() { int i,s=0; for(i=0;i<length;i++) if(data[i].character) cout<<data[i]; } void People::Del(int i) { int j; for(j=i;j<length;j++) data[j-1]=data[j]; 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(data[length]),ios::beg); iofile.read((char*)&data[length],sizeof(data[length])); length++; if(length==maxsize) { flag=1; goto loop; } } People::Del(length); cout<<""<<endl; loop: if(1==flag) cout<<"人员信息储存空间已满......"<<endl; iofile.close(); } void Woman::Addall() { char ans; int flag=0; iofile.open("Woman_information.txt",ios::out|ios::binary); do { cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<"您以成功讲信息录入主菜单"<<endl; length++; if(length==maxsize) { flag=1; goto loop; } cout<<"continue(Y|N)?"; cin>>ans; } while('y'==ans||'Y'==ans); loop: if(1==flag) cout<<""<<endl; iofile.close(); } void Woman::Add() { int flag=0; iofile.open("Woman_information.txt",ios::app|ios::out|ios::binary); if(length==maxsize) { flag=1; goto loop; } cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<"添加人员信息成功......"<<endl; length++; loop: if(1==flag) cout<<""<<endl; 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;i<length;i++) cout<<data[i]; } void Woman::Character() { int i,s=0; for(i=0;i<length;i++) if(data[i].character) cout<<data[i]; } void Woman::Del(char n[]) { int i,j,k; for(i=0;i<length;i++) if(strcmp(data[i].name,n)==0) { k=i+1;break; } if(k<1) cout<<""; for(j=k;j<length;j++) data[j-1]=data[j]; length--; cout<<"删除人员信息成功......"<<endl; } void Woman::Del(int i) { int j; if(i<1||i>length) cout<<"删除成功"; for(j=i;j<length;j++) data[j-1]=data[j]; length--; cout<<""<<endl; } void Woman::Findyear(int y) { int i; for(i=0;i<length;i++) if(data[i].year==y) cout<<data[i]; } void Man::AddF() { int flag=0; iofile.open("Man_information.txt",ios::in|ios::binary); while(iofile.seekg(sizeof(data[length]),ios::cur)) { if(iofile.seekg(length*sizeof(data[length]),ios::beg)) iofile.read((char*)&data[length],sizeof(data[length])); else break; length++; if(length==maxsize) { flag=1; goto loop; } } People::Del(length); cout<<""<<endl; loop: if(1==flag) cout<<"人员信息储存空间已满......"<<endl; iofile.close(); } void Man::Addall() { char ans; int flag=0; iofile.open("Man_information.txt",ios::in|ios::out|ios::binary); do { cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<"您以成功将信息录入主菜单"<<endl; length++; if(length==maxsize) { flag=1; goto loop; } cout<<"continue(Y|N)?"; cin>>ans; } while('y'==ans||'Y'==ans); loop: if(1==flag) cout<<"人员信息储存空间已满......"<<endl; iofile.close(); } void Man::Add() { int flag=0; iofile.open("Man_information.txt",ios::app|ios::out|ios::binary); if(length==maxsize) { flag=1; goto loop; } cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<"添加人员信息成功......"<<endl; length++; loop: if(1==flag) cout<<""<<endl; 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;i<length;i++) cout<<data[i]; } void Man::Del(char n[]) { int i,j,k; for(i=0;i<length;i++) if(strcmp(data[i].name,n)==0) { k=i+1;break; } if(k<1) cout<<""; for(j=k;j<length;j++) data[j-1]=data[j]; length--; cout<<"删除人员信息成功......"<<endl; } void Man::Character() { if(0==length) cout<<""<<endl; int i,s=0; for(i=0;i<length;i++) s+=data[i].year; } void Man::Del(int i) { int j; if(i<1||i>length) cout<<"删除成功"; for(j=i;j<length;j++) data[j-1]=data[j]; length--; cout<<""<<endl; } void Man::Findyear(int y) { int i; for(i=0;i<length;i++) if(data[i].year==y) cout<<data[i]; } istream& operator>>(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<<"请输入出生日期(????年??月??日):"<<endl; input>>y>>m>>d; T.birthtime.year=(y>=1900&&y<=2100)?y:1900; T.birthtime.month=(m>=1&&m<=12)?m:1; T.birthtime.day=(d>=1&&d<=31)?d:1; cout<<"参加工作时间(????年??月??日):"<<endl; input>>y>>m>>d; T.worktime.year=(y>=1900&&y<=2100)?y:1900; T.worktime.month=(m>=1&&m<=12)?m:1; T.worktime.day=(d>=1&&d<=31)?d:1; return input; } ostream& operator<<(ostream& output,Telem& T) { cout<<"姓名:"; output<<T.name<<endl; cout<<"身高:"; output<<T.num<<endl; cout<<"职业:"; output<<T.career<<endl; cout<<"出生日期:"; output<<T.birthtime.year<<" "<<T.birthtime.month<<" "<<T.birthtime.day<<endl; cout<<"参加工作时间:"; output<<T.worktime.year<<" "<<T.worktime.month<<" "<<T.worktime.day<<endl; cout<<"年龄:"; output<<T.year<<endl; 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; cout<<"请输入选择(1~9)"; } int main() { Man man; Woman woman; People *pt=&man; People *ps=&woman; int c=0,k=0,l=0,i=0; char nam[20],part[20]; Showmenu(); for(;;) { cin>>c; switch(c) { case 1: { cout<<"***********录入全部人员(男士、女士)记录*****"<<endl; cout<<"*****男士操作请按1 女士操作请按2*****"<<endl; cin>>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*****"<<endl; cin>>k; if(1==k) { pt->Add(); Showmenu(); break; } else if(2==k) { ps->Add(); Showmenu(); break; } else cout<<"操作错误..."<<endl; Showmenu(); break; } case 3: { cout<<"************显示全部人员记录**************"<<endl; pt->Display(); ps->Display(); cout<<"操作结束,请选择主菜单(0~9)"<<endl; Showmenu(); break; } case 4: { cout<<"************对对方性格的要求**************"<<endl; cout<<"*****男士操作请按1 女士操作请按2*****"<<endl; cin>>k; if(1==k) { cout<<"请男士选择"<<endl; cout<<"1.温柔型"<<endl; cout<<"2.可爱型"<<endl; cout<<"3.野蛮型"<<endl; cout<<"4.淑女型"<<endl; cout<<"5.万人迷型"<<endl; cout<<"6.高贵典雅型"<<endl; cin>>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; cout<<"1.美男型"<<endl; cout<<"2.冷酷型"<<endl; cout<<"3.猛男型"<<endl; cout<<"4.雇家型"<<endl; cout<<"5.爱妻型"<<endl; cout<<"6.钻石王老五型"<<endl; cin>>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*****"<<endl; cin>>k; if(1==k) { cout<<"按姓名删除1 按年龄删除2"<<endl; cin>>l; if (1==l) { cout<<"请输入要删除人员的姓名(以#结尾):"<<endl;cin.getline(nam,20,'#'); pt->Del(nam); } else if(2==l) { cout<<"请输入要删除人的年龄:"<<endl;cin>>i; pt->Del(i); } else cout<<"操作错误......"<<endl; } else if(2==k) { cout<<"按姓名删除1 按年龄删除2"<<endl; cin>>l; if (1==l) { cout<<"请输入要删除人员的姓名(以#结尾):"<<endl;cin.getline(nam,20,'#'); ps->Del(nam); } else if(2==l) { cout<<"请输入要删除人的年龄:"<<endl;cin>>i; ps->Del(i); } else cout<<"操作错误......"<<endl; } else cout<<"操作错误......"<<endl; Showmenu(); break; } case 6: { cout<<"************按年龄输入人员信息(可选)**"<<endl; cout<<"*****男士操作请按1 女士操作请按2*****"<<endl; cin>>k; if(1==k) { cout<<"请输入要输出人员的年龄(以#结尾):"<<endl;cin.getline(part,20,'#'); pt->Add(); } else if(2==k) { cout<<"请输入要输出人员的年龄(以#结尾):"<<endl;cin.getline(part,20,'#'); ps->Displaypart(part); } else cout<<"操作错误......"<<endl; Showmenu(); break; } case 7: {
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服