C语言程序设计飞机订票系统

C语言程序设计飞机订票系统,第1张

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <ctype.h>

#include <stdlib.h>

#include <malloc.h>

#include <math.h>//overflow

#define ok 1

typedef struct Yidingkehu

{//单链表

char name[15]//已订票的客户姓名

int dingpiaoshu//已订票数量

struct Yidingkehu *next1//

}Yidingkehu,*Link

typedef struct Weidingkehu

{//单链队

char name[15]//预订票的客户姓名

int yudingpiao// 要订票数量

struct Weidingkehu *next2//下一个链队结点指针

}Weidingkehu,*Qptr

typedef struct Hangxian

{//创建一个含有六个信息的结构体

char hangbanhao[15]//航班号-

char feijihao[15]//飞机号

int feixingriqi//起飞时间

int chenkerenshu//座位数

int yupiao//余票

char zhongdianzhai[15]//降落城市

struct Hangxian *next//指向下一个链结点的指针

struct Yidingkehu *yiding//定义一个指向已订票客户的头结点指针

struct Weidingkehu *yudingqueue

}Hangxian,*Linklist

Linklist InitLinklist()//01

int InsertLinklist(Linklist &head1)//02

void hbhchaxun()//通过航班号查询

void mddchaxun()//通过目的地查询

void lurugongneng()//初始化录入功能

void chaxungongnen()//查询功能

void dingpiaogongnen()//订票功能

void tuipiaogongnen()//退票功能

void main()

{

int n

do{ //打印主界面

printf("\t 欢迎使用航空客运订票系统\n")

printf("\t+++++++++++++++++++++++++++++\n")

printf("\t==>1. 录入功能 ==\n")

printf("\t==>2. 查询功能 ==\n")

printf("\t==>3. 订票功能 ==\n")

printf("\t==>4. 退票功能 ==\n")

printf("\t==>5. 退出 ==\n")

printf("\t+++++++++++++++++++++++++++++\n")

printf("\t请选择:")

scanf("%d",&n)printf("\n")

switch(n)

{

case 1: lurugongneng()//录入功能

break

case 2: chaxungongnen()//查询功能

break

case 3: dingpiaogongnen()//订票功能

break

case 4:tuipiaogongnen()//退票功能

break

default :exit(0)//退出

}

}while(n==1||n==2||n==3||n==4)

}

void lurugongneng()//初始化的单链表*********************************************************录入功能

{

Linklist p

//int m,n

if(!p) exit(OVERFLOW)

printf("\t请依次输入下面几项内容:\n\n")//这里的输入采用一个个单独输入,避免了乱赋值的现象

printf("航班号\n")

gets(p->hangbanhao)//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车

gets(p->hangbanhao)

printf("飞机号\n")

gets(p->feijihao)

printf("终点站\n")

gets(p->zhongdianzhai)

printf("飞行日期\n")

scanf("%d",&p->feixingriqi)

printf("乘客总数\n")

scanf("%d",&p->chenkerenshu)

printf("余票数\n")

scanf("%d",&p->yupiao)

}

void chaxungongnen()//******************************************************************查询功能

{

int n

printf("\t 查 找 航 线 信 息 \n")

printf("\t+++++++++++++++++++++++++++++\n")

printf("\t==>1. 通过目的地查询 ==\n")

printf("\t==>2. 通过航班号查询 ==\n")

printf("\t+++++++++++++++++++++++++++++\n")

printf("\t请选择:")

scanf("%d",&n)

printf("\n")//格式化

switch(n)

{

case 1:mddchaxun()

break

case 2:hbhchaxun()

break

default :break

}

}

void mddchaxun()//通过目的地查询

{

char c[15]

int m

Linklist p=L

printf("\t请输入要查询的目的地:")

gets(c)

gets(c)//原因同上

do{

p=p->next

if(p)

{

m=strcmpi((*p).zhongdianzhai,c)//如果==的话则m=0

if(m==0)

{

printf("\t航班信息:\n")

printf("\t航班号:%s\n",p->hangbanhao)

printf("\t飞机号:%s\n",p->feijihao)

printf("\t飞行时间:周%d\n",p->feixingriqi)

printf("\t余票量:%d\n",p->yupiao)

}

}

else

{//如果不匹配的话就做

printf("\t对不起没有你要找的目的地:\n\n")m=0

}

}while(m!=0)

}

void hbhchaxun()//通过目的地查询

{

char c[15]

int m

Linklist p=L

printf("\t请输入要查询的航班号:")

gets(c)gets(c)printf("\n")

do{

p=p->next

if(p)

{

m=strcmpi((*p).hangbanhao,c)//如果==的话则m=0这里的(*p).与p->的作用是一样的

if(m==0)

{

printf("\t航班信息:\n")

printf("\t航班号:%s\n",p->hangbanhao)

printf("\t飞机号:%s\n",p->feijihao)

printf("\t飞行时间:周%d\n",p->feixingriqi)

printf("\t余票量:%d\n\n",p->yupiao)

}

}

else

{//如果不匹配的话就做

printf("\t对不起没有你要找的航班号:\n")m=0

}

}while(m!=0)

}

void dingpiaogongnen()//***************************************************************订票功能

{

char c[15]

int m=1,piao,ydpiao=0,yd=0,n//

gets(c)

printf("请输入终点站名:")gets(c)printf("\n")

p=L->next

if(p) {

do{//查找一下,是否有这个航班

if(!p)

{

printf("对不起,没有你要找的航班:\n\n")

goto loop1

}

m=strcmpi(p->zhongdianzhai,c)

if(m==0)

{

printf("航班信息:\n")

printf("航班号:%s\n",p->hangbanhao)

printf("飞机号:%s\n",p->feijihao)

printf("飞行时间:周%d\n",p->feixingriqi)

printf("余票量:%d\n",p->yupiao)}

else p=p->next

}while(m!=0)

if(m==0)

{

do{

printf("\n请输入你要订的票数:")scanf("%d",&piao)

if(piao<=p->yupiao)

{

h=p->yiding

if(h)

{

h1=h

h=h->next1

h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu))

printf("请输入你的名字:")

gets(h->name)gets(h->name)

h->dingpiaoshu=piao

h->next1=h1->next1

h1->next1=h

p->yupiao=p->yupiao-piao

printf("订票成功:\n")m=2

}

}

else

{

printf("余票量:%d\n",p->yupiao)

printf("对不起,余票 %d 张不足,不能完成订票\n\n",p->yupiao)

printf(" 是否要重新订票?\n")

printf("需要请输入1 否则请按2 预订请输入3 : ")

scanf("%d",&m)

printf("\n")

if(m==3) goto loop3

}

}while(m==1)

}

}

else if(!p)

{

loop3: struct Weidingkehu *q3

printf("对不起,该航班的票已售完\n")

q.front=p->yudingqueue

if(q.front==q.rear) printf("没有人预订票,是否要预订?\n")

else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n")

printf("预订请输入1 否则输入2 : ")

scanf("%d",&n)

printf("\n")

if(n==1)

{

printf("请输入你的姓名")gets(q3->name)gets(q3->name)//q3不能指向name???

printf("请输入订票数")scanf("%d",&q3->yudingpiao)

q3->next2=NULL

q.rear->next2=q3

q.rear=q3

printf(" 你已经预订了 !\n")

}

}

loop1:

}

void tuipiaogongnen()//***************************************************************退票功能

{

}

请采纳答案,支持我一下。

我有坦克的

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define LENTH 7

#define WIDTH 155

#define SLEEP_TIME 30000

#define ENTER_NUM 20

char fun_ascii[LENTH][WIDTH] = {

" | ",

"_\\--__|_ ",

" II=======OOOOO[/ *02 ___| ",

" ____\\______|/-----.",

"/____________________|",

" \\@@@@@@@@@@@@@@@@@@@/ ",

" ~~~~~~~~~~~~~~~~~~~ "

}

int g_shoot_pos

int g_shoot_pos_static

void display_ascii(void)

void print_enter(void)

void move_ascii(void)

{

int i, j

for (i = 0i <LENTHi++) {

for (j = 0j <WIDTHj++) {

if (fun_ascii[i][j] != ' ') {

fun_ascii[i][j - 1] = fun_ascii[i][j]

fun_ascii[i][j] = ' '

}

}

}

}

void shoot_init(void)

{

int i, j

for (j = 0j <WIDTHj++) {

if (fun_ascii[2][j] != ' ')

break

}

--j

g_shoot_pos_static = g_shoot_pos = j

}

void shoot_begin(void)

{

fun_ascii[2][g_shoot_pos] = 'O'

system("clear")

print_enter()

display_ascii()

fun_ascii[2][g_shoot_pos] = ' '

}

void shoot_ascii(void)

{

int i

i = WIDTH / 2 - 1

while (i >0 &&g_shoot_pos >0) {

shoot_begin()

g_shoot_pos--

usleep(SLEEP_TIME)

i--

}

}

void do_shoot_ascii(void)

{

int i = 3

shoot_init()

while (i >0) {

shoot_ascii()

g_shoot_pos = g_shoot_pos_static

i--

}

}

void display_ascii(void)

{

int i, j

for (i = 0i <LENTHi++) {

for (j = 0j <WIDTHj++)

printf("%c", fun_ascii[i][j])

printf("\n")

}

}

void print_enter(void)

{

int i

for (i = 0i <ENTER_NUMi++)

printf("\n")

}

int main(void)

{

int i = WIDTH

while (i >0) {

if (i == (WIDTH / 2)) {

do_shoot_ascii()

i--

continue

}

system("clear")

print_enter()

move_ascii()

display_ascii()

i--

usleep(SLEEP_TIME)

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11342492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存