问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

排考场座位问题 c语言

发布网友 发布时间:2023-07-04 07:10

我来回答

2个回答

热心网友 时间:2023-10-06 04:25

#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; a<ROW*COL; a++) if(seat[a] == k) break;//遍历
if(a<ROW*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; a<ROW*COL; a++) if(seat[a] == k) break;//遍历
if(a<ROW*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(i<1||i>ROW||j<1||j>COL) 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; a<ROW*COL; a++) if(seat[a] == k) break;//遍历
if(a<ROW*COL)
{
printf("考生%d的坐位:%d排%d坐\n",k,a/COL+1,a%COL+1);
}else{
printf("考生%d不在本考场\n",k);
}
break;
}
fflush(stdin);printf("\n回车继续......");
getchar();
}
}

热心网友 时间:2023-10-06 04:25

写成函数的形式,不知道不觉就写成了一个小型C语言程序设计系统了。
贴出来,分享一下O(∩_∩)O~

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

typedef struct student
{
char num[20];//准考证号在20位以内
introw;//行号
int column;//列号
}stu_Info;

void exit_t()
{
printf("\n\n\n\t\tO(∩_∩)O~\t\t\t\tO(∩_∩)O~\n");
printf("\t\t\tThank you for using the mini-system\n");
printf("\t\t\t\tsee you next time!\n\n\n");
getchar();
getchar();
//system("pause");
exit(1);
}

void set(stu_Info stu[],int a[],int& num)
{
if(num>63)
{
printf("座位已满!");
return ;
}
printf("请输入准考证号:\n");
getchar();//读取空格或者回车,去除其影响
gets(stu[num].num);
int n;
srand((unsigned int)time(NULL));
while(a[n=rand()%64]);
a[n]=1;
stu[num].column = (n+1)%8 ? (n+1)%8 : 8;
stu[num].row= (n+1)%8 ? (n+1)/8+1 : (n+1)/8;
printf("随机生成座位号成功!\t该考生座位在第%d行第%d列。",stu[num].row,stu[num].column);
num++;
printf("press anykey to continue!");
getchar();
system("cls");
}

void release(stu_Info stu[],int a[],int& num)
{
int i,t,row,column;
char temp[20];
printf("请选择取消座位的方式:\n1.按学生准考证号取消\n2.按学生座位行列号取消\n");
do
{
scanf("%d",&t);
}while(t!=1 && t!=2);

switch(t)
{
case 1:
printf("请输入要取消的准考证号:\n");
getchar();
gets(temp);
for(i=0;i<num;i++)
{
if(strcmp(stu[i].num,temp)==0)
{
a[stu[i].row*8+stu[i].column%8-1] = 0;//恢复空位
stu[i].column = stu[i].row = 0;//
printf("已取消准考证号为%s考生的座位!",temp);
num--;
return ;
}
}
printf("没有找到准考证号为%s的考生!",temp);
break;
case 2:
printf("请输入要取消的座位行列号:\n");
scanf("%d %d",&row,&column);
for(i=0;i<num;i++)
{
if(stu[i].row == row && stu[i].column == column)
{
a[stu[i].row*8+stu[i].column%8-1] = 0;//恢复空位
stu[i].column = stu[i].row = 0;//
printf("已取消座位第%d行,第%d列的座位!",row,column);
num--;
return ;
}
}
printf("座位第%d行,第%d列的座位不存在或者还没有安排考生!",row,column);
break;
}

}

void display(stu_Info stu[],int num)
{
int i,row,column,cout=0;
printf("请输入要显示的座位行列号:\n");
scanf("%d %d",&row,&column);
for(i=0;i<num;i++)
{
if(stu[i].row == row && stu[i].column == column)
{
printf("座位第%d行,第%d列的座位考生的准考证号为%s",row,column,stu[i].num);
cout++;
}
}
if(!cout)
{
printf("座位第%d行,第%d列的座位不存在或者还没有安排考生!",row,column);
}

printf("press anykey to continue!");
getchar();
system("cls");
}

void find(stu_Info stu[],int num)
{
int i,cout=0;
char temp[20];
printf("请输入要查找的准考证号:\n");
getchar();
gets(temp);
for(i=0;i<num;i++)
{
if(strcmp(stu[i].num,temp)==0)
{
printf("准考证号为%s考生的座位号在第%d行,第%d列",temp,stu[i].row,stu[i].column);
cout++;
}
}

if(!cout)
{
printf("找不到准考证号为%s考生的座位号",temp);
}

printf("press anykey to continue!");
getchar();
system("cls");
}

void menu(stu_Info stu[],int a[],int& num)
{
int choice;
printf("\t\t\twelcome to the mini-system of seating\n\n");
printf("\t\t\t\t made by 嘻哈雄帅\n");
printf("\t\t\t\tcopyright@ 2011.12.31\n\n");
printf("\t\t\t\t0.退出系统\n");
printf("\t\t\t\t1.设定考场座位\n");
printf("\t\t\t\t2.取消考场座位\n");
printf("\t\t\t\t3.显示某座位考生信息\n");
printf("\t\t\t\t4.查找学生座位\n");
printf("\t\t\t\tmake your choice:(0~4)\n\t\t\t\t");

scanf("%d",&choice);
system("cls");
switch(choice)
{
case 0:
exit_t();
break;
case 1:
set(stu,a,num);
break;
case 2:
release(stu,a,num);
printf("\npress anykey to continue!");
getchar();
system("cls");
break;
case 3:
display(stu,num);
break;
case 4:
find(stu,num);
break;
default:
printf("input error!please input again.");
break;
}
}

int main()
{
int a[8*8]={0};
stu_Info stu[8*8];
static int num=0;
while(1)
menu(stu,a,num);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
零基础怎么自学动漫插画,可报个绘画班或有目的地自学 小白如何学插画,一定要坚持多练 有限责任公司的清算流程及如何执行清算 有限责任公司清算程序是什么 有限公司自行清算流程 魅族m1在哪里区别连通版和移动版 请问魅蓝note的flyme系统,移动定制版和移动公开版是什么意思 魅蓝note flyme移动公开版和公开版有啥区别? 魅族公开版是什么意思? 梦见一个你喜欢的人变成了你的表哥是什么情况? 如何解决c语言难题。 某餐厅有18个包厢,编号为1到18。其中a[i]存储第i个包厢的 沈世朋的老婆是谁 囊瓣芹属简介 丝瓣芹属简介 舟瓣芹属简介 梦见和别人唱歌 梦见和人比唱歌的预兆 ARM嵌入式不买开发板,有无仿真软件呢,有无什么好的视频教程可推荐呢。 1893年,发明电影视镜爱迪生并创建“囚车”摄影场被视为美国电影史的开端。1896年,维太放映机的 梦见去世的奶奶活了咬我的预兆 梦见送给我两盆花 面对同学的冷嘲热讽和攀比,我该怎么办 梦见有人送两盆植物 梅子姐姐京剧曲谱恳求京剧宋江题诗曲谱 耗子大爷起晚了中梅子姐姐的品质? 如何坐飞机、坐高铁、喝咖啡的视频火了,这一幕可能会令很多人意外。现实中,没坐过飞机、喝过星巴克 抖音买的茉酸奶的券如何在小程序用 梦见佛在房顶上的预兆 烟道或通风道应伸出屋面,平屋面伸出高度至少不应小于( )m。 老公的朋友说老公怕媳妇还说我厉害。而且还是他最好的朋友。这不是给我们挑拨我们拉。我该下次怎么回回去 急急急,新手C语言编写考场座位系统,出现error C2115: &#39;function&#39; : incompatible types,求大神。。。 求男主深深恋前任狠狠伤透女主心 求推荐女主是男主前女友,女二是男主现女友,男主最后发现更爱前女友 求文求文!女主默默喜欢男主,男主喜欢前女友,好像是个弱不禁风的林 求推荐小说。 男主深爱死去前妻或前女友,遇到女主后很久才打开心扉的小说。 不要台言! 谢谢! 怎样戒掉熬夜习惯 男主有心爱的前任,女主因失望而离开小说 想在线看退休女皇哪位大神有,求免费分享 你们谁看过米奇妙妙屋这部动画片,米奇喊黛西公主,黛西又喊我的王子来了,那是哪一集啊? 女性微整新趋势 丰额+丰唇让您更美丽 王子用什么唤醒了艾洛公主 男人对于自己的女人去几次微整后变得越来越漂亮态度会改变吗?男人如果会对她越来越在意说明什么? 刘小庆今年多大了啊? 重庆狂欢乐园旅游有限公司怎么样? 谁知道哪里有 西班牙情歌王子ENRIQUE演唱的西班牙语版的《hero》 张译王俊凯《万里归途》定档,如何评价这对演技派与偶像派的组合? 美术学院的教材书上出现*画也是人民美术教育出版社有问题吗?教育部也要彻查吗? 27寸1080p显示器渣画质吗? 我想问一下有关电脑联网方面的问题,我的笔记本今天去图书馆联图书馆网的时候发现连不上去,显示*感叹 梦见我给别人梨