用C语言实现的宾馆客房管理系统课程设计报告_第1页
用C语言实现的宾馆客房管理系统课程设计报告_第2页
用C语言实现的宾馆客房管理系统课程设计报告_第3页
用C语言实现的宾馆客房管理系统课程设计报告_第4页
用C语言实现的宾馆客房管理系统课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用C语言实现的宾馆客房管理系统课程设计报告(一)课程设计背景随着旅游业的蓬勃发展,宾馆客房管理的信息化需求日益增长。宾馆客房管理系统能够帮助宾馆更高效地管理客房信息、入住登记、退房结算等业务,提高服务质量和运营效率。本次课程设计旨在通过C语言实现一个简单的宾馆客房管理系统,以锻炼对C语言的综合运用能力和解决实际问题的能力。(二)课程设计目的1.深入理解C语言的基本语法和编程结构,熟练掌握函数、数组、结构体、文件操作等知识点的综合运用。2.培养分析问题、设计算法和实现系统的能力,提高编程实践技能。3.了解数据库在实际应用中的基本原理和设计方法,初步掌握数据存储和管理的技巧。4.增强团队协作能力和文档撰写能力,通过课程设计过程中的交流与合作,以及撰写详细的课程设计报告,提高综合素质。##二、需求分析(一)功能需求1.客房信息管理-录入客房信息,包括房间号、房间类型、价格、状态(空闲/已入住)等。-修改客房信息,如房间价格调整、状态变更等。-删除客房信息(在确保房间空闲的情况下)。-查询客房信息,可按房间号、房间类型等条件进行查询。2.客户入住管理-办理客户入住手续,记录客户姓名、身份证号、入住时间、预计退房时间等信息,并分配空闲客房。-查看已入住客户信息。3.客户退房管理-办理客户退房手续,计算住宿费用并更新客房状态为空闲。-查看退房记录。4.系统维护-备份客房信息和客户入住记录到文件。-从备份文件恢复数据。(二)性能需求1.系统应具有较好的响应速度,在合理时间内完成各项操作,如信息查询、入住退房处理等。2.能够处理一定数量的客房信息和客户入住记录,保证数据的准确性和一致性。(三)界面需求1.提供简洁明了的菜单界面,方便用户选择各项功能。2.在操作过程中,给出相应的提示信息,告知用户操作结果。##三、总体设计(一)系统架构设计本系统采用模块化设计思想,主要包括客房信息管理模块、客户入住管理模块、客户退房管理模块和系统维护模块。每个模块负责特定的功能,通过函数调用和数据传递实现系统的整体功能。(二)数据结构设计1.客房结构体```ctypedefstruct{introomNo;charroomType[20];floatprice;intstatus;//0:空闲,1:已入住}Room;```2.客户结构体```ctypedefstruct{charname[50];charidCard[20];charcheckInTime[20];charcheckOutTime[20];introomNo;}Customer;```3.定义数组存储客房和客户信息```c#defineMAX_ROOMS100Roomrooms[MAX_ROOMS];introomCount=0;#defineMAX_CUSTOMERS100Customercustomers[MAX_CUSTOMERS];intcustomerCount=0;```(三)模块划分及功能描述1.客房信息管理模块-`voidaddRoom(Roomroom)`:添加客房信息到数组。-`voidmodifyRoom(introomNo,floatnewPrice,intnewStatus)`:修改指定客房的价格和状态。-`voiddeleteRoom(introomNo)`:删除指定客房信息(确保房间空闲)。-`voidqueryRoom(introomNo)`:按房间号查询客房信息。-`voidqueryRoomByType(char*roomType)`:按房间类型查询客房信息。2.客户入住管理模块-`voidcheckIn(Customercustomer)`:办理客户入住手续,分配空闲客房。-`voidviewCheckedInCustomers()`:查看已入住客户信息。3.客户退房管理模块-`voidcheckOut(introomNo)`:办理客户退房手续,计算费用并更新客房状态。-`voidviewCheckOutRecords()`:查看退房记录。4.系统维护模块-`voidbackupData()`:备份客房信息和客户入住记录到文件。-`voidrestoreData()`:从备份文件恢复数据。##四、详细设计(一)客房信息管理模块1.添加客房信息函数```cvoidaddRoom(Roomroom){if(roomCount<MAX_ROOMS){rooms[roomCount]=room;roomCount++;printf("客房信息添加成功!\n");}else{printf("客房数量已满,无法添加!\n");}}```2.修改客房信息函数```cvoidmodifyRoom(introomNo,floatnewPrice,intnewStatus){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo){rooms[i].price=newPrice;rooms[i].status=newStatus;printf("客房信息修改成功!\n");return;}}printf("未找到指定房间号的客房!\n");}```3.删除客房信息函数```cvoiddeleteRoom(introomNo){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo&&rooms[i].status==0){for(intj=i;j<roomCount-1;j++){rooms[j]=rooms[j+1];}roomCount--;printf("客房信息删除成功!\n");return;}}printf("无法删除,房间可能已被占用或未找到指定房间号!\n");}```4.按房间号查询客房信息函数```cvoidqueryRoom(introomNo){for(inti=0;i<roomCount;i++){if(rooms[i].roomNo==roomNo){printf("房间号:%d\n",rooms[i].roomNo);printf("房间类型:%s\n",rooms[i].roomType);printf("价格:%.2f\n",rooms[i].price);printf("状态:%s\n",rooms[i].status==0?"空闲":"已入住");return;}}printf("未找到指定房间号的客房!\n");}```5.按房间类型查询客房信息函数```cvoidqueryRoomByType(char*roomType){intfound=0;for(inti=0;i<roomCount;i++){if(strcmp(rooms[i].roomType,roomType)==0){printf("房间号:%d\n",rooms[i].roomNo);printf("房间类型:%s\n",rooms[i].roomType);printf("价格:%.2f\n",rooms[i].price);printf("状态:%s\n",rooms[i].status==0?"空闲":"已入住");found=1;}}if(!found){printf("未找到指定类型的客房!\n");}}```(二)客户入住管理模块1.办理客户入住手续函数```cvoidcheckIn(Customercustomer){for(inti=0;i<roomCount;i++){if(rooms[i].status==0){rooms[i].status=1;customer.roomNo=rooms[i].roomNo;customers[customerCount]=customer;customerCount++;printf("客户入住成功!分配房间号:%d\n",rooms[i].roomNo);return;}}printf("无空闲房间,无法办理入住!\n");}```2.查看已入住客户信息函数```cvoidviewCheckedInCustomers(){if(customerCount==0){printf("暂无已入住客户!\n");return;}for(inti=0;i<customerCount;i++){if(customers[i].roomNo!=0){printf("姓名:%s\n",customers[i].name);printf("身份证号:%s\n",customers[i].idCard);printf("入住时间:%s\n",customers[i].checkInTime);printf("预计退房时间:%s\n",customers[i].checkOutTime);printf("房间号:%d\n\n",customers[i].roomNo);}}}```(三)客户退房管理模块1.办理客户退房手续函数```cvoidcheckOut(introomNo){for(inti=0;i<customerCount;i++){if(customers[i].roomNo==roomNo){//计算住宿费用(简单示例,可根据实际需求改进)floatdays=(strtotime(customers[i].checkOutTime)-strtotime(customers[i].checkInTime))/(24*3600);floatcost=days*rooms[roomNo-1].price;printf("住宿费用:%.2f\n",cost);for(intj=i;j<customerCount-1;j++){customers[j]=customers[j+1];}customerCount--;for(intk=0;k<roomCount;k++){if(rooms[k].roomNo==roomNo){rooms[k].status=0;break;}}printf("客户退房成功!\n");return;}}printf("未找到指定房间号的已入住客户!\n");}```2.查看退房记录函数```cvoidviewCheckOutRecords(){if(customerCount==0){printf("暂无退房记录!\n");return;}for(inti=0;i<customerCount;i++){if(customers[i].roomNo==0){printf("姓名:%s\n",customers[i].name);printf("身份证号:%s\n",customers[i].idCard);printf("退房时间:%s\n",customers[i].checkOutTime);printf("房间号:%d\n\n",customers[i].roomNo);}}}```(四)系统维护模块1.备份数据函数```cvoidbackupData(){FILE*file=fopen("backup.txt","w");if(file==NULL){printf("备份失败!无法打开文件。\n");return;}for(inti=0;i<roomCount;i++){fprintf(file,"%d%s%.2f%d\n",rooms[i].roomNo,rooms[i].roomType,rooms[i].price,rooms[i].status);}for(inti=0;i<customerCount;i++){fprintf(file,"%s%s%s%s%d\n",customers[i].name,customers[i].idCard,customers[i].checkInTime,customers[i].checkOutTime,customers[i].roomNo);}fclose(file);printf("备份成功!\n");}```2.恢复数据函数```cvoidrestoreData(){FILE*file=fopen("backup.txt","r");if(file==NULL){printf("恢复失败!无法打开备份文件。\n");return;}roomCount=0;customerCount=0;while(fscanf(file,"%d%s%f%d",&rooms[roomCount].roomNo,rooms[roomCount].roomType,&rooms[roomCount].price,&rooms[roomCount].status)!=EOF){roomCount++;}while(fscanf(file,"%s%s%s%s%d",customers[customerCount].name,customers[customerCount].idCard,customers[customerCount].checkInTime,customers[customerCount].checkOutTime,&customers[customerCount].roomNo)!=EOF){customerCount++;}fclose(file);printf("恢复成功!\n");}```##五、系统测试(一)测试环境1.硬件环境:Windows10操作系统,IntelCorei5处理器,8GB内存。2.软件环境:VisualStudio2019集成开发环境。(二)测试用例1.客房信息管理测试-添加客房信息:输入房间号101,房间类型"标准间",价格200,状态0(空闲),验证是否添加成功。-修改客房信息:将房间号101的价格修改为220,验证是否修改成功。-删除客房信息:删除房间号101(确保该房间空闲),验证是否删除成功。-查询客房信息:按房间号101查询,验证是否显示正确信息。-查询客房信息:按房间类型"标准间"查询,验证是否显示正确信息。2.客户入住管理测试-办理客户入住:输入客户姓名"张三",身份证号"1234567890123456",入住时间"2023-10-01",预计退房时间"2023-10-03",验证是否能成功入住并分配房间。-查看已入住客户信息:验证是否能正确显示已入住客户信息。3.客户退房管理测试-办理客户退房:输入房间号101,验证是否能正确办理退房手续,计算费用并更新客房状态。-查看退房记录:验证是否能正确显示退房记录。4.系统维护测试-备份数据:验证是否能成功备份客房信息和客户入住记录到文件。-恢复数据:验证是否能从备份文件正确恢复数据。(三)测试结果1.通过对上述测试用例的执行,系统各项功能均能正常运行,达到了预期的设计要求。2.在添加客房信息时,能够准确将新客房信息添加到数组中,并给出相应的成功提示。3.修改客房信息功能可以正确更新指定客房的价格和状态。4.删除客房信息功能在满足条件(房间空闲)时能成功删除,并给出提示。5.查询客房信息功能按不同条件查询均能准确显示相应客房的详细信息。6.客户入住管理功能能够正确分配

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论