高级语言程序设计考场排座位程序.docx
《高级语言程序设计考场排座位程序.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计考场排座位程序.docx(15页珍藏版)》请在冰豆网上搜索。
![高级语言程序设计考场排座位程序.docx](https://file1.bdocx.com/fileroot1/2022-11/28/e3de429a-4bf6-464d-a7e0-b84fc61590ae/e3de429a-4bf6-464d-a7e0-b84fc61590ae1.gif)
高级语言程序设计考场排座位程序
i
《高级语言程序设计》课程设计
说明书
设计题目:
排考场座位程序
一、课程设计任务与要求
二、设计思路与流程
三、设计小结
四、参考文献
五、附录(源程序)
一、课程设计任务与要求
1、课程设计目的
《高级语言程序设计》课程设计是电子信息、光信息专业以及物理学专业集中实践性环节之一,是学习完《高级语言程序设计》课程后进行的一次全面的综合练习,其目的在于加深对程序设计基本知识的理解,掌握使用C语言进行模块化软件设计的基本方法,提高通过编写程序解决实际问题的能力,为今后从事设计工作和后续各种编程课程的学习打好基础。
2、课程设计题目
第29题:
排考场座位程序
要求:
假设考场有8行8列的座位,每当一个学生进入考场就为他安排座位。
主界面如下:
当选择1,用户输入准考证号,随机产生该学生座位的行号和列号,要求一个考生只有一个座位,已有考生的位置上不能再安排新的考生;
当选择2,取消某人的考场座位;
当选择3,输入行号列号,输出该考生的准考证号;
当选择4,输入某学生的准考证号,输出该学生的座位。
3、课程设计时间
课程设计时间设定为2-3周,在学习完《高级语言程序设计》课程后进行。
最后2-3次课为课程设计演示答辩时间。
4、课程设计说明书编写规范
课程设计说明书是是项目设计的理论依据,是整个设计工作的整理和总结,同时也是审核设计能否满足使用要求的技术文件之一。
此外,从软件工程的观点来看,软件文档是软件的重要组成部分。
所以,学习写好课程设计说明书也是完成课程设计的重要内容。
二.设计思路和流程
1、程序系统的结构
2、输出项
2.1打开程序
2.2选择选项1
2.3输入号码
2.4返回,将号码再输入一次(测验同一号码输入两次反应)
2.5选择选项4
2.6输入号码后运行结果
2.7选择选项3
2.8输入座位号后运行结果
2.9选择选项2
2.10取消后结果
2.11选择选项5
2.12结果退出程序
3算法
本题名为安排考场座位,实则考查同学们关于指针循环分组等的理解。
我设计时先将其分为五组(四个选项和退出程序),然后分开编好,再组合。
第一组要把握输入准考证号码是否合要求,电脑随机出座位号以及防止有人的座位被占。
第二组取消座位标记。
第三组根据存储信息,由提供的座位行列号提取输出学生滴准考证号码。
第四组根据存储信息,由提供的准考证号码提取输出学生的座位行列号。
第五组退出程序。
5流程图
三.设计小结
经过一个学期对《高级语言程序设计》的学习,我们学习了理论知识,了解了高级语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。
通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
通过对排考场座位的设计进一步的巩固了编写程序的技能,有利于更好的掌握程序设计语言!
在排考场座位的编写过程中也体会到了做事情一顶要细心、认真。
更加知道了要掌握好基础知识。
还有体会到了成功的感觉!
通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
由于程序设计语言是近年在国内外得到迅速推广应用的一种语言。
它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。
通过这次的程序设计更加了解了语言设计的好处和其可用性!
在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!
在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!
在设计过程中的一次次设计错误增加了我放弃的想法!
不过经过自己的独立思考和同学的帮助终于完成了课程设计!
完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!
只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!
也让我懂得了要想成功首先就必须有很强的自信心!
懂得了自己以后要在做任何事情时都要自信!
当自己都不相信自己能够成功时还可能会获得成功吗?
在课程设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!
都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!
为以后的工作打下良好的知识基础和技能基础!
四.参考文献
(1)C++程序设计教程张志航,王珊珊著机械工业出版社
(2)C++面向对象程序设计陈维兴林小茶编著中国铁道出版社
(3)C语言程序设计田淑清著北京高等教育出版社
五附录(源程序)
#include
#include
#include
constintrow=8,col=8;//座位行和列
longnum,cstu[64];
voidfunction1(intseat[][col]);
voidfunction2(intseat[][col]);
voidfunction3(intseat[][col]);
voidfunction4(intseat[][col]);
voidmain()
{
intch,seat[row][col],i,j;
for(i=0;i<64;i++)
cstu[i]=1000000000;
for(i=0;ifor(j=0;j
seat[i][j]=0;//0表示座位为空
printf("***--------------排考场座位------------------------***\n");
printf("\n");
printf("\n");
do{
printf("**********************************************************\n");
printf("***1.输入准考证号,安排考场座位***\n");
printf("***2.取消考场座位***\n");
printf("***3.输入座位行列号,显示某座位考生的准考证号***\n");
printf("***4.输入准考证号,显示学生的座位行列号***\n");
printf("***5.退出***\n");
printf("**********************************************************\n");
printf("输入选项(1——5):
\n");
do{
scanf("%d",&ch);
if(ch<1||ch>5)
printf("输入错误,请重新输入:
");
}while(ch<1||ch>5);
if(1==ch)function1(seat);
elseif(2==ch)function2(seat);
elseif(3==ch)function3(seat);
elseif(4==ch)function4(seat);
elseexit
(1);
}while(ch);
}
//选择1,为新来的考生安排座位,方法:
用户输入准考证号,系统随机产生
voidfunction1(intseat[][col])
{
system("cls");
intnewseat,m,r=0,c=0;
srand((int)time(NULL));
do
{
newseat=rand()%64;//产生座位号
r=newseat/8;//行
c=newseat-r*8;//列
}while(seat[r][c]!
=0);//座位已经有人,重先产生座位号
seat[r][c]=newseat;
printf("请输入准考证号(十位数):
");
do{
scanf("%10d",&num);
if(num>9999999999||num<1000000000)
printf("准考证号为十位数,请重新输入:
");
}while(num>9999999999||num<1000000000);
for(m=0;m<64;m++)
if(cstu[m]==num)
{
printf("该考号已经申请了位置请输入新的考号\n");
scanf("%10d",&num);
}//相同准考证号不能重复申请位子
cstu[newseat]=num;
printf("操作成功!
请按enter键返回\n");
c=getchar();
c=getchar();
}
//选择2,取消某人考场座位
voidfunction2(intseat[][col])
{
system("cls");
inti,r,c;
printf("输入要取消的考生准考证号:
");
scanf("%10d",&num);
for(i=0;i<64;i++)
if(cstu[i]==num)
{
r=i/8;//行
c=i-r*8;//列
seat[r][c]=0;//赋值为0代表此座位无人
cstu[i]=1000000000;//空出位置
return;
}
printf("没有:
\n按enter返回\n");
c=getchar();
c=getchar();
}
//选择3,要求输入座位的行号和列号,然后显示该座位学生的信息;
voidfunction3(intseat[][col])
{
system("cls");
intr,c;
printf("请输入行号row和列号col查看考生考号:
");
scanf("%d%d",&r,&c);
r=r-1;
c=c-1;
if(cstu[r*8+c]==1000000000)
printf("位置空\n");
else
printf("准考证号:
%10d\n",cstu[r*8+c]);
printf("按enter返回\n");
c=getchar();
c=getchar();
}
//选择4,要求输入某考生准考证号,然后显示该学生的座位;
voidfunction4(intseat[][col])
{
system("cls");
intr,c;
printf("请输入要查找的准考证号:
\n");
do{
scanf("%10d",&num);
if(num>9999999999||num<1000000000)
printf("准考证号为十位数,请重新输入:
");
}while(num>9999999999||num<1000000000);
for(r=0;rfor(c=0;c
if(num==cstu[r*8+c])
{
printf("查询结果:
row=%d\tcol=%d\n",r+1,c+1);
return;
}
printf("没有该准考证信息!
\n按enter返回\n");
c=getchar();
c=getchar();
}
|
|