資源簡介
大一寫的c語言程序,比較簡單,只是一條線路,中間沒涉及到什么復雜算法,當初編寫時,主要是為了熟悉c語言,同時運用了文件的讀寫

代碼片段和文件信息
#include?
#include?
#include
#define SIZE?4???//宏定義相鄰兩站線路的數量并作為結構體數組table1的大小
#define?CZS?5???//宏定義車站的數量并作為結構體數組table2的大小
#define?large?1000???//宏定義最多可以記錄多少次售票記錄并作為結構體數組table3的大小
#define?QU_ENTER?scanf(“%c“&temp)???//宏定義,消回車
int?Total=0;????//全局變量已售票的數量
int?Count=0;????//全局變量表示數組table3的下標
char?temp;????//全局變量用于放回車
struct?table?????????????????????//定義結構體數組結構體中有站名相鄰兩站之間距離和票價
{
char?hstation[20];
char?estation[20];
int?distance;
int?price;
}table1[SIZE];
struct?tongji????????????????//定義統計該天各站客流量的結構體
{
char?stationname[20];
int?people_count;
}table2[CZS]={{“昆明“0}{“長沙“0}{“武漢“0}{“鄭州“0}{“北京“0}};
struct?record???????????????//定義記錄每次售票的結構體
{
char?startname[20];
char?endname[20];
int?ticket_count;
int?money;
}table3[large];
void?main()
{
int?ticketch;
char?start[10]end[10];
void?read();
read();
void?printmenu();
printmenu();
lp: void?Choice(char?start[10]char?end[10]);
Choice(startend);
int?TicketCount();
ticket=TicketCount();
void?Write(char?start[10]char?end[10]int?ticket);
Write(startendticket);
void?BuyTicket(char?start[10]char?end[10]int?ticket);
BuyTicket(startendticket);
void?save();
save();
void?printnews();
p1: printf(“1繼續買票\n2查詢當天售票情況\n按任意鍵推出\n請選擇:“);
scanf(“%d“&ch);
QU_ENTER;
switch(ch)
{
case?1:goto?lp;break;
case?2:printnews();goto?p1;break;
}
}
//以只讀方式打開文件,并將文件內容寫入結構體數組table1[SIZE]中
void?read()
{
int?i;
FILE?*fp;
if((fp=fopen(“data.txt““r“))==NULL)
{
printf(“這個文件無法打開!\n“);
return;
}
for(i=0;i<=SIZE;i++)
fscanf(fp“%s?%s?%d?%d“table1[i].hstationtable1[i].estation&table1[i].distance&table1[i].price);
fclose(fp);
}
//總菜單打印
void?printmenu()
{
int?i;
for(i=0;i<20;i++)
printf(“*?“);
printf(“\n歡迎光臨選票系統\t站名\n“);
printf(“昆明 長沙 武漢 鄭州 北京\n“);
for(i=0;i<20;i++)
printf(“*?“);
printf(“\n“);
}
//起始站與終到站的選擇并保存在字符數組start和end中
void?Choice(char?start[10]char?end[10])
{
printf(“請輸入起始站站名:“);
gets(start);
printf(“請輸入終到站站名:“);
gets(end);
if(strcmp(startend)==0)
{
printf(“你所選擇的始發站和終到站為同一站請重新選擇\n“);
Choice(startend);
}
return;
}
int?TicketCount()
{
int?count;
printf(“請選擇購買車票數量:“);
scanf(“%d“&count);
if(Total<1000)
{
if(count<0)
{
printf(“你選擇的票數過少系統自動為你購買1張\n“);
count=1;
Total+=count;
}
else
if(Total+count>1000)
{
printf(“系統僅剩余%d張票系統自動為你購買%張:“1000-Total1000-Total);
count=1000-Total;
}
}
else
{
printf(“今天的票已全部售完顯示當天售票情況后系統自動結束\n“);
void?printnews();
printnews();
exit(0);
}
return?count;
}
void?Write(char?start[10]char?end[10]int?ticket)
{
int?i;
strcpy(table3[Count].startnamestart);
strcpy(table3[Count].endnameend);
table3[Count].ticket_count=ticket;
Count+=1;
for(i=0;i<=CZS;i++)
if(strcmp(starttable2[i].stationname)==0)
table2[i].people_count=ticket;
for(i=0;i<=CZS;i++)
if(strcmp(endtable2
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5245??2008-09-01?23:34??1\1.cpp
?????文件???????8672??2008-09-09?15:03??1\1_right.cpp
?????文件???????3413??2009-10-07?00:43??1\1_right.dsp
?????文件????????522??2008-11-22?17:44??1\1_right.dsw
?????文件??????41984??2008-11-22?17:44??1\1_right.ncb
?????文件??????48640??2008-11-22?17:44??1\1_right.opt
?????文件????????703??2009-10-07?00:44??1\1_right.plg
?????文件?????????74??2008-08-28?11:17??1\data.txt
?????文件?????204867??2008-11-22?17:42??1\Debug\1_right.exe
?????文件?????223536??2008-11-22?17:42??1\Debug\1_right.ilk
?????文件??????20710??2009-10-07?00:44??1\Debug\1_right.obj
?????文件?????226380??2009-10-07?00:44??1\Debug\1_right.pch
?????文件?????533504??2008-11-22?17:42??1\Debug\1_right.pdb
?????文件??????33792??2009-10-07?00:44??1\Debug\vc60.idb
?????文件??????45056??2009-10-07?00:44??1\Debug\vc60.pdb
?????文件?????????17??2008-11-22?17:43??1\record.txt
?????文件?????????50??2008-11-22?17:43??1\tongji.txt
?????目錄??????????0??2010-10-31?13:34??1\Debug
?????目錄??????????0??2010-10-31?13:34??1
-----------?---------??----------?-----??----
??????????????1397165????????????????????19
- 上一篇:C語言戰爭模擬器源碼
- 下一篇:PDU短信解碼C代碼注意,僅解碼
評論
共有 條評論