c++课程设计车票管理系统.docx

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

c++课程设计车票管理系统.docx

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

c++课程设计车票管理系统.docx

c++课程设计车票管理系统

voidBus_link:

:

input()

{

Bus_infor*p,*p2=NULL;

p=head;

intn;

while(p—〉next)

p=p->next;

while(n)

p2=newBus_infor;

p2->input();

p—〉next=p2;

p2—〉next=NULL;

p=p-〉next;

Bus_link:

:

setkey

(1);

cout〈〈"\t\t\t按1继续,按0返回:

";

cin>>n;

}

}

 

#include〈iostream>//数据流输入/输出

#include〈fstream>//文件输入/输出

#include

#include//参数化输入/输出

#include〈time。

h>//时间库函数

usingnamespacestd;//命名空间

classBus_infor

{

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_infor()

Bus_No——;

voidBus_infor:

:

input()

cout〈〈”\t\t\t按提示输入:

”<

cout〈〈”输入班次:

”;

while

(1)

{

cin>〉Bus_order;

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

{

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

";

cin。

clear();

cin。

get();

else

break;

}

cout<〈"请输入车的额定座位数:

";

while

(1)

{

cin>>all_tickted;

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

cout<〈”\n座位数输入错误,请重新输入:

";

cin。

clear();

cin。

get();

else

break;

GetTime_start();

cout〈<”请输入行车时间:

";

while

(1)

cin〉〉GoHour;

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

cout〈<”\n行车时间输入错误,请重新输入:

”;

cin.clear();

cin。

get();

else

break;

cout<<”请输入起始站与终点站:

”;

cin〉〉start;cin>>end;

cout〈<"是否清空售票(y/n)?

”;

chara;cin〉>a;

if(a==’y'||a==’Y’)tickted=0;

}

voidBus_infor:

:

input(ifstream&is)

is〉〉Bus_order〉〉Hour_start〉〉Minute_start〉>start〉>end>>GoHour〉>all_tickted〉〉tickted;

is。

get();

}

voidBus_infor:

output()

cout<<”"<〈Bus_order<〈”\t”;

if(Minute_start==0)//判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式

cout<

"〈〈Minute_start〈<"0\t";

}

else

{

cout〈

"〈〈Minute_start<<”\t”;

}

cout<〈start〈〈"\t”〈〈end〈<”\t”〈〈GoHour〈<”\t”<〈all_tickted<<"\t”<

if(!

GetTime())

cout<〈"\t此班已出发"<

else

cout〈<"\t此班未出发"<

voidBus_infor:

:

output(ofstream&os)

{

os〈〈setw(6)〈〈Bus_order//setw()设置输出宽度

<

<〈setw(15)<〈start

〈〈setw(15)<

〈〈setw(15)<

<〈setw(15)<〈tickted

〈〈endl;

}

voidBus_infor:

GetTime_start()

cout〈<"请输入始发时间(时分):

";

while

(1)

cin>〉Hour_start>>Minute_start;

if(cin。

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

{

cout<〈"\n时间输入错误,请重新输入:

”;

cin.clear();

cin。

get();

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_hourtm_hour==Hour_start&&local—〉tm_min<=Minute_start))

return1;//比较当前时间与发车时间,获得班次的当前状况,返回表示班次未出发

else

return0;//返回表示班次已出发

}

voidBus_infor:

:

Order_tickt(intn)

{

tickted=tickted+n;

}

voidBus_infor:

:

Unorder_tickt(intn)

tickted=tickted—n;

}

stringBus_infor:

Get_end()const

{

strings=end;

returns;

}

classBus_link

{

public:

Bus_link(){head=newBus_infor;head->next=NULL;key=0;}//带参数的构造函数

~Bus_link(){deletehead;}//析构函数

voidinput();//录入车票信息

voidmend();//修改车票信息

voiddel();//删除车票信息

intfind(Bus_infor**p,intnum,char*pn);//查找函数

voidfound();//查询车票信息

voidshow();//显示车票信息

voidOrder();//定购车票信息

voidUnorder();//退还车票信息

voidsave();//保存车票信息

voidbegin();//初始化车票信息

voidclear();//清除函数

voidabout();//关于车票信息

charmainmenu();//主菜单函数

voidsetkey(intk){key=k;}//设置系统修改标志

intgetkey(){returnkey;}//返回系统修改标志

private:

Bus_infor*head;//链表指针

intkey;//系统修改标志

intpassword;//管理员登陆标志

};

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;

p2->next=NULL;

p=p-〉next;

Bus_link:

setkey

(1);

cout<〈"\t\t\t按继续,按返回:

”;

cin>>n;

if(!

cin)

throwstring("数据输入错误");

}

else

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

}

voidBus_link:

show()

{

cout<〈"客车基本信息如下:

”〈〈endl

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

Bus_infor*p;

p=head;

while(p-〉next)

{

(p->next)—〉output();

p=p->next;

}

voidBus_link:

found()

{

Bus_infor*p;

intnum,n;

charname[20];

do

{

cout<<”\t\t1:

按班次查找,2:

按终点站查找:

";

cin>〉n;

if(!

cin)

throwstring("数据输入错误");

}while(n〈1||n〉2);

if(n==1)

cout〈<”\t\t\t输入班次:

";

cin>〉num;

if(!

cin)

throwstring("数据输入错误");

}

if(n==2)

cout<〈”\t\t\t输入终点站:

”;

cin〉>name;

}

if(!

find(&p,num,name))

{

cout〈〈”\t\t找不到你要查找的内容!

"〈

return;

}

intBus_link:

:

find(Bus_infor**p1,intnum,char*pn)

Bus_infor*p;

p=head;

intt=0;

while(p->next)

{

(*p1)=p;

if((p->next)->Get_bus_order()==num||(p—>next)-〉Get_end()==pn)

{

cout<〈"客车基本信息如下:

”〈

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

(p->next)—〉output();

t=1;

p=p-〉next;

}

returnt;

voidBus_link:

del()

if(password==1)

Bus_infor*p,*p2;

intnum;charname[20];

cout<〈”\t\t\t输入班次号:

”;

cin>〉num;

if(!

cin)

throwstring(”数据输入错误");

if(!

find(&p,num,name))

cout〈<”\t\t找不到你要删除的内容!

”〈

return;

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

”;

chara;cin>〉a;

if(a==’y’||a==’Y')

{

p2=p—〉next;

p—>next=p2—〉next;

deletep2;

Bus_link:

:

setkey

(1);

}

}

else

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

}

voidBus_link:

:

mend()

if(password==1)

Bus_infor*p;

intnum;

charname[20];

cout〈<"\t\t\t输入班次号:

”;

cin〉〉num;

if(!

cin)

throwstring("数据输入错误”);

if(!

find(&p,num,name))

{

cout<<"\t\t找不到你要修改的内容!

”<〈endl;

return;

}

(p-〉next)—>input();

Bus_link:

:

setkey

(1);

}

else

cout<<"\n\t\t对不起,游客不能修改车票信息”<〈endl;

}

voidBus_link:

Order()

if(password==1)

{

Bus_infor*p;

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

”;

charX;cin〉>X;

if(X==’y’||X==’Y'){

intnum;

cout<<”\n\t\t\t输入班次号:

”;

cin〉〉num;

if(!

cin)

throwstring(”数据输入错误”);

if(!

find(&p,num,”^”))

cout<〈"\n\t\t找不到你要定票的车辆的内容!

”<

return;

p=p—>next;

if(!

(p->GetTime()))//判断要定票的车辆是否已经出发,若已经出发则不允许定票

{

cout〈<”\n\t\t你要订票的车辆已出发!

”<

return;

}

cout<<”\n\t\t\t输入要定的票数 ”;

intn;cin>〉n;

if(!

cin)

throwstring("数据输入错误”);

if((p—>Get_tickted()+n)〈=p—>Get_all_tickted())

p-〉Order_tickt(n);

elsecout<〈”\n\t\t对不起,没有足够的票数。

”<

elseif(X=='n'||X=='N’)cout<〈”谢谢使用”〈

elsecout〈〈"\n\t\t\t输入字符不确定"〈〈endl;

Bus_link:

:

setkey

(1);

else

cout〈〈”\n\t\t对不起,订购车票请在管理员处购买”〈〈endl;

}

voidBus_link:

Unorder()

{

if(password==1)

Bus_infor*p;

cout〈〈"\n\t\t\t确定退票(y/n)?

”;

charX;cin>〉X;

if(X==’y'||X=='Y’){

intnum;

cout〈<”\n\t\t\t输入班次号:

";

cin>>num;

if(!

cin)

throwstring("数据输入错误");

if(!

find(&p,num,”^”))

{

cout<<”\n\t\t找不到你要退票的车辆的内容!

”<

return;

}

if(!

(p—>GetTime()))//判断要定票的车辆是否已经出发,若已经出发则不允许定票

cout〈〈”\n\t\t你要退票的车辆已出发!

”<〈endl;

return;

cout<<"\n\t\t\t输入要退的票数 ";

intn;cin〉〉n;

if(!

cin)

throwstring("数据输入错误");

p=p-〉next;

if((p—〉Get_tickted()—n)>=0)

p->Unorder_tickt(n);

elsecout<<”\n\t\t\t对不起,数据出错!

.”<〈endl;

}

elseif(X=='n’||X=='N')cout〈<”谢谢使用"〈〈endl;

elsecout<<”\n\t\t\t输入字符不确定"〈〈endl;

Bus_link:

setkey

(1);

}

else

cout<〈”\n\t\t对不起,退还车票请在管理员处退还”<〈endl;

}

voidBus_link:

:

save()

{

if(password==1)

{

Bus_infor*p;

p=head;

ofstreamos(”bus.txt”,ios:

:

out);//文件以输出方式打开

if(Bus_link:

:

getkey()==1)

while(p->next)

(p-〉next)—〉output(os);

p=p—>next;

cout〈〈"\t\t\t文件已保存!

”<

Bus_link:

:

setkey(0);

}

else

cout<〈”\n\t\t对不起,游客无法保存车票信息”〈〈endl;

voidBus_link:

:

about()

cout〈〈endl〈〈”关于车票管理系统”<

cout〈〈”使用说明:

”〈〈endl

<〈”\t1。

请按照操作提示输入正确的格式,以保证系统正常运行;"<〈endl

〈<"\t2。

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

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

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

"〈

<〈”系统说明:

"〈〈endl

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

〈〈"\t漳州师范学院计算机科学与工程系09非师四班\t”〈〈endl<

}

voidBus_link:

begin()

password=0;

Bus_infor*p,*p2;

p=head;

clear();

longt;

ifstreamis(”bus.txt",ios:

:

in);//文件以输入方式打开

if(!

is)

{

ofstreamos("bus。

txt",ios:

out);//文件以输出方式打开

os.close();//关闭文件

return;

intnum=-1;

while

(1)

num=-1;

t=is.tellg();//记录下当前位置

is〉〉num;

is.seekg(t);//移动到原来位置

if(num〈0)

is。

close();

return;

p2=newBus_infor;

p2->input(is);//输入is对象内容

p->next=p2;

p2—>next=NULL;

p=p-〉next;

}

}

voidBus_link:

clear()

Bus_infor*p,*p2;

p=head—〉next;

while(p)

{

p2=p;

p=p—>next;

deletep2;

}

}

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 ────欢迎使用车票管理系统────"〈

cout

〈<"┌─────────────────────────┐”<〈endl

〈〈”│┌──────────────────────┐│"<

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

当前位置:首页 > 工程科技 > 能源化工

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

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