资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
高级语言程序设计课程设计说明书设计题目:排考场座位程序目 录1.设计任务2.需求分析3系统模块图4.模块说明5.用户使用说明6.部分程序流程图7.测试结果8.程序设计小结9.参考文献附录1.设计任务假设考场有8行8列的座位,每当一个学生进入考场就为他安排座位。主界面如下:当选择1,用户输入准考证号,随机产生该学生座位的行号和列号,要求一个考生只有一个座位,已有考生的位置上不能再安排新的考生;当选择2,取消某人的考场座位;当选择3,输入行号列号,输出该考生的准考证号;当选择4,输入某学生的准考证号,输出该学生的座位。当选择5,输出次考场所有考生信息。2.需求分析 本程序除了可以应用于安排考场座位上,也可以应用在订票系统,学生信息管理系统以及酒店的入住登记等方面.3系统模块图安排考场座位系统输出考场中所有考生信息模块安排座位模块取消座位模块查找考场中考生个人信息模块查找考场中考生座位信息模块退出系统 4.模块说明模块一:考生座位安排实现方法:系统根据用户输入的准考证号和姓名,利用rand()函数随机产生该考生座位的行号和列号,同时可以实现一个考生只有一个座位,而且在已有考生的位置上不会再安排新的考生。输入的同时系统利用链表将输入的数据信息存入计算机内存中。模块二:取消某考生考场座位实现方法:系统通过用户输入的准考证号,利用循环结构找出与该准考证号相符的考生座位信息,同时清空链表中的记录该考生信息的节点。模块三:查找该考场考生信息实现方法:系统通过用户输入的座位的行号和列号,利用循环结构找出与该座位信息相符的考生的信息,然后输出该考生的信息。模块四:查找该考场某考生座位实现方法:系统通过用户输入的准考证号,利用循环结构找出与该准考证号相符的考生座位信息,然后输出该考生的信息。模块五:显示该考场所有考生信息实现方法:系统通过循环结构将计入链表中的信息有次序的全部输出5.用户使用说明在开始界面,用户键入任意键继续用户键入1,用户输入准考证号和姓名,系统随机该考生座位的行号和列号,要求做到一个考生只有一个座位,而且在已有考生的位置上不能再安排新的考生;用户键入2,取消某人考场座位(假设取消后的座位别人能坐);用户键入3,用户需输入座位的行号和列号,然后显示该座位学生的信息;用户键入4,用户需输入某考生准考证号,然后显示该学生的座位; 用户键入5,显示该考场每位考生的基本信息;用户键入6,退出系统;注:在用户输入命令界面,如果用户输入了16之外的其他数字、字符或符号系统自动报错,并返回用户命令界面。6.部分程序流程图6.1考生座位安排6.1.1考生座位安排模块源程序/*选择1,为新来的考生安排座位,方法:用户输入准考证号和姓名,系统随机产生*/*该考生座位的行号和列号,要求做到一个考生只有一个座位,而且在已有考生的位*/*置上不能再安排新的考生;*/void fun1() int h=0,l=0,i,j,f=1,f2=1; struct node *q,*p,*r; if(count=HANG*LIE) printf(tttThe room is full!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(tttThe ID has exited!n);f=0;break; else if(p-hang=h)&(p-lie=l) f=2; f2=0; break; else r=p; p=p-next; if(f=1) get_name(); q=(struct node*)malloc(sizeof(struct node); r-next=q; q-hang=h; q-lie=l; strcpy(q-ID,ID); strcpy(q-name,name); q-next=NULL; count+; printf(ttt*ADD SUCCESS!*nn); printf(tttID:%sntttname:%sntttPosition:(%d,%d)n,ID,name,h,l); break; if(f=0) break; 6.1.2考生座位安排模块流程图开始输入用户信息是否继续进行? 结束返回主菜单Y输入命令16. 2取消某考生考场座位模块源程序/*选择2,取消某人考场座位(假设取消后的座位别人能坐)*/void fun2() struct node *p,*r; int f=1; p=head-next; r=head; printf(tttPlease input the ID:); scanf(%s,ID); printf(n); while(p!=NULL) if(strcmp(p-ID,ID)=0) r-next=p-next; count-; f=0; printf(ttt*Delete SUCCESS!*nn); break; else r=p; p=p-next; if(f=1) printf(tttThe ID is not exit!nn); 6.2.2取消某考生考场座位模块流程图 开始输入要删除考生的学号是否找到?删除数据显示成功显示没有找到Y结束 开始6. 3.1查找考生信息源程序/*选择3,4,显示考场座次表,要求再每个座位对应的行列上显示该考生的准考证号*/void fun3() unsigned h,l,f=1;struct node *p=head-next; printf(tttPlease input the position:);scanf(%d,%d,&h,&l); printf(n); while(p!=NULL) if(p-hang=h)&(p-lie=l) printf(ttt*SELECT SUCCESS!*nn); printf(tttID:%sntttname:%snn,p-ID,p-name);f=0; break; else p=p-next; if(f=1)printf(tttNO ONE exit!nn); void fun4() struct node *p=head-next; unsigned f=0; get_id(); while(p!=NULL) if(strcmp(p-ID,ID)=0) printf(ttt*FIND!*nn); printf(tttPosition:(%d,%d)n,p-hang,p-lie); f=1; break; else p=p-next; if(f=0) printf(tttFAILE:The ID is not exit!nn);6.3.2查找考生信息流程图开始输入查找的方式:3.座位号;4.ID是否找到?显示找到的记录提示没找到Y结束Y是否继续查找?返回主菜单7.测试结果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.程序设计总结本次程序设计由于完成仓促,虽然想要实现的功能均可以实现,但是,仍然会有不可预测的错误,例如:当完成某一项任务之后,当用户输入命令以外数字系统有时没有报错,而是执行前一个操作的功能;同时,当用户输入了正确的的命令之后系统不会立即回应,有时出不来结果;但编译时系统也不报错,而且这种错误只是偶发性的,总的运行结果还不错。在本次程序设计过程中,感受最深的是:细节决定成败,有的时候就是一个点号的错误,会让你纠结半个小时;其次,还是要有扎实的基本功,编程不是粘
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号