您的位置:

c语言座位系统,c语言考场排座系统代码

本文目录一览:

急急急,新手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");

}