-
大小: 3KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-13
- 語言: C/C++
- 標(biāo)簽: 車票??管理系統(tǒng)??C語言??
資源簡介
一車站每天有n個(gè)發(fā)車班次,每個(gè)班次都有一班次號(1、2、3…n),固定的發(fā)車時(shí)間,固定的路線(起始站、終點(diǎn)站),大致的行車時(shí)間,固定的額定載客量。如 班次 發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間 額定載量 已定票人數(shù) 1 8:00 郫縣 廣漢 2 45 30 2 6:30 郫縣 成都 0.5 40 40 3 7:00 郫縣 成都 0.5 40 20 4 10:00 郫縣 成都 0.5 40 2 … (一)功能要求:設(shè)計(jì)一系統(tǒng),能提供下列服務(wù): (1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù) (2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過了某班次的發(fā)車時(shí)間,則顯示“此班已發(fā)出”的提示信息)。 (3)查詢路線(起點(diǎn)、終點(diǎn)):可按班次號查詢 ,可按終點(diǎn)站查詢 (4)售票和退票功能 當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,自動(dòng)更新已售票人數(shù) 退票時(shí),輸入退票的班次,當(dāng)本班車未發(fā)出時(shí)才能退票,自動(dòng)更新已售票人數(shù) (二)其它要求: (1) 至少采用文本菜單界面(如果能采用圖形菜單界面更好) (2) 學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)

代碼片段和文件信息
#include?
#include?
#include?
#include
typedef?struct?information
{?
int?numb;?
char?starttime[10];?
char?begin[21];?
char?end[21];?
float?lasttime;?
int?canload;?
int?alreadyload;
struct?information?*next;
}??
information*PINF;????????????//結(jié)構(gòu)體類型的指針
information?*head;?????????????//建立班次頭結(jié)點(diǎn)
information?*rear;?????????????//建立班次尾結(jié)點(diǎn)
void?save()
{?FILE?*fp;
??int?i;
??if((fp=fopen(“information““a+“))==NULL)
??{printf(“不能打開文件\n“);
???return;
??}
??for(i=0;;i++)
??if(fwrite(&informationsizeof(information)1fp)!=1)
??{?
??printf(“文件編寫錯(cuò)誤\n“);
??break;}
??fclose(fp);
}
int?main()?//主程序
{
int?numb;?
char?starttime[10];?
char?begin[21];?
char?end[21];?
float?lasttime;?
int?canload;?
int?alreadyload;?
head=rear=(information?*)malloc(sizeof(information));
head->next=NULL;
//函數(shù)聲明
?????
void?Read_In();?????????//文件讀入?
void?Scan();????????????//瀏覽全部信息??
void?Lookup();??????????//查詢信息?
void?Buyticket();???????//預(yù)定車票?
void?Cancelticket();????//退訂車票?
void?Save_In();?????????//把數(shù)據(jù)重新保存到文件中?
int?i=0;
while(i!=6)
{?
????printf(“?*?*車?票?管?理?系?統(tǒng)*?*?\n“);???//總菜單?
????printf(“?1、????錄入信息?????????\n“);
printf(“?2、????瀏覽信息?????????\n“);
????printf(“?3、????查詢信息?????????\n“);
????printf(“?4、????預(yù)訂車票?????????\n“);
????printf(“?5、????退訂車票?????????\n“);
????printf(“?6、????退出系統(tǒng)?????????\n“);?
????printf(“*?*?*?*?*?*?*?*?*?*?*?*?*\n“);
????
????printf(“請根據(jù)您的需要選擇:“);?
????scanf(“%d“&i);
????switch(i)
????{?
??case?1:printf(“請輸入您要錄入的班次:\n“);
?????scanf(“%d%s%s%s%d%d%d“numb&starttime[10]&begin[21]&end[21]lasttimecanloadalreadyload);
?????save();break;
??????case?2:Scan();break;?
??????case?3:Lookup();break;
??????case?4:Buyticket();break;
??????case?5:Cancelticket();break;
??????case?6:break;?
??????default:printf(“Sorry你的輸入有誤,請?jiān)?--6范圍內(nèi)輸入。\n“);break;
????}?
}???//while?(i!=6)
Save_In();????//保存信息
return?0;
}
void?Read_In()???????//班次信息文件讀入
{
?????FILE?*fp;?
?????if((fp=fopen(“information.txt““r+“))==0)?
?????{?
????????printf(“\n打開文件錯(cuò)誤!\n“);?
????????exit(0);?
?????}?
?????while(!feof(fp))??????//讀取文件并測試是否抵達(dá)文件尾?
?????{
???????information?*p;
???????p=(information?*)malloc(sizeof(information));?//開辟內(nèi)存空間?
??????
???????fscanf(fp“%d%s%s%s%f%d%d\n“&p->numb&p->starttime&p->begin&p->end&p->lasttime&p->canload&p->alreadyload);
??????
???????rear->next=p;??????//在INFORMATION單鏈表中依次插入下一結(jié)點(diǎn)?
???????rear=p;
???????rear->next=NULL;????
?????}
?????fclose(fp);?
?????
}
void?Save_In()?????//保存數(shù)據(jù)?
{
?????FILE?*fp;
?????if((fp=fp=fopen(“information.txt“?“r+“))==0)
?????{
????????printf(“\n打開文件錯(cuò)誤!\n“);?
????????exit(0);
?????}
?????PINF?p=head->next;???
?????while(p!=NULL)
?????{
???????fprintf(fp“%d\t%s\t%s\t%s\t%.2f\t%d\t%d\n“p->numbp->starttimep->beginp->endp->lasttimep->canloadp->alreadyload);?
???????p=p->next;?
?????}
?????fclose(fp);
}
void?Scan()
{
?????PINF?p=head->next;
????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????11390??2019-05-20?10:48??9.cpp
-----------?---------??----------?-----??----
????????????????11390????????????????????1
評論
共有 條評論