- 浏览: 461480 次
-
文章分类
最新评论
我的第一个小项目
#ifdef HOTEL_H #define HOTEL_H /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// int menu(); //菜单选项 void add_hotel(); //增加酒店 void add_list(); //增加定单 void sum_list(); //取消定单 void findcty(); //查找城市 /////////////////////////////////////////////////////////////////////////////// class Hotel { private: int No; //酒店编号 string name; //酒店名称 string cty; //所在城市 int total_room; //总房数 int proom; //普通房数 int proom_empty; //普通空房数 double proom_money; //普通房价 int hroom; //高级房数 int hroom_empty; //高级空房数 double hroom_money; //高级房价 public: Hotel(); //初始化对象属性 ~Hotel(); //析构函数 void input(); //输入酒店信息 int turn(bool a); //根据布尔值返回空房间数目 void Dingdan(int strct,int strnum); //来定单时,修改对象基本属性 void output(); //输出酒店信息 void unDingdan(int strct,int strnum); //取消单时,修改对象基本属性 string turnname(){return name;} //返回酒店名称 string turncty(){return cty;} //返回城市名字 int num(int number){No=number;} //生成编号 /////////////////////////////////////////////////////////////////////////////// friend ostream& operator << (ostream &out,Hotel &hot) { out <<hot.No<<" "<<hot.name<<" "<<hot.cty<<" "<<hot.total_room <<" "<<hot.proom<<" "<<hot.proom_empty<<" "<<hot.proom_money <<" "<<hot.hroom<<" "<<hot.hroom_empty<<" "<<hot.hroom_money <<endl; return out; } /////////////////////////////////////////////////////////////////////////////// friend istream& operator >> (istream &in,Hotel &hot) { in >> hot.No >> hot.name >> hot.cty >> hot.total_room >>hot.proom >> hot.proom_empty >> hot.proom_money >>hot.hroom >> hot.hroom_empty >> hot.hroom_money; return in; } }; /////////////////////////////////////////////////////////////////////////////// int loadfile(list<Hotel> &list_hot); void savefile(list<Hotel> &list_hot); /////////////////////////////////////////////////////////////////////////////// class Yuding { private: int No; //定单编号 int hotelNo; //酒店编号 bool strct; //房间类型 int strnum; //定房数目 string name; //订者姓名 string tel; //联系电话 string email; //email地址 public: Yuding(); //构造函数 ~Yuding(); //析构函数 void input(list<Hotel>&,int&); //定单输入 void output(); //定单输出 void num(int number){No=number;} //自动编号 int rehotelNo(){return hotelNo;} //返回酒店编号 int restrct(){return strct;} //返回酒店类型 int restrnum(){return strnum;} //返回预定房间数量 /////////////////////////////////////////////////////////////////////////////// friend ostream& operator << (ostream &out,Yuding &yuding) { out <<" "<<yuding.No<<" "<<yuding.hotelNo<<" "<<yuding.strct <<" "<<yuding.name<<" "<<yuding.tel<<" "<<yuding.email<<endl; return out; } ///////////////////////////////////////////////////////////////////////////// friend istream& operator >> (istream &in,Yuding &yuding) { in >>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name >>yuding.tel>>yuding.email; return in; } }; ///////////////////////////////////////////////////////////////////////////// inline int loadfile(list<Yuding> &list_hot); inline void savefile(list<Yuding> &list_hot); ///////////////////////////////////////////////////////////////////////////// class Yuding { private: int No; //定单编号 int hotelNo; //酒店编号 bool strct; //房间类型 int strnum; //定房数目 string name; //订者姓名 string tel; //联系电话 string email; //email地址 public: Yuding(); //构造函数 ~Yuding(); //析构函数 void input(list<Hotel> &hot,int &num) //定单输入 void output(); //定单输出 int num(int number){No=number;} //自动编号 int rehotelNo(){return hotelNo;} //返回酒店编号 int restrct(){return strct;} //返回酒店类型 int restrnum(){return strnum;} //返回预定房间数量 //////////////////////////////////////////////////////////////////////////// friend ostream& operator << (ostream &out,Yuding &yuding) { out <<" "<<yuding.No<<" "<<yuding.hotelNo<<" "<<yuding.strct<<" "<<yuding.name <<" "<<yuding.tel<<" "<<yuding.email<<endl; return out; } ///////////////////////////////////////////////////////////////////////////// friend istream& operator >> (istream &in,Yuding &yuding) { in >>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name >>yuding.tel>>yuding.email; return in; } }; ///////////////////////////////////////////////////////////////////////////// inline int loadfile(list<Yuding> &list_hot); inline void savefile(list<Yuding> &list_hot); #endif /////////////////////////////////////////////////////////////////////////////
#include <iostream> #include <string> #include <fstream> #include <iomanip> #include <list> using namespace std; ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// int menu(); //菜单选项 void add_hotel(); //增加酒店 void add_list(); //增加定单 void sum_list(); //取消定单 void findcty(); //查找城市 ////////////////////////////////////////////////////////////////////////// class Hotel { private: int No; //酒店编号 string name; //酒店名称 string cty; //所在城市 int total_room; //总房数 int proom; //普通房数 int proom_empty; //普通空房数 double proom_money; //普通房价 int hroom; //高级房数 int hroom_empty; //高级空房数 double hroom_money; //高级房价 public: Hotel(); //初始化对象属性 ~Hotel(); //析构函数 void input(); //输入酒店信息 int turn(bool a); //根据布尔值返回空房间数目 void Dingdan(int strct,int strnum); //来定单时,修改对象基本属性 void output(); //输出酒店信息 void unDingdan(int strct,int strnum); //取消单时,修改对象基本属性 string turnname(){return name;} //返回酒店名称 string turncty(){return cty;} //返回城市名字 int num(int number){No=number;} //生成编号 ///////////////////////////////////////////////////////////////////////// friend ostream& operator << (ostream &out,Hotel &hot) { out <<hot.No<<" "<<hot.name<<" "<<hot.cty<<" "<<hot.total_room <<" "<<hot.proom<<" "<<hot.proom_empty<<" "<<hot.proom_money <<" "<<hot.hroom<<" "<<hot.hroom_empty<<" "<<hot.hroom_money <<endl; return out; } ///////////////////////////////////////////////////////////////////////// friend istream& operator >> (istream &in,Hotel &hot) { in >> hot.No >> hot.name >> hot.cty >> hot.total_room >>hot.proom >> hot.proom_empty >> hot.proom_money >>hot.hroom >> hot.hroom_empty >> hot.hroom_money; return in; } }; /////////////////////////////////////////////////////////////////////////// int loadfile(list<Hotel> &list_hot); void savefile(list<Hotel> &list_hot); /////////////////////////////////////////////////////////////////////////// class Yuding { private: int No; //定单编号 int hotelNo; //酒店编号 bool strct; //房间类型 int strnum; //定房数目 string name; //订者姓名 string tel; //联系电话 string email; //email地址 public: Yuding(); //构造函数 ~Yuding(); //析构函数 void input(list<Hotel>&,int&); //定单输入 void output(); //定单输出 void num(int number){No=number;} //自动编号 int rehotelNo(){return hotelNo;} //返回酒店编号 int restrct(){return strct;} //返回酒店类型 int restrnum(){return strnum;} //返回预定房间数量 //////////////////////////////////////////////////////////////////////////// friend ostream& operator << (ostream &out,Yuding &yuding) { out <<" "<<yuding.No<<" "<<yuding.hotelNo<<" "<<yuding.strct <<" "<<yuding.name<<" "<<yuding.tel<<" "<<yuding.email<<endl; return out; } ///////////////////////////////////////////////////////////////////////////// friend istream& operator >> (istream &in,Yuding &yuding) { in >>yuding.No>>yuding.hotelNo>>yuding.strct>>yuding.name >>yuding.tel>>yuding.email; return in; } }; ///////////////////////////////////////////////////////////////////////////// inline int loadfile(list<Yuding> &list_hot); inline void savefile(list<Yuding> &list_hot); ////////////////////////////菜单选项////////////////////////////////////////////// /////PUTONG/// int menu() { const int b=85; int a; bool c=0; while(!c) { cout <<"/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n" << setfill(' ') << setw(100) << "欢迎使用星光酒店管理系统/n/n" << setfill(' ') << setw(86) << "请按Enter继续/n" << "/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n" <<endl; cin.get(); cout <<"/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n" <<setfill(' ') << setw(b) <<"1、添加酒店资料"<<endl<<endl; cout <<setfill(' ') << setw(b) <<"2、增 加 订 单 "<<endl<<endl; cout <<setfill(' ') << setw(b) <<"3、取 消 订 单 "<<endl<<endl; cout <<setfill(' ') << setw(b) <<"4、查寻城市酒店"<<endl<<endl; cout <<setfill(' ') << setw(b) <<"5、退出星光系统"<<endl<<endl<<endl<<endl; cout <<setfill(' ') << setw(b+1) <<"请输入数字选择/n"<<endl; cout << "/n/n/n/n/n/n/n/n/n/n/n/n/n/n"<<endl; cin>>a; if ((a<1)||(a>5)) { c=0; } else { c=1; } } return a; } ///////////////////////////增加酒店//////////////////////////////////////////////// void add_hotel() { list<Hotel> hot; loadfile(hot); for(list<Hotel>::iterator vec_hot=hot.begin();vec_hot!=hot.end();vec_hot++) { cout<<*vec_hot; } bool a=1; Hotel input; while(a) { input.input(); hot.push_back(input); bool b=1; string x; while(b) { cout <<"是否继续输入?(Y/N)ENTER"; cin>>x; if(x=="y"||x=="Y") { a=1; b=0; } else if(x=="n"||x=="N") { a=0; b=0; } else { b=1; cout <<"您输入的不正确请重新输入"<<endl; } } } savefile(hot); } //////////////////////////////增加定单///////////////////////////////////////// void add_list() { int num1,num2; list<Hotel> hot; list<Yuding> Yud; num2=loadfile(Yud); num1=loadfile(hot); if (num1<1) { cout <<"没有酒店信息,请录入后再使用预定系统"<<endl; exit(0); } for(list<Yuding>::iterator li_Yud=Yud.begin();li_Yud!=Yud.end();li_Yud++) { cout<<*li_Yud; } bool a=1; Yuding input; while(a) { input.input(hot,num1); Yud.push_back(input); bool b=1; char x; while(b) { cout <<"是否继续输入?(Y/N)ENTER确认:"; cin>>x; if(x==*"y"||x==*"Y") { a=1; b=0; } else if(x==*"n"||x==*"N") { a=0; b=0; } else { b=1; cout <<"您输入的不正确请重新输入"<<endl; } } } savefile(Yud); savefile(hot); } //////////////////////////////取消定单///////////////////////////////////////// void sum_list() { int num1,num2; list<Hotel> hot; list<Yuding> Yud; num2=loadfile(Yud); num1=loadfile(hot); if (num2<1) { cout <<"没有预定信息,请录入后再使用取消预定系统"<<endl; exit(0); } int abdc=0; bool b=1; while(b) { for(list<Yuding>::iterator li_Yud=Yud.begin();li_Yud!=Yud.end();li_Yud++) { li_Yud->output(); abdc++; if (abdc%20==0) { cout<<"按任意键继续"; cin.get(); } } cout <<"请输入取消定单的编号"<<endl; int number; cin >>number; if (number>num2) { cout<<"你输入的定单编号不存在请重新输入:"<<endl; b=1; break; } list<Yuding>::iterator li_Yud=Yud.begin(); Yuding temp; for (int i=1;i<number;i++) { li_Yud++; } temp=*li_Yud; list<Hotel>::iterator li_hot=hot.begin(); for(int i=1;i<temp.rehotelNo();i++) { li_hot++; } li_hot->unDingdan(temp.restrct(),temp.restrnum()); if (li_Yud!=Yud.end()) { Yud.erase(li_Yud); } else { Yud.pop_back(); } cout <<"是否继续?(y/n)"<<endl; string a; cin>>a; if (a=="y"||a=="Y") { b=1; } else { b=0; } savefile(hot); savefile(Yud); } } ///////////////////////////查找城市//////////////////////////////////////////// void findcty() { int num=0; list<Hotel> hot; loadfile(hot); savefile(hot); for(list<Hotel>::iterator vec_hot=hot.begin();vec_hot!=hot.end();vec_hot++) { cout<<*vec_hot; } bool a=1; string b; while(a) { cout <<"请输入想要查找的城市"<<endl; cin >> b; for(list<Hotel>::iterator li_hot=hot.begin();li_hot!=hot.end();li_hot++) { string c=li_hot->turncty(); if(b==c) { li_hot->output(); num++; } } if (num==0) { cout <<"没有找到你输入的城市/n"<<endl; } else { cout<<"一共找到"<<num<<"个酒店!"<<endl; } cout <<"是否继续查找?(y/n)/n"; cin>> b; if (b=="y"||b=="Y") { a=1; } else { a=0; } } } /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////读取文件//////////////////////////////////////// inline int loadfile(list<Hotel> &list_hot) { ifstream infile("hot.dat"); int num=1; if (!infile) { cout <<"第一次运行程序吗?如果不是您的数据文件可能丢失!"<<endl; } else { Hotel temp; while (infile >> temp) { temp.num(num); list_hot.push_back(temp); num++; } infile.close(); infile.clear(); } return num-1; } ///////////////////////////////读取文件/////////////////////////////////////// inline int loadfile(list<Yuding> &list_hot) { ifstream infile("yud.dat"); int num=1; if (!infile) { cout <<"第一次运行程序吗?如果不是您的数据文件可能丢失!"<<endl; } else { Yuding temp; while (infile >> temp) { temp.num(num); list_hot.push_back(temp); num++; } infile.close(); infile.clear(); } return num-1; } /////////////////////////////写入文件///////////////////////////////////////// inline void savefile(list<Hotel> &list_hot) { ofstream outfile("hot.dat"); for(list<Hotel>::iterator li_hot=list_hot.begin();li_hot!=list_hot.end();li_hot++) { outfile<<*li_hot; } outfile.close(); outfile.clear(); } /////////////////////////////写入文件/////////////////////////////////////////// inline void savefile(list<Yuding> &list_hot) { ofstream outfile("yud.dat"); for(list<Yuding>::iterator li_hot=list_hot.begin();li_hot!=list_hot.end();li_hot++) { outfile<<*li_hot; } outfile.close(); outfile.clear(); } /////////////////////////////构造函数/////////////////////////////////////////// //CLASSHOTEL///// Hotel::Hotel() //初始化对象属性 { No=0; name="NONE"; cty="NONE"; total_room=0; proom=0; proom_empty=0; proom_money=0.00; hroom=0; hroom_empty=0; hroom_money=0.00; } //////////////////////////////////析构函数///////////////////////////////////// Hotel::~Hotel(){} /////////////////////////////////输入酒店信息////////////////////////////////// void Hotel::input() { bool b=1; while(b) { cout<<"/n请输入酒店名称:"; cin >> name; cout<<"/n请输入所在城市:"; cin>> cty; cout<<"/n请输入总房间数:"; cin>>total_room; cout<<"/n请输入普通房间数:"; cin>>proom; cout<<"/n请输入普通空房数:"; cin>>proom_empty; cout<<"/n请输入普通标准房价格:"; cin>>proom_money; cout<<"/n请输入豪华房间数:"; cin>>hroom; cout<<"/n请输入空豪华房间数:"; cin>>hroom_empty; cout<<"请输入豪华房价格:"; cin>>hroom_money; if (proom>total_room ||hroom>total_room ||proom+hroom>total_room ||proom_empty>proom ||hroom_empty>hroom ||proom_money>hroom_money) { cout <<"您的输入有误,请重新输入!"<<endl; b=1; } else { b=0; } } } //////////////////////////////////返回房间数/////////////////////////////////// int Hotel::turn(bool a) { if (a) { return proom_empty; } else { return hroom_empty; } } ////////////////////////////来定单时,修改对象基本属性///////////////////////// void Hotel::Dingdan(int strct,int strnum) { cout <<"进入"<<strct<<strnum<<endl; if (strct) { proom_empty-=strnum; } else { hroom_empty-=strnum; } cout <<"修改成功!"<<endl; } ////////////////////////////////输出酒店信息/////////////////////////////////// void Hotel::output() { cout<<No<<"| "<<name<<"| "<<cty<<"| "<< total_room<<"| "<<proom <<"| "<<proom_empty<<"| "<<proom_money<<"| "<<hroom <<"| "<<hroom_empty<<"| "<<hroom_money<<endl; } //////////////////////////取消单时,修改对象基本属性/////////////////////////// void Hotel::unDingdan(int strct,int strnum) { if (strct) { proom_empty+=strnum; } else { hroom_empty+=strnum; } cout <<"修改成功!"<<endl; } //////////////////////////////构造函数///////////////////////////////////////// ////CLASSYUDING// Yuding::Yuding() { No=0; hotelNo=0; strct=0; name="NONE"; tel="NOnumber"; email="NOemail"; } /////////////////////////////////析构函数/////////////////////////////////////// Yuding::~Yuding(){} /////////////////////////////////定单输入/////////////////////////////////////// void Yuding::input(list<Hotel> &hot,int &num) { cout <<"本系统现在共有"<<num<<"家酒店信息"<<endl; bool b=1; while(b) { cout<<"/n清输入酒店编号:/n"; cin>> hotelNo; if (hotelNo>num) { cout <<"您输入的酒店编号不存在,请重新输入!"<<endl; b=1; break; } list<Hotel>::iterator map=hot.begin(); for(int i=1;i<hotelNo;i++) { map++; } int cls=map->turn(strct); string hotname=map->turnname(); cout<<"欢迎光临您预定"<<hotname <<"酒店客房!你如果需要高级房客请按Y,如果需要普通客房请按N.(y/n)/n"; string strct1 ; cin >> strct1; if (strct1=="y"||strct1=="Y") { strct=false; } else if(strct1=="n"||strct1=="N") { strct=true; } else { cout <<"你输入有误请重新输入:"<<endl; break; } cout<<"本店"<<(strct>0)?"空普通客房还有":"空豪华客房还有") <<cls<<"间请输入定房数目:/n"; cin>>strnum; if(strnum>cls) { cout <<"哦,你输入的房间数大于此酒店的空房数,请重新输入:/n"; b=1; break; } cout<<"请输入预订者姓名:/n"; cin >> name; cout<<"请输入预订者电话:/n"; cin>>tel; cout<<"请输入预订者email:/n"; cin>>email; map->Dingdan(strct,strnum); b=0; } } ////////////////////////////////定单输出/////////////////////////////////////// void Yuding::output() { cout <<endl<<" | "<<No<<" | "<<hotelNo <<" | "<<strct<<" | " << strnum <<" | "<<name<<" | "<<tel<<" | " <<email<<" | "<<endl; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int main() { int a; do { a=menu(); switch(a) { case 1: add_hotel(); break; case 2: add_list(); break; case 3: sum_list(); break; case 4: findcty(); break; case 5: a=0; break; } }while(a); return 0; }
<hot.no></hot.no><hot.name></hot.name><hot.cty></hot.cty><hot.total_room></hot.total_room><hot.proom></hot.proom><hot.proom_empty></hot.proom_empty><hot.proom_money></hot.proom_money><hot.hroom></hot.hroom><hot.hroom_empty></hot.hroom_empty><hot.hroom_money></hot.hroom_money>
相关推荐
【描述】:“第一个项目Demo第一个项目Demo第一个项目Demo第一个项目Demo” 描述部分重复了标题,进一步强调了这是一个入门级别的项目,可能是为了帮助初学者理解项目开发流程,或者是用来演示某个特定技术或框架...
【小程序第一个项目——安心食疗】是一个初学者入门级别的编程实践,主要针对微信小程序的开发。这个项目旨在创建一个健康食疗的小程序应用,提供给用户关于食品营养、食疗方案以及健康饮食的相关信息。通过这个项目...
这8个小项目涵盖了Python基础知识的多个方面,旨在帮助学习者巩固函数使用,深化概念理解,并通过实践提高编程技能。下面将逐一介绍这些项目及其涉及的知识点: 1. **lect08_模拟掷骰子** 在这个项目中,我们将...
一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一期项目网站第一名一...
空中服务员的人生第一个小项目
ssh 项目 创建 教程 手把手教你实现第一个SSH项目
学习HTML是前端开发的第一步,能够帮助你理解网页的基本组成。 CSS(Cascading Style Sheets)则用于控制网页的样式和布局,包括颜色、字体、间距、排列方式等。通过CSS,开发者可以将内容和表现分离,使得网页设计...
首先,我们来看第一个项目——微信商城小程序。这个项目涵盖了电商应用的基础功能,如商品展示、购物车、订单管理等。初学者可以通过此项目学习如何使用微信小程序的`wxml`和`wxss`来构建页面结构和样式,以及如何...
这是我做的第一个项目.这是我学习后做的第一个项目
"S1"可能代表"单元一","MiniTXT"可能意味着这是一个小型的文本文件,包含了关于第一单元项目的基本信息或解决方案。 在Java学习的初期,重点通常是: 1. **基本语法**:包括变量声明、数据类型(如整型、浮点型、...
参考我和labview一书,很简单的一个小项目,有很低的参考价值
总的来说,"NIIT博睿第一模块项目制作——小游戏测试"是一个综合性的学习体验,它涵盖了软件工程的多个方面,如编程、项目管理、用户交互设计等。通过这个项目,学员不仅能够提升技术能力,还能培养解决问题和团队...
每个小项目都配有源码和笔记,可以让你边做边学,深入理解JSP编程的各个环节。通过实践这些项目,不仅可以提升你的编程技能,还能帮助你在实际工作中更好地应对各种Web开发需求。同时,理解并应用MVC模式将对你的...
刚开始做开发,已经学习了一个月,这是自己做的第一个项目,Java+mysql+GUI,数据库和代码都在压缩包中,做的简陋,但是比较适合新手吧
禅道是第一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以...
【描述】"这是一个小项目集合,源码比较清晰。可以下载下拉试一下,很好玩的" 描述中提到的“小项目集合”暗示了这是一个包含多个小型应用程序的资源库,这些程序可能是为了教学目的或者是个人兴趣而创建的。"源码...
3. **微信小程序**:微信小程序是腾讯公司推出的一种新的开放能力,开发者可以快速地开发一个小程序。它的运行环境基于微信自身,具备离线缓存、消息推送、地图、支付等功能。小程序的开发包括WXML、WXSS(微信样式...
从文件名“stusys_1”来看,这个项目可能是一个学生管理系统的第一部分。可能包含学生信息管理、课程管理、成绩管理等模块。在这样的系统中,你可以学习到如何使用SSH框架实现用户登录验证、数据展示、表单提交等...
1. **基础语法**:学习C#的第一步是掌握它的基本语法,包括变量声明、数据类型、运算符、流程控制语句(如if、for、while、switch)等。这些基础将在后续的项目实践中起到关键作用。 2. **类与对象**:C#是一种面向...
【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中...