版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、建筑工程學(xué)院課程設(shè)計報告課程設(shè)計名稱:C語言課程設(shè)計課程設(shè)計題目:車票管理系統(tǒng)院系:理學(xué)院專業(yè):信息與計算科學(xué)班級:信142學(xué)號:姓名:嘉星指導(dǎo)教師:鴻強完成日期:2015-6-17前言2第1章概要設(shè)計31.1題目的容與要求31.2總體構(gòu)造4第2章詳細設(shè)計4主模塊流程圖4車票管理系統(tǒng)軟件詳細設(shè)計5第3章調(diào)試分析7第4章使用說明與執(zhí)行結(jié)果8參考文獻16附錄程序活單18致35刖曰隨著計算機技術(shù)的開展,可視編程技術(shù)占有了越來越重要的作用。VisualC+6.0是一種功能強大行之有效的可視化編程工具。因此此軟件是在VisualC+6.0環(huán)境下編寫的。對于我們,隨著學(xué)習(xí)的深入,已經(jīng)大體掌握了Visual
2、C+6.0環(huán)境下的程序開發(fā)。為了將我們的編程能力提升到一個更高的水平,深化面向?qū)ο蟮木幊趟季S和解決問題的能力,值此課程設(shè)計周期間,進展基于VisualC+6.0環(huán)境的軟件開發(fā),先以字符統(tǒng)計軟件作為開場,對VisualC+6.0環(huán)境和面向?qū)ο蟪绦蛟O(shè)計進展回憶和熟悉,使得在此根底上的下一個員工培訓(xùn)系統(tǒng)軟件的開發(fā)進展的更加順利。本文檔詳細表達了基于VisualC+6.0環(huán)境下的車票管理系統(tǒng)的設(shè)計過程以及程序源代碼。本文檔從概要設(shè)計,詳細設(shè)計,參考源程序代碼以及顯示程序運行的截屏等方面詳盡的介紹了軟件開發(fā)過程。此次車票管理系統(tǒng)的開發(fā)目的是使我們用面向?qū)ο蟮姆绞絹硭伎己徒鉀Q問題的能力,并且可以掌握字符數(shù)
3、組的使用、字符指針的使用、數(shù)據(jù)庫的設(shè)計和文件使用以及C語言語法。程序在設(shè)計的過程中遇到的問題已及時更正,但由于編者的能力和水平有限,車票管理系統(tǒng)和文檔中不免會出現(xiàn)一些不期待的錯誤,望文檔讀者能夠理解和體諒,并歡送提醒和糾正,在此表示感以及敬意。第1章概要設(shè)計1.1題目的容與要求一車站每天有n個發(fā)車班次,每個班次都有一班次號1、2、3n,固定的發(fā)車時間,固定的路線起始站、終點站,大致的行車時間,固定的額定載客量。如班次發(fā)車時間起點站終點站行車時間額7E載用已定票人數(shù)18:00鄲縣廣漢2453026:30鄲縣0.5404037:00鄲縣0.54020410:00鄲縣0.5402一功能要求:用C/C
4、+設(shè)計一系統(tǒng),能提供以下效勞:1錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)2瀏覽班次信息,可顯示出所有班次當(dāng)前狀總。3查詢路線:可按班次號查詢,可按終點站查詢4售票和退票功能A:當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)B:退票時,輸入退票的班次,當(dāng)本班車未發(fā)出時才能退票,自動更新已售票人數(shù)二其它要求:1只能使用C/C+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀2至少采用文本菜單界面如果能采用圖形菜單界面更好3學(xué)生可自動增加新功能模塊視情況可另外加分4寫出課程設(shè)計報告,具體要求見相關(guān)說明文檔圖1-1功能模塊圖第2章詳細設(shè)計主模塊流程圖A退
5、票按車次按終到站word圖2.1主模塊流程圖車票管理系統(tǒng)軟件詳細設(shè)計一個名Timetabled勺構(gòu)造體進展定義,包括intno;/班次inthour;/發(fā)車時間時intminute;/發(fā)車時間分charStarting_station10;他臺發(fā)站charLast_station10;/終點站floattime;/行車時間intmax_number;/最大載客數(shù)intsold_number;/已售票數(shù)等構(gòu)造體成員。然后對調(diào)用函數(shù)進展定義。voidadd曾加記錄,voidCipher(®碼驗證函數(shù),voiddel()刪除班次信息函數(shù),voidfind(ints1,chars2)查找函數(shù)
6、,intfindnum(ints1)查找班次函數(shù),voidInput()信息錄入函數(shù),voidhuanying()歡送界面,voidland()登錄選擇界面,voidmenu1(修理員菜單界面,voidmenu2(梏通菜單界面,voidopen()調(diào)用數(shù)據(jù)函數(shù),voidsave(課存函數(shù),voidsearchesmenutl)詢菜單,voidticketdelete()退票函數(shù),voidticketorder(浩票函數(shù),inttimee(inti)判斷時間是否超出函數(shù),voidtimetablei®示車次函數(shù)該系統(tǒng)將這些信息均放在文件中。最后定義main()函數(shù),利用函數(shù)調(diào)用,實現(xiàn)程
7、序的各種功能。將其放在系統(tǒng)文件車中。第3章調(diào)試分析1、程序陷入死循環(huán)解決方法:仔細分析程序間的關(guān)系,畫程序流程圖分析問題所在。利用break命令跳出循環(huán)2、程序出現(xiàn)亂碼解決方法:利用VC6.0本身的調(diào)試功能查找錯誤的所在,修改源程序。3、所學(xué)知識不能很好的完成程序解決方法:上網(wǎng)查找相關(guān)資料,進入一些開源論壇尋求一定的幫助。第4章使用說明與執(zhí)行結(jié)果圖4-1歡送界面圖4-2登錄菜單圖4-3管理員登錄的密碼機制圖4-4密碼容錯機制圖4-5管理員菜單圖4-6氏4誥,1入己世芝酸,a白1至役'.AitjU爭munE皿間:時W言SK入人匚氏A±nxH*LXHH*Mi»i二一:r
8、-=J-F圖4-7班次錄入界面圖4-8圖4-9班次增加界面圖4-10時刻表瀏覽界面圖4-11查詢界面圖4-11注銷班次界面圖4-12普通登錄菜單圖4-14售票窗口圖4-15圖4-16退票界面參考文獻1、?0程程序設(shè)計第四版?譚浩強書號:ISBN64:清華大學(xué)。2、?C語言學(xué)習(xí)路線圖?乍者:明日科技書號:ISBN93:清華大學(xué)。3、?C語言從入門到精通(第2版)?明日科技書號:ISBN20:清華大學(xué)。4、?21大學(xué)通C語言(第7版)?美瓊斯等著,估譯書號:ISBN79:人民郵電。5、?CPrimerPlus第五版中文版?美StephenPrata書號:ISBN28:人民郵電。鳴:百度文庫百度貼吧
9、百度百科C語言之家Linux開源俱樂部網(wǎng)絡(luò)資料來源:1、.xuexilll./2、snippets.dzone./tag/c/3、.hotscripts./category/c-cpp/scripts-programs/Hotscripts4、s:/.daniweb./software-development/cpp/code/_/8附錄程序清單代碼/增加記錄#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidadd()(voidopen();in
10、tget();voidsave();voidmenu1();inti,j=5;open();/調(diào)用按班次查詢函數(shù)system("cls");/清屏printf("1.增加班次n");printf("2.返回n");printf("請選擇(1-2)n");scanf("%d”,&i);if(i=1)(system("cls");/清屏printf("1.請輸入要增加的班次:n");scanf("%d”,&timetableclass_num.
11、no);for(i=0;i<class_num;i+)if(timetableclass_num.no=timetablei.no)比擬是否相等,判斷車次是否重復(fù)(printf("輸入錯誤!n");getch();/收集回車break;if(i=class_num)(get(i,j);/修改及增加班次*class_num+;/使班次數(shù)加1save();/調(diào)用保存函數(shù)elsemenu1();#include<stdio.h>voidCipher()/密碼驗證函數(shù)intm,n=123;/規(guī)定密碼voidmenu1();/上級菜單的聲明;容錯機制printf(&
12、quot;請輸入密碼:,輸入提示scanf("%d”,&m);/密碼輸入while(1)/容錯機制if(m=n)menu1();elseprintf("密碼錯誤請重新輸入:");scanf("%d",&m);/刪除班次信息#include<stdio.h>#include<stdlib.h>/system("cls")的聲明#include<conio.h>/getch的聲明#include"news.h"voiddel()voidsave();intf
13、indnum(ints1);inti,h=0;intnum;charor10;system("cls");/清屏printf("1.刪除班次n");printf("2.返回n");printf("請選擇(1-2):n");scanf("%d”,&i);if(i=1)system("cls");/清屏printf("請輸入要刪除的班次:n");scanf("%d”,&num);i=findnum(num);/調(diào)用班次查詢函數(shù)if(i=clas
14、s_num)/全部匹配后但無匹配項printf("輸入錯誤,無此班次!n");getch();/收集回車del();elseprintf("確定?(y/n)n");/確認機制scanf("%s",or);if(or0='y'|or0='Y')for(;i<class_num-1;i+)timetablei=timetablei+1;class_num-;/班次總數(shù)減1save();/調(diào)用保存函數(shù)/查找函數(shù)#include<stdio.h>#include"news.h”#in
15、clude<string.h>voidfind(ints1,chars2)inti,h=0,m;if(s20='0')m=1;/1為無條件執(zhí)行elsem=0;printf("n|111111|n");printf("n|班次|發(fā)車時間|起點站|終點站|行車時間|額定載量|已售票|n");for(i=0;i<class_num;i+)if(s1=timetablei.no|strcmp(s2,timetablei.Last_station)=0)/判斷字符串比擬是否相等printf("n|111111|n&quo
16、t;);printf("|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|n”,timetablei.no,timetablei.hour,timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time,timetablei.max_number,timetablei.sold_number);if(m=1)h+;break;printf("n|111111|n");if(h=0)/不能break那么執(zhí)行printf("
17、要查找的班次不存在!n");/查找班次#include<stdio.h>#include"news.h”intfindnum(ints1)inti;printf("n|111111|n");for(i=0;i<class_num;i+)if(s1=timetablei.no)/判斷字符串比擬是否相等,如果符合那么輸出車次等信息|n");printf("|printf("|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|”,timetablei.no,timetablei.hour
18、,timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time,timetablei.max_number,timetablei.sold_number);break;printf("n|111111|n");returni;/歡送界面#include<stdio.h>voidhuanying()printf("nnnn");printf("t*n");printf("nnnn");printf
19、("tttt車票管理系統(tǒng)n");printf("nnnn");printf("ttt設(shè)計人:嘉星;新月;田宇n");printf("nn");printf("tttt感您的使用ntttt按任意鍵繼續(xù)n");printf("nn");printf("t*n");/信息錄入界面#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h&
20、gt;voidInput()(inti=0,j=5,h;chars5;voidsave();voidadd();voidget(inti,intj);FILE*fp;/定義文件型指針變量system("cls");/清屏if(fp=fopen("車票管理系統(tǒng)0.dat”,"rb")!=NULL)/fopen翻開文件(printf(-車票信息已經(jīng)存在!n");printf(-任意輸入進入添加菜單n");scanf("%s",s);/收集任意輸入i=1;/通過是1add();if(i=0)(system(&q
21、uot;cls");/清屏printf("請輸入要錄入班次總數(shù):n");scanf("%d”,&class_num);/指向班次指針system("cls");/清屏for(i=0;i<class_num;i+)(system("cls");/清屏printf("請輸入第d個班次信息:n”,i+1);h=-1;for(;h!=i;)/循環(huán)輸出(printf("請輸入班次:n");scanf("%d”,&timetablei.no);for(h=0;h&l
22、t;i;h+)if(timetableh.no=timetablei.no)(printf("輸入錯誤!該班次已存在!n");break;/返回get(i,j);/修改及增加班次j=5;save();/調(diào)用保存函數(shù)voidget(inti,intj)/修改及增加班次(for(;)(printf("請輸入發(fā)車時間(xxxx)");scanf("%d%d”,&timetablei.hour,&timetablei.minute);if(timetablei.hour<24&&timetablei.hour>
23、;=0&&timetablei.minute<60&&timetablei.minute>=0)break;else(printf("輸入錯誤!n”);getch();/收集回車printf("請輸入起點站:n");scanf("%s”,timetablei.Starting_station);printf("請輸入終點站:n");scanf("%s”,timetablei.Last_station);printf("請輸入行車時間:n");scanf(&quo
24、t;%f",&timetablei.time);printf("請輸入額定載量:n");scanf("%d”,&timetablei.max_number);printf("請輸入已售票數(shù):n");scanf("%d”,&timetablei.sold_number);/管理員菜單界面#include<stdio.h>voidmenu1()(voidInput();voidtimetable1();voidsave();voiddel();voidsearchesmenu();voidla
25、nd();voidadd();intn;printf("tttt1、車次信息錄入ntttt2、增加車次信息ntttt3、時刻表瀏覽ntttt4、車輛信息查詢ntttt5、注銷車次ntttt6、保存ntttt7、返回n");printf(-ttt請輸入需要運行的命令編號n");while(1)/死循環(huán)形成菜單scanf("%d”,&n);switch(n)case1:Input();break;/車輛信息錄入case2:add();break;/增加車次信息case3:timetable1();break;/俅U覽時刻表case4:searches
26、menu();break;廉輛信息查詢case5:del();break;/注銷車次case6:save();break;/保存命令case7:land();break;/返回上級菜單default:printf("非法輸入n");break;/普通登錄菜單#include<stdio.h>voidmenu2()voidtimetable1();voidticketorder();voidticketdelete();voidland();voidsearchesmenu();intn;、時刻表瀏覽ntttt2、車輛信息查詢ntttt3、購置車票ntttt4、返
27、回n");請輸入需要運行的命令編號n");printf("tttt1退回車票ntttt5printf("tttwhile(1)scanf("%d",&n);switch(n)case1:timetable1();break;/時刻表瀏覽case2:searchesmenu();break;廉輛信息查詢case3:ticketorder();break;/購置車票case4:ticketdelete();break;/退回車票case5:land();break;/返回上級菜單default:printf("非法輸入n
28、");break;#include<stdio.h>voidhuanying();voidland();intmain()charch;huanying();ch=getchar();/收集回車land();return0;#include<stdio.h>#include<stdlib.h>#include"news.h"#include<conio.h>voidopen()FILE*fp1,*fp2;if(fp1=fopen("車票管理系統(tǒng).dat”,"rb")=NULL)syste
29、m("cls");/清屏printf("文件翻開錯誤!n”);getch();/收集回車exit(0);if(fp2=fopen("車票管理系統(tǒng)0.dat”,"rb")=NULL)system("cls");/清屏printf("文件翻開錯誤!n");getch();/收集回車exit(0);/退出fread(&class_num,sizeof(int),1,fp2);/讀入信息fread(timetable,sizeof(timetable0),class_num,fp1);/讀入信息
30、fclose(fp1);fclose(fp2);/文件關(guān)閉#include<stdio.h>#include<stdlib.h>#include"news.h"voidsave()/保存函數(shù)(voidmenu1();FILE*fp1,*fp2;/文件行指針if(fp1=fopen("車票管理系統(tǒng).dat”,"wb")=NULL)/翻開文件、為輸出翻開一個二進制文件(printf("文件翻開錯誤!n");exit(0);if(fp2=fopen("車票管理系統(tǒng)0.dat”,"wb&q
31、uot;)=NULL)/翻開文件、為輸出翻開一個二進制文件(printf("文件翻開錯誤!n");exit(0);fwrite(&class_num,sizeof(int),1,fp2);/寫入文件信息fwrite(timetable,sizeof(timetable0),class_num,fp1);fclose(fp1);fclose(fp2);/關(guān)閉文件printf("保存成功");menu1();/查詢菜單#include<stdio.h>#include<stdlib.h>#include<conio.h&
32、gt;voidsearchesmenu()(inti;voidfind(ints1,chars2);chars1=0,s210='0'voidopen();voidland();system("cls");/清屏printf("1.按班次查詢n");printf("2.按終點站查詢n");printf("3.退出n");printf("請選擇(1-3):n");scanf("%d",&i);open();/調(diào)用按班次查詢函數(shù)switch(i)/菜單ca
33、se1:printf("請輸入要查詢的班次:n");/s1為班次scanf("%d",&s1);find(s1,s2);/調(diào)用查找函數(shù)break;case2:printf("請輸入要查詢終點站:n");/s2為終點站scanf("%s",s2);find(s1,s2);/調(diào)用查找函數(shù)break;case3:land();break;/返回機制default:printf("輸入錯誤!n”);break;printf("按任意鍵繼續(xù).n");getch();/收集回車/退票函數(shù)#
34、include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidticketdelete()(inti;intnum;charor;inttimee();voidopen();intfindnum(ints1);voidsave();voidmenu2();system("cls");/清屏printf("1.退票n");printf("2.返回n");printf("請選擇(1-2)n:&q
35、uot;);scanf("%d",&i);if(i=1)(system("cls");/清屏open();/調(diào)用按班次查詢函數(shù)printf("請輸入要退票的班次:n");scanf("%d",&num);i=findnum(num);/調(diào)用班次查詢函數(shù)if(num=timetablei.no)/判斷字符串比擬是否相等待比擬的字符串if(timee(i)/判斷時間是否超出函數(shù)(scanf("%c",&or);if(or='y'|or='Y')
36、getch();(timetablei.sold_number-;/使已售票加1printf("退票成功!n");save();/調(diào)用保存函數(shù)getch();/從控制臺讀取一個字符,但不顯示在屏幕上else(printf("該班車已發(fā)出,無法退票!n");getch();/收集回車/售票函數(shù)#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidticketorder()(inti;intnum;voidsave
37、();inttimee(inti);voidopen();voidsearchesmenu();voidland();system("cls");/清屏printf("1.售票n");printf("2.返回n");printf("請選擇(1-2):n");scanf("%d”,&i);if(i=1)(open();/調(diào)用openprintf(-請輸入要訂票的班次(假設(shè)無請輸入0):n");scanf("%d”,&num);for(i=0;i<class_num;
38、i+)if(num=timetablei.no)/比擬是否相等if(timetablei.sold_number>timetablei.max_number&&timee(i)=1)/判斷時間是否超出函數(shù)*并且*沒超出最大客量(timetablei.sold_number+;/使已售的票數(shù)+1printf("通向%s班次為%d的票訂票成功!n”,timetablei.Starting_station,timetablei.no);save();/調(diào)用保存函數(shù)getch();/收集回車break;else(printf(-該班次已滿或已發(fā)出!n");ge
39、tch();/收集回車land();elseland();#include<time.h>#include<stdlib.h>#include"news.h"inttimee(inti)判斷時間是否超出函數(shù)*structtm*local;/時間構(gòu)造體time_tt;/把當(dāng)前時間給tt=time(NULL);/NULL在stdio.h中定義為0local=localtime(&t);/獲取當(dāng)前系統(tǒng)時間if(local->tm_hour<timetablei.hour|local->tm_hour=timetablei.hour
40、&&local->tm_min<timetablei.minute)return1;elsereturn0;#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>voidtimetable1()顯示車次函數(shù)inti,j;voidopen();inttimee(inti);voidland();system("cls");/清屏open();/調(diào)用opensystem("cls");/清屏printf(MESSAGE車程信息*n");*printf("n|111111|n");printf("n|班次|發(fā)車時間|起點站|終點站|行車時間|額定載量|已售票|n");for(i=0,j=0;i<class_num;i+,j+=2)/按班次順序輸出printf("n|111111
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年親子協(xié)議模板
- 2025年增資協(xié)議合同條款
- 2025年度個人承包工程勞務(wù)合同模板4篇
- 2025年合作環(huán)境科學(xué)書籍出版協(xié)議
- 攪拌站項目合作開發(fā)合同(二零二五年)3篇
- 2025年度環(huán)保認證木地板采購與施工合同4篇
- 2025年度鄉(xiāng)村旅游資源承包經(jīng)營權(quán)轉(zhuǎn)讓合同4篇
- 2025年度股權(quán)質(zhì)押擔(dān)保與文化產(chǎn)業(yè)融合發(fā)展合同
- 二零二五年度足療養(yǎng)生館加盟投資協(xié)議
- 2025年度美容院美容師服務(wù)提成勞務(wù)合同模板
- 2024-2030年中國海泡石產(chǎn)業(yè)運行形勢及投資規(guī)模研究報告
- 動物醫(yī)學(xué)類專業(yè)生涯發(fā)展展示
- 2024年同等學(xué)力申碩英語考試真題
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 非遺文化走進數(shù)字展廳+大數(shù)據(jù)與互聯(lián)網(wǎng)系創(chuàng)業(yè)計劃書
- 2024山西省文化旅游投資控股集團有限公司招聘筆試參考題庫附帶答案詳解
- 科普知識進社區(qū)活動總結(jié)與反思
- 加油站廉潔培訓(xùn)課件
- 現(xiàn)金日記賬模板(帶公式)
- 消化內(nèi)科??票O(jiān)測指標(biāo)匯總分析
- 混凝土結(jié)構(gòu)工程施工質(zhì)量驗收規(guī)范
評論
0/150
提交評論