沈阳工程学院课程设计报告 第三章系统分析与设计
switch(functionNumber) {
case '1':SearchByNumber();break; /*进入按班次查询 */ case '2':SearchByAddress();break; /*进入按终点查询 */ case '3': /*返回主菜单 */ getchar(); mainmenu(); break; default:
printf(\输入错误,请确保你的输入为1--3.\\n\输入操作有误提示*/ printf(\按任意键回查询子菜单......\\n\返回并重新输入 */
getchar(); SearchMenu(); } }
void SearchByNumber(void) {
int SearchNumber;
printf(\请输入要查询的班次号:\ scanf(\
printf(\班次\\t发车时间\\t起点\\t终点\\t行车时间(小时)\\t额定载量\\t已定票人数\\n\
printf(\SetOut.hour,train[SearchNumber-1].SetOut.minutes);
printf(\%d\\t\\t%d\\n\SearchNumber-1].TerminalPoint,train[SearchNumber-1].LastTime,train[SearchNumber-1].Edingzailiang,train[SearchNumber-1].Yidingpiaorenshu);
}
void SearchByAddress(void) {
int i;
char Address[MAX];
printf(\请输入终点站的名称:\ scanf(\
printf(\班次\\t发车时间\\t起点\\t终点\\t行车时间(小时)\\t额定载量\\t已定票人数\\n\
for(i = 0;i < RecordNumber;i++) {
16
沈阳工程学院课程设计报告 第三章系统分析与设计
//***************对比终点站记录,找到并输出********** if((strcmp(Address,train[i].TerminalPoint)) == 0)
{
printf(\t.minutes);
printf(\%d\\t\\t%d\\n\int,train[i].LastTime,train[i].Edingzailiang,train[i].Yidingpiaorenshu);
} }
}
功能实现图如图4-6所示。
图4-4 列车基本信息管理
(4)订票与退票管理
订票管理是在原有的火车售票系统中查找到要订购的车票信息,如果有票,将该车票的发车时间与现在的时间做以比较,若车票的发车时间超过现在的时间,显示已发车;若没超过现在的时间,则可以实现订票。
退票管理是在原有的火车订票系统中查找到要退票的车票信息,将该车票的发车时间与现在的时间做以比较,若车票的发车时间超过现在的时间,显示已发车,不能完成退票;若没超过现在的时间,则可以实现退票。其流程图如下。
17
沈阳工程学院课程设计报告 第三章系统分析与设计
图2.2订票管理流程图
图3-11 退票管理流程图
/***************************************** 票务管理函数
*****************************************/
18
沈阳工程学院课程设计报告 第三章系统分析与设计
void TicketManagement(void) {
char functionNumber;
system(\ printf(\订票与退票菜单\\n\
printf(\┏━━━━━━━━━━━━━━━━━━┓\\n\
printf(\┃ 1.订票 ┃ \\t\\n\ printf(\┃ 2.退票 ┃\\t\\n\ printf(\┃ 3.返回主菜单 ┃\\t\\n\ printf(\┗━━━━━━━━━━━━━━━━━━┛\\n\ printf(\选择你需要的功能:\ scanf(\ switch(functionNumber) {
case '1':TicketOrder();break; case '2':TicketDelete();break; case '3': {
getchar(); mainmenu(); }
break; default: {
printf(\输入错误,请确保你的输入为1--3.\\n\ printf(\按任意键返回......\\n\ getchar();
TicketManagement(); } } }
void TicketOrder(void) {
int i;
time_t rawtime;
struct tm * timeinfo;
printf(\请输入要订购的车票的班次:\ scanf(\ printf(\
if(i < 1 || i > RecordNumber+1)
19
沈阳工程学院课程设计报告 第三章系统分析与设计
{
printf(\对不起,今天没有这趟车,请明天再来,谢谢使用!\\n\ printf(\按任意键回主菜单......\\n\ getchar(); mainmenu();
}
time(&rawtime);
timeinfo=localtime(&rawtime);
printf(\
if((timeinfo->tm_hour == train[i-1].SetOut.hour&&timeinfo->tm_min < train[i-1].SetOut.minutes) || (timeinfo->tm_hour < train[i-1].SetOut.hour))
{
if(train[i-1].Yidingpiaorenshu < train[i-1].Edingzailiang) {
(train[i-1].Yidingpiaorenshu)++;
printf(\你的订票成功,请按时上车,谢谢使用!\\n\ }
else printf(\对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!\\n\ }
else printf(\对不起,今天的这趟车已发出,请明天再来,谢谢合作!\\n\
printf(\班次\\t发车时间\\t起点\\t终点\\t行车时间(小时)\\t额定载量\\t已定票人数\\n\
printf(\
ain[i-1].SetOut.minutes);
printf(\
.TerminalPoint,train[i-1].LastTime,train[i-1].Edingzailiang,train[i-1].Yidingpiaorenshu);
printf(\按任意键回主菜单......\\n\
getchar(); getchar(); mainmenu();
}
void TicketDelete(void) {
int i;
printf(\请输入要退购的车票的班次:\ scanf(\
if( i < 1 || i > RecordNumber + 1 ) {
printf(\对不起,今天没有这趟车,无法完成退票.谢谢使用!\\n\
20