commit a1c007a4d6507daca9d2851919550274d91a4fd6 Author: JACKYMYPERSON <108354972+JACKYMYPERSON@users.noreply.github.com> Date: Sun Mar 31 23:08:40 2024 +0800 Add files via upload diff --git a/dingtuipiao.cpp b/dingtuipiao.cpp new file mode 100644 index 0000000..4903816 --- /dev/null +++ b/dingtuipiao.cpp @@ -0,0 +1,313 @@ +#include +#include +#include +#include +using namespace std; +void dingtuipiaoxitong() +{ + cout << "您已经入订退票系统***" << "请选择您的选项!" << endl; + cout << "1.订票" << endl; + cout << "2.退票" << endl; + cout << "3.退出系统" << endl; + int xuanze; + cin >> xuanze; + if (xuanze >= 1 && xuanze <= 3) + { + switch (xuanze) + { + case 1:dingpiao(); + case 2:tuipiao(); + case 3:jinruxitong(); + } + } + else { cout << "输入有误"; } +} +void dingpiao() +{ + int z1 ; + z1 = 0; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary|ios::in); + hangbanxinxi w; + ifile.seekg(0, ios::end); + int lenk = ifile.tellg() / sizeof(w); + ifile.seekg(0, ios::beg); + for (int i = 0; i < lenk; i++) + { + ifile.read((char*)&w, sizeof(w)); + cout << i + 1 << "," << "航班号" << w.hangbanhao << "航空公司" << w.hangkonggongsi << "班期" << w.banqi << "始发城市" << w.shifachengshi << "抵达城市" << w.didachengshi << "抵达航站楼" << w.didahangzhanlou << "时间" << w.shijian << "头等舱数" << w.toudengcangshu << "公务舱数" << w.gongwucangshu << "经济舱数" << w.jingjicangshu << endl; + } + ifile.close(); + int q;//储存航班号 + int i; + int z; z = 0;//查找航班号失败 + int z2; z2 = 0;//查找座位等级 + int riqi;//开始日期的转换 + hangbanxinxi a; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary|ios::in); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + cout << len<> q; + for (i = 0; i < n; i++) + { + ifile.seekg(sizeof(a) * i); + ifile.read((char*)&a, sizeof(a)); + if (a.hangbanhao == q) { z = 1; break; } + + } + if (z != 1) { cout << "输入的航班号有误"; } + else { break; } + } + ifile.close(); + if (z == 1) + { + + cout << "已为您找到航班号为" << q << "的航班" << endl; + cout << "该航班的班期为:" << a.banqi << endl; + //开始匹配日期和班期 + while (true) + { + cout << "请输入您想选择的日期:" << "格式为xxxx年xx月xx日(输入数字即可)" << endl; + cin >> riqi; + int year, month, day; + year = riqi / 10000; + month = riqi / 100 - year; + day = riqi % 100; + if (month == 1 || month == 2) + { + month += 12; + --year; + } + int weekday; + weekday = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400 + 1) % 7;//运用了基姆拉尔森公式计算星期 + month -= 12; + ++year; + int p = 0;//班期转换循环次数; + int cun;//对a.班期的存储 + cun = a.banqi; + while (cun != 0) + { + cun = cun / 10; + ++p; + } + cun = a.banqi; + for (int k = 0; k < p; k++) + { + int bencixingqishu; + int xiaci = cun; + bencixingqishu = xiaci; + if (cun / 10 != 0) { bencixingqishu = cun / pow(10, p - (k + 1)); xiaci = cun - bencixingqishu * pow(10, p - (k + 1)); }//把班期转换为星期 + else { bencixingqishu = cun % 10; } + if ((weekday + 1) == bencixingqishu) + { + cout << "已经为您找到日期为" << riqi << "航班号为" << q << "的航班"; + z1 = 1; + break; + } + + } + if (z1 == 0) { cout << "没有找到该航班,请重新输入想选择的日期" << endl; } + + else { break; } + + } + dingdanmingxixinxi b; + dingdanmingxixinxi c; + int toudengcangshuliang = 0; + int gongwucangshuliang = 0; + int jingjicangshuliang = 0; + ofstream ofile; + ofile.open("mayuan.dingdan.txt", ios::out | ios::binary|ios::app); + ofile.close(); + ifstream ifile; + ifile.open("mayuan.dingdan.txt", ios::in | ios::binary); + ifile.seekg(0, ios::end); + int len1 = ifile.tellg(); + int n1 = len1 / sizeof(dingdanmingxixinxi); + for (int k = 0; k < n1; k++) + { + ifile.seekg(sizeof(dingdanmingxixinxi) * k); + ifile.read((char*)&b, sizeof(dingdanmingxixinxi)); + + if (b.zuoweidengji == "toudengcang") + { + toudengcangshuliang += 1; + } + if (b.zuoweidengji == "gongwucang") + { + gongwucangshuliang += 1; + } + if (b.zuoweidengji == "jingjicang") + { + jingjicangshuliang += 1; + } + } + ifile.close(); + cout << "已经为您选择航班号为" << q << "日期为" << riqi << "的航班" << endl; + cout << "该航班的头等舱数为:" << a.toudengcangshu << " 公务舱数为:" << a.gongwucangshu << " 经济舱数为:" << a.jingjicangshu << endl; + cout << "该航班头等舱剩余数量为" << a.toudengcangshu - toudengcangshuliang << " 公务舱剩余数量为" << a.gongwucangshu - gongwucangshuliang << " 经济舱剩余数量为" << a.jingjicangshu - jingjicangshuliang << endl; + if (a.toudengcangshu - toudengcangshuliang != 0 && a.gongwucangshu - gongwucangshuliang != 0 && a.jingjicangshu - jingjicangshuliang != 0) + { + cout << "请选择您要选的座位等级" << endl; + cout << "1.头等舱" << endl; + cout << "2.公务舱" << endl; + cout << "3.经济舱" << endl; + int r; + cin >> r; + while (true) + { + switch (r) + { + case 1:if (a.toudengcangshu - toudengcangshuliang == 0) { cout << "头等舱数目已满" << "请重新输入您要选择的座位等级" << endl; break; } + else { z2 = 1; c.zuoweidengji = "toudengcang"; break; } + case 2:if (a.gongwucangshu - toudengcangshuliang == 0) { cout << "公务舱数目已满" << "请重新输入您要选择的座位等级" << endl; break; } + else { z2 = 1; c.zuoweidengji = "gongwucang"; break; } + case 3:if (a.jingjicangshu - jingjicangshuliang == 0) { cout << "经济舱数目已满" << "请重新输入您要选择的座位等级" << endl; break; } + else { z2 = 1; c.zuoweidengji = "jingjicang"; break; } + } + if (z2 == 1) { break; } + } + if (z2 == 1) + { + cout << "订票成功!" << endl; + cout << "请输入您的姓名" << endl; + cin >> c.chengkexingming; + cout << "请输入您的手机号" << endl; + cin >> c.dianhuahaoma; + cout << "请输入您的身份证号" << endl; + cin >> c.shenfenzhenghao; + c.chufariqi = riqi; + c.hangbanhao = q; + ifile.open("mayuan.dingdan.txt", ios::in | ios::binary); + ifile.seekg(0, ios::end); + int len1 = ifile.tellg(); + int n1 = len1 / sizeof(dingdanmingxixinxi); + c.dingdanhao = 220 + n1; + ifile.close(); + ofile.open("mayuan.dingdan.txt", ios::app | ios::binary |ios::out); + ofile.write((char*)&c, sizeof(c)); + ofile.close(); + cout << "您的订单信息已输入!" << endl; + cout << "订单号为:" << c.dingdanhao; + } + } + else + { + cout << "很抱歉" << "航班号为" << q << "日期为" << riqi << "的航班" << "座位已满" << endl; + } + } + dingtuipiaoxitong(); + +} +void tuipiao() +{ + cout << "已准备为您退票,请输入您的身份证号" << endl; + long long int shenfenzheng; + cin >> shenfenzheng; + int n = 0;//符合的数量 + dingdanmingxixinxi a; + dingdanmingxixinxi b; + ifstream ifile; + ifile.open("mayuan.dingdan.txt", ios::binary); + ifile.seekg(0, ios::end); + int len2 = ifile.tellg(); + int u = len2 / sizeof(dingdanmingxixinxi); + ofstream ofile; + ofile.open("mayuan.dingdan1.txt", ios::binary | ios::out|ios::app); + for (int i = 0; i < u; i++) + { + ifile.seekg(sizeof(a) * i); + ifile.read((char*)&a, sizeof(a)); + if (shenfenzheng == a.shenfenzhenghao) + { + cout << "dingdanhao:" << a.dingdanhao; + b.dingdanhao = a.dingdanhao; + b.hangbanhao = a.hangbanhao; + b.chufariqi = a.chufariqi; + b.zuoweidengji = a.zuoweidengji; + b.chengkexingming = a.chengkexingming; + b.shenfenzhenghao = a.shenfenzhenghao; + b.dianhuahaoma = a.dianhuahaoma; + ofile.write((char*)&b, sizeof(b)); + ++n; + } + } + ifile.close(); + ofile.close(); + if (n == 0) { cout << "未找到身份证号为" << shenfenzheng << "的乘客" << endl; } + else + { + cout << "已找到身份证号为" << shenfenzheng << "的乘客" << endl; + ifile.open("mayuan.dindan1.txt", ios::binary | ios::in); + for (int i = 0; i < n; i++) + { + ifile.seekg(sizeof(a) * i); + ifile.read((char*)&a, sizeof(a)); + cout << i + 1 << "." << "订单号为:" << a.dingdanhao << "乘客姓名为:" << a.chengkexingming << "电话号码为:" << a.dianhuahaoma << "航班号为:" << a.hangbanhao << "出发日期为:" << a.chufariqi << "座位等级为:" << a.zuoweidengji << endl; + } + cout << "请输入所要退票的订单号" << endl; + int dingdanhao; + int y = 0; + while (true) + { + cin >> dingdanhao; + for (int i = 0; i < n; i++) + { + ifile.seekg(sizeof(a) * i); + ifile.read((char*)&a, sizeof(a)); + if (dingdanhao == a.dingdanhao) + { + y =1; + break; + } + } + if (y == 0) { cout << "未找到该订单号,请重新输入" << endl; } + else { break; } + } + ifile.close(); + ifile.open("mayuan.dingdan1.txt", ios::binary | ios::trunc); + ifile.close(); + ofile.close(); + if (y == 1) + { + dingdanmingxixinxi a; + ifile.open("mayuan.dingdan.txt", ios::binary); + ofile.open("mayuan.dingdan2.txt", ios::trunc | ios::binary); + ofile.close(); + ofile.open("mayuan.dingdan2.txt", ios::trunc | ios::out); + for (int i = 0; i < u; i++) + { + ifile.seekg(sizeof(dingdanmingxixinxi) * i); + ifile.read((char*)&a, sizeof(a)); + if (a.shenfenzhenghao != shenfenzheng && a.dingdanhao != dingdanhao) + { + ofile.write((char*)&a, sizeof(a)); + } + } + ifile.close(); + ofile.close(); + ifile.open("mayuan.dingdan2.txt", ios::binary); + ofile.open("mayuan.dingdan.txt", ios::trunc | ios::binary); + ofile.close(); + ofile.open("mayuan.dingdan.txt", ios::binary | ios::out); + for (int i = 0; i < u - 1; i++) + { + ifile.seekg(sizeof(a) * i); + ifile.read((char*)&a, sizeof(a)); + ofile.write((char*)&a, sizeof(a)); + } + cout << "退票成功!" << endl; + ifile.close(); + ofile.close(); + ofile.open("mayuan.dingdan2.txt", ios::binary | ios::trunc); + ofile.close(); + dingtuipiaoxitong(); + } + } +} \ No newline at end of file diff --git a/hangban.cpp b/hangban.cpp new file mode 100644 index 0000000..ba6c6b0 --- /dev/null +++ b/hangban.cpp @@ -0,0 +1,393 @@ +#include +#include +#include +using namespace std; +void hangbanguanlixitong() +{ + + int xuanzegongneng; + while (true) + { + cout << "请选择你要操作的功能:" << endl; + cout << "1.添加航班信息功能" << endl; + cout << "2.显示所有航班信息功能" << endl; + cout << "3.查询航班信息功能" << endl; + cout << "4.修改航班信息功能" << endl; + cout << "5.删除航班信息功能" << endl; + cout << "6.退出系统" << endl; + cin >> xuanzegongneng; + switch (xuanzegongneng) + { + case 1:tianjiahangbangongneng(); break; + case 2:xianshisuoyouhangbanxinxigongneng(); break; + case 3:chaxunhangbanxinxigongneng(); break; + case 4:xiugaihangbanxinxigongneng(); break; + case 5:shanchuhangbanxinxigongneng(); break; + case 6:jinruxitong(); break; + } + } +} +void tianjiahangbangongneng() +{ + hangbanxinxi a; + hangbanxinxi b;//用来和a对比对照 + while (true) + { + cout << "请输入要添加的航班的航班号" << endl; + cin >> a.hangbanhao; + ofstream ofile; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary | ios::in); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(b); + ifile.seekg(0, ios::beg); + int jiance = 0; + for (int i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(b)); + if (b.hangbanhao == a.hangbanhao) { jiance = 1; } + } + ifile.close(); + if (jiance == 0) { break; } + else { cout << "航班号重复,请重新输入" << endl; } + } + cout << "请输入要添加的航班的航空公司" << endl; + cin >> a.hangkonggongsi; + cout << "请输入要添加的航班的班期" << endl; + cin >> a.banqi; + cout << "请输入要添加的航班的始发城市" << endl; + cin >> a.shifachengshi; + cout << "请输入要添加的航班的抵达城市" << endl; + cin >> a.didachengshi; + cout << "请输入要添加的航班的抵达航站楼" << endl; + cin >> a.didahangzhanlou; + cout << "请输入要添加的航班的时间" << endl; + cin >> a.shijian; + cout << "请输入要添加的航班的头等舱数" << endl; + cin >> a.toudengcangshu; + cout << "请输入要添加的航班的公务舱数" << endl; + cin >> a.gongwucangshu; + cout << "请输入要添加的航班的经济舱数" << endl; + cin >> a.jingjicangshu; + ofstream ofile; + ofile.open("mayuan.hangbanxinxi.txt", ios::binary | ios::app|ios::out); + ofile.write((char*)&a, sizeof(a)); + ofile.close(); + hangbanguanlixitong(); +} +void xianshisuoyouhangbanxinxigongneng() +{ + hangbanxinxi b; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(b); + if (n == 0) { cout << "无航班信息" << endl; } + else { + ifile.seekg(0, ios::beg); + for (int i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(b)); + cout << i + 1 << "," << "航班号" << b.hangbanhao << "航空公司" << b.hangkonggongsi << "班期" << b.banqi << "始发城市" << b.shifachengshi << "抵达城市" << b.didachengshi << "抵达航站楼" << b.didahangzhanlou << "时间" << b.shijian << "头等舱数" << b.toudengcangshu << "公务舱数" << b.gongwucangshu << "经济舱数" << b.jingjicangshu << endl; + } + } + ifile.close(); + hangbanguanlixitong(); +} +void xianshisuoyouhangbanxinxigongnen() +{ + hangbanxinxi b; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(b); + ifile.seekg(0, ios::beg); + cout << n << endl; + for (int i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(b)); + cout << i + 1 << "," << "航班号" << b.hangbanhao << "航空公司" << b.hangkonggongsi << "班期" << b.banqi << "始发城市" << b.shifachengshi << "抵达城市" << b.didachengshi << "抵达航站楼" << b.didahangzhanlou << "时间" << b.shijian << "头等舱数" << b.toudengcangshu << "公务舱数" << b.gongwucangshu << "经济舱数" << b.jingjicangshu << endl; + } + ifile.close(); +} +void chaxunhangbanxinxigongneng() +{ + int xuanze; + cout << "请输入所要查询的航班的信息" << endl; + cout << "1.按照航班号查询" << endl; + cout << "2.按照始发城市查询" << endl; + cin >> xuanze; + switch (xuanze) + { + case 1:anzhaohangbanhaochaxun(); + case 2:anzhaoshifachengshichaxun(); + } + hangbanguanlixitong(); + +} +void anzhaohangbanhaochaxun() +{ + hangbanxinxi a; + cout << "请输入要查询的航班的航班号" << endl; + cin >> a.hangbanhao; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(hangbanxinxi); + hangbanxinxi b; + int c = 0;//判断有没有找到信息; + ifile.seekg(0, ios::beg); + for (int i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(hangbanxinxi)); + if (a.hangbanhao == b.hangbanhao) + { + cout << "已查询到该航班信息!" << endl; + cout << "该航班航班号为" << b.hangbanhao << "航空公司" << b.hangkonggongsi << "班期为" << b.banqi << "始发城市为" << b.shifachengshi << "抵达城市为" << b.didachengshi << "抵达航站楼为" << b.didahangzhanlou << "时间为" << b.shijian << "头等舱数为" << b.toudengcangshu << "公务舱数为" << b.gongwucangshu << "经济舱数为" << b.jingjicangshu << endl; + c = 1; + break; + + } + } + if (c == 0) { cout << "无法找到该航班信息"; } + ifile.close(); + hangbanguanlixitong(); +} +void anzhaoshifachengshichaxun() +{ + hangbanxinxi a; + cout << "请输入要查询的航班的始发城市" << endl; + cin >> a.shifachengshi; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(hangbanxinxi); + hangbanxinxi b; + int c = 0; + ifile.seekg(0, ios::beg); + for (int i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(hangbanxinxi)); + if (a.shifachengshi == b.shifachengshi) + { + cout << "已查询到该航班信息!" << endl; + cout << "该航班航班号为" << b.hangbanhao << "航空公司" << b.hangkonggongsi << "班期为" << b.banqi << "始发城市为" << b.shifachengshi << "抵达城市为" << b.didachengshi << "抵达航站楼为" << b.didahangzhanlou << "时间为" << b.shijian << "头等舱数为" << b.toudengcangshu << "公务舱数为" << b.gongwucangshu << "经济舱数为" << b.jingjicangshu << endl; + c = 1; + } + } + if (c == 0) { cout << "无法找到该航班信息"; } + ifile.close(); + hangbanguanlixitong(); +} +void xiugaihangbanxinxigongneng() +{ + hangbanxinxi a; + cout << "请输入要修改航班的航班号" << endl; + cin >> a.hangbanhao; + hangbanxinxi b; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(hangbanxinxi); + int c; c = 0;//判断是否查询到该信息 + ifile.seekg(0, ios::beg); + int i; + for (i = 0; i < n; i++) + { + ifile.read((char*)&b, sizeof(hangbanxinxi)); + if (b.hangbanhao == a.hangbanhao) + { + c = 1; + cout << "已查询到该航班信息!" << endl; + cout << "该航班航班号为" << b.hangbanhao << "航空公司" << b.hangkonggongsi << "班期为" << b.banqi << "始发城市为" << b.shifachengshi << "抵达城市为" << b.didachengshi << "抵达航站楼为" << b.didahangzhanlou << "时间为" << b.shijian << "头等舱数为" << b.toudengcangshu << "公务舱数为" << b.gongwucangshu << "经济舱数为" << b.jingjicangshu << endl; + break; + } + } + ifile.close(); + if (c == 0) { cout << "未能找到该航班" << endl; } + else + { + hangbanxinxi c; + hangbanxinxi d; + int s = a.hangbanhao; + int i; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(hangbanxinxi); + for (i = 0; i < n; i++) + { + ifile.seekg(sizeof(hangbanxinxi) * i); + ifile.read((char*)&c, sizeof(hangbanxinxi)); + if (s == c.hangbanhao) { break; } + } + ifile.close(); + ofstream ofile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ofile.open("mayuan.zhongjie.txt", ios::binary | ios::trunc); + ofile.close(); + ofile.open("mayuan.zhongjie.txt", ios::binary | ios::out); + for (int j = 0; j < n; j++) + { + ifile.seekg(sizeof(hangbanxinxi) * j); + ifile.read((char*)&c, sizeof(hangbanxinxi)); + if (j != i) + { + d.hangbanhao = c.hangbanhao; + d.hangkonggongsi = c.hangkonggongsi; + d.banqi = c.banqi; + d.shifachengshi = c.shifachengshi; + d.didachengshi = c.didachengshi; + d.didahangzhanlou = c.didahangzhanlou; + d.shijian = c.shijian; + d.toudengcangshu = c.toudengcangshu; + d.jingjicangshu = c.jingjicangshu; + d.gongwucangshu = c.gongwucangshu; + ofile.write((char*)&d, sizeof(hangbanxinxi)); + } + } + ifile.close(); + ofile.close(); + ifile.open("mayuan.zhongjie.txt", ios::binary); + ofile.open("mayuan.hangbanxinxi.txt", ios::trunc); + ofile.close(); + ofile.open("mayuan.hangbanxinxi.txt", ios::binary | ios::out | ios::app); + for (int k = 0; k < n - 1; k++) + { + ifile.seekg(sizeof(hangbanxinxi) * k); + ifile.read((char*)&d, sizeof(d)); + c.hangbanhao = d.hangbanhao; + c.hangkonggongsi = d.hangkonggongsi; + c.banqi = d.banqi; + c.shifachengshi = d.shifachengshi; + c.didachengshi = d.didachengshi; + c.didahangzhanlou = d.didahangzhanlou; + c.shijian =d.shijian; + c.toudengcangshu = d.toudengcangshu; + c.jingjicangshu = d.jingjicangshu; + c.gongwucangshu = d.gongwucangshu; + ofile.write((char*)&c, sizeof(c)); + } + ifile.close(); + ofile.close(); + ofile.open("mayuan.zhongjie.txt", ios::trunc); + ofile.close(); + cout << "请输入修改后的航班的信息" << endl; + cout << "航班的航空公司" << endl; + cin >> a.hangkonggongsi; + cout << "航班的班期" << endl; + cin >> a.banqi; + cout << "航班的始发城市" << endl; + cin >> a.shifachengshi; + cout << "航班的抵达城市" << endl; + cin >> a.didachengshi; + cout << "航班的抵达航站楼" << endl; + cin >> a.didahangzhanlou; + cout << "航班的时间" << endl; + cin >> a.shijian; + cout << "航班的头等舱数" << endl; + cin >> a.toudengcangshu; + cout << "航班的公务舱数" << endl; + cin >> a.gongwucangshu; + cout << "航班的经济舱数" << endl; + cin >> a.jingjicangshu; + ofile.open("mayuan.hangbanxinxi.txt", ios::binary | ios::out|ios::app); + ofile.write((char*)&a, sizeof(hangbanxinxi)); + ofile.close(); + cout << "修改成功!是否查看?" << endl; + cout << "输入1查看修改后的所有航班信息,否则请输入0" << endl; + int xuanze; + cin >> xuanze; + if (xuanze == 1) { xianshisuoyouhangbanxinxigongneng(); } + else { ; } + } + hangbanguanlixitong(); +} +void shanchuhangbanxinxigongneng() +{ + hangbanxinxi a; + hangbanxinxi b; + cout << "请输入您想删除航班的航班号" << endl; + int s; + cin >> s; + int z; z = 0; + int i; + ifstream ifile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ifile.seekg(0, ios::end); + int len = ifile.tellg(); + int n = len / sizeof(hangbanxinxi); + for (i = 0; i < n; i++) + { + ifile.seekg(sizeof(hangbanxinxi) * i); + ifile.read((char*)&a, sizeof(hangbanxinxi)); + if (s == a.hangbanhao) { z = 1; break; } + } + ifile.close(); + if (z == 0) { cout << "未找到该航班" << endl; } + else + { + ifstream ifile; + ofstream ofile; + ifile.open("mayuan.hangbanxinxi.txt", ios::binary); + ofile.open("mayuan.zhongjie.txt",ios::binary| ios::trunc); + ofile.close(); + ofile.open("mayuan.zhongjie.txt", ios::binary | ios::out); + for (int j = 0; j < n; j++) + { + ifile.seekg(sizeof(hangbanxinxi) * j); + ifile.read((char*)&a, sizeof(hangbanxinxi)); + if (j != i) + { + b.hangbanhao = a.hangbanhao; + b.hangkonggongsi = a.hangkonggongsi; + b.banqi = a.banqi; + b.shifachengshi = a.shifachengshi; + b.didachengshi = a.didachengshi; + b.didahangzhanlou = a.didahangzhanlou; + b.shijian = a.shijian; + b.toudengcangshu = a.toudengcangshu; + b.jingjicangshu = a.jingjicangshu; + b.gongwucangshu = a.gongwucangshu; + ofile.write((char*)&b, sizeof(hangbanxinxi)); + } + } + ifile.close(); + ofile.close(); + ifile.open("mayuan.zhongjie.txt", ios::binary); + ofile.open("mayuan.hangbanxinxi.txt", ios::trunc); + ofile.close(); + ofile.open("mayuan.hangbanxinxi.txt", ios::binary | ios::out|ios::app); + for (int k = 0; k < n - 1; k++) + { + ifile.seekg(sizeof(hangbanxinxi) * k); + ifile.read((char*)&b, sizeof(b)); + a.hangbanhao = b.hangbanhao; + a.hangkonggongsi = b.hangkonggongsi; + a.banqi = b.banqi; + a.shifachengshi = b.shifachengshi; + a.didachengshi = b.didachengshi; + a.didahangzhanlou = b.didahangzhanlou; + a.shijian = b.shijian; + a.toudengcangshu = b.toudengcangshu; + a.jingjicangshu = b.jingjicangshu; + a.gongwucangshu = b.gongwucangshu; + ofile.write((char*)&a, sizeof(a)); + } + ifile.close(); + ofile.close(); + ofile.open("mayuan.zhongjie.txt", ios::trunc); + ofile.close(); + cout << "删除成功!" << endl; + } + hangbanguanlixitong(); +} + + diff --git a/jinruxitong.cpp b/jinruxitong.cpp new file mode 100644 index 0000000..9e85822 --- /dev/null +++ b/jinruxitong.cpp @@ -0,0 +1,27 @@ +#include +#include +#include +#include +using namespace std; +void jinruxitong() +{ + while (true) + { + int xuanze; + cout << "请选择进入的系统: " << endl; + cout << "1.航班管理系统 " << endl; + cout << "2.订退票管理系统 " << endl; + cout << "3.售票管理系统" << endl; + cout << "4.退出" << endl; + cin >> xuanze; + switch (xuanze) + { + case 1:hangbanguanlixitong(); break; + case 2:dingtuipiaoxitong(); break; + case 3:shoupiaoguanlixitong(); break; + case 4: exit; break; + } + if (xuanze >= 1 && xuanze <= 4)break; + else cout << "请输入数字1-4以进入或退出系统!" << endl; + } +} \ No newline at end of file diff --git a/sm.h b/sm.h new file mode 100644 index 0000000..71bebda --- /dev/null +++ b/sm.h @@ -0,0 +1,52 @@ +#include +using namespace std; +void jinruxitong(); +void hangbanguanlixitong();//航班管理系统 +void dingtuipiaoxitong();//订退票管理系统 +void shoupiaoguanlixitong();//统计售票系统/*系统类*/ +void tianjiahangbangongneng();//添加航班功能 +void xianshisuoyouhangbanxinxigongneng();//显示所有行班信息功能 +void xianshisuoyouhangbanxinxigongnen();//fuben +void chaxunhangbanxinxigongneng();//查询航班信息功能 +void xiugaihangbanxinxigongneng();//修改航班信息功能 +void shanchuhangbanxinxigongneng();//删除航班信息功能 大功能类 +void anzhaohangbanhaochaxun(); +void anzhaoshifachengshichaxun(); +void dingpiao(); +void tuipiao(); +void xianshisuoyoudingdanxinxi(); +class hangbanxinxi +{ +public: + long long int hangbanhao;//航班号 + string hangkonggongsi;//航空公司 + long long int banqi;//班期 + string shifachengshi;//始发城市 + string didachengshi;//抵达城市 + string didahangzhanlou;//抵达航站楼 + long long int shijian;//时间 + long long int toudengcangshu;//头等舱数 + long int gongwucangshu;//公务舱数 + long int jingjicangshu;//经济舱数 +}; +class dingdanxinxi +{ +public: + long long int dingdanhao;//订单号 + string kehuxingming;//客户姓名 + long long int dianhuahaoma;//电话号码 + long long int zongjine;//总金额 + long long int riqi;//日期 +}; +class dingdanmingxixinxi +{ +public: + long long int dingdanhao;//订单号 + long long int hangbanhao;//航班号 + long long int chufariqi;//出发日期 + string zuoweidengji;//座位等级 + string chengkexingming;//乘客姓名 + long long int shenfenzhenghao;//身份证号 + long long int dianhuahaoma;//电话号码 +}; + diff --git a/tongji.cpp b/tongji.cpp new file mode 100644 index 0000000..c7d34a3 --- /dev/null +++ b/tongji.cpp @@ -0,0 +1,45 @@ +#include +#include +#include +using namespace std; +void shoupiaoguanlixitong() +{ + while (true) { + int xuanze; + cout << "欢迎来到售票管理系统" << endl; + cout << "请输入您要操作的功能!" << endl; + cout << "1.显示所有订单信息" << endl; + cout << "2.退出系统" << endl; + cin >> xuanze; + switch (xuanze) + { + case 1: {xianshisuoyoudingdanxinxi(); break; } + case 2: {jinruxitong(); break; } + } + if (xuanze == 1 || xuanze == 2) break; + else { cout << "请输入1或2" << endl; } + } + jinruxitong(); +} + +void xianshisuoyoudingdanxinxi() +{ + dingdanmingxixinxi b; + ifstream ifile; + ifile.open("mayuan.dingdan.txt", ios::binary); + ifile.seekg(0, ios::end); + int len2 = ifile.tellg(); + int n = len2 / sizeof(dingdanmingxixinxi); + if (n == 0) { cout << "无订单信息" << endl; } + else + { + for (int i = 0; i < n; i++) + { + ifile.seekg(sizeof(b) * i); + ifile.read((char*)&b, sizeof(b)); + cout << i << "," << "订单号" << b.dingdanhao << " 航班号" << b.hangbanhao << "出发日期" << b.chufariqi << "座位等级" << b.zuoweidengji << " 乘客姓名" << b.chengkexingming << "电话号码" << b.dianhuahaoma << "身份证号" << b.shenfenzhenghao << endl; + } + } + ifile.close(); + shoupiaoguanlixitong(); +} \ No newline at end of file diff --git a/yuan.cpp b/yuan.cpp new file mode 100644 index 0000000..d9273e7 --- /dev/null +++ b/yuan.cpp @@ -0,0 +1,10 @@ +#include +#include +#include +#include +using namespace std; + +void main() +{ + jinruxitong(); +}