《宠物商店管理系统(共41页).docx》由会员分享,可在线阅读,更多相关《宠物商店管理系统(共41页).docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一. 思路1、问题描述: 设计一个程序实现对小动物商店的简单管理,主要功能:宠物基本信息(编号,名称,体重, 年龄,类别,价格,性格等)的输入、显示、查询等功能;宠物的交易、状态及顾客(宠物主人)的记录查询和修改。2、设计要求: (1)至少包含 4 个类,日期 Date 类记录交易日期, 宠物 PetAnimals 类包含宠物的基本信息和基本操作, 输入和输出操作要求重载“”和“”运算符。顾客 Customer 类记录顾客的信息,另外再设计一个管理类,实现对宠物情况的操作;(2)用文本编辑器编辑一个文本文件(总数 20 个以上小动物)包含至少有 3 类(如狗、 猫、
2、鸟等), 程序运行时进行初始化数据,使用 vector 数组存放。另外再编写一个记录交易的文本文件,记录交易的日期、宠物名称、宠物类别、顾客姓名、交易金额等,有5 条以上记录即可。(3)菜单功能:显示所有宠物信息,根据类别显示记录,根据名称查询记录,添加(购入) 宠物,删除(卖出)宠物,交易记录,按日期查询交易记录。3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(
3、6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告二. 知识点系统主要函数说明1.宠物基本信息1) 主函数main():定义宠物ID ,体重等信息结构体数组,调用录入、统计等函数对宠物信息进行处理;2)录入函数AllPrint():输入ID到数量的宠物信息;3)查询函数search():查询指定宠物的信息;4)删除函数 Del() :删除宠物信息;5)修改函数ChangePet():修改指定宠物的信息;6)输出函数AllPrint():输出全部宠物的信息;7)保存函数 save() :保存宠物信息;8) 判断函数 Inquire(string a):判断信息真假;9)插入函数Add
4、Pet():插入新宠物信息;2.宠物的交易,状态1)主函数main():对交易记录,输入客户的姓名,客户联系方式,交易金额,交易日期对信息进行录入保存,购买宠物种类,购买数量,购买宠物单价进行录入保存。2)录入函数Addsale():增加;3)删除函数delesale():删除;4)查询函数search():查找;5)输出函数 AllPrint():输出显示;6)保存函数 save() :保存 3.顾客的记录查询和修改1)主函数main():对顾客姓名,购买宠物种类,购买数量,购买宠物单价进行录入保存,顾客记录查询和修改。2)录入函数add():增加顾客;3)删除函数del():删除顾客;4)
5、修改函数alter():修改顾客信息;5)保存函数save():保存顾客信息;6)查询函数 search():查询顾客信息;7)判断函数 Inquire(string a):判断用户是否已注册;8)查询函数 show():查询顾客的姓名是否存在回ture9)输出函数Output():输出全部顾客记录;三. 详细设计1) 主函数main():定义宠物ID ,体重等信息结构体数组,调用录入、统计等函数对宠物信息进行处理;int Pet:xianshi() int menu; cout*宠物店管理系统*endl; cout endl; cout endlendl; cout endl; cout e
6、ndl; cout 欢迎您的使用 endl; cout (*_*) endl; cout endl; cout 1.新添加宠物 2.查找宠物 3.删除宠物 endl; cout endl; cout 7. 结束运行 endl; cout endl; cout 4.显示所有 5.修改宠物 6.返回主菜单 endl; cout - endl; coutendl请选择相应操作菜单项:menu; while(menu7) cout请选择正确的菜单选项:menu; return menu; system(cls);2) 录入函数AllPrint():输入ID到数量的宠物信息;/成员函数的实现void P
7、et:AddPet()/增加宠物输入文本中docout *增加新的宠物* endl;coutID;coutendl;if(Inquire(ID)coutpetname;fflush(stdin);coutweight;fflush(stdin);coutage;fflush(stdin);coutcategory;fflush(stdin);coutcharacter;fflush(stdin);coutprice;fflush(stdin);coutcount;coutttIDtIDendltt宠物名tpetnameendltt体重tweightendltt年龄tageendltt类别tca
8、tegoryendltt性格tcharacterendltt宠物价格tpriceendltt宠物数量tcountendl;fflush(stdin);character elsecout输入的ID以存在,请重新输入!endl;while(!(Inquire(ID);save();coutendl*信息已保存 !*endl;system(pause);system(cls);3)查询函数search():查询指定宠物的信息;void Pet:search()/查找宠物信息 ifstream inData(pet,ios:in); if(!inData) coutendl对不起!文件找不到!end
9、l; system(pause); return; string sign; coutendlsign; bool flag=true; string str; while(inDataIDpetname) getline(inData, str); /*字符str用来接受除 与输入编号或影片名称相同之外的其他信息*/ if(ID=sign)|(petname=sign) coutendl你要查找的宠物信息是: endlendl; coutsetiosflags(ios:left)setw(8)IDsetw(8)宠物名setw(8)体重setw(8)年龄setw(8)类别setw(8)性格se
10、tw(8)单价setw(8)数量endl; coutsetiosflags(ios:left)setw(8)IDpetnamestrendl;/*输出所要查找的人的信息*/ flag=false; continue; if(flag)cout没找到你的宠物!; system(pause); system(cls);4)删除函数 Del() :删除宠物信息;void Pet:Del()/删除宠物信息 ifstream inData(pet,ios:in);ofstream outData(pet1,ios:out);if(!inData) cout对不起! 打不开此文件。;system(paus
11、e);return;string str,del;cout请输入要删除的宠物ID或名字:str;bool flag=true;while(inDataIDpetname)getline(inData,del);if(ID=str|petname=str)coutsetiosflags(ios:left)setw(8)您所要删除的宠物:endl;coutsetiosflags(ios:left)setw(8)IDsetw(8)宠物名setw(8)体重setw(8)年龄setw(8)类别setw(8)性格setw(8)单价setw(8)数量endl;coutsetiosflags(ios:left
12、)setw(8)IDpetnamedelendl;flag=false;continue;outDatasetiosflags(ios:left)setw(8)IDpetnamedelendl;inData.close();outData.close();if(flag)cout对不起!没有找到你删除的宠物!;system(pause);elseofstream outData(pet,ios:out);ifstream inData(pet1,ios:in);if(!inData)cout对不起打不开文件!endl;system(pause);return;while(getline(inD
13、ata,str) outDatastrendl;outData.close();inData.close();cout宠物已删除!;system(pause);system(cls);5)修改函数ChangePet():修改指定宠物的信息;void Pet:ChangePet()/修改宠物单价ofstream outData(pet1,ios:out);/*创建一个名为pet1的文件并打开*/ifstream inData(pet,ios:in);/*打开名为pet的文件并读取里面的内容*/if(!inData)cout对不起!找不到此文件!endl;system(pause);return;
14、string alter;coutalter;bool flag=true;/*布尔型函数*/string str;while(inDataIDpetname)/*查找函数*/getline(inData,str);/*赋予信息给str*/string newID;if(alter=ID)|(alter=petname)docout您所要修改的宠物:endl;coutsetiosflags(ios:left)setw(8)IDsetw(8)宠物名setw(8)体重setw(8)年龄setw(8)类别setw(8)性格setw(8)单价setw(8)数量endl;coutsetiosflags(
15、ios:left)setw(8)IDpetnamestrendl;cout*请根据一下提示修改信息*;coutnewID;coutendl;if(Inquire(newID)coutpetname;fflush(stdin);coutprice;fflush(stdin);coutweight;fflush(stdin);coutage;fflush(stdin);coutcharacter;fflush(stdin);coutcount;flag=false;elsecout你输入的ID以存在,请重新输入!endl;while(!Inquire(newID);ID=newID;save();
16、continue;outDatasetiosflags(ios:left)setw(8)IDpetnamestrendl;/*把信息读取到Pet1*/outData.close();inData.close();coutendl*信息已保存 !*endl;if(flag)cout找不到您所要修改的宠物!;system(pause);elseifstream inData(pet1,ios:in);ofstream outData(pet,ios:out);if(!inData) cout对不起!找不到此文件!endl; system(pause); return;while(getline(i
17、nData,str)outDatastrendl;outData.close();inData.close();cout宠物的信息已修改!;system(pause);6)输出函数AllPrint():输出全部宠物的信息;void Pet:AllPrint()/输出所有宠物信息ifstream inData(pet,ios:in);if(!inData)cout对不起!打不开文件!endl;system(pause);return ;bool flag=true; string all; while(getline(inData,all) if(flag) cout*所有宠物如下:*; cou
18、tendlendl; coutsetiosflags(ios:left)setw(8)IDsetw(8)宠物名setw(8)体重setw(8)年龄setw(8)类别setw(8)性格setw(8)单价setw(8)数量endl; coutallendl; flag=false;if(flag)cout endl 你的宠物库中没有宠物!endlendl;elsecout endl 所有宠物已经全部显示出来!endl endl;system(pause);system(cls);7)保存函数 save() :保存宠物信息;void Pet:save()ofstream outData(pet,io
19、s:app);if(!outData) cout对不起! 打不开此文件。;system(pause);return ;outDatasetiosflags(ios:left)setw(8)IDsetw(8)petnamesetw(8)weightsetw(8)agesetw(8)categorysetw(8)charactersetw(8)pricesetw(8)countendl;outData.close();8)判断函数Inquire(string a):判断用户是否已注册;bool Pet:Inquire(string s)/判断真假 ifstream inData(pet,ios:i
20、n); string newID; if(!inData) coutendl对不起!文件找不到!newID) getline(inData, str); /*字符str用来接受其他信息*/ if(newID=s) flag=false; break; return flag;inData.close(); system(pause); system(cls);2.宠物的交易,状态1)主函数main():对交易记录,输入客户的姓名,客户联系方式,交易金额,交易日期对信息进行录入保存,购买宠物种类,购买数量,购买宠物单价进行录入保存。int SaleItem:menu()int a;cout*宠物
21、店账单系统*endl;coutendlendl;coutendlendl; cout endl; cout endl; cout 欢迎进入账单管理系统 endl; cout (*_*) endl; cout endl; cout 1、添加信息 4、显示所信息 endl; cout endl; cout endl; cout 2、删除信息 5、返回主菜单 endl; cout endl; cout endl; cout 3、查询信息 6、退出系统 endl; cout - endl; couta;while (a6)cout请正确输入选择编号!a;return a;system(pause);s
22、ystem(cls);2) 录入函数Addsale():增加;void SaleItem:Addsale()coutname;coutpetname;coutcount;coutprice;couttt顾客姓名tnameendltt宠物种类tpetnameendltt宠物单价tpriceendltt购买数量tcountendl;save();coutendl*信息已保存 !*endl;system(pause);system(cls);3)删除函数delesale():删除;void SaleItem:delesale() ofstream outData(saleItem1.txt,ios:
23、out);ifstream inData(saleItem.txt,ios:in);if(!inData)cout打不开文件!endl;system(pause);return;string del;cout输入你想删除的客户名:del;bool flag=true;string str; while(inDatanamepetnamecountprice) getline(inData,str); if(del=name)cout您所要删除的账单:endl; coutsetiosflags(ios:left)setw(8)客户姓名setw(8)宠物种类setw(8)购买数量setw(8)宠物
24、单价endl; coutsetiosflags(ios:left)setw(8)namesetw(8)petnamesetw(8)countsetw(8)priceendl;/*输出所要删除的人的信息*/flag=false;continue; outDatasetiosflags(ios:left)setw(8)namesetw(8)petnamesetw(8)countsetw(8)priceendl; outData.close(); inData.close();if(flag)cout没有您要删除的账单的信息!endl;system(pause);elseofstream outDa
25、ta(saleItem.txt,ios:out);ifstream inData(saleItem1.txt,ios:in);if(!inData)cout对不起打不开文件!endl;system(pause);return;while(getline(inData,str)outDatastrendl; outData.close();inData.close();system(pause);system(cls);4)查询函数search():查找;void SaleItem:search()/查找宠物信息 ifstream inData(saleItem.txt,ios:in); if(
26、!inData) coutendl对不起!文件找不到!endl; system(pause); return; string sign; coutendlsign; bool flag=true; string str; while(inDataname) getline(inData, str); /*字符str用来接受除 与输入编号或影片名称相同之外的其他信息*/ if(name=sign) coutendl你要查找客户信息是: endlendl; coutsetiosflags(ios:left)setw(8)客户名setw(8)宠物名setw(8)价格setw(8)数量endl; co
27、utsetiosflags(ios:left)setw(8)namestrendl;/*输出所要查找的人的信息*/ flag=false; continue; if(flag)cout没找到你的顾客!; system(pause); system(cls);5)输出函数 AllPrint():输出显示;void SaleItem:AllPrint()/输出所有信息ifstream inData(saleItem.txt,ios:in);if(!inData)cout对不起!打不开文件!namepetnamecountprice) if(flag) cout*所有账单信息如下:*; coutendlendl; couts