最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實(shí)現(xiàn)車票管理系統(tǒng)

 更新時(shí)間:2022年05月30日 11:21:38   作者:普通學(xué)長(zhǎng)  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)車票管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)車票管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

一、項(xiàng)目簡(jiǎn)介

設(shè)計(jì)一個(gè)車票管理系統(tǒng)實(shí)現(xiàn)錄入、查看班次信息,售票,退票等基本功能。設(shè)計(jì)中要求綜合運(yùn)用所學(xué)知識(shí),上機(jī)解決一些與實(shí)際應(yīng)用結(jié)合緊密的、規(guī)模較大的問題,通過分析、設(shè)計(jì)、編碼、調(diào)試等各環(huán)節(jié)

二、任務(wù)概述

(1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù)
(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總。
(3)查詢路線:可按班次號(hào)查詢 ,可按終點(diǎn)站查詢
(4)售票和退票功能
A:當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,自動(dòng)更新已售票人數(shù)
B:退票時(shí),輸入退票的班次,當(dāng)本班車未發(fā)出時(shí)才能退票,自動(dòng)更新已售票人數(shù)
【數(shù)據(jù)結(jié)構(gòu)】
本程序用到2個(gè)結(jié)構(gòu)體,方便信息的錄入,瀏覽,查詢,訂票與退票,等功能的實(shí)現(xiàn)。

三、功能展示

四、思維導(dǎo)圖

五、程序源碼

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <time.h>
#define FALSE 0?
#define TRUE 1
void mainmenu(void); //主菜單函數(shù)
void InputMessage(void);//輸入信息函數(shù)
void ShowMessage(void);//顯示信息函數(shù)
void SearchMessage(void);//查詢信息函數(shù)
void searchbynumber();//根據(jù)班次號(hào)查詢函數(shù)
void searchbyaddress();//根據(jù)終點(diǎn)站查詢的函數(shù)
void TicketManagement(void);//選擇訂票/退票的函數(shù)
void TicketOrder();//訂票實(shí)現(xiàn)函數(shù)
void TicketDelete();//退票實(shí)現(xiàn)函數(shù)
int FLAG;//標(biāo)志
struct time//時(shí)間結(jié)構(gòu)體
{
int hour;
int minutes;
};
struct ticket//車票的結(jié)構(gòu)體
{
int carnumber;//車次
struct time setout;
char beginpoint[20];//起點(diǎn)站
char endpoint[20];//終點(diǎn)站
float lasttime;//行車時(shí)間
int fixnumber;//額定載量
int fixednumber;//已定票的人數(shù)
}car[4];
int main()
{int FLAG=FALSE;
do{mainmenu(); }while(FLAG=FALSE);
}
void mainmenu()
{char functioNnumber;
printf(" 車票管理系統(tǒng)\n\n");
printf("=============================================================\n"); printf(" 1.錄入班次信息\t\n");
printf(" 2.瀏覽班次信息\t\n");
printf(" 3.查詢行車路線\t\n");
printf(" 4.售票與退票系統(tǒng)\t\n");
printf(" 5.退出該系統(tǒng)\t\n");
printf("=============================================================\n"); printf("請(qǐng)選擇你所需要的功能:");
scanf("%s",&functioNnumber);switch(functioNnumber)
{
case '1':
{system("cls");InputMessage();
printf("\n按任意鍵返回主菜單\n");
getchar();
getchar();
mainmenu();
};break;
case '2':{ system("cls");ShowMessage();
printf("\n按任意鍵返回主菜單\n");
getchar();
getchar();
mainmenu();
};break;
case '3':
{ system("cls");SearchMessage();
printf("\n按任意鍵返回主菜單\n");
getchar();
getchar();
mainmenu();
};break;
case '4':
{system("cls");TicketManagement();
printf("\n按任意鍵返回主菜單\n");
getchar();
getchar();
mainmenu();
};break;
case '5':FLAG=TRUE;
printf("*****************************感謝使用本系統(tǒng)***********************************************"); exit(0);
break;
default:
{
printf("對(duì)不起你的輸入有誤,請(qǐng)確保你的輸入為1-5.\n"); printf("按任意鍵返回主菜單\n");
getchar();
getchar();?
mainmenu();
};
};
FLAG=FALSE;
}
void InputMessage()
{int i;
for(i=0;i<4;i++)//一次錄入四班車
{printf("請(qǐng)輸入班次號(hào):\n");
scanf("%d",&car[i].carnumber);
printf("請(qǐng)輸入發(fā)車時(shí)間:\n");
scanf("%d %d",&car[i].setout.hour,&car[i].setout.minutes);
printf("請(qǐng)輸入起點(diǎn)站:\n");
scanf("%s",car[i].beginpoint);
printf("請(qǐng)輸入終點(diǎn)站:\n");
scanf("%s",car[i].endpoint);
printf("請(qǐng)輸入行車時(shí)間:\n");
scanf("%f",&car[i].lasttime);
printf("請(qǐng)輸入額定載量:\n");
scanf("%d",&car[i].fixnumber);
printf("請(qǐng)輸入已定票人數(shù):\n");
scanf("%d",&car[i].fixednumber);
}
for(i=0;i<4;i++)
{printf("班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已訂票人數(shù)\n"); printf("%d\t%d:%d\t",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t\n",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);
}}
void ShowMessage()
{int i;
time_t tval;
struct tm*now;
tval=time(NULL);
now=localtime(&tval);for(i=0;i<4;i++)
{if((now->tm_hour==car[i].setout.hour&&now->tm_min<car[i].setout.minutes)||(now->tm_hour<car[i].setout.hour))
{printf("%d\t%d:%d\t",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t\n",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);}
else {printf("此車已出發(fā)。\n");
printf("%d\t%d:%d\t",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t\n",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);}
}}
void SearchMessage()
{char functionnumber;
printf("查詢子菜單:\n");
printf("=========================================================================\n");
printf(" 1.按班次號(hào)查詢\n");
printf(" 2.按終點(diǎn)站查詢\n");
printf(" 3.返回主菜單\n");
printf("=========================================================================\n");
printf("請(qǐng)選擇你需要的功能:");
scanf("%s",&functionnumber);
switch(functionnumber)
{
case '1':system("cls");searchbynumber();break;
case '2':system("cls");searchbyaddress();break;
case '3':system("cls");mainmenu();break;
default:printf("輸入錯(cuò)誤,請(qǐng)確保你的輸入為1-3.\n");
printf("請(qǐng)按任意鍵返回查詢子菜單\n");
getchar();
getchar();
SearchMessage();
}
}
void searchbynumber()
{int searchnumber;
int s;
printf("請(qǐng)輸入你要查詢的班次號(hào):");
scanf("%d",&searchnumber);
if(searchnumber>=1&&searchnumber<=4)
{s=searchnumber-1;
printf("班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已訂票人數(shù)\n");printf("%d\t%d:%d\t",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t\n",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber);}
else printf("對(duì)不起,沒有這趟車.");
}
void searchbyaddress()
{int i;
char address[20];
printf("請(qǐng)輸入終點(diǎn)站名:");
scanf("%s",address);
for(i=0;i<=4;i++)
if(strcmp(address,car[i].endpoint)==0)
{printf("%d\t%d:%d\t",car[i].carnumber,car[i].setout.hour,car[i].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t\n",car[i].beginpoint,car[i].endpoint,car[i].lasttime,car[i].fixnumber,car[i].fixednumber);
}
}
void TicketManagement()
{
char functionnumber;
printf("==========================================================================\n");
printf(" 1.訂票.\n");
printf(" 2.退票.\n");
printf(" 3.返回主菜單.\n");
printf("==========================================================================\n");
printf("請(qǐng)選擇你需要的功能:\n");
scanf("%s",&functionnumber);
switch(functionnumber)
{case '1':system("cls");
TicketOrder();break;
case '2':system("cls");
TicketDelete();
break;
case '3':system("cls");
{mainmenu();}break;
default:
{printf("輸入錯(cuò)誤,請(qǐng)確保你的輸入為1--3.\n");
printf("按任意鍵返回子菜單.\n");
getchar();getchar();
TicketManagement();
}
}
}
void TicketOrder()
{int i;
int s;
printf("請(qǐng)輸入要訂購的車票的班次:\n");
scanf("%d",&i);
s=i-1;
if(s<0||s>3)
{printf("對(duì)不起,沒有這趟車,請(qǐng)查詢后再訂票.\n");
printf("按任意鍵返回車票管理菜單。");
getchar();
getchar();
TicketManagement();
}
else
{
time_t tval;
struct tm*now;
tval=time(NULL);
now=localtime(&tval);
if((now->tm_hour==car[s].setout.hour&&now->tm_min<car[s].setout.minutes)||(now->tm_hour<car[s].setout.hour))
{if(car[s].fixednumber<car[s].fixnumber)
{car[s].fixednumber++;
printf("你的訂票成功,請(qǐng)按時(shí)上車,謝謝使用!\n");
}else printf("對(duì)不起,今天的這趟車的票已賣完,請(qǐng)明天再來,謝謝合作!\n");
}else printf("對(duì)不起,今天的這趟車已出發(fā),請(qǐng)明天再來,謝謝合作!\n");
}
printf("班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已訂票人數(shù)\n");
printf("%d\t%d:%d\t",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber);
printf("按任意鍵返回主菜單。\n");getchar();
getchar();
}
void TicketDelete()
{int i;
int s;
printf("請(qǐng)輸入要退購的車票的班次:\n");
scanf("%d",&i);
s=i-1;
if(s<0||s>3)
{printf("對(duì)不起,沒有這趟車,請(qǐng)查詢后再退票.\n");
printf("按任意鍵返回車票管理菜單。");
getchar();
getchar();
TicketManagement();
}
else
{
time_t tval;
struct tm*now;
tval=time(NULL);
now=localtime(&tval);
if((now->tm_hour==car[s].setout.hour&&now->tm_min<car[s].setout.minutes)||(now->tm_hour<car[s].setout.hour))
{if(car[s].fixednumber<car[s].fixnumber)
{car[s].fixednumber--;
printf("退票成功,謝謝使用!\n");
}else printf("對(duì)不起,今天的這趟車的票尚未賣出,無法完成退票!\n");
}else printf("對(duì)不起,今天的這趟車已出發(fā),無法完成退票!\n");
}
printf("班次\t發(fā)車時(shí)間\t起點(diǎn)\t終點(diǎn)\t行車時(shí)間(小時(shí))\t額定載量\t已訂票人數(shù)\n");
printf("%d\t%d:%d\t",car[s].carnumber,car[s].setout.hour,car[s].setout.minutes);
printf("%s\t%s\t%f\t%d\t%d\t",car[s].beginpoint,car[s].endpoint,car[s].lasttime,car[s].fixnumber,car[s].fixednumber);`在這里插入代碼片`
printf("按任意鍵返回主菜單。\n");
getchar();
getchar();
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言的字符空間與非字符空間你了解嗎

    C語言的字符空間與非字符空間你了解嗎

    這篇文章主要介紹了C語言的字符空間與非字符空間,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • C/C++中typedef的用法大全

    C/C++中typedef的用法大全

    typedef用法一共七種,分別是:為基本數(shù)據(jù)類型起別名、為結(jié)構(gòu)體起別名、為指針類型起別名、為數(shù)組類型起別名、為枚舉類型起別名、為模版函數(shù)起別名。本文就來分別講講這7個(gè)用法的具體實(shí)現(xiàn)吧
    2023-04-04
  • OpenCV 圖像金字塔的實(shí)現(xiàn)示例

    OpenCV 圖像金字塔的實(shí)現(xiàn)示例

    本文將結(jié)合實(shí)例代碼,介紹OpenCV 圖像金字塔,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • C語言中遞歸的實(shí)際應(yīng)用與經(jīng)典問題

    C語言中遞歸的實(shí)際應(yīng)用與經(jīng)典問題

    函數(shù)以及函數(shù)的遞歸調(diào)用是學(xué)習(xí)C語言必須要掌握的內(nèi)容,且遞歸作為經(jīng)典的算法思想被廣泛應(yīng)用于程序設(shè)計(jì)中,下面這篇文章主要給大家介紹了關(guān)于C語言中遞歸的實(shí)際應(yīng)用與經(jīng)典問題的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • C++設(shè)計(jì)模式編程中的迭代器模式應(yīng)用解析

    C++設(shè)計(jì)模式編程中的迭代器模式應(yīng)用解析

    這篇文章主要介紹了C++設(shè)計(jì)模式編程中的迭代器模式應(yīng)用解析,迭代器模式注重對(duì)集合中元素的遍歷而不使其暴露,需要的朋友可以參考下
    2016-03-03
  • QT6中添加串口模塊SerialPort的實(shí)現(xiàn)

    QT6中添加串口模塊SerialPort的實(shí)現(xiàn)

    本文主要介紹了QT6中添加串口模塊SerialPort的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • C++快速調(diào)用DeepSeek API的完整指南

    C++快速調(diào)用DeepSeek API的完整指南

    最近,DeepSeek的API引起了我的興趣,它提供了強(qiáng)大的對(duì)話生成能力,可以用于多種應(yīng)用場(chǎng)景,雖然DeepSeek官方提供了詳細(xì)的API文檔,但遺憾的是,目前沒有專門針對(duì)C++的調(diào)用示例,所以,本文給大家實(shí)現(xiàn)一個(gè)C++版本的調(diào)用示例,需要的朋友可以參考下
    2025-03-03
  • C++ 中const修飾虛函數(shù)實(shí)例詳解

    C++ 中const修飾虛函數(shù)實(shí)例詳解

    這篇文章主要介紹了C++ 中const修飾虛函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++中的HTTP協(xié)議問題

    C++中的HTTP協(xié)議問題

    這篇文章主要介紹了C++中的HTTP協(xié)議問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • C++ 中約瑟夫環(huán)替換計(jì)數(shù)器m(數(shù)組解決)

    C++ 中約瑟夫環(huán)替換計(jì)數(shù)器m(數(shù)組解決)

    這篇文章主要介紹了C++ 中約瑟夫環(huán)替換計(jì)數(shù)器m(數(shù)組解決)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評(píng)論

凯里市| 德阳市| 蓝山县| 绥江县| 曲阜市| 布拖县| 龙游县| 寻乌县| 洛扎县| 麟游县| 莎车县| 鄯善县| 彭水| 鸡泽县| 忻城县| 巴中市| 陇西县| 思茅市| 达孜县| 澜沧| 安国市| 南部县| 河源市| 博爱县| 乐平市| 逊克县| 济阳县| 金阳县| 花莲县| 嘉黎县| 灵丘县| 哈巴河县| 康乐县| 孝义市| 双柏县| 普陀区| 娱乐| 新龙县| 奇台县| 衡阳市| 搜索|