#include <stdioh>
#include <mathh>
int main()
{
double a = 00; // 加速度
double t = 00; // 加速时间
double v0 = 00, s = 940, v = 2780; // 初速度,加速距离,起飞速度
printf("输入起飞速度(km/h)、d射距离(m),如输入278km/h,94m:\n");
scanf("%lfkm/h,%lfm", &v, &s);
v = v / 36; // 转换成m/s
a = pow(v, 2)/(2s); // 计算加速度
t = sqrt(2s/a); // 计算加速时间
printf("加速度a=%3lf,加速时间t=%3lf", a, t);
return 0;
}
#include <stdioh>
#include <conioh>
struct Plane
{
int p[20][4];
};
int main()
{
int i, j, row, num, flag = false;
char ch,n,name[30],id[25];
Plane plane1;
for (i=0;i<20;i++)
for (j=0;j<4;j++)
plane1p[i][j] = false; // 初始化所有位置为空
printf("\t\t========飞机订票系统=======\t\t\n\n");
printf("\t\t本飞机现在还有如下空位:\t\t\n\n");
for (i=0;i<20;i++)
{
if (i==18)
printf("\n\t\t以下为吸烟区\t\t\n\n");
printf("\t\t");
for (j=0;j<4;j++)
{
if (plane1p[i][j] == false)
printf("%d%c\t",i+1,j+65);
else printf(" \t");
}
printf("\n");
}
do{
printf("\t\t有您满意的座位吗?(y/n) ");
scanf("%c",&ch);
} while (ch != 'y' && ch != 'Y' &&
ch != 'n' && ch != 'N');
if (ch == 'y' || ch == 'Y')
{
do{
printf("\t\t请输入您满意的座位排数及编号:(如10D)\n\t\t");
scanf("%d%c",&row,&n);
num = (int)(n-65);
if (plane1p[row-1][num] == true)
{
printf("\t\t对不起,此座位已出售!请重新选择!\n");
flag = true;
}
} while (row<1||row>20||n<'A'||n>'D'||
flag == true);
plane1p[row-1][num] = true;
printf("\t\t请输入您的姓名: ");
scanf("%s",name);
printf("\t\t请输入您的身份z号: ");
scanf("%s",id);
printf("\t\t恭喜您,订票成功!\n");
printf("\t\t您的信息:\n");
printf("\t\t姓名: %s\n",name);
printf("\t\t身份z号: %s\n",id);
printf("\t\t座位: %d%c\n",row,n);
printf("\t\t祝您旅途愉快!");
}
else printf("\t\t对不起,请您选择另一航班!");
getch();
return 0;
}
#include "stdioh"
#include "malloch"
#include "stringh"
#define MAXN 100
typedef struct{
char hour[MAXN];
char minute[MAXN];
} time;
typedef struct node
{
char number[MAXN]; //航班号
time start; //起飞时间
time end; //到达时间
char start_station[MAXN]; //起点站
char end_station[MAXN]; //终点站
char type[MAXN]; //飞机型号
char price[MAXN]; //票价
struct nodelink;
}NODE;
NODE create_link_list(int n)
{
int i;
NODE head,p,q;
if(n==0)return(NULL);
head=(NODE)malloc(sizeof(NODE));
for(i=0;i <MAXN;i++)
{
head->number[i]='\0';
head->starthour[i]='\0';
head->startminute[i]='\0';
head->endhour[i]='\0';
head->endminute[i]='\0';
head->start_station[i]='\0';
head->end_station[i]='\0';
head->type[i]='\0';
head->price[i]='\0';
}
p=head;
for(i=1;i <n;i++)
{
printf("请输入航班号:");
scanf("%s",&(p->number));
printf("请输入起飞时间(时 分):");
scanf("%s %s",&(p->starthour),&(p->startminute));
printf("请输入达到时间(时 分):");
scanf("%s %s",&(p->endhour),&(p->endminute));
printf("请输入起点站 终点站:");
scanf("%s %s",&(p->start_station),&(p->end_station));
printf("请输入飞机型号:");
scanf("%s",&(p->type));
printf("请输入票价:");
scanf("%s",&(p->price));
printf("\n");
q=(NODE)malloc(sizeof(NODE));
p->link=q;
p=q;
}
printf("请输入航班号:");
scanf("%s",&(p->number));
printf("请输入起飞时间(时 分):");
scanf("%s %s",&(p->starthour),&(p->startminute));
printf("请输入达到时间(时 分):");
scanf("%s %s",&(p->endhour),&(p->endminute));
printf("请输入起点站 终点站:");
scanf("%s %s",&(p->start_station),&(p->end_station));
printf("请输入飞机型号:");
scanf("%s",&(p->type));
printf("请输入票价:");
scanf("%s",&(p->price));
printf("\n");
getchar();
p->link=NULL;
return(head);
}
void insert(NODE p_head,NODE q)
{
NODE p;
if(p_head==NULL)
p_head=q;
else
{
p=p_head;
while(p!=NULL&&p->link!=NULL)
p=p->link;
p->link=q;
}
}
unsigned int countit(NODE n)//计算链表长度
{
unsigned int counti = 0;
while(n!=NULL)
counti++,n=n->link;
return counti;
}
NODE getindex(NODE head, int num);
NODE getindex(NODE head, int num)//取得index为num 的节点!
{
if(num<0 || num>countit(head))
return NULL;
NODE rn = head;
while(--num>0)
rn = rn->link;
return rn;
}
int binSearch(NODE n,char strinput,int low, int high)// 二分查找
{
int i;
int middle = (high+low)/2;
if (high < low)
return 0;
if ((i=strcmp(strinput, n->number)) <0)
high= middle;
else if (i > 0)
low = middle;
else
{
i = middle;
return i;
}
binSearch(getindex(n,middle),strinput,low,high);
}
int bisect(char a[],int n,char s[MAXN])//二分查找
{
int i,j,m;
i=0;
j=n-1;
while(i <=j)
{
m=(i+j)/2;
}
return(-1);
}
NODE search1(NODE head,char v[MAXN])//起点站顺序查找
{
for(;head!=NULL&&strcmp(head->start_station,&v[0]);head=head->link);
return(head);
}
NODE search2(NODE head,char w[MAXN])//到达站顺序查找
{
for(;head!=NULL&&strcmp(head->end_station,&w[0]);head=head->link);
return(head);
}
NODE search3(NODE head,char x[MAXN],char y[MAXN])//起飞时间顺序查找
{
for(;head!=NULL&&(strcmp(head->starthour,&x[0]) || strcmp(head->startminute,&y[0]));head=head->link);
return(head);
}
NODE search4(NODE head,char t[MAXN],char u[MAXN])//到达时间顺序查找
{
for(;head!=NULL&&(strcmp(head->endhour,&t[0]) || strcmp(head->endminute,&u[0]));head=head->link);
return(head);
}
void output(NODE p)
{
while(p!=NULL)
{
printf("航班信息:\n");
printf("航班号:%s\n",p->number);
printf("起飞时间:%s点%s分,",p->starthour,p->startminute);
printf("到达时间:%s点%s分\n",p->endhour,p->endminute);
printf("起点站:%s,",p->start_station);
printf("到达站:%s\n",p->end_station);
printf("飞机型号:%s ",p->type);
printf("票价:%s元\n\n",p->price);
p=p->link;
}
}
NODE rank( NODE head)
{
NODE q=0,p=0,t,h1;
h1=head->link;
head->link=NULL;
while(h1!=NULL)
{
t=h1;
h1=h1->link;
p=head;
q=head;
while( p!=NULL && strcmp(t->number, p->number)>0 )
{
q=p;
p=p->link;
}
if(q == p)
{
t->link=p;
head=t;
}
else
{
t->link=p;
q->link=t;
}
}
return head;
}
int main(int argc, char argv[])
{
NODE p,q,r;
int a,b,i,j,n;
int count=0;
char o[MAXN];
char s[MAXN];
char v[MAXN];
char w[MAXN];
char x[MAXN];
char y[MAXN];
char t[MAXN];
char u[MAXN];
for(i=0;i <MAXN;i++)
{
o[i]='\0';
s[i]='\0';
v[i]='\0';
w[i]='\0';
x[i]='\0';
y[i]='\0';
t[i]='\0';
u[i]='\0';
}
while(true)
{
printf("航班信息的查询与检索\n");
printf("★★\n");
printf(" 1建立航班信息\n");
printf(" 2插入航班信息\n");
printf(" 3按航班号进行排序 \n");
printf(" 4航班信息查询\n");
printf(" 5显示航班信息\n");
printf(" 6退出本系统\n");
printf("★★\n");
scanf("%d",&a);
getchar();
switch(a)
{
case 1:
printf("请输入你所要建立的航班信息个数:");
scanf("%d",&n);
p=create_link_list(n);
break;
case 2:
q=create_link_list(1);
insert(&p,q);
break;
case 3:
p = rank(p);
break;
case 4:
printf("\n1、按照航班号查询\n");
printf("2、按照起点站查询\n");
printf("3、按照到达站查询\n");
printf("4、按照起飞时间查询\n");
printf("5、按照到达时间查询\n");
scanf("%d",&b);
getchar();
switch(b)
{
case 1:
p=rank(p);
printf("请输入您所要找的航班号:");
scanf("%s",s);
if( binSearch(p,s,1, countit(p)) )
printf("scuess!\n");
break;
case 2:
printf("请输入起点站");
scanf("%s",&v[MAXN]);
if(search1(p,&v[MAXN])!=NULL)
{
printf("查询成功!\n");
r=search1(p,&v[MAXN]);
output(r);
}
else
printf("查询失败,该信息录中没有该起点站!\n");
break;
case 3:
printf("请输入到达站");
scanf("%s",&w[MAXN]);
if(search2(p,&w[MAXN])!=NULL)
{
printf("查询成功!\n");
r=search2(p,&w[MAXN]);
output(r);
}
else
printf("查询失败,该信息录中没有该到达站!\n");
break;
case 4:
printf("请输入起飞时间(时 分)");
scanf("%s %s",&x[MAXN],&y[MAXN]);
if(search3(p,&x[MAXN],&y[MAXN])!=NULL)
{
printf("查询成功!\n");
r=search3(p,&x[MAXN],&y[MAXN]);
output(r);
}
else
printf("查询失败,该信息录中没有该到达站!\n");
break;
case 5:
printf("请输入到达时间");
scanf("%s %s",&t[MAXN],&u[MAXN]);
if(search4(p,&t[MAXN],&u[MAXN])!=NULL)
{
printf("查询成功!\n");
r=search4(p,&t[MAXN],&u[MAXN]);
output(r);
}
else
printf("查询失败,该信息录中没有该到达站!\n");
break;
}
break;
case 5:
output(p);
printf("\n");
break;
case 6:
return(0);
}
}
return(0);
}
以上就是关于帮忙编一道c语言程序题全部的内容,包括:帮忙编一道c语言程序题、c语言飞机订票系统设计、求C语言编程(航班信息查询与检索)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)