c++课程设计车票管理系统文档格式.docx

上传人:b****2 文档编号:6083717 上传时间:2023-05-06 格式:DOCX 页数:25 大小:20.93KB
下载 相关 举报
c++课程设计车票管理系统文档格式.docx_第1页
第1页 / 共25页
c++课程设计车票管理系统文档格式.docx_第2页
第2页 / 共25页
c++课程设计车票管理系统文档格式.docx_第3页
第3页 / 共25页
c++课程设计车票管理系统文档格式.docx_第4页
第4页 / 共25页
c++课程设计车票管理系统文档格式.docx_第5页
第5页 / 共25页
c++课程设计车票管理系统文档格式.docx_第6页
第6页 / 共25页
c++课程设计车票管理系统文档格式.docx_第7页
第7页 / 共25页
c++课程设计车票管理系统文档格式.docx_第8页
第8页 / 共25页
c++课程设计车票管理系统文档格式.docx_第9页
第9页 / 共25页
c++课程设计车票管理系统文档格式.docx_第10页
第10页 / 共25页
c++课程设计车票管理系统文档格式.docx_第11页
第11页 / 共25页
c++课程设计车票管理系统文档格式.docx_第12页
第12页 / 共25页
c++课程设计车票管理系统文档格式.docx_第13页
第13页 / 共25页
c++课程设计车票管理系统文档格式.docx_第14页
第14页 / 共25页
c++课程设计车票管理系统文档格式.docx_第15页
第15页 / 共25页
c++课程设计车票管理系统文档格式.docx_第16页
第16页 / 共25页
c++课程设计车票管理系统文档格式.docx_第17页
第17页 / 共25页
c++课程设计车票管理系统文档格式.docx_第18页
第18页 / 共25页
c++课程设计车票管理系统文档格式.docx_第19页
第19页 / 共25页
c++课程设计车票管理系统文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c++课程设计车票管理系统文档格式.docx

《c++课程设计车票管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计车票管理系统文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

c++课程设计车票管理系统文档格式.docx

private:

staticintBus_No;

//静态数据成员,统计当前所有的Bus_infor对象的数目

charstart[20];

//起点站

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;

//返回终点站的字符串

};

intBus_infor:

Bus_No=1;

Bus_infor:

Bus_infor()

Bus_No++;

tickted=0;

~Bus_infor()

{

Bus_No--;

voidBus_infor:

cout<

\t\t\t按提示输入:

endl;

输入班次:

"

while

(1)

{

cin>

Bus_order;

if(cin.fail())//判断输入的数据类型是否有错

{

cout<

\n班次输入错误,请重新输入:

cin.clear();

cin.get();

}

else

break;

}

请输入车的额定座位数:

all_tickted;

\n座位数输入错误,请重新输入:

GetTime_start();

请输入行车时间:

GoHour;

\n行车时间输入错误,请重新输入:

请输入起始站与终点站:

cin>

start;

cin>

end;

是否清空售票(y/n)?

chara;

a;

if(a=='

y'

||a=='

Y'

)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"

else

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)

cout<

\n时间格式出错,请重新输入:

////判断时间格式是否出错,小时不能小于大于,分钟不能小于大于

else

break;

}

boolBus_infor:

GetTime()

structtm*local;

time_tt;

t=time(NULL);

local=localtime(&

t);

//获取当前系统时间

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;

classBus_link

Bus_link(){head=newBus_infor;

head->

key=0;

}//带参数的构造函数

~Bus_link(){deletehead;

}//析构函数

//录入车票信息

voidmend();

//修改车票信息

voiddel();

//删除车票信息

intfind(Bus_infor**p,intnum,char*pn);

//查找函数

voidfound();

//查询车票信息

voidshow();

//显示车票信息

voidOrder();

//定购车票信息

voidUnorder();

//退还车票信息

voidsave();

//保存车票信息

voidbegin();

//初始化车票信息

voidclear();

//清除函数

voidabout();

//关于车票信息

charmainmenu();

//主菜单函数

voidsetkey(intk){key=k;

}//设置系统修改标志

intgetkey(){returnkey;

}//返回系统修改标志

Bus_infor*head;

//链表指针

intkey;

//系统修改标志

intpassword;

//管理员登陆标志

if(password==1)

Bus_infor*p,*p2=NULL;

p=head;

intn=1;

//intn;

while(p->

p=p->

while(n)

p2=newBus_infor;

p2->

p->

Bus_link:

\t\t\t按继续,按返回:

if(!

cin)

throwstring("

数据输入错误"

);

\n\t\t对不起,游客不能录入车票信息"

show()

客车基本信息如下:

endl

班次发车时间起点站终点站行车时间额定载量已定票人数当前状况"

Bus_infor*p;

(p->

next)->

output();

found()

intnum,n;

charname[20];

do

\t\t1:

按班次查找,2:

按终点站查找:

if(!

}while(n<

1||n>

2);

if(n==1)

\t\t\t输入班次:

num;

if(n==2)

\t\t\t输入终点站:

name;

find(&

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;

del()

Bus_infor*p,*p2;

intnum;

charname[20];

\t\t\t输入班次号:

if(!

p,num,name))

\t\t找不到你要删除的容!

return;

}

\n\t\t\t确定删除(y/n)?

p2=p->

next=p2->

deletep2;

\n\t\t对不起,游客不能删除车票信息"

mend()

Bus_infor*p;

charname[20];

\t\t找不到你要修改的容!

\n\t\t对不起,游客不能修改车票信息"

Order()

\n\t\t\t确定购票(y/n)?

charX;

X;

if(X=='

||X=='

){

intnum;

\n\t\t\t输入班次号:

if(!

p,num,"

^"

))

cout<

\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输入字符不确定"

\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->

\t\t\t文件已保存!

setkey(0);

\n\t\t对不起,游客无法保存车票信息"

about()

endl<

关于车票管理系统"

────────"

使用说明:

\t1.请按照操作提示输入正确的格式,以保证系统正常运行;

\t2.当使用管理员登陆时,需输入密码,可进行对系统的所有操作;

<

\t3.当使用游客身份登陆时,无需输入密码,但只能浏览和查询车票信息;

\t4.车票信息用文本文档格式,保存在本程序文件夹目录下,可以直接打开查看."

系统说明:

\t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议"

endl

\t师学院计算机科学与工程系09非师四班\t"

begin()

password=0;

Bus_infor*p,*p2;

clear();

longt;

ifstreamis("

in);

//文件以输入方式打开

is)

//文件以输出方式打开

os.close();

//关闭文件

return;

intnum=-1;

num=-1;

t=is.tellg();

//记录下当前位置

is>

is.seekg(t);

//移动到原来位置

if(num<

0)

{

is.close();

input(is);

//输入is对象容

clear()

p=head->

while(p)

p2=p;

deletep2;

charBus_link:

mainmenu()

structtm

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2