车票管理系统Word下载.docx
- 文档编号:21609234
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:25
- 大小:34.89KB
车票管理系统Word下载.docx
《车票管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《车票管理系统Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
//起点站
charend[20];
//终点站
intBus_order;
//班次号
intall_tickted;
//额定载量
inttickted;
//已定票人数
intHour_start,Minute_start;
//发车时间
floatGoHour;
//行车时间
public:
Bus_infor();
~Bus_infor();
Bus_infor*next;
voidinput();
//录入函数
voidinput(ifstream&
is);
//读取函数
voidoutput();
//输出函数
voidoutput(ofstream&
os);
//写入函数
voidOrder_tickt(intn);
//定票函数
voidUnorder_tickt(intn);
//退票函数
voidGetTime_start();
//获取发车时间函数
boolGetTime();
//判断当前班次状况函数
intGet_all_tickted(){returnall_tickted;
}//返回额定载量
intGet_tickted(){returntickted;
}//返回已定票人数
intGet_bus_order(){returnBus_order;
}//返回班次号
stringGet_end()const;
//返回终点站的字符串
};
2.开始界面
charBus_link:
:
mainmenu()
structtm*local;
chars1[128];
time_tt;
t=time(NULL);
local=localtime(&
t);
strftime(s1,128,"
%Y-%m-%d%H:
%M"
local);
//按照指定的格式,把时间保存在s1字符串里面
strings;
//定义字符串s,来判断功能选择是否输入错误
cout<
<
"
\n\n ────欢迎使用车票管理系统────"
endl<
endl;
cout
<
┌─────────────────────────┐"
endl
│┌──────────────────────┐│"
││1.录入车票信息2.浏览车票信息││"
││3.查询车票信息4.删除车票信息││"
││5.修改车票信息6.定购车票信息││"
││7.退还车票信息8.保存车票信息││"
││0.退出系统││"
│└──────────────────────┘│"
└─────────────────────────┘"
\t\t\t\t"
s1<
3.主菜单显示(mainmenu):
classBus_link
Bus_link(){head=newBus_infor;
head->
next=NULL;
key=0;
}//带参数的构造函数
~Bus_link(){deletehead;
}//析构函数
//录入车票信息
voidmend();
//修改车票信息
voiddel();
//删除车票信息
intfind(Bus_infor**p,intnum,char*pn);
//查找函数
voidfound();
//查询车票信息
voidshow();
//显示车票信息
voidOrder();
//定购车票信息
voidUnorder();
//退还车票信息
voidsave();
//保存车票信息
voidbegin();
//初始化车票信息
voidclear();
//清除函数
charmainmenu();
//主菜单函数
voidsetkey(intk){key=k;
}//设置系统修改标志
intgetkey(){returnkey;
}//返回系统修改标志
Bus_infor*head;
//链表指针
intkey;
//系统修改标志
intpassword;
//管理员登陆标志
4.游客与管理员权限设定
while(password==0)//权限的设定
{
cout<
\t\t请选择用户名(1.管理员;
2.游客):
"
;
intn;
cin>
>
n;
if(!
cin)
throwstring("
数据输入错误"
);
if(n==1)
{
cout<
\n\t\t请输入管理员密码:
intm;
cin>
m;
if(m==123456)
{
password=1;
cout<
break;
}
else
\n\t\t密码输入不正确\n"
}
else
password=2;
//游客身份标志
break;
}
请选择功能按钮:
"
while(true)
cin>
s;
if(s.length()!
=1||s[0]<
'
0'
||s[0]>
8'
)//s.length()返回字符串的长度,即字符个数
输入错误,请重新选择功能按钮:
returns[0];
}
voidBus_link:
input()//不同权限的实现
if(password==1)
Bus_infor*p,*p2=NULL;
p=head;
intn=1;
//intn;
while(p->
next)
p=p->
next;
while(n)
p2=newBus_infor;
p2->
input();
p->
next=p2;
Bus_link:
setkey
(1);
\t\t\t按继续,按返回:
cin>
if(!
else
\n\t\t对不起,游客不能录入车票信息"
}
voidBus_link:
del(){
Bus_infor*p,*p2;
intnum;
charname[20];
\t\t\t输入班次号:
num;
if(!
find(&
p,num,name))
\t\t找不到你要删除的内容!
return;
}
\n\t\t\t确定删除(y/n)?
chara;
a;
if(a=='
y'
||a=='
Y'
)
p2=p->
next=p2->
deletep2;
\n\t\t对不起,游客不能删除车票信息"
5.输入时间及车次函数
intBus_infor:
Bus_No=1;
Bus_infor:
Bus_infor()
Bus_No++;
tickted=0;
~Bus_infor()
{
Bus_No--;
voidBus_infor:
input()
\t\t\t按提示输入:
输入班次:
while
(1)
Bus_order;
if(cin.fail())//判断输入的数据类型是否有错
cout<
\n班次输入错误,请重新输入:
cin.clear();
cin.get();
else
请输入车的额定座位数:
all_tickted;
\n座位数输入错误,请重新输入:
GetTime_start();
请输入行车时间:
GoHour;
\n行车时间输入错误,请重新输入:
请输入起始站与终点站:
start;
end;
是否清空售票(y/n)?
)tickted=0;
input(ifstream&
is)
is>
Bus_order>
Hour_start>
Minute_start>
start>
end>
GoHour>
all_tickted>
tickted;
is.get();
output()
Bus_order<
\t"
if(Minute_start==0)//判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式
Hour_start<
Minute_start<
0\t"
start<
end<
GoHour<
\t"
all_tickted<
if(!
GetTime())
\t此班已出发"
\t此班未出发"
output(ofstream&
os)
os<
setw(6)<
Bus_order//setw()设置输出宽度
setw(15)<
Hour_start
Minute_start
start
end
GoHour
all_tickted
tickted
GetTime_start()
请输入始发时间(时分):
while
(1)
{
Minute_start;
if(cin.fail())//判断输入的数据类型是否有错
\n时间输入错误,请重新输入:
}
elseif(Hour_start<
0||Hour_start>
24||Minute_start<
0||Minute_start>
60)
\n时间格式出错,请重新输入:
////判断时间格式是否出错,小时不能小于大于,分钟不能小于大于
}
boolBus_infor:
GetTime()
//获取当前系统时间
if(local->
tm_hour<
Hour_start||(local->
tm_hour==Hour_start&
&
local->
tm_min<
=Minute_start))
return1;
//比较当前时间与发车时间,获得班次的当前状况,返回表示班次未出发
return0;
//返回表示班次已出发
Order_tickt(intn)
tickted=tickted+n;
Unorder_tickt(intn)
tickted=tickted-n;
stringBus_infor:
Get_end()const
strings=end;
returns;
6.查询浏览数据函数
show()
客车基本信息如下:
班次发车时间起点站终点站行车时间额定载量已定票人数当前状况"
Bus_infor*p;
p=head;
while(p->
(p->
next)->
output();
p=p->
found()
intnum,n;
charname[20];
do
\t\t1:
按班次查找,2:
按终点站查找:
}while(n<
1||n>
2);
if(n==1)
\t\t\t输入班次:
if(n==2)
\t\t\t输入终点站:
name;
p,num,name))
\t\t找不到你要查找的内容!
return;
intBus_link:
find(Bus_infor**p1,intnum,char*pn)
intt=0;
(*p1)=p;
if((p->
Get_bus_order()==num||(p->
Get_end()==pn)
{
<
(p->
t=1;
}
returnt;
7.具体函数:
购退改票的操作
voidBus_link:
Order()
Bus_infor*p;
\n\t\t\t确定购票(y/n)?
charX;
X;
if(X=='
||X=='
){
intnum;
\n\t\t\t输入班次号:
if(!
p,num,"
^"
))
\n\t\t找不到你要定票的车辆的内容!
return;
(p->
GetTime()))//判断要定票的车辆是否已经出发,若已经出发则不允许定票
\n\t\t你要订票的车辆已出发!
\n\t\t\t输入要定的票数 "
intn;
if((p->
Get_tickted()+n)<
=p->
Get_all_tickted())
p->
Order_tickt(n);
elsecout<
\n\t\t对不起,没有足够的票数。
elseif(X=='
n'
N'
)cout<
谢谢使用"
elsecout<
\n\t\t\t输入字符不确定"
Bus_link:
\n\t\t对不起,订购车票请在管理员处购买"
Unorder()
\n\t\t\t确定退票(y/n)?
\n\t\t找不到你要退票的车辆的内容!
GetTime()))//判断要定票的车辆是否已经出发,若已经出发则不允许定票
\n\t\t你要退票的车辆已出发!
\n\t\t\t输入要退的票数 "
Get_tickted()-n)>
=0)
Unorder_tickt(n);
\n\t\t\t对不起,数据出错!
。
\n\t\t对不起,退还车票请在管理员处退还"
save()
ofstreamos("
bus.txt"
ios:
out);
//文件以输出方式打开
if(Bus_link:
getkey()==1)
while(p->
(p->
output(os);
p=p->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统