C++杂志订阅管理系统.docx

上传人:小飞机 文档编号:3153779 上传时间:2023-03-11 格式:DOCX 页数:14 大小:40.98KB
返回 下载 相关 举报
C++杂志订阅管理系统.docx_第1页
第1页 / 共14页
C++杂志订阅管理系统.docx_第2页
第2页 / 共14页
C++杂志订阅管理系统.docx_第3页
第3页 / 共14页
C++杂志订阅管理系统.docx_第4页
第4页 / 共14页
C++杂志订阅管理系统.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++杂志订阅管理系统.docx》由会员分享,可在线阅读,更多相关《C++杂志订阅管理系统.docx(14页珍藏版)》请在三一办公上搜索。

1、C+杂志订阅管理系统#include /数据流输入输出 #include /字符串操作 #include /文件输入输出 #include /时间库函数 #include /输入输出格式符 using namespace std; /命名空间 int year,month; /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ class Order_infor string name; /用户姓名 string sex; /用户性别 string addr; /用户地址 string t

2、el; /用户号码 string mage; /杂志单位 float price; /杂志单价 int num; /订阅数目 int y,m; /订阅限期 int g; public: Order_infor* head; Order_infor* next; void input; void input(ifstream & infile); void output; void output(ofstream & outfile); float getprice; int getnum; int getyear; int getmonth; string getname; void orde

3、r; 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); 状况函数 /信息类头指针 /信息类next域 /录入函数 /读取函数 /输出函数 /写入函数 /获取期限时间函数 /录入信息 /修改信息 /删除信息 /显示信息 /判断当前订阅 void save; /保存信息 void begin; /初始信息 void cle

4、ar; /清除函数 void setg(int k) g=k; /设置系统修改标志 int getg return g; /返回系统修改标志 d; /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ float Order_infor:getprice return price; int Order_infor:getnum return num; int Order_infor:getyear return y; int Order_infor:getmonth return m; s

5、tring Order_infor:getname return name; /*888888888888888888888888888888888888888888888888888888888888888888888888*/ class Menu public: void about; /关于 void mainmenu; /主菜单函数 bool land; /管理员登陆 ; /*888888888888888888888888888888888888888888888888888888888888888888888888*/ void Menu:about coutendl t1.en

6、dl t2.endl t3.endl t4.endl; coutendl; /*88888888888888888888888888888888888888888888888888888888888888888888888888*/ bool Menu:land Menu b; /定义菜单类对象 b.about; /输出系统说明 string s; int i=0; /计数变量 cout请输入管理员密码:s; if(s=123456) /输入正确 return true; /返回正确 else /输错了 cout=3) /连输三次错误 break; /跳出循环 cout输入错误三次!系统自动退

7、出!endl; /提示将退出登录 system(pause); /显示暂停 return false; /返回错误 /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ void Menu:mainmenu system(cls); string s; cout*endl; cout 欢迎使用杂志订阅管理软件 endl; cout*endl; couttt0.退出程序 4.浏览订阅用户endl; couttt1.增加新订户 5.查找用户信息endl; couttt2.删除用户 6.修改用户

8、信息endl; couttt3.统计本期杂志订户数 7.保存信息 endl; couts; switch(s0) case1:d.order;break; case2:d.del_select;break; case3:d.statistic;break; case4:d.show;break; case5:d.found;break; case6:d.mend;break; case7:d.save;break; default:return; /*888888888888888888888888888888888888888888888888888888888888888888888888

9、888*/ void Order_infor:input coutname; /输入姓名 if (cin.fail) /判断输入的数据类型是否有错 cout n姓名输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 coutsex; /输入性别 if (cin.fail) /判断输入的数据类型是否有错 cout n性别输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 coutaddr; /输入地址 if (cin.fail)

10、/判断输入的数据类型是否有错 cout n地址输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 couttel; /输入电话号码 if (cin.fail) /判断输入的数据类型是否有错 cout n号码输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 coutmage; /输入杂志单位 if (cin.fail) /判断输入的数据类型是否有错 cout n杂志单位输入错误,请重新输入:; cin.clear; /清除错误状

11、态 cin.get; /重输 else break; /输入正确则跳出循环 coutprice; /输入单价 if (cin.fail) /判断输入的数据类型是否有错 cout n单价输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 coutnum; /输入订阅数 if (cin.fail) /判断输入的数据类型是否有错 cout n订阅数输入错误,请重新输入:; cin.clear; /清除错误状态 cin.get; /重输 else break; /输入正确则跳出循环 coutym; /输入期限 if (

12、cin.fail) /判断输入的数据类型是否有错 cout namesexaddrtelmagepricenumym; /输入至链表 /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ void Order_infor:output /信息输出函数向显示屏输出 coutsetw(8)namesetw(4)sexsetw(10)addrsetw(13)telsetw(10)magesetw(6)pricesetw(4)numsetw(2)y/mendl; /*888888888888888

13、888888888888888888888888888888888888888888888888888888888888*/ void Order_infor:output(ofstream & outfile) /向文件输出信息 outfilesetw(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 y|(year=y&monthm)/先比较年,若一样则比较月 return true; /比较当前时间与限期,获

14、得订阅的当前状况,返回表示订阅超期 else return false; /返回表示订阅未超期 /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ void Order_infor:order /向链表尾部录入订阅信息 system(cls); /清屏 Order_infor *p1,*p2=NULL; /定义对象指针 p1=head; /将头指针赋给p1 int n=1; /定义循环控制变量 while(p1-next) /当头结点后有数据时执行循环,头结点为空也不会执行循环 p1=p

15、1-next; /使p能够指向未存放数据的内存,录入信息会存放在所有信息之后 while(n) /此循环执行在链表尾部插入录入的信息 /通过循环不断开辟新空间录入新的数据 p2=new Order_infor; /开辟存储空间,返回地址给p2 p2-input; /调用录入函数,为p2所指结点数据赋值 p1-next=p2; /p1的next指向新开辟空间,连接了p1和p2 p2-next=NULL; /p2的next变为空指针 p1=p1-next; /p1指向新开辟的空间,p1紧随p2之后 Order_infor:setg(1); /标记为修改 coutn; /输入n /*88888888

16、8888888888888888888888888888888888888888888888888888888888888888888*/ 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)期限next) /只要下一结点不为空则执行循环 /此循环功能在于输出所有订阅信息 p=p-next; /P指向下一节点 coutsetw

17、(8)namesetw(8)sexsetw(8)addr setw(13)telsetw(8)magesetw(8)pricesetw(8)numsetw(4)y/mendl; /调用next所指对象的输出信息函数,头结点未存放数据只是初始化了next /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ void Order_infor:found system(cls); /清屏 string n; /定义辅助变量 coutn; /输入选择 if(!find(n) /调用find函数查

18、找 couttt找不到你要查找的内容!next) /当链表未至尾部时执行循环 if( (p-next)-getname=n ) /班次匹配上则输出所查到的订阅信息 cout.setf(ios:left); cout订阅基本信息如下:endl /输出信息 姓名 性别 地址 电话 单位 单价 定阅数 期限next)-output; /调用输出函数 return p; /表示找到,返回的是目标结点的前一结点 p=p-next; /指向下一节点 return NULL; /*8888888888888888888888888888888888888888888888888888888888888888

19、88888888888*/ void Order_infor:mend /修改函数 system(cls); /清屏 Order_infor *p; /定义信息类指针变量 string n; coutn; p=find(n); /调用查找函数 if(!p) /判断是否找到 couttt找不到你要修改的内容!请利用程序查询功能确认!next)-input; /调用录入函数对目标结点数据再录入 Order_infor:setg(1); /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ vo

20、id Order_infor:del_select cout请选择删除选项:endl; cout1.删除过期用户;2.删除指定用户c; switch(c) case 1:d.del2;break; case 2:d.del1;break; default:cout输入错误!; /*888888888888888888888888888888888888888888888888888888888888888888888888888*/ void Order_infor:del1 /删除车辆信息函数 system(cls); /清屏 Order_infor *p1,*p2,*p3; /定义两对象指针用于链表操作 string n; coutn; p1=find(n); /调用查找函数 if(!p1) /判断函数返回值是否为NULL couttt找不到你要删除的内容!endl; /输出没找到的提示 return; /函数调用结束 couta; /输入指示 if(a=y|a=Y) /因为头结点为空仅有next域所以只要考虑被删结点是中间结点和尾结点情况 if(p1-next)-next=NULL) /目标结点为尾结点时 p2=p1-next;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号