软件测试设计说明书王宇.docx
- 文档编号:18489521
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:17
- 大小:124.70KB
软件测试设计说明书王宇.docx
《软件测试设计说明书王宇.docx》由会员分享,可在线阅读,更多相关《软件测试设计说明书王宇.docx(17页珍藏版)》请在冰点文库上搜索。
软件测试设计说明书王宇
文档名称:
软件测试设计说明书
项目名称:
酒店管理系统
项目负责人:
王宇
编写:
王宇2012年6月23日
校对:
张东升2012年6月23日
审核:
胡祥坤2012年6月24日
批准:
石楠2012年6月25日
开发单位:
合肥工业大学计算机与信息学院2012年6月25日
5.4.2主要模块内部设计:
源代码:
//酒店预定*********************************************************************
voidbook_room()
{
customer[i]=newCustomer;
introom_standard,day;
cout<<"请您选择预定房间的标准:
\n";
cout<<"1.单人间/天元\n2.双人间/天元\n3.标准间/天元\n4.总统套房/天元\n";
cin>>room_standard;
cout<<"请输入预定天数\n";
cin>>day;
customer[i]->set_day(day);
switch(room_standard)
{
intn;
case1:
cout<<"住房费用总共为:
"< for(n=0;n<20;n++)//从第一个级别的房间中查找一个空闲的房间 { if(room[n].state==0)//state=0表示该住房没有被预定的 { cout<<"预定成功! 您的房间号码为: "< room[n].state=1;客户信息登记 Yescustomer[i]->set_room_number(room[n].number); break; } elsecout<<”此类型房间已满\n”; } break; case2: cout<<"住房费用总共为: "< for(n=20;n<40;n++) { if(room[n].state==0) { cout<<"预定成功! 您的房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } elsecout<<”此类型房间已满\n”; } break; case3: cout<<"住房费用总共为: "< \n"; for(n=40;n<60;n++) { if(room[n].state==0) { cout<<"预定成功! 您的房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } elsecout<<”此类型房间已满\n”; } break; case4: cout<<"住房费用总共为: "< for(n=60;n<80;n++) { if(room[n].state==0) { cout<<"预定成功! 您的房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } elsecout<<”此类型房间已满\n”; } break; } i++;//住房的顾客数加 5.4.2.2入住管理功能模块设计 源代码: //酒店入住******************************************************************** voidcheck_in() { charname1[10],id1[19]; intding_or_no,prepaid; cout<<"该顾客订房了吗? (1->订了2->没订)"; cin>>ding_or_no; if(ding_or_no==1) { cout<<"请输入顾客的姓名: "< cin>>name1; cout<<"请输入顾客的身份证号码: "< cin>>id1; for(intj=0;j<=i;j++) { if((strcmp(customer[j]->get_name(),name1)==0)&&(strcmp(customer[j]->get_ID() id1)==0))//查找该顾客的定房信息 { intnum=customer[j]->get_room_number();//取得定房的房间号 cout<<"顾客"< 房间号码为: "< switch(num/100) { case6: prepaid=customer[j]->get_day()*150; customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< room[num%100-1].state=2;//修改房间状 态为入住状态 break; case7: prepaid=customer[j]->get_day()*200; customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< room[19+num%100].state=2; break; case8: prepaid=customer[j]->get_day()*300; customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< room[39+num%100].state=2; break; case9: prepaid=customer[j]->get_day()*600; customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< room[59+num%100].state=2; break; } break; } elsecout<<"预订信息不存在入住失败\n"; } } else { customer[i]=newCustomer; introom_standard,day; cout<<"请您选择预定房间的标准: \n"; cout<<"1.单人间/天元\n2.双人间/天元\n3.标准间/天元\n4.总统套房/天元 \n"; cin>>room_standard; cout<<"请输入住宿天数\n"; cin>>day; customer[i]->set_day(day); switch(room_standard) { intn; case1: prepaid=day*150; customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=0;n<20;n++) { if(room[n].state==0) { cout<<"入住房间号码为: "< room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; case2: prepaid=day*200; customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=20;n<40;n++) { if(room[n].state==0) { cout<<"入住房间号码为: "< room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; case3: prepaid=day*300; customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=40;n<60;n++) { if(room[n].state==0) { cout<<"入住房间号码为: "< room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; case4: prepaid=day*600; customer[i]->set_prepaid(prepaid);cout<<"请收房费"< \n"; for(n=60;n<80;n++) { if(room[n].state==0) { cout<<"入住房间号码为: "< room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; } i++; } } 5.4.2.3退房管理功能模块 源代码: //酒店退订********************************************************** voidcheck_out() { charname2[10],id2[19]; intstandard,j,room_number,day1,day2,day; cout<<"请输入要退房的顾客姓名和身份证号码: \n"; cin>>name2>>id2; cout<<"请输入该顾客实住天数: \n"; cin>>day2; for(j=0;j { if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0)) { room_number=customer[j]->get_room_number(); standard=room_number/100; day1=customer[j]->get_day(); day=day1-day2; switch(standard) { case6: cout<<"顾客的房间号是"< 为单人间,每天150元 \n"; cout<<"该顾客预付了房费"< 实际消费"< \n"; cout< if(day>0) cout<<"请退给该顾客"< ! \n"; if(day<0) cout<<"请补收该顾客住房费"<<-day*150<<"元整! \n"; break; case7: cout<<"顾客的房间号是"< 为单人间,每天200元 \n"; cout<<"该顾客预付了房费"< 实际消费"< \n"; cout< if(day>0) cout<<"请退给该顾客"< \n"; if(day<0) cout<<"请补收该顾客住房费"<<-day*200<<"元整! \n"; break; case8: cout<<"顾客的房间号是"< 为单人间,每天300元 \n"; cout<<"该顾客预付了房费"< 实际消费"< \n"; cout< if(day>0) cout<<"请退给该顾客"< \n"; if(day<0) cout<<"请补收该顾客住房费"<<-day*300<<"元整! \n"; break; case9: cout<<"顾客的房间号是"< 为单人间,每天600元 \n"; cout<<"该顾客预付了房费"< 实际消费"< ! \n"; cout< if(day>0) cout<<"请退给该顾客"< \n"; if(day<0) cout<<"请补收该顾客住房费"<<-day*600<<"元整! \n"; break; } cout< "; characcount; cin>>account; if(account=='1') { for(intk=0;k<80;k++) { if(room[k].number==customer[j]->get_room_number()) room[k].state=0; } i--;for(;j { customer[j]=customer[j+1]; } deletecustomer[i]; } } } } 5.5实现与调试分析: 5.5.1实现环境 硬件: 装有WindowsXP系统的微型计算机 软件: MicrosoftVisualC++6.0 5.5.2语言选择 此系统的源代码编写采用的C++语言,因为C++是而向对象的程序语言, 具有良好的封装性,使用起来方便,一般不会牵一发而动全身。 5.5.3调试分析 调试时发现此程序中有很多地方没有输入错误的提示。 具体如下 1)在voidbook_room()预定房间函数中,因为初始化了80个房间,不存在房间不足的问题但若放在酒店中使用时则会有此情况发生,这时就应该有提示息告诉用户所选类型的房间已满。 改进方式: 在voidbook_room()中每个case中if语句下添加else输出提示信息“此类型房间已满”。 2)在voidcheck_in()入住函数中选择已订输入顾客信息有误的情况下未出现错位提示信息使用户退出的原因不明确。 改进方式: 在voidcheck_in()中顾客姓名匹配的if语句结束后,添加else输出提示信息“预定信息不存在入住失败”。 5.6测试分析: 5.6.1测试用例及测试结果 5.6.2性能分析 此处采用的是黑盒测试法及主要测试系统的每个功能是否能正确运作。 以下为接受测试的各个功能模块描述 1)客房预订管理: 实现顾客对酒店客房的预定要求 2)客房订房及入住管理: 实现顾客对酒店客房的订房以及预订转入住要求3)客房退房管理: 实现顾客的退房要求并进行费用结算4)信息查询管理: 实现顾客信息查询和客房信息查询。 由以上测试可发现,本系统对简单的房间预定,入住退房及当前信息查询功能可满足,但是对于深入点的功能则欠缺太多。 由于技术上的原因,本系统还无法保存所有顾客的信息入库,也无法对顾客和客房的信息进行修改。 所以 本系统还将继续完善,以满足酒店管理系统所提出的所有功能需求。 软件工程课程设计总结 本次软件工程课程设计选题是“酒店管理系统”,要求通过需求分析,概要设计,详细设计,软件测试等步骤流程实现对该具体实际项目的开发工作,同时要编写需求规格说明书,概要设计说明书,详细设计说明书,软件测试计划及用户使用手册等相关文档。 我们小组共有两人,针对具体的流程,我们进行了明确的分工。 经过这个星期的实验操作,我们这一组的酒店管理系统的整个流程经历了可行性分析、需求分析、概要分析和详细设计的过程。 这一过程我们的只是积累从无到有,从无知到了解,直到逐步知道怎么设计,最后完成我们的实验作品.我主要负责可行性分析这块,可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。 可行性分析应具有预见性、公正性、可靠性、科学性的特点。 尝试的初期我们遇到了很多的困难,比如酒店管理系统的运行流程不是太清楚,酒店预定入住费用透支该怎么处理,入住人员需要换房间等等诸多实质性问题.最后我们就从XX里找到相关问题的解决,设计相应的函数、参数和程序设计。 经过这么长时间的设计,我也完成了概要设计,作为团队的一员,我很好的完成了团队交付的任务,为这次课程设计更顺利的进行加快了步伐。 与此同时,在不断尝试和改进的过程,我学到了很多,对软件工程学科又有了更深的认识,为今后的继续学习打下了基础。 我还编写了用户使用手册,为以后开发大型的软件编写该手册奠定了基础。 为了方便用户的使用,我在用户使用手册中,描述了具体的实现流程(包括每项功能的实现),同时配有相关的截图,方便用户的使用。 20092684王宇 2012.06.29
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 设计 说明书