这是一个用c++编写的一个课程设计的代码:酒店管理系统
大概实现了一下操作:对订单进行增删查改,对订单文件保存,对订单数据保存进入ordering.dat,对订单文件的销毁。
如有不足,请指正~~
#include<iostream> #include<string> #include<cstring> #include<vector> using namespace std; class Ordering { public: Ordering(); Ordering(string , string , string , string , string); virtual ~Ordering(); string GetId() { return id; } string GetName() { return name; } friend ostream& operator<<(ostream& , const Ordering& ); friend istream& operator>>(istream& , Ordering& ); private: string name;//姓名 string tel;//电话号码 string time;//订餐时间 string remarks;//备注 string id;//房间号 };
#include "Ordering.h" #include<iostream> #include<string> #include<cstring> #include<vector> using namespace std; class Hotel { public: Hotel(); ~Hotel(); bool AddOrder(Ordering); bool DeleteOrder(string); bool FindOrder(string); void DispAll(); void SaveToFile(); void ReadFromFile(); void DestroyOrder(); int cnt;//人数 private: Ordering addr[50]; };
#include"Hotel.h" #include<iostream> #include<string> #include<cstring> #include <fstream> #include<istream> #include<vector> using namespace std; int N = 50; Hotel::Hotel() { cnt = 0; } Hotel::~Hotel() { } bool Hotel::AddOrder(Ordering ord) { int i; for (i = 0; i < cnt; i++) { if (addr[i].GetId()==ord.GetId()) { cout << "这个已经存在,无法加入!" << endl; return false; } } if (cnt < N && i == cnt){ addr[cnt] = ord; cnt++; cout << "订单添加成功." << endl; return true; } else return false; } void Hotel::DispAll() { Ordering ord; cout << " 房间号" << "\t姓名" << "\t\t电话号码" << "\t\t预定时间" << "\t备注" << endl; for (int i = 1; i <= 54; i++) cout << "="; cout << endl; for (int i = 0; i < cnt; i++) { ord= addr[i]; cout << ord; } } bool Hotel::DeleteOrder(string id) { int i; for (i = 0; i < cnt; i++) { if (addr[i].GetId()==id) { int j = i; for (; j < cnt; j++) { addr[j] = addr[j + 1]; } cout << "这个订单的信息已经删除!" << endl; cnt--; return true; } } if (i == cnt) { cout << "这个订单没有找到,无法删除" << endl; return false; } return false; } bool Hotel::FindOrder(string id) { int i; Ordering ord; for (i = 0; i < cnt; i++) { ord = addr[i]; if (ord.GetId()==id) { cout << "订单信息找到!" << endl; cout << " 房间号" << "\t姓名" << "\t\t电话号码" << "\t\t预定时间" << "\t备注" << endl; for (int i = 1; i <= 54; i++) cout << "="; cout << endl; //cout << sta.id << '\t' << sta.name << '\t' << sta.department << '\t' << sta.wage << '\t' << sta.position << endl; cout << ord; return true; } } if (i == cnt) { cout << "订单信息没有找到!" << endl; return false; } return false; } void Hotel::SaveToFile() { ofstream ofs("ordering.dat", ios::binary | ios::out | ios::trunc); if (!ofs) { cerr << "Write file error." << endl; return; } for (int i = 0; i < cnt; i++) ofs.write((char*)&addr[i], sizeof(addr[i])); ofs.close(); cout << "文件保存完成!" << endl; } void Hotel::ReadFromFile() { ifstream ifs("odering.dat", ios::binary | ios::in); if (!ifs) { cerr << "Open the file error." << endl; cout << "请创建文件:ordering.dat,开始创建..." << endl; ofstream ofs("odering.dat", ios::binary | ios::trunc); ofs.close(); cout << "空文件创建完成!" << endl; } else { ifs.seekg(0, ios::end); long filelen = ifs.tellg(); cnt = filelen / sizeof(Ordering); cout << "文件已打开,请注意修改后及时保存!!" << endl; ifs.seekg(0, ios::beg); for (int i = 0; i < cnt; i++) ifs.read((char*)&addr[i], sizeof(addr[i])); ifs.close(); } } void Hotel::DestroyOrder() { char ch; cout << "危险!!你确认要清空说有订单信息?(y/n):"; while ((ch = getchar()) != '\n') continue; cin.get(ch); if (ch == 'y' || ch == 'Y') { ofstream ofs("ordering.dat", ios::binary | ios::trunc); ofs.close(); cout << "订单信息已清空!" << endl; cnt = 0; } }
#include<iostream> #include<string> #include<cstring> #include"Ordering.h" #include<vector> Ordering::Ordering() { this->id = ""; this->name = ""; this->remarks = ""; this->tel = ""; this->time = ""; } Ordering::Ordering(string name, string tel, string time, string remarks, string room) { this->id = id; this->name = name; this->remarks = remarks; this->tel = tel; this->time = time; } Ordering::~Ordering(){} ostream& operator<<(ostream& o, const Ordering& ord) { o << ord.id << '\t' << ord.name << "\t\t" << ord.tel << '\t' << ord.time << '\t' << ord.remarks << endl; return o; } istream& operator>>(istream& in, Ordering& ord) { cout << "请输入房间号:"; in >> ord.id; cout << "请输入姓名:"; in >> ord.name; cout << "请输入电话号码:"; in >> ord.tel; cout << "请输入订餐时间:"; in >> ord.time; cout << "请输入订餐备注:"; in >> ord.remarks; return in; }
#include"Hotel.h" #include<iostream> #include<string> #include<cstring> #include<vector> using namespace std; const int NUM = 30; const char password[] = "wslxc"; Hotel *hol = new Hotel(); void login() { int c = 3, count = 1; char key[NUM]; cout << "请输入登录密码(您有三次机会):"; cin >> key; while (strcmp(key, password) != 0) { if (count < 3) cout << "密码错误,您还有" << --c << "次机会,请重新输入:"; if (count >= 3) { cout << "**抱歉,输入错误三次,退出系统**\n"; exit(0); } cin >> key; count++; } cout << "密码正确,欢迎使用!\n\n"; system("pause"); } void ShowMainMenu() { system("cls"); cout << "请选择您的操作:" << endl; cout << "****************************" << endl; cout << " 1 打开订餐信息表" << endl; cout << " 2 登记订餐信息" << endl; cout << " 3 查找订餐信息" << endl; cout << " 4 显示所有订餐信息" << endl; cout << " 5 删除订餐信息" << endl; cout << " 6 保存订餐信息" << endl; cout << " 7 清空订餐信息表" << endl; cout << " 0 退出" << endl; cout << "****************************" << endl; } void Welcome() { cout << endl; cout << " $-------------------------------------------------$" << endl; cout << " | |" << endl; cout << " | **欢迎进入酒店订餐信息管理程序 ** | " << endl; cout << " | |" << endl; cout << " @-------------------------------------------------@" << endl; } void SelectFun(int sel) { Ordering *order=new Ordering(); string id; switch (sel) { case 1: hol->ReadFromFile(); system("pause"); break; case 2: cout << "请输入要添加的订餐信息:" << endl; cin >> *order; hol->AddOrder(*order); system("pause"); break; case 3: cout << "请输入要查找的房间号:"; cin >> id; hol->FindOrder(id); system("pause"); break; case 4: cout << "所有的订餐信息如下:" << endl; hol->DispAll(); system("pause"); break; case 5: cout << "请输入要删除的房间号:"; cin >> id; hol->DeleteOrder(id); system("pause"); break; case 6: hol->SaveToFile(); system("pause"); break; case 7: hol->DestroyOrder(); system("pause"); break; case 0: break; default: { cout << "输入错误,请重新输入!" << endl; system("pause"); } } } int main() { int sel = 1; Welcome(); login(); while (sel) { ShowMainMenu(); cout << "订餐总人数:" << hol->cnt << ",请输入选择功能(0-7):"; cin >> sel; cout << endl; SelectFun(sel); } delete hol; return 0; }