加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

C語言程序設(shè)計(jì)-火車訂票系統(tǒng)

09/05 11:03
1663
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

任務(wù)要求:

創(chuàng)建一個(gè)火車票管理系統(tǒng),功能包括:

(1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù)
(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過了某班次的發(fā)車時(shí)間,則顯示“此班已發(fā)出”的提示信息)。
(3)查詢路線(起點(diǎn)、終點(diǎn)):可按班次號(hào)查詢 ,可按終點(diǎn)站查詢

(4)增加及修改班次和刪除班次信息
(5)售票和退票功能

系統(tǒng)設(shè)計(jì):

一.車票管理系統(tǒng)的功能為:1.錄入班次2. 顯示所有班次3.查詢班次4.增加班次?? 5.售票6.退票7.修改班次8.刪除班次9.退出

車票管理系統(tǒng)軟件的功能模塊有:

(1)提供菜單界面,方便用戶對(duì)程序個(gè)功能進(jìn)行選擇,選擇要實(shí)現(xiàn)的功能按enter鍵進(jìn)入該功能。

(2)接受用戶輸入的功能項(xiàng),按enter鍵結(jié)束輸入并將進(jìn)入該系統(tǒng),其需要的結(jié)果顯示出來,方便用戶查看。

(3)完成每次功能,可保存用戶的修改的信息,及時(shí)更新文件信息。下次查詢時(shí)內(nèi)容為最新信息。實(shí)時(shí)的信息更新對(duì)比等。

一個(gè)名TICKET的結(jié)構(gòu)體進(jìn)行定義,包括num[10] hour[3]; min[3] from[10]; to[10]; hours max; now;等結(jié)構(gòu)體成員。

然后對(duì)調(diào)用函數(shù)進(jìn)行定義。int system_time()系統(tǒng)時(shí)間,void NewMessage()???????????? 新紀(jì)錄錄入函數(shù),void ShowTable1() void ShowTable2(int i) 線框調(diào)用1和2不用每次輸,void Display()顯示所有函數(shù),void add()增加記錄,void save()????????? 保存函數(shù),void save()保存函數(shù),void load() 按班次查詢函數(shù),void search()?????? 查詢函數(shù),void change()修改函數(shù),void quit()退出函數(shù),void Ticketorder()??????? 售票函數(shù),void Ticketdelete()刪除函數(shù),int menu_select()菜單函數(shù), int whether(int)判斷時(shí)間是否超出函數(shù),void? find(char s1[],char s2[])???????? 查詢函數(shù)★//s1為班次//s2為終點(diǎn)站,void deletemessage()刪除函數(shù),int findnum(char s1[])班次查詢函數(shù),void get(int,int)修改及增加班次,char *menu[]菜單函數(shù)。

該系統(tǒng)將這些信息均放在文件d:車票管理系統(tǒng)0中。

最后定義main()函數(shù),利用函數(shù)調(diào)用,實(shí)現(xiàn)程序的各種功能。將其放在系統(tǒng)文件d:車票管理系統(tǒng)0中。

程序分為多個(gè)小模塊,通過調(diào)用實(shí)現(xiàn)各種功能,增強(qiáng)了程序的可建設(shè)性。

程序把每種功能分開實(shí)現(xiàn),更簡(jiǎn)單,實(shí)用程序更易理解。

程序測(cè)試:

3.0? 菜單界面

圖3-1菜單界面

如上圖所示,該程序?yàn)橛脩籼峁┎藛谓缑?,用戶可以?duì)程序的各種功能進(jìn)行選擇,方便用戶使用。選擇1-9并按enter鍵進(jìn)行操作。如選擇出錯(cuò),系統(tǒng)將提出警告,并提醒用戶重新進(jìn)行選擇。

    1. ?錄入班次功能

圖3-1- 1第一次輸入時(shí)的界面

圖3-1- 2第二次輸入時(shí)的界面

如上圖所示,該功能實(shí)現(xiàn)錄入班次信息。選擇1按enter鍵進(jìn)入該功能,程序提醒用戶輸入車次.發(fā)車時(shí)間.起始站.終點(diǎn)站.行車時(shí)間.額定載量.已售票數(shù),輸入完畢后按enter鍵將完成錄入班次結(jié)果,同時(shí)程序?qū)⒃俅翁嵝延脩暨M(jìn)行新的選擇。而第二次輸入時(shí)提醒已經(jīng)輸過,不能在加。

3.2查詢所有班次功能

圖? 3-2-1查詢班次界面

圖3-2-2選擇查詢方式的界面

該功能將實(shí)現(xiàn)程序運(yùn)行班次的查詢。選擇3并按enter鍵將實(shí)現(xiàn)該功能。分班次和終點(diǎn)站兩種方式查詢。

3.3增加班次功能

圖3-2-3增加班次功能界面

圖3-2-4增加班次后界面

該功能將增加班次信息,幫助用戶更新班次信息。選擇4并按enter鍵將實(shí)現(xiàn)該功能,再按提示輸入就行。按任意鍵返回主菜單。

3.3售票功能

圖3-3-1選擇售票功能界面

圖3-3-2選擇售票后的界面

圖3-3-3訂票的界面

選擇5按enter鍵實(shí)現(xiàn)該功能,按任意鍵關(guān)閉程序。買票程序可提示買票成功否,且自動(dòng)判斷是否可賣。

3.4退票功能

圖3-4-1退票界面

選擇6按enter鍵實(shí)現(xiàn)該功能,按任意鍵關(guān)閉程序。退票程序可提示退票成功否,且自動(dòng)判斷是否可退。

3.5修改班次功能

圖3-5-1修改界面

選擇7按enter鍵實(shí)現(xiàn)該功能,按任意鍵關(guān)閉程序。按提示操作修改班次。

3.6? 刪除班次功能

圖3-6-1刪除界面

3.7 ?退出功能

圖3-7-1退出界面

該功能可退出系統(tǒng),選擇9按enter鍵實(shí)現(xiàn)該功能

部分程序:

#include<stdio.h>? ???????????? ///宏定義函數(shù)

#include<string.h>??????????? //串操作及內(nèi)存操作函數(shù)

#include<stdlib.h>???????????? /調(diào)用系統(tǒng)函數(shù)

#include<time.h>????? ?????????///時(shí)間庫函數(shù)???

#include<conio.h>???????????????? ///輸入輸出函數(shù)

#define N 1000??????????????????? //宏定義多條記錄

typedef struct TICKET??????????? 定義新結(jié)構(gòu)體TICKET

{

?? char num[10];????????????????? //車次編號(hào)

?? char hour[3];?????????????? //時(shí)間,,小時(shí)

?? char min[3];?????????????? //分鐘

?? char from[10];??????? //起始站

?? char to[10];???????? //終點(diǎn)站

?? float hours;????????? //車程實(shí)際時(shí)間

?? int max;??????????? //最大車載容量

?? int now;?????????? //已售票數(shù)

}CLASS;

int class_num=0;????????????? ///初始班次總數(shù)為0?????

CLASS records[N];??????????? // 多條記錄

int system_time();?? //系統(tǒng)時(shí)間

void NewMessage();????? ???????//新紀(jì)錄*錄入函數(shù)******

void ShowTable1();???????? //線框調(diào)用1,,,不用每次輸?

void ShowTable2(int i);???? //線框調(diào)用2,,,不用每次輸???

void Display();?????????? //顯示所有函數(shù)

void add();???????????? //增加記錄

void save();????????? //?? 保存函數(shù)

void load();????????????? // 按班次查詢函數(shù)

void search();??????? //查詢函數(shù)

void change();???? //修改函數(shù)**

void quit();????????? // //退出函數(shù)******

void Ticketorder();??????? //??? //*售票函數(shù)***

void Ticketdelete();???????? //刪除函數(shù)*

int menu_select();???????? //菜單函數(shù)*

int whether(int);?????????? 判斷時(shí)間是否超出函數(shù)***

void? find(char s1[],char s2[]);???????? //查詢函數(shù)★//s1為班次//s2為終點(diǎn)站

void deletemessage();?????????? //刪除函數(shù)

int findnum(char s1[]);?????????? //班次查詢函數(shù)

void get(int,int);???????? //修改及增加班次*

char *menu[]={"*****************歡迎使用火車票查詢系統(tǒng)*****************",

"n*******************MENU功能菜單***********************",

"n????????????????? 1. 錄入班次??????????????????????? ",

"n????????????????? 2. 顯示所有班次??????????????????? ",

"n????????????????? 3. 查詢班次??????????????????????? ",

"n????????????????? 4. 增加班次??? ????????????????????",

"n????????????????? 5. 售票??????????????????????????? ",

"n????????????????? 6. 退票??????????????????????????? ",

"n????????????????? 7. 修改班次??????????????????????? ",

"n????????????????? 8. 刪除班次??????????????????????? ",

"n????? ????????????9. 退出??????????????????????????? "};??????????????????????????????

/**************************主函數(shù)*************************/

void main()

{?

?? system("cls");??????????? //刷屏

?? while(1)??????????????????? //菜單函數(shù)循環(huán)

?? {

????? switch(menu_select())??????? ??????????//菜單函數(shù)*

????? {

????? case 1: NewMessage();break;???? 新紀(jì)錄*錄入函數(shù)******

????? case 2: Display();break;?????????????? // //顯示

????? case 3: search();break;?????????? //查找函數(shù)**

????? case 4: add();break;?????????????? // //增加記錄

????? case 5: Ticketorder();break;????????? ?*售票函數(shù)***

????? case 6: Ticketdelete();break;??????? //刪除函數(shù)*

????? case 7: change();break;????????????? //修改函數(shù)**

????? case 8: deletemessage();break;???? //選擇調(diào)用刪除函數(shù)

????? case 9: quit();break;????? //退出函數(shù)******

????? }

?? }

}

/***********************菜單函數(shù)**************************/

int menu_select()???????? /菜單函數(shù)*

{

?? char s[5];?????????? ///定義要輸入的數(shù)字功能

?? int c,i;????????

?? system("cls");?????????? //刷屏

?? system("color 07");//改變顏色

?? for(i=0;i<11;i++)

?? {

????? printf("%s",menu[i]);?? //輸出菜單各項(xiàng)

?? }

?? i=0;

??? while(c<0||c>9)???????????? //判斷是否是19的命令

?? {?

????? printf("n");?????????????? ///輸出換行

?????

??????? printf("******************************************************");

??????? printf("n請(qǐng)選擇(1-9):");

????? scanf("%s",s);

????? c=atoi(s);??????????????????? //atoi將字符串轉(zhuǎn)換成一個(gè)整數(shù)值

?? }? ??????????///輸出菜單面

?? return c;?????????? 返回請(qǐng)求???????????

}

/*******************************錄入函數(shù)************************************/

void NewMessage()??????????? //*錄入函數(shù)******

{? ????

?? int i=0,j=5,h;?????????????????

?? char s[5];

?? FILE *fp;??????? ???????定義文件型指針變量

?? system("cls");????? //刷屏

?? if((fp=fopen("d:車票管理系統(tǒng)0.dat","rb"))!=NULL)??? //fopen打開文件

?? {?

??????? printf("車票信息已經(jīng)存在請(qǐng)選擇增加功能!n");

????? printf("任意輸入則返回菜單n");

????? scanf("%s",s);

????? i=1;????? ?? //通過是1

?? }?

?? if(i==0)

?? {??????????????

????? system("cls");??? //刷屏

????? printf("請(qǐng)輸入要錄入班次總數(shù):n");

????? scanf("%d",&class_num);??????? //指向班次指針

????? system("cls");??? //刷屏

????? for(i=0;i<class_num;i++)?????????????

????? {?

????????? system("cls");??? //刷屏

????????? printf("請(qǐng)輸入第%d個(gè)班次信息:n",i+1);

????????? h=-1;

????????? for(;h!=i;)???????????? ///循環(huán)輸出

????????? {

???????????? printf("請(qǐng)輸入班次:n");

???????????? scanf("%s",records[i].num);

???????????? for(h=0;h<i;h++)

??????????????? if(strcmp(records[h].num,records[i].num)==0)??

?????????????????? //判斷字符串比較是否相等,, 待比較的字符串???????????????

??????????????? {

?????????????????? printf("輸入錯(cuò)誤!該班次已存在!n");

?????????????????? break;????????? ///返回

??????????????? }??????????????

????????? }

????????? get(i,j);?????????? 修改及增加班次*

????????? j=5;????????

????? }

????? save();?????????? //調(diào)用保存函數(shù)

?? }?

}

/*******************************顯示所有函數(shù)********************************/

資料包括:

需要完整的資料可在我的資源里下載,也可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。

紛傳點(diǎn)擊用微信打開即可,過程有點(diǎn)繁瑣請(qǐng)見諒。

  • 有需要資料的可了解一下.docx

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
IL207AT 1 Siemens Transistor Output Optocoupler, 1-Element, 2500V Isolation
暫無數(shù)據(jù) 查看
HFBR-1521ETZ 1 Avago Technologies FIBER OPTIC TRANSMITTER, 5Mbps, THROUGH HOLE MOUNT, ROHS COMPLIANT, 6 PIN

ECAD模型

下載ECAD模型
$17.77 查看
KSZ8081RNACA 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC24

ECAD模型

下載ECAD模型
$0.77 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜