C杂志订阅标准管理系统.doc
《C杂志订阅标准管理系统.doc》由会员分享,可在线阅读,更多相关《C杂志订阅标准管理系统.doc(23页珍藏版)》请在咨信网上搜索。
#include<iostream> //数据流输入输出 #include<string> //字符串操作 #include<fstream> //文件输入输出 #include<time.h> //时间库函数 #include<iomanip> //输入输出格式符 using namespace std; //命名空间 int year,month; /*888*/ class Order_infor { string name; //用户姓名 string sex; //用户性别 string addr; //用户地址 string tel; //用户号码 string mage; //杂志单位 float price; //杂志单价 int num; //订阅数目 int y,m; //订阅限期 int g; public: Order_infor* head; //信息类头指针 Order_infor* next; //信息类next域 void input(); //录入函数 void input(ifstream & infile); //读取函数 void output(); //输出函数 void output(ofstream & outfile); //写入函数 float getprice(); int getnum(); int getyear(); //获取期限时间函数 int getmonth(); string getname(); void order(); //录入信息 void mend(); //修改信息 void del_select(); void del1(); //删除信息 void del2(); void found(); Order_infor*find(string n); bool find(int y,int m); void statistic(); void show(); //显示信息 bool comp(int y,int m); //判定目前订阅情况函数 void save(); //保留信息 void begin(); //初始信息 void clear(); //清除函数 void setg(int k){ g=k; } //设置系统修改标志 int getg(){ return g;} //返回系统修改标志 }d; /*888*/ float Order_infor::getprice() { return price; } int Order_infor::getnum() { return num; } int Order_infor::getyear() { return y; } int Order_infor::getmonth() { return m; } string Order_infor::getname() { return name; } /**/ class Menu { public: void about(); //相关 void mainmenu(); //主菜单函数 bool land(); //管理员登陆 }; /**/ void Menu::about() { cout<<"┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅"<<endl <<"\t1."<<endl <<"\t2."<<endl <<"\t3."<<endl <<"\t4."<<endl; cout<<"┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅"<<endl; } /*88*/ bool Menu::land() { Menu b; //定义菜单类对象 b.about(); //输出系统说明 string s; int i=0; //计数变量 cout<<"请输入管理员密码:"<<endl; //输出提醒信息 while(1) { cin>>s; if(s=="123456") //输入正确 return true; //返回正确 else //输错了 { cout<<"输入密码错误,请重新输入:"; //输出提醒信息 i++; //计数变量自加 if(i>=3) //连输三次错误 break; //跳出循环 } } cout<<"输入错误三次!系统自动退出!"<<endl; //提醒将退出登录 system("pause"); //显示暂停 return false; //返回错误 } /*888*/ void Menu::mainmenu() { system("cls"); string s; cout<<"********************************************************************************"<<endl; cout<<" 欢迎使用杂志订阅管理软件 "<<endl; cout<<"********************************************************************************"<<endl; cout<<"\t\t0.退出程序 4.浏览订阅用户"<<endl; cout<<"\t\t1.增加新订户 5.查找用户信息"<<endl; cout<<"\t\t2.删除用户 6.修改用户信息"<<endl; cout<<"\t\t3.统计本期杂志订户数 7.保留信息 "<<endl; cout<<"请输入功效按钮:"; cin>>s; switch(s[0]) { case'1':d.order();break; case'2':d.del_select();break; case'3':d.statistic();break; case'4':d.show();break; case'5':d.found();break; case'6':d.mend();break; case'7':d.save();break; default:return; } } /*888*/ void Order_infor::input() { cout<<"请输入姓名: "; while(1) { cin>>name; //输入姓名 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n姓名输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入性别: "; while(1) { cin>>sex; //输入性别 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n性别输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入地址: "; //设置地址 while(1) { cin>>addr; //输入地址 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n地址输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入电话号码: "; //设置电话号码 while(1) { cin>>tel; //输入电话号码 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n号码输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入杂志单位: "; //设置杂志单位 while(1) { cin>>mage; //输入杂志单位 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n杂志单位输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入单价: "; //设置单价 while(1) { cin>>price; //输入单价 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n单价输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入订阅数: "; //设置订阅数 while(1) { cin>>num; //输入订阅数 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n订阅数输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } cout<<"请输入订阅限期(年 月): "; //设置期限 while(1) { cin>>y>>m; //输入期限 if (cin.fail()) //判定输入数据类型是否有错 { cout <<"\n订阅限期输入错误,请重新输入:"; cin.clear(); //清除错误状态 cin.get(); //重输 } else break; //输入正确则跳出循环 } } /*888*/ void Order_infor::input(ifstream & infile) //带参录入函数向链表输入 { infile>>name>>sex>>addr>>tel>>mage>>price>>num>>y>>m; //输入至链表 } /*888*/ void Order_infor::output() //信息输出函数向显示器输出 { cout<<setw(8)<<name<<setw(4)<<sex<<setw(10)<<addr<<setw(13)<<tel<<setw(10)<<mage<<setw(6)<<price<<setw(4)<<num<<setw(2)<<y<<"/"<<m<<endl; } /*888*/ void Order_infor::output(ofstream & outfile) //向文件输出信息 { outfile<<setw(10)<<name //setw()设置输出宽度 <<setw(10)<<sex <<setw(10)<<addr <<setw(12)<<tel <<setw(10)<<mage <<setw(10)<<price <<setw(10)<<num <<setw(10)<<y <<setw(10)<<m <<endl; } /*888*/ bool Order_infor::comp(int y,int m) //判定是否超期 { if(year>y||(year==y&&month>m))//先比较年,若一样则比较月 return true; //比较目前时间和限期,取得订阅目前情况,返回表示订阅超期 else return false; //返回表示订阅未超期 } /*888*/ void Order_infor::order() //向链表尾部录入订阅信息 { system("cls"); //清屏 Order_infor *p1,*p2=NULL; //定义对象指针 p1=head; //将头指针赋给p1 int n=1; //定义循环控制变量 while(p1->next) //当头结点后有数据时实施循环,头结点为空也不会实施循环 p1=p1->next; //使p能够指向未存放数据内存,录入信息会存放在全部信息以后 while(n) //此循环实施在链表尾部插入录入信息 { //经过循环不停开辟新空间录入新数据 p2=new Order_infor; //开辟存放空间,返回地址给p2 p2->input(); //调用录入函数,为p2所指结点数据赋值 p1->next=p2; //p1next指向新开辟空间,连接了p1和p2 p2->next=NULL; //p2next变为空指针 p1=p1->next; //p1指向新开辟空间,p1紧随p2以后 Order_infor::setg(1); //标识为修改 cout<<"\t\t\t按1继续,按0返回: "; //控制变量控制循环 cin>>n; //输入n } } /*888*/ void Order_infor::show() { system("cls"); //清屏 cout.setf(ios::left); cout<<"订阅基础信息以下:"<<endl //显示全部订阅信息 <<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"地址" <<setw(13)<<"电话"<<setw(8)<<"单位"<<setw(8)<<"单价" <<setw(8)<<"定阅数"<<setw(8)<<"期限"<<endl; Order_infor *p; //定义订阅信息类对象指针 p=head; //指向链表头部,启用链表信息 while(p->next) //只要下一结点不为空则实施循环 { //此循环功效在于输出全部订阅信息 p=p->next; //P指向下一节点 cout<<setw(8)<<p->name<<setw(8)<<p->sex<<setw(8)<<p->addr <<setw(13)<<p->tel<<setw(8)<<p->mage<<setw(8)<<p->price<<setw(8)<<p->num<<setw(4)<<p->y<<"/"<<p->m<<endl; //调用next所指对象输出信息函数,头结点未存放数据只是初始化了next } } /*888*/ void Order_infor::found() { system("cls"); //清屏 string n; //定义辅助变量 cout<<"输入姓名: "; //输出提醒信息 cin>>n; //输入选择 if(!find(n)) //调用find函数查找 { cout<<"\t\t找不到你要查找内容!"<<endl; //找不到话输出对应提醒信息 return; //函数调用结束 } } /*888*/ Order_infor* Order_infor::find(string n) { system("cls"); //清屏 Order_infor *p; //定义辅助指针 p=head; //指向链表头结点 while(p->next) //当链表未至尾部时实施循环 { if( (p->next)->getname()==n ) //班次匹配上则输出所查到订阅信息 { cout.setf(ios::left); cout<<"订阅基础信息以下:"<<endl //输出信息 << "姓名 性别 地址 电话 单位 单价 定阅数 期限"<<endl; (p->next)->output(); //调用输出函数 return p; //表示找到,返回是目标结点前一结点 } p=p->next; //指向下一节点 } return NULL; } /*888*/ void Order_infor::mend() //修改函数 { system("cls"); //清屏 Order_infor *p; //定义信息类指针变量 string n; cout<<"\t\t\t输入姓名方便查找: "; //输出提醒信息 cin>>n; p=find(n); //调用查找函数 if(!p) //判定是否找到 { cout<<"\t\t找不到你要修改内容!请利用程序查询功效确定!"<<endl; //输出提醒信息 return; //函数调用结束 } (p->next)->input(); //调用录入函数对目标结点数据再录入 Order_infor::setg(1); } /*888*/ void Order_infor::del_select() { cout<<"请选择删除选项:"<<endl; cout<<"1.删除过期用户;2.删除指定用户"<<endl; int c; cin>>c; switch(c) { case 1:d.del2();break; case 2:d.del1();break; default:cout<<"输入错误!"; } } /*888*/ void Order_infor::del1() //删除车辆信息函数 { system("cls"); //清屏 Order_infor *p1,*p2,*p3; //定义两对象指针用于链表操作 string n; cout<<"\t\t\t输入姓名: "; //输出提醒信息 cin>>n; p1=find(n); //调用查找函数 if(!p1) //判定函数返回值是否为NULL { cout<<"\t\t找不到你要删除内容!"<<endl; //输出没找到提醒 return; //函数调用结束 } cout<<"\n\t\t\t确定删除(y/n)?"; //显示将要删除数据信息供用户查对 char a; cin>>a; //输入指示 if(a=='y'||a=='Y') { //因为头结点为空仅有next域所以只要考虑被删结点是中间结点和尾结点情况 if((p1->next)->next==NULL) //目标结点为尾结点时 { p2=p1->next; //p2指向目标结点 p1->next=NULL; //p1连接目标结点next域重新赋值为空指针 delete p2; //释放目标空间 } else { //目标结点为中间节点时 p2=p1->next; //p2指向目标结点 p3=(p1->next)->next; //p3指向目标结点下一结点 p1->next=p3; //连接目标结点前后结点 delete p2; //释放目标结点 } Order_infor::setg(1); //标识为修改 } } /*888*/ void Order_infor::del2() { system("cls"); //清屏 Order_infor *p1,*p2,*p3;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 杂志 订阅 标准 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文