资源简介
大一写的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语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论