本文目录一览:
- 1、急急急,新手C语言编写考场座位系统,出现error C2115: 'function' : incompatible types,求大神。。。
- 2、排考场座位问题 c语言
- 3、c语言编写~~~机票座位预订系统
- 4、c语言 排座位
- 5、C语言编程:写一个订座程序,默认共有12个座位
急急急,新手C语言编写考场座位系统,出现error C2115: 'function' : incompatible types,求大神。。。
问题还是不少吧,整理了一下,现在没有错误了,至于逻辑需要自己梳理,仔细体会一下吧。
#includestdio.h
#includestdlib.h
#includetime.h
#includestring.h
typedef struct student
{
char ID[20];
char NAME[20];
}stu;
void set(stu stu1[][8]);
void delete1(stu stu[][8]);
void show(stu student[][8]);
void Information(stu stud[][8]);
void find(stu stu[][8], int *q, int *p);
void clean();
void main()
{
int pick,choice,x,y;
stu stu1[8][8];
for (x=0;x8;x++)
{
for (y=0; y8;y++ )
{
strcpy(stu1[x][y].ID, "*");
strcpy(stu1[x][y].NAME, "*");
}
}
clean();
do
{
printf("请输入数字:");
scanf("%d",choice);
getchar();
switch(choice)
{
case 1:set(stu1);break;
case 2:delete1(stu1);break;
case 3:Information(stu1);break;
case 4:find(stu1, x, y);break;
case 5:show(stu1);break;
default: printf("fhsak");
}
printf("继续请按1,退出请按2");
scanf("%d",pick);
getchar();
}while(pick==1);
}
void set(stu stu1[][8])
{
char id[16];
char name[10];
int x,y,z;
srand(time(NULL));
printf("请输入准考证号和姓名(中间以一个空格隔开)");
scanf("%s %s",id, name);
z=rand()%64+1;
x=z/8+1;
y=z%8+1;
strcpy(stu1[x][y].ID,id);
strcpy(stu1[x][y].NAME,name);
}
void Information(stu stud[][8])
{
int x,y;
printf("请输入查询的考生的座位行号:");
scanf("%d",x);
printf("请输入查询的考生的座位列号:");
scanf("%d",y);
puts(stud[x-1][y-1].ID);
puts(stud[x-1][y-1].NAME);
}
void find(stu stu[][8], int *q, int *p)
{
char num[20];
int x,y,i=0;
printf("请输入需要查询的考生的准考证号:");
scanf("%s",num);
for(x=0;x8;x++)
{
for(y=0;y8;y++)
{
if(strcmp(stu[x+1][y+1].ID,num)==0)
{
printf("该考生的考试座位号为%d行,%d列",x,y);
*q=x+1;*p=y+1;
i++;
}
}
}
if(i==0)
printf("不存在此准考证号");
}
void delete1(stu stu1[][8])
{
int *p=NULL, *q=NULL;
find(stu1, p, q);
strcpy(stu1[*q][*p].ID,"*");
strcpy(stu1[*q][*p].NAME,"*");
}
void show(stu student[][8])
{
for(int x=1;x9;x++)
{
for(int y=1;y9;y++)
{
printf("%s",student[x][y].NAME);
}
}
}
void clean()
{
system("cls");
puts(" |----------------------------------------| ");
puts(" | 请输入选项编号(1-5): | ");
puts(" |----------------------------------------| ");
puts(" | 1-设定考场座位 | ");
puts(" | 2-取消考场座位 | ");
puts(" | 3-显示某座位考生信息 | ");
puts(" | 4-查找学生座位 | ");
puts(" | 5-显示考场座次表 | ");
puts(" |----------------------------------------| ");
}
排考场座位问题 c语言
#include stdio.h
#include stdlib.h
#include time.h
#define ROW 8
#define COL 8
int seat[ROW*COL]={0};
void main()
{
int i,j,k,a,count=0;
while(1)
{
system("cls"); //清屏
fflush(stdin); //清键盘输入缓冲区
printf("\n\t\t1 设定考场座位");
printf("\n\t\t2 取消考场座位");
printf("\n\t\t3 显示某座位考生信息");
printf("\n\t\t4 查找学生座位\n\t\t\t退出程序:Ctrl+C\n\n\t请选择:");
k = getchar();
if(k'1'||k'4') continue;//无效的选择直接忽略
fflush(stdin);
switch (k)
{
case '1':
if(count+1 = ROW*COL){printf("报歉,坐位已满!");break;}
printf("输入准考证号:");
scanf("%d",k);
for(a=0; aROW*COL; a++) if(seat[a] == k) break;//遍历
if(aROW*COL)
{
printf("考生%d已经在坐位:%d排%d坐\n",k,a/COL+1,a%COL+1);
break;
}
srand((int)time(NULL));
a = rand()%(ROW*COL);
while(seat[a]!=0) a=(a+1)%(ROW*COL);//搜索到一个空坐位
seat[a] = k;//放上准考证号
printf("安排在坐位:%d排%d坐\n",a/COL+1,a%COL+1);
break;
case '2':
printf("输入准考证号:");
scanf("%d",k);
for(a=0; aROW*COL; a++) if(seat[a] == k) break;//遍历
if(aROW*COL)
{
seat[a]=0;
printf("取消了考生%d的坐位:%d排%d坐\n",k,a/COL+1,a%COL+1);
}else{
printf("考生%d不在本考场\n",k);
}
break;
case '3':
printf("输入坐位几排几坐:");
scanf("%d %d",i,j);
if(i1||iROW||j1||jCOL) printf("没有该坐位:%d排%d坐!");
else
{
k = seat[(i-1)*COL+j-1];
if(k==0) printf("%d排%d坐未安排考生!");
else printf("%d排%d坐考生准考证号:%d",i,j,k);
}
break;
case '4':
printf("输入准考证号:");
scanf("%d",k);
for(a=0; aROW*COL; a++) if(seat[a] == k) break;//遍历
if(aROW*COL)
{
printf("考生%d的坐位:%d排%d坐\n",k,a/COL+1,a%COL+1);
}else{
printf("考生%d不在本考场\n",k);
}
break;
}
fflush(stdin);printf("\n回车继续......");
getchar();
}
}
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()//***************************************************************退票功能
{
}
///////////以下是人家的要求//////////
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2、本系统显示这样的菜单:
(1) 输入航班信息
(2) 输出航班信息
(3) 查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
(4)订票预约
(5)删除定票预约
(6)退出系统
1、 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
2、 查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开
始的时候,它首先从该文件读入数据
c语言 排座位
1,建立链表元素{姓名,身高,比之矮的指针,比之高的指针}
2,读文件第一条记录,创建第一个元素,并用一个指针指向这个元素。
3,读取文件,读一条记录创建一个元素;
4,把这条记录插入指针指向的链表,并实现排序:新的元素与链表的当前元素比较,如果小于链表的当前元素,则继续向小的方向查找,直到找到更小的元素或者链表到头,反之大于链表的当前元素,向大的方向查找,直到找到更大的元素或者链表到头。对于相等的情况,可以视为小的情况,也可视为大的情况。
5,重复3和4,直到文件结束
6,开始了,可以打印一条说明,这个位置是靠前的位置
7,把指针移向最小的元素;
8,做一个循环,每一次循环中,先输出两个姓名,输出一个过道,再输出三个姓名,输出一个过道,最后输出两个姓名,换行。
9,反复循环7,注意每输出一个姓名就要是指针指向更大的元素,直到最有一个元素输出后,退出循环
10,结束了,可以打印一条说明,这个位置是靠后的位置
C语言编程:写一个订座程序,默认共有12个座位
#include stdio.h
#include stdlib.h
#include string.h
#define SEAT_NUM 12
/* 定义菜单选项 */
typedef enum FUNC_SELECT {
FUNC_A,
FUNC_B,
FUNC_C,
FUNC_D,
FUNC_INVALID
}FUNC_SELECT;
/* 定义座位结构体 */
typedef struct SEAT_INFO {
int num;
int assignment;
char customer[200];
}SEAT_INFO;
SEAT_INFO seatInfo[SEAT_NUM];
/* 显示菜单项并获取用户输入 */
FUNC_SELECT showmenu()
{
char c;
FUNC_SELECT func;
do
{
printf("To choose a function,enter its letter label:\n");
printf("a.Show all seats\n");
printf("b.Assign a customer to a seat assignment\n");
printf("c.Delete a seat assignment\n");
printf("d.Quit\n");
c = getchar();
getchar(); // skip the enter key
printf("\n");
switch (c)
{
case 'a' :
case 'A' :
func = FUNC_A;
break;
case 'b' :
case 'B' :
func = FUNC_B;
break;
case 'c' :
case 'C' :
func = FUNC_C;
break;
case 'd' :
case 'D' :
func = FUNC_D;
break;
default:
printf("Invalid input!\n");
func = FUNC_INVALID;
break;
}
}while (func == FUNC_INVALID);
return func;
}
void func_a()
{
int i;
printf("Show all seats:\n");
printf("%10s%20s%20s\n", "Num", "Assignment", "Customer");
for (i=0; iSEAT_NUM; i++)
{
printf("%10d%20d%20s\n", seatInfo[i].num, seatInfo[i].assignment, seatInfo[i].customer);
}
}
int get_seat(int assignment)
{
int num;
char tmpstr[200];
int flag = 0;
int i;
do
{
flag = 0;
printf("Please input Seat Num:\n");
fgets(tmpstr, 200, stdin);
if (strlen(tmpstr) 10)
{
flag = 0;
printf("Invalid input!\n");
continue;
}
else
{
flag = 1;
num = atoi(tmpstr);
}
for (i=0; iSEAT_NUM; i++)
{
if (seatInfo[i].num == num)
{
flag = 1;
if (seatInfo[i].assignment != assignment)
flag = 2;
break;
}
}
if (flag == 0)
{
printf("Seat num invalid!\n");
}
else if (flag == 2)
{
if (assignment == 0)
printf("Seat already assigned!\n");
else
printf("Seat not assigned!\n");
}
} while (flag != 1);
return i;
}
void get_customer(char *customer)
{
char tmpstr[200];
int flag = 0;
do
{
printf("Please input customer:\n");
fgets(tmpstr, 200, stdin);
if (strlen(tmpstr) 100)
{
flag = 0;
printf("customer name too long!\n");
}
else
{
flag = 1;
strcpy(customer, tmpstr);
customer[strlen(tmpstr)-1] = 0;
}
} while (flag == 0);
}
void func_b()
{
int num;
char customer[200];
printf("Assign a customer to a seat assignment\n");
num = get_seat(0);
get_customer(customer);
seatInfo[num].assignment = 1;
strcpy(seatInfo[num].customer, customer);
}
void func_c()
{
int num;
printf("Delete a seat assignment\n");
num = get_seat(1);
seatInfo[num].assignment = 0;
strcpy(seatInfo[num].customer, "");
}
main()
{
int i;
FUNC_SELECT m;
/* 初始化座位结构体 */
memset(seatInfo, 0, sizeof(seatInfo));
for (i=0; iSEAT_NUM; i++)
{
seatInfo[i].num = i+1;
}
do
{
m = showmenu();
switch (m)
{
case FUNC_A:
func_a();
break;
case FUNC_B:
func_b();
break;
case FUNC_C:
func_c();
break;
default:
break;
}
} while (m != FUNC_D);
printf("Quit!\n");
}