本文目錄一覽:
- 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”);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235897.html