1、 信息科学与技术学院 《程序设计基本》课程设计报告 题目名称: 车票管理系统 专业班级: 电子信息工程 10级2班 学生姓名: 王彪 樊江涛 学生学号: 指引教师: 高 攀 完毕日期:-01 目 录 1 课程设计综述————————————————— 3 1.1 课程设计目——————————————— 3 1.2 课程设计题目——————————————— 3 1.3 题目规定—————————————————— 3 2 概要设计———————————
2、———————— 3 3 详细设计——————————————————— 4 3.1 流程图——————————————————— 4 3.2 源程序 ——————————————————4 4 测试 ——————————————————— 5 5 课程设计总结————————————————— 5 1.课程设计综述 1.1 课程设计目 让咱们更加进一步理解C++,使咱们一学期学习到东西得到实践. 1.2 课程设计题目 火车票管理系统 1.3 题目规定 用c++设计一种系统,能提供下列服务: (1)录入班次信息(信息用文献保存),可不定期地增长班次数据
3、 (2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次发车时间,则显示“此班已发出”提示信息)。 (3)查询路线:可按班次号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数不大于额定载量且当前系统时间不大于发车时间时才干售票,自动更新已售票人数 B:退票时,输入退票班次,当本班车未发出时才干退票,自动更新已售票人数 2 方案选取 1)算法设计阐明 由主函数进入,弹出主菜单界面,通过Switch语句选取需要功能,可以选取班次录入,浏览班次信息,查询班次信息,购票和退票以及退出系统,以完毕不同操作.其中查询班次信息中还可以由班次查询或者终
4、点站查询.整个系统文献载入用一种文献载入函数承当.
3 详细设计
3.1 流程图
开始
Main函数,进入Switch语句
班次录入子函数
浏览班次子函数
查询子函数
购买车票子函数
退订车票子函数
按照班次查询
按照终点站查询
返回到主菜单
退出程序子函数
结束
3.2 源程序
#include
5、 //欢迎子函数 void choose(); //选取子函数 void banciluru(); //班次录入子函数 void liulanbancixinxi(); //浏览班次信息子函数 void shoupiao(); //售票子函数 void tuipiao(); //退票子函数 void quit();
6、 //退出子函数 void chaxun(); //查询子函数 int loading(); //文献载入子函数 const int MAX=20; //使数组最大值可调 const int N=50; struct time //时间构造体,为了与系统时间做比较. { int hour; int minutes; }; struct ticket
7、 //车票构造体,包括车次,时间构造体,起点,终点,行车时间,额定载客量,已订票人数 { int Number; struct time Setout; char Qidian[MAX]; char Zhongdian[MAX]; float Lasttime; int Fixnumber; int Fixednumber; }car[N]; //主函数 int main() { welcome(); return 0; } //欢迎子函数 void welcome() { cout<<"______
8、"< 9、 |"< 10、 |"< 11、ose()
{
string i;
cin>>i;
if(i=="1")
banciluru();
if(i=="2")
liulanbancixinxi();
if(i=="3")
chaxun();
if(i=="4")
shoupiao();
if(i=="5")
tuipiao();
if(i=="6")
quit();
else
{
cout<<"输入有误!请在数字1-5之间重新您输入选取!"< 12、dl;
choose();
}
}
//班次录入子函数
void banciluru()
{
string t="1";
ofstream outfile;
outfile.open("班次信息.txt",ios::app);
for(int i=0;t=="1";i++)
{
cout<<"请输入需要添加火车班次:"< 13、cin>>car[i].Setout.hour;
cin>>car[i].Setout.minutes;
cout<<"请输入出发站:"< 14、ar[i].Fixnumber;
cout<<"请输入已订票人数:"< 15、否请输任意键返回主菜单)"< 16、客量"<<" "<<"已订票人数"< 17、 struct tm *now;
tval = time(NULL);
now = localtime(&tval);
if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||(now->tm_hour>car[i].Setout.hour))
cout<<"此车已发出"< 18、车次查询子函数
void Numbersearch();
void Finalsearch();
void chaxun()
{
string t;
cout<<"1.按班次查询"< 19、n();
}
}
//班次查询子函数
void Numbersearch()
{
loading();
int SearchNumber;
cout<<"请输入您需要查找班次号:"< 20、t.hour<<":"< 21、char();
welcome();
}
//终点站查询子函数
void Finalsearch()
{
int R;
R=loading();
int i;
char Address[MAX];
cout<<"请输入终点站名称:"< 22、 if((strcmp(Address,car[i].Zhongdian))==0)
cout< 23、etchar();
getchar();
welcome();
}
//购买火车票子函数
void shoupiao()
{
int R;
R=loading();
int i;
cout<<"请输入要订购车票班次:"< 24、ime_t tval;
struct tm *now;
tval = time(NULL);
now = localtime(&tval);
if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min 25、ber)++;
ofstream outfile;
outfile.open("班次信息.txt",ios::out);
for(i=0;i 26、ber< 27、 int R;
R=loading();
int i;
cout<<"请输入要退购车票班次:"< 28、 localtime(&tval);
if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min 29、out);
for(i=0;i 30、"< 31、载入子函数
int loading()
{
int i;
ifstream infile;
infile.open("班次信息.txt",ios::in);
if(!infile)
{
cout<<"请查看原文献与否存在!"< 32、r>>car[i].Setout.minutes>>car[i].Qidian>>car[i].Zhongdian>>car[i].Lasttime>>car[i].Fixnumber>>car[i].Fixednumber;
}
return i-1;
}
4 测试
主菜单:
班次录入:
浏览班次信息:
查询火车信息:
测试中发现订购和退订车票后,虽然已订购车票数事实上有增减,但不能存入到文献中及时保存.日后通过以文献覆盖办法重新录入一次文献得以解决.测试中还发现若时间是整点话,分钟0只能是一种0,由于分钟定义格式是int.,但若果改成char格式之后和系统时间比较函数将不成立.因此这个程序依然存在这样一种问题.
5 课程设计总结
通过这次课程设计,我发现我尚有好多局限性之处,尚有好多知识不能较好运用,并且题目中一种规定没有正常完毕.我觉得咱们应当花更多时间去查找资料,由于仅凭自己已学知识是无法完毕这些内容.
这次课程设计我用了9个子函数去完毕,分开完毕各个函数并验证其对的性,这样办法让我可以顺利完毕整个系统.
局限性之处尚有好多,我应当在后来学习中更加努力完善.6参照书目:
[1] 谭浩强,《C++程序设计》,北京,清华大学出版社,.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818