宠物商店管理系统

一、问题描述
设计一个程序实现对小动物商店的简单管理,主要功能:宠物基本信息(编号,名称,体重, 年龄,类别,价格,性格等)的输入、显示、查询等功能;宠物的交易、状态及顾客(宠物主人)的记录查询和修改。
二、基本要求
(1)使用面向对象思想开发需要的类,比如:宠物类包含宠物的基本属性信息和基本操作,日期类记录交易日期,顾客类记录顾客的信息;管理类,实现对宠物情况的操作;输入和输出的操作要求对输出运算符“>>”和输出运算符“<<”进行重载
(2)输入和输出可以使用文本文件重定向输入(保存数据为磁盘文件);也可以使用标准输入输出进行(提交时需要提交TXT格式输入数据)。程序运行时进行初始化数据,使用vector数组存放。交易数据记录交易的日期、宠物名称、宠物类别、顾客姓名、交易金额等,有6条以上记录。
(3)运行后使用菜单功能显示所有宠物信息,根据类别显示记录,根据名称查询记录,添加( 购入) 宠物,删除(卖出)宠物,交易记录,按日期查询交易记录。

系统流程图

源代码
#include<iostream>
#include<cstring>
#include<vector>
#include<fstream>
#include"list"
using namespace std;
class Data// 日期类
{
public:void set_time( );     void show_time( );
private:   bool is_time(int, int, int);  int year;  int month;  int day;
};
void Data::set_time( )
{  char c1,c2;  cout<<"请输入日期(格式年-月-日)"<<endl;  while(1)  {   cin>>year>>c1>>month>>c2>>day;  if(c1!='-'||c2!='-')  cout<<"格式不正确,请重新输入"<<endl;   else   break;  }
}
void Data::show_time( )
{   cout<<year<<"-"<<month<<"-"<<day<<endl;
}
class Pet
{public:PetAnimals(){}PetAnimals( string Number, string Name, string Age, string Weight, string Type,string Nature, string Price, string People )
{Cnumber=Number;//宠物编号:00,01,02 ...Cname=Name;//宠物名称:贝贝 Cage=Age;//宠物年龄:20,14Cweight=Weight;//宠物重量(斤):20,45 Ctype=Type;//宠物种类:cat or dog... Cnature=Nature;//宠物性格:clver,ferocious...Cprice=Price;//宠物价格:20...Cpeople=People;//宠物主人:小明… } string Cnumber;string Cname;string Cage;string Cweight;string Ctype;string Cnature;string Cprice;string Cpeople;};
class guest
{public:string Cnumber;string Cname;string Cage;string Cweight;string Ctype;string Cnature;string Cprice;string Cpeople;
};
class PetAnimals:public Pet
{public:void Insert();//添加宠物信息bool Look();//查找宠物信息bool Change();//修改宠物信息void Show();//显示或浏览所有宠物信息bool Delete();//删除宠物信息void Read();//读取宠物信息文件void Write();//写出宠物信息文件
};
list<PetAnimals>PetList;//使用双向链表
//添加宠物信息
void PetAnimals::Insert()
{PetAnimals Pet;char ch;int symbol=0;//判断宠物信息是否存在list<PetAnimals>::iterator first,last;first=PetList.begin();//begin()指链表开始处last=PetList.end();//end()指链表结尾处
do{cout<<"【请输入宠物相关信息!】"<<endl;cout<<"编号:";cin>>Pet.Cnumber;cout<<"名称:";cin>>Pet.Cname;cout<<"年龄:";cin>>Pet.Cage;cout<<"重量:";cin>>Pet.Cweight;cout<<"种类:";cin>>Pet.Ctype;cout<<"性格:";cin>>Pet.Cnature;cout<<"价格:";cin>>Pet.Cprice;cout<<"主人:";cin>>Pet.Cpeople;for( ; first != last ; ++first ){if((Pet.Cname==(*first).Cname)&&(Pet.Cprice==(*first).Cprice)&&(Pet.Ctype==(*first).Ctype))//假设宠物可以重名{symbol=1;// 如果存在此宠物 cout<<endl<<"★该宠物已经存在!"<<endl;cout<<"编号:"<<(*first).Cnumber<<endl;cout<<"名称:"<<(*first).Cname<<endl;cout<<"年龄:"<<(*first).Cage<<endl;cout<<"重量:"<<(*first).Cweight<<endl;cout<<"种类:"<<(*first).Ctype<<endl;cout<<"性格:"<<(*first).Cnature<<endl;cout<<"价格:"<<(*first).Cprice<<endl;cout<<"主人:"<<(*first).Cpeople;              }}if(symbol==0)//如果不存在此宠物 {PetList.insert(PetList.end(),Pet);}cout<<endl<<"★继续添加宠物信息[Y或N]?";cin>>ch;}
while(ch=='Y'||ch=='y');}//查找宠物信息
bool PetAnimals::Look()
{string name,price,type;int symbol=0;int option;list <PetAnimals>::iterator first,last;do{cout<<"\t【请输入你查找的方式】!"<<endl;cout<<"\t1.按名称查找"<<endl;cout<<"\t2.按价格查找"<<endl;cout<<"\t3.按种类查找"<<endl;cout<<"\t4.退出!"<<endl;cin>>option;switch(option){case 1: cout<<"请输入名称:";cin>>name;break;case 2: cout<<"请输入价格:";cin>>price;break;case 3: cout<<"请输入种类:";cin>>type;break;case 4:break;}first=PetList.begin();last=PetList.end();for(;first!=last;++first){if((name==(*first).Cname)&&(option==1)){symbol=1;cout<<"★宠物名称为"+(*first).Cname+"宠物信息如下:"<<endl;cout<<"编号:"+(*first).Cnumber<<endl;cout<<"名称:"+(*first).Cname<<endl;cout<<"年龄:"+(*first).Cage<<endl;cout<<"重量:"+(*first).Cweight<<endl;cout<<"种类:"+(*first).Ctype<<endl;cout<<"性格:"+(*first).Cnature<<endl;cout<<"价格:"+(*first).Cprice<<endl;cout<<"主人:"+(*first).Cpeople<<endl;}if((price==(*first).Cprice)&&(option==2)){symbol=1;cout<<"★宠物价格为"+(*first).Cprice+"宠物信息如下:"<<endl;cout<<"编号:"+(*first).Cnumber<<endl;cout<<"名称:"+(*first).Cname<<endl;cout<<"年龄:"+(*first).Cage<<endl;cout<<"重量:"+(*first).Cweight<<endl;cout<<"种类:"+(*first).Ctype<<endl;cout<<"性格:"+(*first).Cnature<<endl;cout<<"价格:"+(*first).Cprice<<endl;cout<<"主人:"+(*first).Cpeople<<endl;}if((type==(*first).Ctype)&&(option==3)){symbol=1;cout<<"★宠物种类为"+(*first).Ctype+"宠物信息如下:"<<endl;cout<<"编号:"+(*first).Cnumber<<endl;cout<<"名称:"+(*first).Cname<<endl;cout<<"年龄:"+(*first).Cage<<endl;cout<<"重量:"+(*first).Cweight<<endl;cout<<"种类:"+(*first).Ctype<<endl;cout<<"性格:"+(*first).Cnature<<endl;cout<<"价格:"+(*first).Cprice<<endl;cout<<"主人:"+(*first).Cpeople<<endl;}}}
while(option!=4);
if((first==last)&&(symbol==0)){cout<<"★没有该宠物信息!";return false;}else return true;}//修改宠物资料
bool PetAnimals::Change()
{PetAnimals pet;string name,price,type;int symbol=0;cout<<"请输入名称:";cin>>name;cout<<"请输入价格:";cin>>price;cout<<"请输入种类:";cin>>type;list <PetAnimals>::iterator first,last;first=PetList.begin();last=PetList.end();for(;first!=last;++first){if((name==(*first).Cname)&&(price==(*first).Cprice)&&(type==(*first).Ctype)){symbol=1;cout<<endl<<"★该宠物信息找到,其修改前的宠物信息为:"<<endl;cout<<"编号:"+(*first).Cnumber<<endl;cout<<"名称:"+(*first).Cname<<endl;cout<<"年龄:"+(*first).Cage<<endl;cout<<"重量:"+(*first).Cweight<<endl;cout<<"种类:"+(*first).Ctype<<endl;cout<<"性格:"+(*first).Cnature<<endl;cout<<"价格:"+(*first).Cprice<<endl;cout<<"主人:"+(*first).Cpeople<<endl;break;}}if(symbol){cout<<endl<<"★修改后的宠物信息为:"<<endl;cout<<"年龄:";cin>>pet.Cage;cout<<"重量:";cin>>pet.Cweight;cout<<"性格:";cin>>pet.Cnature;cout<<"主人:";cin>>pet.Cpeople;pet.Cname=name;pet.Cprice=price;pet.Ctype=type;for(;first!=last;++first){if((name==(*first).Cname)&&(price==(*first).Cprice)&&(type==(*first).Ctype)){(*first)=pet;}}return true;}else{cout<<"★没有该宠物信息!";return false;}
}//显示所有宠物信息
void PetAnimals::Show()
{list <PetAnimals>::iterator first,last,it;first=PetList.begin();last=PetList.end();for(;first!=last;++first){cout<<"******************您的宠物信息**********************"<<endl;cout<<"编号:"<<(*first).Cnumber<<endl;cout<<"名称:"<<(*first).Cname<<endl;cout<<"年龄:"<<(*first).Cage<<endl;cout<<"重量:"<<(*first).Cweight<<endl;cout<<"种类:"<<(*first).Ctype<<endl;cout<<"性格:"<<(*first).Cnature<<endl;cout<<"价格:"<<(*first).Cprice<<endl;cout<<"主人:"<<(*first).Cpeople<<endl;cout<<"****************************************"<<endl; }
}//删除宠物信息
bool PetAnimals::Delete()
{string name,price,type;int symbol=0;cout<<"请输入名称:";cin>>name;cout<<"请输入价格:";cin>>price;cout<<"请输入种类:";cin>>type;list <PetAnimals>::iterator first,last,it;first=PetList.begin();last=PetList.end();for(;first!=last;++first){if((name==(*first).Cname)&&(price==(*first).Cprice)&&(type==(*first).Ctype)){symbol=1;cout<<"★找到该宠物信息!可删除!"<<endl;it=first;PetList.erase(first);}}if((first==last)&&(symbol==0)){cout<<"★没有该宠物信息!";return false;}else {PetList.erase(it); return true;}
}//保存宠物信息
void PetAnimals::Write()
{char file[256];string FileName;cout<<"★请输入文件名:(可以加扩展名!如.txt)";//若输入完整路径则在你输入的路径下读取文件,否则到程序所在位置的文件夹中读取cin>>FileName;if(FileName.find (".")>FileName.length()){FileName=FileName+".txt";} //把String型的字符串转换成char*型的字符串strcpy(file,FileName.c_str());ofstream fout(file);if(!fout){cout<<"★文件写入失败!请检查您的文件名!"<<endl;return;}else{list <PetAnimals>::iterator first,last;first=PetList.begin();last=PetList.end();for(;first!=last;++first){fout<<endl<<"编号:"<<(*first).Cnumber<<endl<<"名称:"<<(*first).Cname<<endl<<"年龄:"<<(*first).Cage<<endl<<"重量:"<<(*first).Cweight<<endl<<"种类:"<<(*first).Ctype<<endl<<"性格:"<<(*first).Cnature<<endl<<"价格:"<<(*first).Cprice<<endl<<"主人:"<<(*first).Cpeople<<endl;} cout<<"★文件保存成功!"<<endl;}fout.close ();//关闭打开的文件
}//读取宠物信息
void PetAnimals::Read()
{char file[256];string FileName;cout<<"★请输入文件名:(可以加扩展名!如.txt)";cin>>FileName;if(FileName.find (".")>FileName.length()){FileName=FileName+".txt";}strcpy(file,FileName.c_str());ifstream fin(file);int index;if(!fin){cout<<"★文件写入失败!请检查您的文件名!"<<endl;return ;}else{PetList.clear ();while(!fin.eof())//判断是否处于结尾 {PetAnimals pet;string str;fin>>str;index=str.find(":");//要":"后的内容 pet.Cnumber =str.substr(index+1);//要":"后的剩下字符串 fin>>str;index=str.find (":");pet.Cname =str.substr(index+1);fin>>str;index=str.find (":");pet.Cage =str.substr(index+1);fin>>str;index=str.find (":");pet.Cweight =str.substr(index+1);fin>>str;index=str.find (":");pet.Ctype =str.substr(index+1);fin>>str;index=str.find (":");pet.Cnature=str.substr(index+1);fin>>str;index=str.find (":");pet.Cprice=str.substr(index+1);fin>>str;index=str.find (":");pet.Cpeople =str.substr(index+1);            PetList.insert(PetList.end(),pet);}cout<<"\n"<<"   ★请保护好您的爱宠哦(^。^*)!★ "<<endl;cout<<"   ★文件读取成功!             ★"<<endl;}fin.close();
}
int main()
{PetAnimals pet;int option;
do{cout<<endl<<"★★★【欢迎进入宠物商店管理系统! 请选择菜单:】★★★"<<endl;cout<<" \t┌-------------------------┐"<<endl; cout<<" \t┊ 1.添加宠物的信息        ┊"<<endl; cout<<" \t┊ 2.查找宠物的信息        ┊"<<endl;cout<<" \t┊ 3.修改宠物的信息        ┊"<<endl;cout<<" \t┊ 4.显示(浏览)宠物的信息┊"<<endl;cout<<" \t┊ 5.删除宠物的信息        ┊"<<endl;cout<<" \t┊ 6.保存文件              ┊"<<endl;cout<<" \t┊ 7.读取文件              ┊"<<endl;cout<<" \t┊ 8.退出系统                  ┊"<<endl;cout<<" \t└-------------------------┘\n"<<endl;cin>>option;switch(option)//选择不同函数功能 {case 1: { pet.Insert(); break; }case 2: { pet.Look(); break; }case 3: { pet.Change(); break; }case 4: { pet.Show(); break; }case 5: { pet.Delete(); break; }case 6: { pet.Write(); break; }case 7: { pet.Read(); break; }case 8: { break ; }}}while(option != 8);return 0;
}

宠物商店信息管理系统(C++)相关推荐

  1. MFC宠物商店信息管理系统

    MFC宠物商店信息管理系统 题目34:宠物商店信息管理系统设计 1.开发平台: Microsoft Visual C++ 6.0 /Microsoft Visual Studio 2010-2019 ...

  2. 宠物商店信息管理系统

    本系统主要基于Struts2+spring+hibernate+tomcat8.5+mysql+myeclipse开发环境 开发了一个宠物销售管理系统. 随着科学技术的发展,Internet的流行,人 ...

  3. 计算机毕业设计ssm宠物商店信息展示与服务订购系统7q5ic系统+程序+源码+lw+远程部署

    计算机毕业设计ssm宠物商店信息展示与服务订购系统7q5ic系统+程序+源码+lw+远程部署 计算机毕业设计ssm宠物商店信息展示与服务订购系统7q5ic系统+程序+源码+lw+远程部署 本源码技术栈 ...

  4. c++商店信息管理系统的设计与实现

    一.需求分析 问题分析: 随着商务规模的不断扩大,商品个数和种类快速增长,超市管理者需要花费大量的时间才能获取商品基本信息,工作非常繁琐且麻烦. 项目目标: 商品信息管理系统旨在为管理员提供更方便的管 ...

  5. java基于SSM的宠物医院信息管理系统-计算机毕业设计

    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确.快速. ...

  6. 计算机毕业设计ssm宠物领养信息管理系统5gcp7系统+程序+源码+lw+远程部署

    计算机毕业设计ssm宠物领养信息管理系统5gcp7系统+程序+源码+lw+远程部署 计算机毕业设计ssm宠物领养信息管理系统5gcp7系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S ...

  7. 基于javaweb+jsp的宠物领养信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

    基于javaweb+jsp的宠物领养信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) JavaWeb JavaBean JSP M ...

  8. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宠物商店信息展示与服务订购系统7q5ic

    面对老师五花八门的设计要求,首先自己要明确好自己的题目方向,并且与老师多多沟通,用什么编程语言,使用到什么数据库,确定好了,在开始着手毕业设计. 1:选择课题的第一选择就是尽量选择指导老师擅长的课题, ...

  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宠物领养信息管理系统5gcp7

    好的选题直接决定了毕业设计好坏,甚至决定了能否毕业.今天,我们就来聊一聊毕设该怎么选题. 这里分三个选题标准. 第一,参考所在学校往年选题类型和难度 可以向学长学姐了解往年的选题类型,以及使用的技术, ...

  10. jsp 爱心宠物诊所源码_jsp宠物医院信息管理系统

    [实例简介] 在线宠物医院系统,是一款以宠物医院的信息为主的网站系统. [实例截图] [核心代码] #_jsp_066_sqlserver_宠物医院_ └── #_jsp_066_sqlserver_ ...

最新文章

  1. mysql 备库 hang住_mysql主键的缺少导致备库hang住
  2. 利用xsl和xml转html没有内容_P系列2代码页转pdf后篇
  3. getElementById 和 getElementByName的区别
  4. 华大 MCU 之一 HC32F460 替换 STM32F411 移植记录
  5. 北美KubeCon新风,正把K8S魔力带向边缘计算
  6. limux下分屏tmux的使用
  7. 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
  8. 使用 ADO 向数据库中存储一张图片
  9. mysql unsigend_创建表 查询数据
  10. Android N-ify使用教程,Xposed新模块 无需升级也能使用Android N新功能
  11. 华泰证券 python 自动交易软件_机智股票自动交易软件
  12. Python数据分析与机器学习27-拼写纠正实例
  13. xpath prase string
  14. win10中Charles从下载安装到证书设置和雷电模拟器或浏览器中抓包测试
  15. VS Code PHP代码提示和格式化插件 IntelliSense安装使用
  16. 亲测绝对有用,,电脑不显示可连接WiFi列表,无法连接WiFi的解决办法。
  17. 当游戏直播遇上网课教育:虎牙、斗鱼的跨界梦圆的了吗?
  18. 软件工程 chap-5 需求分析方法
  19. 微信商城商家该如何运营
  20. OJ的介绍以及使用方法

热门文章

  1. scala reduce和Fold
  2. 安卓强刷linux,安卓系统使用dd命令强制刷入以强制升降级、刷入低底包
  3. 深度学习笔记(19) 多任务学习
  4. 知识星球问答精选(附五一赠书活动)
  5. PCL点云去中心化demean
  6. 阻抗测试仪软件,特性阻抗测试仪 阻抗测试仪 Tektronix 泰克 TDR DSA8300
  7. PTA 新浪微博热门话题 详细题解 附额外样例
  8. (每日一练python)新浪微博热门话题
  9. 妈妈见我来了的香港旅游局
  10. 听课记录高中计算机,高中语文听课记录