当前位置:首页 » 编程语言 » c语言大飞机项目模块
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言大飞机项目模块

发布时间: 2022-07-10 02:26:35

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

#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()//***************************************************************退票功能
{

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

Ⅱ c语言程序设计 航班信息管理

#include
#include
#include
#include
(conio.h不是C标准库中的头文件。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。)

#define MAXSIZE 4/*定义航线量的最大值*/

typedef struct wat_ros
{ char name[10];/*姓名*/
int req_amt;/*订票量*/
struct wat_ros *next;
}qnode,*qptr;

typedef struct pqueue
{ qptr front;/*等候替补客户名单域的头指针*/
qptr rear;/*等候替补客户名单域的属指针*/
}linkqueue;

typedef struct ord_ros
{ char name[10];/*客户姓名*/
int ord_amt;/*订票量*/
int grade;/*舱位等级*/
struct ord_ros *next;
}linklist;

struct airline
{ char ter_name[10];/*终点站名*/
char air_num[10];/*航班号*/
char plane_num[10];/*飞机号*/
char date[7];/*飞行日期(星期几)*/
int tkt_amt;/*乘员定额*/
int tkt_sur;/*余票量*/
linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/
linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/
}lineinfo;
struct airline *start;
struct airline air[MAXSIZE]={{"北京","1","001","SUN",30,15},
{"上海","2","002","MON",40,10},
{"武汉","3","003","FRI",50,14},
{"天津","4","004","TUE",60,20}};

void display(struct airline *info)
/*打印每条航线的基本信息*/
{printf("%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur);
}

void list()/*打印全部航线信息*/
{ struct airline *info;
int i=0;
info=start;
printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");
while(i<MAXSIZE)
{
display(info);
info++;
i++;
}
printf("\n\n");
}

void search()
/*根据客户提出的终点站名输出航线信息*/
{ struct airline *info,*find();
char name[10];
int i=0;
info=start;
printf("请输入终点站名:");
scanf("%s",name);
while(i<MAXSIZE)
{
if(!strcmp(name,info->ter_name)) break;
info++;
i++;
}
if(i>=MAXSIZE)
printf("对不起,该航线未找到!\n");
else
{
printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");
display(info);
}
}

struct airline *find()
/*根据系统提出的航班号查询并以指针形式返回*/
{ struct airline *info;
char number[10];
int i=0;
info=start;
printf("请输入航班号:");
scanf("%s",number);
while(i<MAXSIZE)
{
if(!strcmp(number,info->air_num)) return info;
info++;
i++;
}
printf("对不起,该航线末找到!\n");
return NULL;
}

void prtlink()
/*打印订票乘员名单域的客户名单信息*/
{ linklist *p;
struct airline *info;
info=find();
p=info->order;
if(p!=NULL){
printf("客户姓名 订票数额 舱位等级\n");
while(p){
printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);
p=p->next;
}
}
else
printf("该航线没有客户信息!!\n");
}

linklist *insertlink(linklist *head,int amount,char name[],int grade)
/*增加订票乘员名单域的客户信息*/
{ linklist *p1,*new1;
p1=head;
new1=(linklist *)malloc(sizeof(linklist));
if(!new1) {printf("\nOut of memory!!\n");return NULL;}
strcpy(new1->name,name);
new1->ord_amt=amount;
new1->grade=grade;
new1->next=NULL;
if(head==NULL)/*若原无订票客户信息*/
{head=new1;new1->next=NULL;}
else
head=new1;
new1->next=p1;
return head;
}

linkqueue appendqueue(linkqueue q,char name[],int amount)
/*增加排队等候的客户名单域*/
{ qptr new1;
new1=(qptr)malloc(sizeof(qnode));
strcpy(new1->name,name);
new1->req_amt=amount;
new1->next=NULL;
if(q.front==NULL)/*若原排队等候客户名单域为空*/
q.front=new1;
else
q.rear->next=new1;
q.rear=new1;
return q;
}

void order()
/*办理订票业务*/
{ struct airline *info;
int amount,grade;
char name[10];
info=start;
if(!(info=find())) return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/
printf("请输入你订票所需要的数量:");
scanf("%d",&amount);
if(amount>info->tkt_amt)/*若客户订票额超过乘员定票总额,退出*/
{ printf("\n对不起,您输入的票的数量已经超过乘员定额!");
return;
}
if(amounttkt_sur)/*若客户订票额末超过余票量,订票成功并等记信息*/
{
int i;
printf("请输入您的姓名(订票客户):");
scanf("%s",name);
printf("请输入%s票的舱位等级:",name);
scanf("%d",&grade);
info->order=insertlink(info->order,amount,name,grade);/*在订票乘员名单域中添加客户信息*/
for(i=0;i<amount;i++)/*依次输出该订票客户的座位号*/
printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);
info->tkt_sur-=amount;/*该航线的余票量应减掉该客户的订票量*/
printf("\n祝您乘坐愉快!\n");
}
else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/
{ char r;
printf("\n已经没有更多的票,您需要排队等候吗?(Y/N)");
r=getch();
printf("%c",r);
if(r=='Y'||r=='y')
{ printf("\n请输入您的姓名(排队订票客户):");
scanf("%s",name);
info->wait=appendqueue(info->wait,name,amount);/*在排队等候乘员名单域中添加客户信息*/
printf("\n注册成功!\n");
}
else printf("\n欢迎您下次再次订购!\n");
}
}

void return_tkt()
/*退票模块*/
{ struct airline *info;
qnode *t,*back,*f,*r;
int grade;
linklist *p1,*p2,*head;
char cusname[10];
if(!(info=find())) return;/*调用查询函数,根据客户提供的航线进行搜索*/
head=info->order;
p1=head;
printf("请输入你的姓名(退票客户):");
scanf("%s",cusname);
while(p1!=NULL) {/*根据客户提供的姓名到订票客户名单域进行查询*/
if(!strcmp(cusname,p1->name)) break;
p2=p1;p1=p1->next;
}
if(p1==NULL){ printf("对不起,你没有订过票!\n");return;}/*若未找到,退出本模块*/
else
{/*若信息查询成功,删除订票客户名单域中的信息*/
if(p1==head) head=p1->next;
else p2->next=p1->next;
info->tkt_sur+=p1->ord_amt;
grade=p1->grade;
printf("%s成功退票!\n",p1->name);
free(p1);
}

info->order=head;/*重新将航线名单域指向订票单链表的头指针*/
f=(info->wait).front;/*f指向排队等候名单队列的头结点*/
r=(info->wait).rear;/*r指向排队等候名单队列的尾结点*/
t=f;/*t为当前满点条件的排队候补名单域*/
while(t)
{
if(info->tkt_sur=info->wait.front->req_amt)
{/*若满足条件者为头结点*/
int i;
info->wait.front=t->next;
printf("%s订票成功!\n",t->name);
for(i=0;ireq_amt;i++)/*输出座位号*/
printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);
info->tkt_sur-=t->req_amt;
info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/
free(t);
break;
}
back=t;t=t->next;
if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)/*若满足条件者不为头结点*/
{ int i;
back->next=t->next;
printf("%s订票成功!\n",t->name);
for(i=0;ireq_amt;i++)/*输出座位号*/
printf("

Ⅲ 飞机的C语言程序代码

我有坦克的

#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 = 0; i < LENTH; i++) {
for (j = 0; j < WIDTH; j++) {
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 = 0; j < WIDTH; j++) {
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 = 0; i < LENTH; i++) {
for (j = 0; j < WIDTH; j++)
printf("%c", fun_ascii[i][j]);
printf("\n");
}
}

void print_enter(void)
{
int i;

for (i = 0; i < ENTER_NUM; i++)
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;
}

Ⅳ C语言编写一个简单的航空管理系统

需要分析:
A.车寻航线:
1.根据旅客提出的起点站,终点站名输出下列信息:航班号,票价,折扣,最多载客量,是否满载,起飞时间,降落时间和飞行时间;
2.根据订票乘客的姓名可以查询所订航班的航班号,座位号,飞行日期等信息;
3.根据航班号查询航班的起点站,中转站,终点站名,票价,折扣,最多载客量,是否满载,起飞时间,降落时间和飞行时间;
B.承办客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号,需付款项信息;若已满员或余票额少于盯票额,则需重新询问客户要求。若需要,可登记排队候补;
C.根据客户提供的情况(日期、航班),为客户办理退票手续。(然后查询该航班是否有人排队候补,首先询问排第一的客户,若所退票额所能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补客户);
E.内部人员对航班情况的控制:
可以录入航班信息,删除航班信息,修改航班信息,查看基本航班信息。

概要设计:
因为每个客户名单或查询名单都包括多个数据域,这样就需要有一个能存储多个数据域的数据类型来存储,因此采用单链表类型。由于航线的信息是固定的,可选用结构体数组,又因为订票与预约人数无法预计,可选用链表存储信息。
线性表的单链表存储结构:typedef struct LNode{
ElemType;
Struct Lnode*next;}LNode,*LinkList;
a.抽象数据类型顺序表的定义如下:
ADT SqList{
数据对象:D={ai|ai∈数据类型,i=1,2,3...,n}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,3...,n}
基本操作:
InitList_Sq(&L)
操作结果:创建空的顺序表。
CreatList_Sq(&L)
操作结果:建立顺序表。
}ADT SqList

b.抽象数据类型单链表的定义如下:
ADT LinkList{
数据对象:D={ai|ai∈结构类型,i=1,2,3...,n,n>0}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,3...,n}
基本操作:
InitList_L(&L)
操作结果:创建空的顺序表。
}ADT LinkList
在main()里调用各个函数
2.主程序
void main(){
初始化;
do{
接受命令;
处理命令;
}while(“命令”!=“退出”);
}
3.程序的模块调用:

三.详细设计:
1.所有数据类型:
struct plan /*航班数据*/
{
char num[5];/*航班号码*/
char city[10];/*到达城市*/
char up[8];/*航班起飞时间*/
char down[8];/*航班到达时间*/
int pric ;/*航班价格*/
int rshu ;/*人数*/
int zheg[4];/*价格折扣*/
}
;
struct man/*定票人数据*/
{
char num[10];/*身份证号码*/
char nam[10];/*姓名*/
int demand ;/*定票数量*/
}
;
typedef struct node/*航班数据结点*/
{
struct plan data ;
struct node*next ;
}
Node,*Link ;
typedef struct people/*乘客数据结点*/
{
struct man data ;
struct people*next ;
}
peo,*LIN ;

2.程序所用函数:
void print()/*界面输出*/
{
printf("============================System of book ticket===============================\n");
printf("\n");
printf("\t***********************************************************\n");
printf("\t*\t1---Bookticket \t2---Dishonorbill *\n");
printf("\t*\t3---Adding flight\t4---Adding flight *\n");
printf("\t*\t5---Modify \t6---Advice *\n");
printf("\t*\t7---Save \t8---exit *\n");
printf("\t##########################################################\n");
}
添加航班模块
void add(Link l)/*添加航班数据*/
{
Node*p,*r,*s ;
char num[10];
r=l ;
s=l->next ;
while(r->next!=NULL)
r=r->next ;
while(1)
{
printf("please input the number of the plan(0-return)");/*输入0就返回*/
scanf("%s",num);
if(strcmp(num,"0")==0)
break ;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====tip:the number'%s'has been born!\n",num);

return ;
}
s=s->next ;
}
p=(Node*)malloc(sizeof(Node));/*航班数据输入*/
strcpy(p->data.num,num);
printf("Input the city where the plan will reach:");/*飞机到达地城市*/
scanf("%s",p->data.city);
getchar();
printf("Input the time which the plan take off:");/*起飞时间*/
scanf("%s",p->data.up);
getchar();
printf("Input the time which the plan reach:");/*降落时间*/
scanf("%s",&p->data.down);
getchar();
printf("Input the price of ticket:$");/*机票价格*/
scanf("%d",&p->data.pric);
getchar();
printf("Input the number of people who have booked ticket:");/*定票数量*/
scanf("%d",&p->data.rshu);
getchar();
printf("Input the agio of the ticket:");
scanf("%s",&p->data.zheg);
getchar();
p->next=NULL ;
r->next=p ;
r=p ;
shoudsave=1 ;
}
}
输出模块
void pri(Node*p)/*输出函数*/
{
printf("\n\t\t\tThe following is the record you want:\n");
printf("\nnumber of plan: %s",p->data.num);
printf("\ncity the plan will reach: %s",p->data.city);
printf("\nthe time the plan take off: %s\nthe time the plan reach: %s",p->data.up,p->data.down);
printf("\nthe price of the ticket: %d",p->data.pric);
printf("\nthe number of people who have booked ticket: %d",p->data.rshu);
printf("\nthe agio of the ticket:%s",p->data.zheg);

}
退出函数模块
Node*Locate1(Link l,char findmess[],char numorcity[])
{
Node*r ;
if(strcmp(numorcity,"num")==0)
{
r=l->next ;
while(r)
{
if(strcmp(r->data.num,findmess)==0)
return r ;
r=r->next ;
}
}
else if(strcmp(numorcity,"city")==0)
{
r=l->next ;
while(r)
{
if(strcmp(r->data.city,findmess)==0)
return r ;
r=r->next ;
}
}
return 0 ;
}

航班信息模块
void qur(Link l)/*航班信息查询*/

{
Node*p ;
int sel ;
char str1[5],str2[10];

if(!l->next)
{
printf("TIP:there are not any record to be inquired for you!");
return ;
}
printf("Choose the way:(1->according to the number of plan;2->according to the city):");/*选择航班号查询和终点城市查询*/
scanf("%d",&sel);
if(sel==1)
{
printf("Input the the number of plan:");
scanf("%s",str1);
p=Locate1(l,str1,"num");
if(p)
{
printf("the following is what you want:\n");
pri(p);
}
else
{
mark1=1 ;
printf("\nthe file can't be found!");
}
}
else if(sel==2)
{
printf("Input the city:");
scanf("%s",str2);
p=Locate1(l,str2,"city");
if(p)
{
printf("the following is what you want:\n");
pri(p);
}
else
{
mark1=1 ;
printf("\nthe file can't be found!");
}
}
}

定票模块
void buy(Link l,LIN k)/*定票函数*/
{
Node*r[10],*p ;
int ch,dem ;
peo*v,*h ;
int i=0,t=0 ;
char str[10],str1[10],str2[10];
v=k ;
while(v->next!=NULL)
v=v->next ;
printf("Input the city you want to go: ");/*航班终点站城市*/
scanf("%s",&str);
p=l->next ;
while(p!=NULL)
{
if(strcmp(p->data.city,str)==0)
{
r[i]=p ;
i++;
}
p=p->next ;
}
printf("\n\nthe number of record have %d\n",i);
for(t=0;t<i;t++)
pri(r[t]);
if(i==0)
printf("\n\tSorry!Can't find the plan for you!\n");
else
{
printf("\ndo you want to book it?<1/0>\n");
printf("please choose: ");
scanf("%d",&ch);
if(ch==1)
{
h=(peo*)malloc(sizeof(peo));/*重新分配空间*/
printf("Input your name: ");
scanf("%s",&str1);
strcpy(h->data.nam,str1);
printf("Input your id: ");
scanf("%s",&str2);
strcpy(h->data.num,str2);
printf("Input your demand: ");
scanf("%d",&dem);
h->data.demand=dem ;
h->next=NULL ;
v->next=h ;
v=h ;
printf("\n\tLucky!Success in booking ticket!");
getch();
shoudsave=1 ;
}
}
}
peo*Locate2(LIN k,char findmess[])
{
peo*r ;
r=k->next ;
while(r)
{
if(strcmp(r->data.num,findmess)==0)
{
mark=1 ;
return r ;
}
r=r->next ;
}
return 0 ;
}
退票模块
void tui(LIN k)/*退票函数*/
{
char str[10];
peo*p,*r ;
int ch2=0 ;
printf("Input your id: ");/*输入身份证号*/
scanf("%s",&str);
p=Locate2(k,str);
if(mark!=1)
printf("can't find the people!");
else if(mark==1)
{
mark=0 ;
printf("\t\t\tthe following is the record you want:\n");
printf("your id:%s\n",p->data.num);
printf("name:%s\n",p->data.nam);
printf("your denmand:%d",p->data.demand);
printf("\ndo you want to refund the ticket?<1/0>");
scanf("%d",&ch2);
if(ch2==1)
{
if(p)
{
r=k ;
while(r->next!=p)
r=r->next ;
r->next=p->next ;
free(p);
}
count2--;
printf("\nyou have sucessed in refunding ticket!");
shoudsave=1 ;
}
}
}

void Modify(Link l)/*修改航班信息*/
{
Node*p ;
char findmess[20],ch ;
if(!l->next)
{
printf("\n=====tip:there isn't record for you to modify!\n");
return ;
}
else
{
qur(l);
if(mark1==0)
{
printf("\nDo you want to modify it?\n");
getchar();
scanf("%c",&ch);
if(ch=='y');
{
printf("\nInput the number of the plan:");
scanf("%s",findmess);
p=Locate1(l,findmess,"num");
if(p)
{
printf("Input another number of plan:");
scanf("%s",&p->data.num);
getchar();
printf("Input another city the plan will reach:");
scanf("%s",&p->data.city);
getchar();
printf("Input another time the plan take off");
scanf("%s",&p->data.up);
printf("Input another time the plan reach:");
scanf("%s",&p->data.down);
printf("Input another price of the ticket::");
scanf("%d",&p->data.pric);
printf("Input another number of people who have booked ticket:");
scanf("%d",&p->data.rshu);
printf("Input another agio of the ticket:");
scanf("%s",&p->data.zheg);
printf("\n=====>tip:modifying record is sucessful!\n");
shoudsave=1 ;
}
else
printf("\tcan't find the flight!");
}
}
else
mark1=0 ;
}
}

void advice(Link l)/*终点站航班查询*/
{
Node*r ;
char str[10];
int mar=0 ;
r=l->next ;
printf("Iuput the city you want to go: ");/*输入终点站城市*/
scanf("%s",str);
while(r)
{
if(strcmp(r->data.city,str)==0&&r->data.rshu<200)
{
mar=1 ;
printf("\nyou can select the following plan!\n");
printf("\n\nplease select the fourth operation to book the ticket!\n");
pri(r);
}
r=r->next ;
}
if(mar==0)
printf("\n\t\t\tyou can't book any ticket now!\n");

}

void save1(Link l)/*保存数据*/
{
FILE*fp ;
Node*p ;
int count=0,flag=1 ;
fp=fopen("g:\\data1","wb");
if(fp==NULL)
{
printf("the file can't be opened!");
return ;
}
p=l->next ;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next ;
count++;
}
else
{
flag=0 ;
break ;
}
}
if(flag)
{
printf("the number of the record which have been saved is %d\n",count);
shoudsave=0 ;
}
fclose(fp);
}

void save2(LIN k) /*保存数据*/
{
FILE*fp ;
peo*p ;
int count=0,flag=1 ;
fp=fopen("g:\\data2","wb");/*文件连接*/
if(fp==NULL)
{
printf("the file can't be opened!");
return ;
}
p=k->next ;
while(p)
{
if(fwrite(p,sizeof(peo),1,fp)==1)
{
p=p->next ;
count++;
}
else
{
flag=0 ;
break ;
}
}
if(flag)
{
printf("the number of the record which have been saved is %d\n",count);
shoudsave=0 ;
}
fclose(fp);
}

四.主函数模块:

main()
{
FILE*fp1,*fp2 ;
Node*p,*r ;
char ch1,ch2 ;
Link l ;
LIN k ;
peo*t,*h ;
int sel ;
l=(Node*)malloc(sizeof(Node));
l->next=NULL ;
r=l ;
k=(peo*)malloc(sizeof(peo));
k->next=NULL ;
h=k ;
fp1=fopen("g:\\data1","ab+");
if((fp1==NULL))
{
printf("can't open the file!");
return 0 ;
}

while(!feof(fp1))
{
p=(Node*)malloc(sizeof(Node));

if(fread(p,sizeof(Node),1,fp1)==1)
{
p->next=NULL ;
r->next=p ;
r=p ;

count1++;
}
}
fclose(fp1);
fp2=fopen("g:\\data2","ab+");
if((fp2==NULL))
{
printf("can't open the file!");
return 0 ;
}

while(!feof(fp2))
{
t=(peo*)malloc(sizeof(peo));

if(fread(t,sizeof(peo),1,fp2)==1)
{
t->next=NULL ;
h->next=t ;
h=t ;

count2++;
}
}
fclose(fp2);
while(1)
{

getch();
clrscr();

print();
printf("please choose the operation(1-8): ");
scanf("%d",&sel);
if(sel==8)
{
if(shoudsave==1)
{
getchar();
printf("\n=====tip:the file have been changed!do you want to save it(y/n)?\n");
scanf("%c",&ch1);
if(ch1=='y'||ch1=='Y')
{
save2(k);
save1(l);
}
}
printf("\n\tyou have exited! Happy serve for you");
break ;

}
switch(sel)
{
case 1 :
buy(l,k);
break ;

case 2 :
tui(k);
break ;

case 3 :
qur(l);
break ;

case 4 :
add(l);
break ;

case 5 :
Modify(l);
break ;

case 6 :
advice(l);
break ;

case 7 :
{
save1(l);
save2(k);
break ;
}

case 8 :
exit(0);
}

}
getch();
}

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

呵呵 这个也是我在网上搜的 挺不错 没有错误
#include<stdio.h> //标准输入、输出头文件
#include<string.h> //包含字符串函数处理头文件
#include<stdlib.h> //包含动态存储与释放函数头文件
#define N 10000
struct air //定义结构体数组
{
int num;
char start[20];
char over[20];
char time[10];
int count;
}s[N];
int i;
int m=0;
#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定义输出格式
void input(); //输入航班信息
void print(); //输出航班信息
void save(); //保存航班信息
void read(); //读取航班信息
void search(); //查找航班信息
void shanchu(); //删除航班信息
void dingpiao(); //订票信息
void tuipiao(); //退票信息
void xiugai(); //修改信息
void main()
{

int j;
printf(" ★---您好,欢迎进入中国民航管理系统!---★\n");
printf("================================================================================\n");
do
{
printf(" -------- ☆ 1.输入航班信息 ☆-------- \n\n"
" -------- ☆ 2.浏览航班信息 ☆-------- \n\n"
" -------- ☆ 3.修改航班信息 ☆-------- \n\n"
" -------- ☆ 4.查找航班信息 ☆-------- \n\n"
" -------- ☆ 5.删除航班信息 ☆-------- \n\n"
" -------- ☆ 6.订票信息 ☆-------- \n\n"
" -------- ☆ 7.退票信息 ☆-------- \n\n"
" -------- ☆ 0.退出 ☆-------- \n\n");
printf("================================================================================\n");
printf("请在0-7中选择以回车键结束:\n\n");
scanf("%d",&j);
switch(j)
{
case 1: input();//调用输入模块
break;
case 2:print();//调用打印模块
break;
case 3:xiugai();//调用修改模块
break;
case 4:search();//调用查找模块
break;
case 5:shanchu(); //调用删除模块
break;
case 6:dingpiao();//调用订票模块
break;
case 7:tuipiao();//调用退票模块
break;
case 0:;
break;
}
}while(j!=0); //判断结束
printf("谢谢使用,再见!\n");
}//主函数结束
void input()//打印模块程序
{
char f[]="2008china"; //设置密码
int y;
printf("请输入密码并以回车键结束:\n\n");
scanf("%s",f); //读取密码
if(strcmp(f,"2008china")==0)
{
printf("请依次输入航班信息(机票数位0结束输入):\n\n"
"完成输入信息请键入w以回车键结束\n\n"); //打印提示信息
printf("--------------------------------------------------------------------------\n");
for(i=0;i<N;i++)
{

printf("请输入航班号:\n");
scanf("%d",&s[i].num); //读取航班号
printf("请输入起始站:\n");
scanf("%s",s[i].start);//读取起始站
printf("请输入终点站:\n");
scanf("%s",s[i].over);//读取终点站
printf("请输入时间:\n");
scanf("%s",s[i].time);//读取时间
printf("请输入机票数(机票数为0结束输入):\n",m);
scanf("%d",&s[i].count);//读取机票数
m++;

printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);
scanf("%d",&y);
if(y==0)
{
save();//将结构体信息存盘
print();//输出输入的航班信息
break;
}

}

}
else
printf("输入密码错误!请检查您的密码是否正确!谢谢!再见!\n\n");
}
void save()//保存模块程序
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
if((fp1=fopen("hao.dat","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}

for(i=0;i<m;i++)
if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错
printf("向文件输入数据失败!\n\n");
fprintf(fp1,"%d",m);
fclose(fp);//关闭文件
fclose(fp1);//关闭文件
}

void read()//从文件读取信息模块
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","rb"))==NULL)//打开文件,并判断是否出错
{
printf("出错,请检查文件是否存在,按任意键返回住菜单");//打印出错提示
getchar();
}
if((fp1=fopen("hao.dat","rb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);//关闭文件
for(i=0;i<m;i++)
{
fread(&s[i],sizeof(air),1,fp);//从文件中读取信息
}
fclose(fp);//关闭文件
}
void print()//打印模块
{
char w[10];
read();//调用读取文件函数
printf("航班号 起始站 终点站 时间 机票数\n");
for(i=0;i<m;i++)
{
printf(PRINT);//打印信息
}
printf("请按任意键回车键结束返回上层菜单以:\n");
scanf("%s",w);
}

void search()//查询模块
{
char name1[20];
char name2[20];
char ii[10];
int n,no;
do
{
printf("请选择查找方式:\n\n");//打印查询方式菜单
printf("1.按航班号查找\n\n"
"2.按终点站查找\n\n"
"3.按航线查找\n\n"
"0.返回\n\n");
printf("请在0-3中选择:\n\n"
"按其他键以回车键结束返回主菜单:\n\n");
scanf("%d",&n);//读取查找方式
if(n==0)
break;
switch(n)
{
case 1:
printf("请输入航班号:\n");
scanf("%d",&no);//航班号
break;
case 2:
printf("请输入终点站名称:\n");
scanf("%s",name2);//读取终点站
break;
case 3:
printf("请输入起始站名称:\n");
scanf("%s",name1);//读取起始站
printf("请输入终点站名称:\n");
scanf("%s",name2);//终点站
break;
}
read();//调用读取函数
for(i=0;i<m;i++)
{
if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按终点站起始站判断输出条件
{
printf("\n查找航班信息成功!\n");
printf("航班号 起始站 终点站 时间 机票数\n");
printf(PRINT);//打印信息
break;
}
if(s[i].num==no)//按航班号判断输出条件
{
printf("\n查找航班信息成功!\n");
printf("航班号 起始站 终点站 时间 机票数\n");
printf(PRINT);//打印信息
break;
}
}
no=0;//将航班号赋值为0
printf("没有您需要的信息或查找完毕:\n\n"
"是否继续查找?请键入yes或no以回车键结束\n");
scanf("%s",ii);
}while(strcmp(ii,"yes")==0);//判断结束
}
void shanchu()//删除模块
{
char name1[20];
char name2[20];
char ii[10];
char f[]="2008china";//设置密码
int no,n;
printf("请输入密码并以回车键结束:\n\n");
scanf("%s",f);//读取密码
if(strcmp(f,"2008china")==0) //判断密码是否正确
{
do
{
printf("请选择删除以方式回车键结束:\n\n");//打印删除方式菜单
printf("*1.按航班号删除\n\n"
"*2.按航线删除\n\n"
"*0.返回\n\n");
printf("请在0-2中选择以回车键结束:\n");
scanf("%d",&n);//读取删除方式
if(n==0)
break; //跳出循环
switch(n)
{
case 1:
printf("请输入航班号:\n");
scanf("%d",&no);//读取航班号
read();//调用读取函数
break;//跳出循环
case 2:
printf("请输入起始站 名称:\n");
scanf("%s",name1);//读取起始站
printf("请输入终点站名称:\n");
scanf("%s",name2);//读取终点站
read();//调用读取函数
break;//跳出循环
}
for(i=0;i<m;i++)
{
if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)//判断输入信息是否存在
{
s[i]=s[m-1];
m--;
}

}
printf("查找完毕或没有这个信息\n\n");
printf("是否继续删除\n");
printf("请键入yes或no以回车键结束\n");
scanf("%s",ii); //读取是否继续信息
save(); //调用读取函数
if(!strcmp(ii,"yes")) //判断是否继续删除
printf("请按任意键以回车键结束返回上层菜单:\n");
break;
}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判断结束
}
else
printf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n");
}

void dingpiao()//订票模块
{
int n;
char a[10];
do
{
search();//调用查询模块
printf("请输入您要订的机票数以回车键结束:\n");
scanf("%d",&n);//读取所订机票数
if(n<0)
{
printf("请输入有效的机票数!\n");//判断机票数是否出错
break;
}
if(s[i].count!=0&&s[i].count>=n)//判断是否出错
{
s[i].count=s[i].count-n;
save();//调用保存函数
printf("订票成功!\n\n");
break;
}
if(s[i].count<n)//判断是否出错
{
printf("请输入有效的机票数:\n");
break;
}
printf("是否继续? 请输入yes或no以回车键结束:\n");//判断是否继续订票
scanf("%s",a);
}while(!strcmp(a,"yes"));//判断结束

}
void tuipiao()//退票模块
{
int n;
char a[10];
do
{
search();//调用查询模块
printf("请输入您要退的机票数目:\n");
scanf("%d",&n);//输入所退票数
if(n<0) //判断票数是否有效
printf("请输入有效的机票数!\n");
s[i].count=s[i].count+n;
save(); //调用保存模块
printf("退票成功!\n\n");
printf("是否继续? 请键入yes或no以回车键结束:\n\n");//判断是否继续退票
scanf("%s",a);
}while(!strcmp(a,"yes"));//判断并跳出循环
getchar();
}
void xiugai() //修改模块
{
struct xiu //定义结构体
{
int no;
char name1[20];
char name2[20];
char time[20];
int count;
}x[1];
char j[10];
char f[]="2008china";//设置密码
int n;
printf("请输入密码并以回车键结束:\n\n");
scanf("%s",f);//读取密码
if(strcmp(f,"2008china")==0)//判断是否出错
{
read();//调用读取模块
do
{
printf( "请选择修改方式:\n\n"
"*1,按航班号修改:\n\n"
"*2,按航线修改: \n\n");
printf("请在1---2中修改以回车键结束:\n\n");
scanf("%d",&n);//读取修改方式
switch(n)
{
case 1:printf("请输入航班号:\n");
scanf("%d",&x[0].no);//读取航班号
break;
case 2:printf("请输入起始站:\n");
scanf("%s",x[0].name1);//读取起始站
printf("请输入终点站:\n");
scanf("%s",x[0].name2);//读取终点站
break;
}
for(i=0;i<m;i++)
{
if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)//判断输出条件
{
printf("航班号 起始站 终点站 时间 机票数\n");
printf(PRINT);
break;
}
if(s[i].num==x[0].no)//判断输出条件
{
printf("航班号 起始站 终点站 时间 机票数\n");
printf(PRINT);
break;
}
}
x[0].no=0; //将结构体中的号为零
printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数:\n");
scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);//定义输入格式
s[i].num=x[0].no;//替换航班号
strcpy(s[i].start,x[0].name1);//替换其始站
strcpy(s[i].over,x[0].name2);//替换终点站
strcpy(s[i].time,x[0].time);//替换时间
s[i].count=x[0].count;//替换机票数
save();//调用保存模块
printf("是否继续?请键入yes或no以回车键结束:\n\n");
scanf("%s",j);
}while(strcmp(j,"yes")==0); //判断结束
}
else
printf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n");
}

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

编制一个航班订票系统。应具备如下功能:该航班仅有一架100座飞机;该飞机座位分为吸烟区(30个座位)和无烟区(70个);订票系统界面是选择菜单:1.选吸烟区座位号;2.选无烟区座位号;用户输入自己的选择后,该区若有空位,则顺序地分配一个座号;否则致歉;若吸烟区已满而无烟区有空位,则征求顾客意见,是否愿意得到无烟区的空位,若愿意,则在无烟区分配一个座号,否则致歉退出;顾客不得自主挑选座位号;
#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<memory.h>
#define LIN 31
#define LIE 71
static int smok[LIN];//吸烟区票
static int nosmoke[LIE];//无烟区票
void Initnosmoke();//初始化
void ASK();void Initsmok();
void nosmok();
void smoke();
int search(int *array,int size);
void show();
int main()
{
Initnosmoke();
Initsmok();show();return 0;}void Initnosmoke()//初始化无烟区票{int sun=0;for(int j=0;j<LIE;j++){sun+=1;nosmoke[j]=sun;}}void Initsmok()//初始化吸烟区票{int k=0;for(int i=0;i<LIN;i++){k+=1;smok[i]=k;}}int search(int *array,int size)/*该函数的作用是用来查看系统中某类票是否卖完,入股卖完了返回1,反之返回的是0*/{int i;for(i=0;i<size;i++){if(array[i]!=0){return 0;}else{;}}return 1;}void nosmok()//购买无烟区票{for(int i=0;i<LIE;i++){if(i<LIE-1){if(nosmoke[i]!=0){printf("你票是:NOSMOKE_%d\n",nosmoke[i]);nosmoke[i]=0;break;}else{;}}else{printf("对不起!NOSMOKE票已售完!");}}}void ASK()/*该函数用来询问客户是否需要买NOSMOKE票当SMOKE票卖完的情况下*/{char ask;printf("NOSMOKE票你要吗?(y/n)\n");ask=getchar();if(ask =='y' || ask=='Y' ){nosmok();}else if(ask=='n' || ask=='N'){printf("谢谢!再见\n");}else{printf("输入错误!\n");}}void smoke()//购买吸烟区票{for(int j=0;j<LIN;j++){if(j<LIN-1){if(smok[j]!=0){printf("你票是: SMOKE_%d\n",smok[j]);smok[j]=0;break;}else{;}}else{printf("对不起!SMOKE票已售完!");{fflush(stdin);int rec=search(nosmoke,LIE);if(rec==0){ASK();}else{printf("谢谢!\n");}}}}}void window(){printf("\t\t欢迎使用航班订票系统\n");printf("\t\t1.吸烟区座位\n");printf("\t\t2.无烟区座位\n");printf("\t\t3.退出系统\n");printf("\t\t请选择(1~3)进行操作:\n");}void show(){system("color 4a");char ch=' ';window();while(ch!='3'){fflush(stdin);ch=getchar();switch(ch){case '1':{smoke();break;}case '2':{nosmok();break;}case '3':{break;}default:break;}window();ch=getchar();}}

Ⅶ 求大神解决。C语言程序设计课题,飞机订票系统

这就是最简单的一个sturct或者class应运啊!自己定义下,慢慢理顺就好了!很简单的

Ⅷ 求C语言的大项目

朋友我这有几个哈。你可以看看 一. 设计题目: 图书管理系统 1. 新书入库: 图书信息包括书名, 书号, 库存量, 现存量共4项. 首先输入3本书的信息, 并将其存入文件 ”book.dat” 中. 当有新书入库时, 先判断文件中是否有此书( 即比较书名 ), 若有则修改库存量, 现存量的信息; 若无此书, 则将该书的信息添加到文件中. 2. 图书查询: 输入一个书号, 在文件中查找此书, 若找到则输出此书的全部信息; 若找不到则输出查找失败的信息. 3. 借阅管理 (1) 每个读者的信息包括姓名, 编号, 1张借书卡( 限借一本书 ), 输入3个读者的信息存入文件 “reader . dat” 中. (2) 借书登记: 输入读者的姓名, 所借图书的书号, 先判断姓名是否在文件”reader.dat” 中, 若有则将书号存入一张借书卡上( 注: 初始时借书卡的信息都为零, 借书后借书卡的信息改为所借书的书号), 并修改文件”reader.dat”的相应内容, 同时修改文件”book.dat”中此书的现存量. 若”reader.dat”无此姓名, 则应提示错误 (3) 还书管理: 输入读者的姓名, 所还图书的书号, 将借书卡的信息置为零, 并修改文件”reader.dat”的相应内容, 同时修改文件”book.dat”中此书的现存量. 4. 输出全部图书信息和全部读者信息 5. 退出系统. 二. 设计题目: 航空订票系统 1. 航线信息: 每条航线信息包括航班号, 飞机号, 目的地, 订票数, 余票数共5项. 假设现在有3条航线, 目的地分别是北京, 上海, 广州, 飞机上可乘坐100人( 即初始订票数为0, 余票数为100) , 将这3条航线信息存入文件”airline.dat” 中. 2. 订票业务 (1) 客户信息包括姓名, 航班号, 座位号(初始为0), 假设已有3个客户信息存入文件”customer.dat”中. (2) 有新客户订票时, 先输入客户的姓名和他提出的航班号, 查询该航线的订票情况, 若有余票, 则为客户办理订票手续, 分配给客户一个座位号, 然后将新客户的信息添加到文件”customer.dat”中, 并修改文件”airline.dat”中该航线的订票数和余票数. 若无余票, 则输出客满信息. 3. 退票业务: 根据客户提出的航班号, 办理退票, 从文件”customer.dat”中删除该客户的信息, 并修改文件”airline.dat”中相应航线的订票数和余票数. 4. 输出全部航线信息和全部客户信息. 5. 退出系统. 三. 设计题目: 销售管理系统 1. 销售员信息: 每个销售员包括姓名, 编号, 产品1销售额, 产品2销售额, 总销售额共5项信息. 首先输入3个销售员的信息存入文件”sailer.dat”中. 2. 排序: 按产品1的销售额进行排序, 将排序后的信息存入文件 ”sailer1.dat”中, 按产品2的销售额进行排序, 将排序后的信息存入文件”sailer2.dat”中, 按总销售额进行排序, 将排序后的信息存入文件 ”sailer3.dat” 中 3. 统计: 分别统计产品1的总销售额和产品2的总销售额并进行输出 4. 销售员的增加: 增加一个销售员的信息, 先将其添加到文件”sailer.dat”中, 然后按其总销售额进行插入排序, 排序后的信息仍存入文件”sailer3.dat”中. 5. 销售员的减少: 输入一个销售员的姓名, 从文件”sailer.dat”中将其删除. 6. 输出全部销售员的信息 7. 退出系统 四. 设计题目: 停车场管理 1.有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层. ( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号 ) 每辆车的信息包括车牌号, 层号, 车位号, 停车时间共4项. 其中停车时间按分钟计算 2. 假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中( 数组的对应元素也要进行赋值 ) 3. 停车操作: 当一辆车进入停车场时, 先输入其车牌号, 再为它分配一个层号和一个车位号(分配前先查询车位的使用情况, 如果第一层有空则必须停在第一层), 停车时间设为5 , 最后将新停入的汽车的信息添加文件”car.dat”中, 并将在此之前的所有车的停车时间加5. 4. 收费管理(取车): 当有车离开时, 输入其车牌号, 先按其停车时间计算费用, 每5分钟0.2元. (停车费用可设置一个变量进行保存), 同时从文件”car.dat”中删除该车的信息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 按用户的选择来判断是否要输出停车收费的总计. 5. 输出停车场中全部车辆的信息. 6. 退出系统. 五. 为小型会议设计一个参会人员管理程序。 要求: (1)登录参会人员的下列信息: ·姓名(name); ·性别(sex); ·年龄(age); ·单位(department) ·房间号(room-num)(设每个房间只住一人,房间号为101#—120#,…..,501#—520#)。 (2)主菜单应至少包括以下几个菜单项: 人员登录、显示报到人员信息、查询、统计、修改、删除 (3)程序应分别用几个个函数实现以上功能: ·随时对报到人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有的房间都已经住满,则拒绝再进行人员登录; ·随时按所住房间号(由小到大)输出(print)已报到人员信息; ·能够根据姓名实现对人员信息的查询; ·能够根据单位对与会人员进行分类统计,并输出统计结果; ·能够修改与会人员的信息; ·能够删除某个参会人员,并清空其所住房间; (4)程序中的变量要使用题中给定的英文名词。 六、 设计题目:建通讯录,并对它进行增加、查询、修改、删除、显示记录等操作。 第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示英文提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的通讯录。 第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块——List()的功能是:显示通讯录中的所有记录。 七、设计题目:动态演示汉诺塔问题的解决过程。(或用C语言设计一个动画程序) 要求:在图形模式下,能将每一次盘子的移动用动画演示出来。 八、设计题目:迷宫问题。 要求: (1) 用户可以自己建立一个大小随意的迷宫。 (2) 从入口出发,找出所有出路。(最好用图形化的方式演示) 九、题目:设计一个摸拟时钟转动的程序。 (一)、基本要求:设计的时钟要美观大方,既能摸拟机械钟表行走(有时针、分针和秒针),还要准确地利用数字显示日期和时间。 (三)、创新要求:在基本要求达到后,进行创新设计,如增加整点报时功能,定时功能等。 (四)、设计方法 基本原理:在图形模式下绘出时钟的外表,利用dos.h中的gettime和getdate得到系统的时间和日期,然后利用绘图函数显示在屏幕上。 十、设计题目:编写一个文本编辑器(记事本)。 要求:要有文本编辑器的基本功能,如打开、编辑、保存、修改等。 十一、设计题目:俄罗斯方块游戏实现。 用户的键盘控制如下: 左右箭头(“<”和“>”:控制方块的左右运动。 向下方的箭头:控制方块的加速运动,可以使方块迅速下落到底部。 空格键:控制方块的旋转变换。 Esc键:退出游戏。 设计总要求: 1. 有些题目要制作字符形式的菜单. 2. 不同的功能使用不同的函数实现. 3. 对程序进行必要的注释. 4. 按下列要求书写课程设计报告(必须要有) (1) 给出相关数据结构及说明; (2) 给出程序的结构流程; (3) 调试过程中出现的问题和解决方法; (4) 编程体会。 (5) 要有磁盘稿。