高级语言程序设计课程设计说明书设计题目排考场座位程序目录设计任务需求分析系统模块图模块说明用户使用说明部分程序流程图测试结果程序设计小结参考文献附录设计任务假设考场有行列的座位每当一个学生进入考场就为他安排座位主界面如下当选择用户输入准考证号随机产生该学生座位的行号和列号要求一个考生只有一个座位已有考生的位置上不能再安排新的考生当选择取消某人的考场座位当选择输入行号列号输出该考生的准考证号当选择输入某学生的准考证号输出该学生的座位当选择输出次考场所有考生信息需求分析本程序除了可以应用于安排考场座位上也可以应用在订票系统学生信息管理系统以及酒店的入住登记等方面3系统模块图安排考场座位系统输出考场中所有考生信息模块安排座位取消座位查找考场中考生个人信息模块查找考场中考生座位信息模块模块说明模块一考生座位安排实现方法系统根据用户输入的准考证号和姓名利用函数随机产生该考生座位的行号和列号同时可以实现一个考生只有一个座位而且在已有考生的位置上不会再安排新的考生输入的同时系统利用链表将输入的数据信息存入计算机内存中模块二取消某考生考场座位实现方法系统通过用户输入的准考证号利用循环结构找出与该准考证号相符的考生座位信息同时清空链表中的记录该考生信息的节点模块三查找该考场考生信息实现方法系统通过用户输入的座位的行号和列号利用循环结构找出与该座位信息相符的考生的信息然后输出该考生的信息模块四查找该考场某考生座位实现方法系统通过用户输入的准考证号利用循环结构找出与该准考证号相符的考生座位信息然后输出该考生的信息模块五显示该考场所有考生信息实现方法系统通过循环结构将计入链表中的信息有次序的全部输出用户使用说明在开始界面用户键入任意键继续用户键入用户输入准考证号和姓名系统随机该考生座位的行号和列号要求做到一个考生只有一个座位而且在已有考生的位置上不能再安排新的考生用户键入取消某人考场座位假设取消后的座位别人能坐用户键入用户需输入座位的行号和列号然后显示该座位学生的信息用户键入用户需输入某考生准考证号然后显示该学生的座位用户键入显示该考场每位考生的基本信息用户键入退出系统注在用户输入命令界面如果用户输入了之外的其他数字字符或符号系统自动报错并返回用户命令界面部分程序流程图61考生座位安排611考生座位安排模块源程序选择为新来的考生安排座位方法用户输入准考证号和姓名系统随机产生该考生座位的行号和列号要求做到一个考生只有一个座位而且在已有考生的位置上不能再安排新的考生voidfun1inth0l0ijf1f21structnodeqprifcountHANGLIEprintftttTheroomisfullelsewhile1f1hrandHANG1lrandLIE1rheadpheadnextiff2getidwhilepNULLifstrcmppIDID0printftttTheIDhasexitedf0breakelseifphanghampampplielf2f20breakelserpppnextiff1getnameqstructnodemallocsizeofstructnodernextqqhanghqlielstrcpyqIDIDstrcpyqnamenameqnextNULLcountprintftttADDSUCCESSprintftttIDstttnamestttPositionddIDnamehlbreakiff0break612考生座位安排模块流程图62取消某考生考场座位模块源程序选择2取消某人考场座位假设取消后的座位别人能坐voidfun2structnodeprintf1开始输入用户信息是否继续进行结束返回主菜单Y输入命令1pheadnextrheadprintftttPleaseinputtheIDscanfsIDprintfwhilepNULLifstrcmppIDID0rnextpnextcount45f0printftttDeleteSUCCESSbreakelserpppnextiff1printftttTheIDisnotexit622取消某考生考场座位模块流程图631查找考生信息源程序选择显示考场座次表要求再每个座位对应的行列上显示该考生的准考证号开始输入要删除考生的学号是否找到删除数据显示成功显示没有找到Y结束开始632查找考生信息流程图开始输入查找的方式3座位号4ID是否找到显示找到的记录提示没找到Y结束Y是否继续查找返回主菜单7测试结果开始界面菜单界面功能一考生座位安排安排座位某座位已有人就坐考场已满功能二取消某考生考场座位取消预订座位取消失败没有该考号考生功能三根据考生座位信息查考生个人信息找到该考生输出其个人信息该座位未安排考生功能四根据学号查找某学生座位信息找到该考生输出其座位信息没有该学号的考生功能五输出该考试所有考生信息程序设计总结本次程序设计由于完成仓促虽然想要实现的功能均可以实现但是仍然会有不可预测的错误例如当完成某一项任务之后当用户输入命令以外数字系统有时没有报错而是执行前一个操作的功能同时当用户输入了正确的的命令之后系统不会立即回应有时出不来结果但编译时系统也不报错而且这种错误只是偶发性的总的运行结果还不错在本次程序设计过程中感受最深的是细节决定成败有的时候就是一个点号的错误会让你纠结半个小时其次还是要有扎实的基本功编程不是粘贴和复制也不是拿着别人的程序找错如果不亲手去写程序没有练好编程基本功即使你的想法再好也只是天方夜谭最后送给自己一句话有想法是好事动手实践才能出成果参考文献谭浩强程序设计第版北京高等教育出版社刘玮玮汪晓平语言高级实例解析清华大学出版社附录源程序includestdlibhincludeStdiohincludeConiohdefineHANG2defineLIE2typedefstructnodeunsignedhangunsignedliecharID20charname20structnodenextunsignedcmdcountstructnodeheadcharID20name20unsignedgetcmdsystemclsprintfprintftttSeatArrangementSystemprintfttt1SeatArrangementprintfttt2SeatCancelledprintfttt3Findthearrangedstudentprintfttt4Findthearrangedseatprintfttt5Displayalltheinformationprintfttt6ExitprintftttPleaseinputthecommandscanfdampcmdprintfreturncmdvoidstartintijprintfforj0jprintftfori0iprintfprintfprintftTheScienceAndTechnologyofOpticalInformationprintfttAHighLevelLanguageProgramdesignttprintfttttManualtttprintfttSubjectSeatArrangementSystemttprintfttClass20101461ttttprintfttStudentID2010146143tttprintfttNameWanyanttttprintfttComletionDate20111129ttforj0jprintftfori0iprintfprintfsystempausevoidgetidprintftttPleaseinputstudentIDscanfsIDprintfvoidgetnameprintftttPleaseinputstudentnamescanfsnameprintfvoidfun1inth0l0ijf1f21structnodeqprifcountHANGLIEprintftttTheroomisfullelsewhile1f1hrandHANG1lrandLIE1rheadpheadnextiff2getidwhilepNULLifstrcmppIDID0printftttTheIDhasexitedf0breakelseifphanghampampplielf2f20breakelserpppnextiff1getnameqstructnodemallocsizeofstructnodernextqqhanghqlielstrcpyqIDIDstrcpyqnamenameqnextNULLcountprintftttADDSUCCESSprintftttIDstttnamestttPositionddIDnamehlbreakiff0breakvoidfun2structnodeprintf1pheadnextrheadprintftttPleaseinputtheIDscanfsIDprintfwhilepNULLifstrcmppIDID0rnextpnextcount45f0printftttDeleteSUCCESSbreakelserpppnextiff1printftttTheIDisnotexitvoidfun3unsignedhlf1structnodepheadnextprintftttPleaseinputthepositionscanfddamphamplprintfwhilepNULLifphanghampampplielprintftttSELECTSUCCESSprintftttIDstttnamespIDpnamef0breakelseppnextiff1printftttNOONEexitvoidfun4structnodepheadnextunsignedf0getidwhilepNULLifstrcmppIDID0printftttFINDprintftttPositionddphangplief1breakelseppnextiff0printftttFAILETheIDisnotexitvoidfun5structnodepheadnextqinthlfforh1hforl1lf1pheadnextwhilepNULLifphanghampampplielprintfttIDsnameshangdliedpIDpnamephangplief0breakppnextiff1printftttIDtprintfprintfvoidpcmdunsignedtswitchtcase1fun1breakcase2fun2breakcase3fun3breakcase4fun4breakcase5fun5breakcase6breakdefaultprintftttWrongcomandsystempausesystemclsintmainvoidstartsystemclsheadstructnodemallocsizeofstructnodeheadnextNULLwhile1getcmdifcmd6breakifcmd1ampampcmd2ampampcmd3ampampcmd4ampampcmd5pcmdcmdsystemclsprintfttttByebyegetchreturn0