资源简介
大一写的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代码注意,仅解码
相关资源
- C语言战争模拟器源码
- 在1、2、3...9保持这个顺序之间可任意
- socket应用三 用C语言编写发送邮件程序
- 数据结构c语言版上机题代码汇总
- c语言编写的计算器 绝对经典
- C语言回文判断
- C语言编写二进制数搜索程序
- 最大相关最小冗余的C语言源码
- 数字水印源代码,C语言程序
- 长整数乘以普通整数c语言代码
- C语言操作netcdf 用法手册
- 8*8点阵模拟电梯仿真
- 用C语言实现的完整B树
- 非抢占式短作业优先进程调度C语言
- 猜数字游戏 c语言实现 猜4位随机生成
- 秘钥管理系统 c语言实现的RSA
- nrf905无线温度收发程序
- C语言实现二叉树的创建、插入、删除
- 数据结构C语言之哈夫曼编码
- 图书管理系统 C语言设计源代码和实验
- 用C语言实现SHA-1算法
- C语言实现拉格朗日插值
- C语言 斗地主 游戏
- Linux下C语言实现的FTP系统
- C语言连接Access数据库
- 常用加密算法AES、RSA、DES、MD5、TEA、
- DES算法加解密实现 C语言
- linux下FTP服务器与客户端的C语言实现
- c语言程序设计案例教程 廖湖声 第二
- 用C语言实现八数码问题的宽度优先搜
评论
共有 条评论