排考场座位程序Word下载.docx
《排考场座位程序Word下载.docx》由会员分享,可在线阅读,更多相关《排考场座位程序Word下载.docx(22页珍藏版)》请在冰点文库上搜索。
系统通过用户输入的座位的行号和列号,利用循环结构找出与该座位信息相符的考生的信息,然后输出该考生的信息。
模块四:
查找该考场某考生座位
系统通过用户输入的准考证号,利用循环结构找出与该准考证号相符的考生座位信息,然后输出该考生的信息。
模块五:
显示该考场所有考生信息
系统通过循环结构将计入链表中的信息有次序的全部输出
在开始界面,用户键入任意键继续
用户键入1,用户输入准考证号和姓名,系统随机该考生座位的行号和列号,要求做到一个考生只有一个座位,而且在已有考生的位置上不能再安排新的考生;
用户键入2,取消某人考场座位(假设取消后的座位别人能坐);
用户键入3,用户需输入座位的行号和列号,然后显示该座位学生的信息;
用户键入4,用户需输入某考生准考证号,然后显示该学生的座位;
用户键入5,显示该考场每位考生的基本信息;
用户键入6,退出系统;
注:
在用户输入命令界面,如果用户输入了1—6之外的其他数字、字符或符号系统自动报错,并返回用户命令界面。
6.1考生座位安排
6.1.1考生座位安排模块源程序
/*选择1,为新来的考生安排座位,方法:
用户输入准考证号和姓名,系统随机产生*/
/*该考生座位的行号和列号,要求做到一个考生只有一个座位,而且在已有考生的位*/
/*置上不能再安排新的考生;
*/
voidfun1()
{
inth=0,l=0,i,j,f=1,f2=1;
structnode*q,*p,*r;
if(count==HANG*LIE)
printf("
\t\t\tTheroomisfull!
\n"
);
else
while
(1)
{
f=1;
h=rand()%HANG+1;
l=rand()%LIE+1;
r=head;
p=head->
next;
if(f2)
get_id();
while(p!
=NULL)
if(strcmp(p->
ID,ID)==0)
{printf("
\t\t\tTheIDhasexited!
f=0;
break;
}
if((p->
hang==h)&
&
(p->
lie==l))
f=2;
f2=0;
break;
}
r=p;
p=p->
if(f==1)
get_name();
q=(structnode*)malloc(sizeof(structnode));
r->
next=q;
q->
hang=h;
lie=l;
strcpy(q->
ID,ID);
name,name);
next=NULL;
count++;
\t\t\t******ADDSUCCESS!
******\n\n"
\t\t\tID:
%s\n\t\t\tname:
%s\n\t\t\tPosition:
(%d,%d)\n"
ID,name,h,l);
if(f==0)
}
6.1.2考生座位安排模块流程图
开始
输入用户信息
是否继续进行?
结束
返回主菜单
Y
输入命令1
6.2取消某考生考场座位模块源程序
/*选择2,取消某人考场座位(假设取消后的座位别人能坐)*/
voidfun2()
structnode*p,*r;
intf=1;
\t\t\tPleaseinputtheID:
"
scanf("
%s"
ID);
next=p->
count--;
f=0;
\t\t\t******DeleteSUCCESS!
\t\t\tTheIDisnotexit!
!
\n\n"
6.2.2取消某考生考场座位模块流程图
开始
输入要删除
考生的学号
是否找到?
删除数据
显示成功
显示没有找到
结束
6.3.1查找考生信息源程序
/*选择3,4,显示考场座次表,要求再每个座位对应的行列上显示该考生的准考证号*/
voidfun3()
{unsignedh,l,f=1;
structnode*p=head->
\t\t\tPleaseinputtheposition:
scanf("
%d,%d"
&
h,&
l);
\t\t\t******SELECTSUCCESS!
%s\n\n"
p->
ID,p->
name);
elsep=p->
if(f==1)printf("
\t\t\tNOONEexit!
}
voidfun4()
structnode*p=head->
unsignedf=0;
\t\t\t******FIND!
\t\t\tPosition:
hang,p->
lie);
}elsep=p->
\t\t\tFAILE:
TheIDisnotexit!
6.3.2查找考生信息流程图
输入查找的方式:
3.座位号;
4.ID
显示找到的记录
提示没找到
是否继续查找?
7.1开始界面:
7.2菜单界面:
7.3功能一:
7.3.1安排座位:
7.3.2某座位已有人就坐:
7.3.3考场已满:
7.4功能二:
7.4.1取消预订座位
7.4.2取消失败,没有该考号考生
7.5功能三:
根据考生座位信息查考生个人信息
7.5.1找到该考生输出其个人信息
7.5.2该座位未安排考生
7.6功能四:
根据学号查找某学生座位信息
7.6.1找到该考生输出其座位信息
7.6.2没有该学号的考生
7.7功能五:
输出该考试所有考生信息
8.程序设计总结
本次程序设计由于完成仓促,虽然想要实现的功能均可以实现,但是,仍然会有不可预测的错误,例如:
当完成某一项任务之后,当用户输入命令以外数字系统有时没有报错,而是执行前一个操作的功能;
同时,当用户输入了正确的的命令之后系统不会立即回应,有时出不来结果;
但编译时系统也不报错,而且这种错误只是偶发性的,总的运行结果还不错。
在本次程序设计过程中,感受最深的是:
细节决定成败,有的时候就是一个点号的错误,会让你纠结半个小时;
其次,还是要有扎实的基本功,编程不是粘贴和复制也不是拿着别人的程序找错,如果不亲手去写程序,没有练好编程基本功即使你的想法再好也只是天方夜谭。
最后,送给自己一句话,有想法是好事,动手实践才能出成果。
[1]谭浩强.C程序设计(第3版).北京:
高等教育出版社,2006
[2]刘玮玮,汪晓平.C语言高级实例解析.清华大学出版社,2004
源程序
#include"
stdlib.h"
#include"
Stdio.h"
Conio.h"
#defineHANG2
#defineLIE2
typedefstructnode{
unsignedhang;
unsignedlie;
charID[20];
charname[20];
structnode*next;
};
unsignedcmd,count;
structnode*head;
charID[20],name[20];
unsignedget_cmd()
system("
cls"
\t\t\tSeatArrangementSystem\n\n"
\t\t\t1.SeatArrangement\n"
printf("
\t\t\t2.SeatCancelled\n"
\t\t\t3.Findthearrangedstudent\n"
\t\t\t4.Findthearrangedseat\n"
\t\t\t5.Displayalltheinformation\n"
\t\t\t6.Exit\n"
\n\t\t\tPleaseinputthecommand:
%d"
cmd);
returncmd;
voidstart()
inti,j;
for(j=0;
j<
3;
j++)
\t"
for(i=0;
i<
68;
i++)
*"
\t*********TheScienceAndTechnologyofOpticalInformation**********\n"
\t**************\tAHighLevelLanguageProgramdesignt\t************\n"
\t**************\t\t\tManual\t\t\t************\n"
\t**************\tSubject:
SeatArrangementSystem\t\t************\n"
\t**************\tClass:
20101461\t\t\t\t************\n"
\t**************\tStudentID:
2010146143\t\t\t************\n"
\t**************\tName:
Wanyan\t\t\t\t************\n"
\t**************\tComletionDate:
2011/11/29\t\t************\n"
4;
pause"
voidget_id()
\t\t\tPleaseinputstudentID:
voidget_name()
\t\t\tPleaseinputstudentname:
name);
voidfun5()
next,*q;
inth,l,f;
for(h=1;
h<
=HANG;
h++)
{for(l=1;
l<
=LIE;
l++)
{f=1;
\t\tID:
%sname:
%shang:
%dlie:
%d\n"
name,p->
if(f==1)printf("
####\t"
}printf("
voidp_cmd(unsignedt)
switch(t)
case1:
fun1();
case2:
fun2();
case3:
fun3();
case4:
fun4();
case5:
fun5();
case6:
default:
\t\t\tWrongcomand!
}system("
intmain(void)
start();
system("
head=(structnode*)malloc(sizeof(structnode));
head->
get_cmd();
if(cmd==6)break;
if(cmd!
=1&
cmd!
=2&
=3&
=4&
=5)
;
p_cmd(cmd);
\n\n\n\n\n\n\n\n\n\n\t\t\t\tByebye!
getch();
return0;