宠物商店管理系统(共41页).docx
精选优质文档-倾情为你奉上一. 思路1、问题描述: 设计一个程序实现对小动物商店的简单管理,主要功能:宠物基本信息(编号,名称,体重, 年龄,类别,价格,性格等)的输入、显示、查询等功能;宠物的交易、状态及顾客(宠物主人)的记录查询和修改。2、设计要求: (1)至少包含 4 个类,日期 Date 类记录交易日期, 宠物 PetAnimals 类包含宠物的基本信息和基本操作, 输入和输出操作要求重载“>>”和“<<”运算符。顾客 Customer 类记录顾客的信息,另外再设计一个管理类,实现对宠物情况的操作;(2)用文本编辑器编辑一个文本文件(总数 20 个以上小动物)包含至少有 3 类(如狗、 猫、 鸟等), 程序运行时进行初始化数据,使用 vector 数组存放。另外再编写一个记录交易的文本文件,记录交易的日期、宠物名称、宠物类别、顾客姓名、交易金额等,有5 条以上记录即可。(3)菜单功能:显示所有宠物信息,根据类别显示记录,根据名称查询记录,添加(购入) 宠物,删除(卖出)宠物,交易记录,按日期查询交易记录。3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(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)插入函数 AddPet():插入新宠物信息;2.宠物的交易,状态1)主函数 main():对交易记录,输入客户的姓名,客户联系方式,交易金额,交易日期对信息进行录入保存,购买宠物种类,购买数量,购买宠物单价进行录入保存。2)录入函数 Addsale():增加;3)删除函数 delesale():删除;4)查询函数 search() :查找;5)输出函数 AllPrint():输出显示;6)保存函数 save() :保存 3.顾客的记录查询和修改1)主函数 main():对顾客姓名,购买宠物种类,购买数量,购买宠物单价进行录入保存,顾客记录查询和修改。2)录入函数 add():增加顾客;3)删除函数 del():删除顾客;4)修改函数 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<< endl<<endl; cout<<" "<<endl; cout<<" "<<endl; 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; cout<<endl<<"请选择相应操作菜单项:"<<endl; cin>>menu; while(menu<1|menu>7) cout<<"请选择正确的菜单选项:"<<endl; cin.clear(); /*清除输入*/ cin>>menu; return menu; system("cls");2) 录入函数 AllPrint():输入ID到数量的宠物信息;/成员函数的实现void Pet:AddPet()/增加宠物输入文本中docout<<" *增加新的宠物* "<<endl;cout<<"输入宠物编号ID:"cin>>ID;cout<<endl;if(Inquire(ID)cout<<"输入宠物名:"cin>>petname;fflush(stdin);cout<<"体重:"cin>>weight;fflush(stdin);cout<<"年龄:"cin>>age;fflush(stdin);cout<<"类别:"cin>>category;fflush(stdin);cout<<"性格:"cin>>character;fflush(stdin);cout<<"价格:"cin>>price;fflush(stdin);cout<<"数量:"cin>>count;cout<<"ttIDt"<<ID<<endl<<"tt宠物名t"<<petname<<endl<<"tt体重t"<<weight<<endl<<"tt年龄t"<<age<<endl<<"tt类别t"<<category<<endl<<"tt性格t"<<character<<endl<<"tt宠物价格t"<<price<<endl<<"tt宠物数量t"<<count<<endl;fflush(stdin);character elsecout<<"输入的ID以存在,请重新输入!"<<endl;while(!(Inquire(ID);save();cout<<endl<<"*信息已保存 !*"<<endl;system("pause");system("cls");3)查询函数 search() :查询指定宠物的信息;void Pet:search()/查找宠物信息 ifstream inData("pet",ios:in); if(!inData) cout<<endl<<"对不起!文件找不到!"<<endl; system("pause"); return; string sign; cout<<endl<<"输入你想查找的宠物的编号或名称: " cin>>sign; bool flag=true; string str; while(inData>>ID>>petname) getline(inData, str); /*字符str用来接受除 与输入编号或影片名称相同之外的其他信息*/ if(ID=sign)|(petname=sign) cout<<endl<<"你要查找的宠物信息是: "<<endl<<endl; cout<<setiosflags(ios:left)<<setw(8)<<"ID"<<setw(8)<<"宠物名"<<setw(8)<<"体重"<<setw(8)<<"年龄"<<setw(8)<<"类别"<<setw(8)<<"性格"<<setw(8)<<"单价"<<setw(8)<<"数量"<<endl; cout<<setiosflags(ios:left)<<setw(8)<<ID<<petname<<str<<endl;/*输出所要查找的人的信息*/ 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("pause");return;string str,del;cout<<"请输入要删除的宠物ID或名字:"<<endl;cin>>str;bool flag=true;while(inData>>ID>>petname)getline(inData,del);if(ID=str|petname=str)cout<<setiosflags(ios:left)<<setw(8)<<"您所要删除的宠物:"<<endl;cout<<setiosflags(ios:left)<<setw(8)<<"ID"<<setw(8)<<"宠物名"<<setw(8)<<"体重"<<setw(8)<<"年龄"<<setw(8)<<"类别"<<setw(8)<<"性格"<<setw(8)<<"单价"<<setw(8)<<"数量"<<endl;cout<<setiosflags(ios:left)<<setw(8)<<ID<<petname<<del<<endl;flag=false;continue;outData<<setiosflags(ios:left)<<setw(8)<<ID<<petname<<del<<endl;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(inData,str) outData<<str<<endl;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;string alter;cout<<"请输入要修改的宠物ID或宠物名:"cin>>alter;bool flag=true;/*布尔型函数*/string str;while(inData>>ID>>petname)/*查找函数*/getline(inData,str);/*赋予信息给str*/string newID;if(alter=ID)|(alter=petname)docout<<"您所要修改的宠物:"<<endl;cout<<setiosflags(ios:left)<<setw(8)<<"ID"<<setw(8)<<"宠物名"<<setw(8)<<"体重"<<setw(8)<<"年龄"<<setw(8)<<"类别"<<setw(8)<<"性格"<<setw(8)<<"单价"<<setw(8)<<"数量"<<endl;cout<<setiosflags(ios:left)<<setw(8)<<ID<<petname<<str<<endl;cout<<"*请根据一下提示修改信息*"cout<<"输入新的宠物ID:"cin>>newID;cout<<endl;if(Inquire(newID)cout<<"输入新宠物名:"cin>>petname;fflush(stdin);cout<<"价格:"cin>>price;fflush(stdin);cout<<"体重:"cin>>weight;fflush(stdin);cout<<"年龄:"cin>>age;fflush(stdin);cout<<"性格:"cin>>character;fflush(stdin);cout<<"数量:"cin>>count;flag=false;elsecout<<"你输入的ID以存在,请重新输入!"<<endl;while(!Inquire(newID);ID=newID;save();continue;outData<<setiosflags(ios:left)<<setw(8)<<ID<<petname<<str<<endl;/*把信息读取到Pet1*/outData.close();inData.close();cout<<endl<<"*信息已保存 !*"<<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(inData,str)outData<<str<<endl;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<<"*所有宠物如下:*" cout<<endl<<endl; cout<<setiosflags(ios:left)<<setw(8)<<"ID"<<setw(8)<<"宠物名"<<setw(8)<<"体重"<<setw(8)<<"年龄"<<setw(8)<<"类别"<<setw(8)<<"性格"<<setw(8)<<"单价"<<setw(8)<<"数量"<<endl; cout<<all<<endl; flag=false;if(flag)cout <<endl <<"你的宠物库中没有宠物!"<<endl<<endl;elsecout <<endl <<"所有宠物已经全部显示出来!"<<endl <<endl;system("pause");system("cls");7)保存函数 save() :保存宠物信息;void Pet:save()ofstream outData("pet",ios:app);if(!outData) cout<<"对不起! 打不开此文件。"system("pause");return ;outData<<setiosflags(ios:left)<<setw(8)<<ID<<setw(8)<<petname<<setw(8)<<weight<<setw(8)<<age<<setw(8)<<category<<setw(8)<<character<<setw(8)<<price<<setw(8)<<count<<endl;outData.close();8)判断函数 Inquire(string a):判断用户是否已注册;bool Pet:Inquire(string s)/判断真假 ifstream inData("pet",ios:in); string newID; if(!inData) cout<<endl<<"对不起!文件找不到!"<<endl; system("pause"); return true; bool flag=true; string str; while(inData>>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<<"*宠物店账单系统*"<<endl;cout<<endl<<endl;cout<<endl<<endl; 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; cout<<"请选择所要应用的编号:" cin>>a;while (a<1|a>6)cout<<"请正确输入选择编号!"<<endl;cin.clear();cin>>a;return a;system("pause");system("cls");2) 录入函数 Addsale():增加;void SaleItem:Addsale()cout<<"请输入顾客姓名:"cin>>name;cout<<"请输入购买宠物种类:"cin>>petname;cout<<"请输入购买数量:"cin>>count;cout<<"请输入宠物单价:"cin>>price;cout<<"tt顾客姓名t"<<name<<endl<<"tt宠物种类t"<<petname<<endl<<"tt宠物单价t"<<price<<endl<<"tt购买数量t"<<count<<endl;save();cout<<endl<<"*信息已保存 !*"<<endl;system("pause");system("cls");3)删除函数 delesale():删除;void SaleItem:delesale() ofstream outData("saleItem1.txt",ios:out);ifstream inData("saleItem.txt",ios:in);if(!inData)cout<<"打不开文件!"<<endl;system("pause");return;string del;cout<<"输入你想删除的客户名:"<<endl;cin>>del;bool flag=true;string str; while(inData>>name>>petname>>count>>price) getline(inData,str); if(del=name)cout<<"您所要删除的账单:"<<endl; cout<<setiosflags(ios:left)<<setw(8)<<"客户姓名"<<setw(8)<<"宠物种类"<<setw(8)<<"购买数量"<<setw(8)<<"宠物单价"<<endl; cout<<setiosflags(ios:left)<<setw(8)<<name<<setw(8)<<petname<<setw(8)<<count<<setw(8)<<price<<endl;/*输出所要删除的人的信息*/flag=false;continue; outData<<setiosflags(ios:left)<<setw(8)<<name<<setw(8)<<petname<<setw(8)<<count<<setw(8)<<price<<endl; outData.close(); inData.close();if(flag)cout<<"没有您要删除的账单的信息!"<<endl;system("pause");elseofstream outData("saleItem.txt",ios:out);ifstream inData("saleItem1.txt",ios:in);if(!inData)cout<<"对不起打不开文件!"<<endl;system("pause");return;while(getline(inData,str)outData<<str<<endl; outData.close();inData.close();system("pause");system("cls");4)查询函数 search() :查找;void SaleItem:search()/查找宠物信息 ifstream inData("saleItem.txt",ios:in); if(!inData) cout<<endl<<"对不起!文件找不到!"<<endl; system("pause"); return; string sign; cout<<endl<<"输入你想查找的客户姓名: " cin>>sign; bool flag=true; string str; while(inData>>name) getline(inData, str); /*字符str用来接受除 与输入编号或影片名称相同之外的其他信息*/ if(name=sign) cout<<endl<<"你要查找客户信息是: "<<endl<<endl; cout<<setiosflags(ios:left)<<setw(8)<<"客户名"<<setw(8)<<"宠物名"<<setw(8)<<"价格"<<setw(8)<<"数量"<<endl; cout<<setiosflags(ios:left)<<setw(8)<<name<<str<<endl;/*输出所要查找的人的信息*/ flag=false; continue; if(flag)cout<<"没找到你的顾客!" system("pause"); system("cls");5)输出函数 AllPrint():输出显示;void SaleItem:AllPrint()/输出所有信息ifstream inData("saleItem.txt",ios:in);if(!inData)cout<<"对不起!打不开文件!"<<endl;system("pause");return ;bool flag=true; string all; while(inData>>name>>petname>>count>>price) if(flag) cout<<"*所有账单信息如下:*" cout<<endl<<endl; cout<<s