自己写的一个JAVA酒店管理的一个小程序
- 格式:pdf
- 大小:89.88 KB
- 文档页数:5


基于JAVA的酒店管理系统设计与实现重庆大学网络教育学院毕业设计(论文)题目基于JA V A的酒店治理系统设计与实现学生所在校外学习中心批次层次专业学号学生指导教师起止日期摘要随着近几年我国酒店业的迅猛进展,酒店业的竞争日益猛烈。
为提升酒店的治理水平,增强酒店的竞争能力,先进的酒店治理信息系统己成为酒店经营者的必定选择,由于酒店服务项目众多,客人信息内容繁琐,而且信息量大,因而在操作上经常造成专门多不便之处,白费了时刻,降低了工作效率,而且极大地阻碍了酒店的服务质量和经济效益,要想降低成本,提升工作效率、服务质量和治理水平,必须借助运算机来辅助进行酒店的治理,本文针对这些咨询题设计了那个系统,本着科学化、规范化、系统化的原则,设计和开发了酒店治理系统。
本文论述了酒店治理系统的详细需求分析过程。
同时论述了酒店系统的详细设计过程,包括酒店治理系统的分析、系统功能设计、数据库设计等,本系统前台采纳的开发工具为java,后台数据库的开发工具为SQL S erver2005,前端和后端的结合采纳ADO 数据库访咨询技术,实现了为治理者提供决策分析功能,最终形成一套完整、有用的治理信息系统。
系统的设计共分为五个要紧就时期:即:系统分析时期,阐述了系统开发的要紧目的,讨论了开发的可行性,并对系统需要完成的要紧功能进行了需求分析,确定了各模块的数据流程图;总体设计时期:在对各功能模块设计方案进行讨论的基础上,进行了详细的数据库设计,将系统按功能划分为会员治理、治理员治理、操作员治理三个功能模块;详细设计时期:按照设计好的系统结构,对系统菜单、窗口对象、各控件按钮、数据窗口对象等可视化界面和各功能模块进行设计;系统编码时期:按照详细设计的内容,对系统进行代码编写,按打算开发出稳固、可靠地系统;系统测试时期:对酒店治理系统进行功能测试、性能测试和界面测试等。
关键词:java、B/S架构、SQL server2005、酒店治理目录摘要1 绪论01.1 研究背景与研究意义01.2 课题调研02 开发技术及架构 32.1 B/S系统结构32.2 开发语言32.3 数据库技术52.3.1 SQL Server 大型关系数据库5 2.3.2 Java数据库访咨询技术 52.3.3 数据库缓冲技术 62.4 J2EE框架62.5 总体设计原则73 系统分析与设计 93.1 需求分析93.1.1 性能需求分析93.1.2 产品质量需求分析103.2 可行性分析103.3 体系流程分析113.3.1 业务流程分析113.3.2 数据流分析123.4 功能设计123.5 数据库设计133.5.1 表的设计 133.5.2 E-R图154 系统实现 174.1 会员界面讲明174.1.1 会员注册登录174.1.2 客房预订 184.2 治理员界面讲明194.2.1 治理员用户登录及密码设置 19 4.2.2 基础信息治理操作204.2.3 入/订/退业务操作214.3 操作员界面讲明224.3.1 基础信息治理功能224.3.2 入/订/退业务操作 22结论23致谢24参考文献 251 绪论1.1 研究背景与研究意义21世纪,全球网络化,科技在突飞猛进。
目录摘要----------------------------------------------------------------------------------------------------- III ABSTRACT ---------------------------------------------------------------------------------------------- I V 引言-------------------------------------------------------------------------------------------------------- 0第一章绪论 -------------------------------------------------------------------------------------------- 1 1.1系统开发背景及现状 -------------------------------------------------------------------------------------------- 1 1.2系统开发关键技术与开发环境------------------------------------------------------------------------------ 21.2.1 Java简介 --------------------------------------------------------------------------------------------------------- 21.2.2 Java的优势与特点------------------------------------------------------------------------------------------- 2 1.3运行环境和开发工具 -------------------------------------------------------------------------------------------- 3第二章酒店管理系统的内涵及其应用优势 ------------------------------------------------ 4 2.1酒店管理的概念 --------------------------------------------------------------------------------------------------- 4 2.2酒店管理的前景 --------------------------------------------------------------------------------------------------- 5 2.3酒店管理系统应用优势----------------------------------------------------------------------------------------- 5 2.3酒店管理系统的现状 -------------------------------------------------------------------------------------------- 62.3.1市场分析--------------------------------------------------------------------------------------------------------- 6第三章系统分析 -------------------------------------------------------------------------------------- 7 3.1可行性分析----------------------------------------------------------------------------------------------------------- 73.1.1技术上可行性-------------------------------------------------------------------------------------------------- 73.1.2操作上可行性-------------------------------------------------------------------------------------------------- 73.1.3 经济上可行性 ------------------------------------------------------------------------------------------------- 8 3.2系统功能分析 ------------------------------------------------------------------------------------------------------- 8第四章系统设计---------------------------------------------------------------------------------- 104.1设计思想 -------------------------------------------------------------------------------------------------------------10 4.2数据库结构设计 --------------------------------------------------------------------------------------------------11 4.3系统功能模块图 --------------------------------------------------------------------------------------------------11第五章主要功能实现 ----------------------------------------------------------------------------- 125.1功能需求与程序模块对应的关系 -------------------------------------------------------------------------12 5.2主要功能的实现 --------------------------------------------------------------------------------------------------135.2.1系统登录界面-------------------------------------------------------------------------------------------------135.2.2系统主界面 ----------------------------------------------------------------------------------------------------145.2.3 散客开单 -------------------------------------------------------------------------------------------------------155.2.4 团体开单 -------------------------------------------------------------------------------------------------------165.2.5 旅客续住 -------------------------------------------------------------------------------------------------------175.2.6 更换房间 -------------------------------------------------------------------------------------------------------185.2.7 宾客结账 -------------------------------------------------------------------------------------------------------205.2.8 客房预订 -------------------------------------------------------------------------------------------------------215.2.9 营业查询 -------------------------------------------------------------------------------------------------------225.2.10 客户管理------------------------------------------------------------------------------------------------------235.2.11 网络设置------------------------------------------------------------------------------------------------------255.2.12 系统设置—房间项目设置-----------------------------------------------------------------------------265.2.13 系统设置—客户类型设置-----------------------------------------------------------------------------275.2.14 系统设置—操作员设置 --------------------------------------------------------------------------------285.2.15 系统设置—计费设置------------------------------------------------------------------------------------305.2.16 系统日志------------------------------------------------------------------------------------------------------31 5.3本章小结 -------------------------------------------------------------------------------------------------------------32第六章系统测试 ------------------------------------------------------------------------------------ 326.1软件测试原则和技术 -------------------------------------------------------------------------------------------32 6.2测试实例-------------------------------------------------------------------------------------------------------------346.2.1 登陆安全性测试 --------------------------------------------------------------------------------------------346.2.2 宾客开单登记测试-----------------------------------------------------------------------------------------34 6.3系统的不足及进一步设想------------------------------------------------------------------------------------35 6.4测试环境-------------------------------------------------------------------------------------------------------------35致谢 ------------------------------------------------------------------------------------------------------- 35结束语 --------------------------------------------------------------------------------------------------- 37参考文献 ------------------------------------------------------------------------------------------------ 38附录 ---------------------------------------------------------------------------- 错误!未定义书签。
Java语言程序设计小组课程设计个人报告书小组题目:酒店管理系统完成日期:2012年1月4日酒店管理系统1、问题描述随着信息的迅速发展,信息化管理已经引入并且应用到各行各业的管理领域中去,而一个大型的机电将管理信息化也是势在必行的,大量的客流量,同时还要存储各项业务的信息不断更换的客流信息,员工个人信息和工资发配等任务,若要时还是用人力管理不仅将会影响到盈利的同时无异于又给每一位员工带来了很大的工作量!本文从开发酒店管理系统的相关技术及可行性分析入手简述了管理系统采用C/S模式的好处及需要实现员工信息管理、预定、简单的财务管理以及进货系统等日程管理信息等功能。
详细介绍了各个功能的实现,以及系统测试的情况。
本文主要功能包括:从系统安全可靠性,系统功能,软件运行环境等方面对酒店管理系统进行需求分析,说明系统的合理性与可行性,较为详细的阐述了系统的运行情况。
本文最终设计并实现了一个基于C/S模式的酒店管理系统,该系统包括系统设置、日常细细管理、库存管理、预定管理、订餐管理。
测试结果表明,本文所开发的管理系统具有简单管理的功能。
酒店形态具有种种优点,但在目前状况下,它仍存在服务业企业所共有的落后的一面,如:不能有效地、快速地服务于每个顾客,收款结算速度慢,容易出现服务不周,不易进行服务评价等。
而且在酒店日常管理中,货物的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。
随着酒店形态的高速发展,其经营管理也变的愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。
而企业若想再激烈的市场经济中立足并胜出,就必须拥有一套完善并适应自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息,完善服务质量、提高经济效益、分析市场需求、制定服务计划和目标等管理目的。
21世纪,酒店的竞争也进到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。
酒店管理系统C++源代码----仅供参考学习,切勿用于任何商业用途# include <iostream.h># include <fstream.h># include <process.h># include <string.h># include <stdlib.h># include <stdio.h># include <ctype.h># include <conio.h># include <dos.h>//*****************************************************************//*****************************************************************// CLASS NAME : MENU// DETAILS一需求分析(1)顾客1 查看房间信息(空房号,等级,床位数)2 入住(房号,姓名,身份证)3 退房(结账)(2) 管理员1 查看房间信息(空房号,房间状态,等级,床位数)2 入住(房号,改变房间状态,登记人)3 退房(结账,登记人)二实体1 房间::号码c_room等级c_dank床数c_nbed状态c_statds价格c_rate2 顾客::身份证id人数m要求等级r入住房间room//这个时候不知道是设计类还是功能模块三程序流程1. 管理员登陆2. 选择功能1. 登记入住void check_in();2. 退房void check_out();3. 定房void book();4. 订房3. 管理员退出四功能模块1 顾客模块1)登记入住1 输入人数m和房间等级要求r2 按r搜索空房再按m搜索3 如果有符合条件的显示4 如果没有则给出优化方案5 选择房间6 给出每个人每天要付的费用dayrent7 登记个人信息8 改变房间状态2)退房1 计算每人应付费用和总共费用2 改变房间状态3)订房1 输入人数m 房间等级要求r2 按r搜索空房再按m搜索3 如果有符合条件的显示4 如果没有则给出优化方案5 选择房间2 管理员模块1)登录系统1 输入用户名和密码2 检验密码3 通过/重新输入2)登记入住(同上)3)退房(同上)4)订房(同上)5)房间信息管理1 显示空房及对应的等级空房2 显示已订房号码及开始入住日期: IT CONTROLS OVER ALL THE FUNCTIONS //*****************************************************************class menu{public :void main_menu(void);void startup(void);void box(void);void line_hor(int, int, int, char);void line_ver(int, int, int, char);};//*****************************************************************// CLASS NAME : HKEEP// DETAILS : IT CONTROLS OVER ALL FUNCTIONS // RELATED TO HKEEP//*****************************************************************class hkeep{public :hkeep(void);~hkeep(void);void add(void);void modify(void);void deletion(void);void display_list(void);private :void display_record(int);int found_record(int);void delete_record(int);void modify_record(int);int recordno(int);int last_code(void);int code;char name[20],roomno[10],order[99];};//*****************************************************************// CLASS NAME : MENU// FUNCTION NAME : LINE_HOR// DETAILS : IT ACCEPTS THE ROWS AND COLUMNS AND // DRAWS HORIZONTAL LINES//*****************************************************************void menu :: line_hor(int column1, int column2, int row, char c){for(column1;column1<=column2;column1++){//gotoxy(column1,row);cout<<c;}}//*****************************************************************// CLASS NAME : MENU// FUNCTION NAME : LINE_VER// DETAILS : IT ACCEPTS ROWS AND COLUMNS AND // DRAWS THE VERTICAL LINE //*****************************************************************void menu :: line_ver(int row1, int row2, int column, char c){for(row1;row1<=row2;row1++){gotoxy(column, row1);cout << c;}}//*****************************************************************// CLASS NAME : MENU// FUNCTION NAME : STARTUP// DETAILS : IT CREATES THE STARTING SCREEN //*****************************************************************void menu :: startup(void){// clrscr();int i,j,s;char a[] = " H*O*T*E*L";char b[] = " M*A*N*A*G*E*M*E*N*T";for(i=0;i<=79;i++)line_ver(1,25,i,179);// gotoxy(1,11);clreol();gotoxy(1,13);clreol();j = 63;s = 100;for(i=1;i<=43;i++){sound(s);s = s+20;delay(50);gotoxy(1,12);clreol();gotoxy(i,12);cout<<b;gotoxy(j,12);cout<<a;j--;gotoxy(1,1);}// nosound();delay(100);char ch = 219;s = 500;for(i=0;i<=79;i++){sound(s);s =s+10;gotoxy(i,10);cout<<ch;delay(5);}nosound();delay(200);ch = 219;s = 1290;for(i = 79; i>=1;i--){sound(s);s = s- 10;gotoxy(i,14);cout<<ch;delay(5);}nosound();delay(1000);clrscr();cout<<"\n\n\n\n\n\n\n\n\n\n\n\t\t\t\tProject made by :";char jklf[]="ABCDEF";cout<<"\n\n\t\t\t\t\t\t";for(int u=0;u<7;u++){ cout<<jklf;delay(80);}char jklf1[]=" GHIJK :";cout<<"\n\t\t\t\t\t\t";for(int v=0;v<7;v++){ cout<<jklf1[v];delay(80);}char jklf2[]=" ";cout<<"\n\t\t\t\t\t\t";for(int w=0;w<5;w++){ cout<<jklf2[w];delay(80);}delay(1100);}//*****************************************************************// CLASS NAME : MENU// FUNCTION NAME : BOX// DETAILS : IT CREATS BOX FOR THE MENU//*****************************************************************void menu :: box(void){// line_hor(2,39,1,219);line_hor(2,39,24,219);line_ver(1,24,2,219);line_ver(1,24,39,219);}//*****************************************************************// CLASS NAME : MENU// FUNCTION NAME : MAIN_MENU// DETAILS : IT CREATES MENU AND CONTROLS OTHER// FUNCTION//*****************************************************************void menu :: main_menu(void){char ch;while (1){clrscr();textmode(C40);clrscr();box();gotoxy(12,5);cout<<" House Keeping ";gotoxy(12,6);cout<<"-----------------";gotoxy(12,10);cout<<" 1 : Store Customer Order";gotoxy(12,11);cout<<" 2 : Display customer Order";gotoxy(12,12);cout<<" 3 : Delete Order";gotoxy(12,13);cout<<" 4 : Modify Order";gotoxy(12,14);cout<<" 0 : Quit";gotoxy(11,18);cout<<" Enter your choice";ch = getch();textmode(C80);clrscr();if ( ch == '1'){hkeep d;d.add();}elseif ( ch == '2'){hkeep d;d.display_list();}elseif ( ch == '3'){hkeep d;d.deletion();}elseif( ch == '4'){hkeep d;d.modify();}elseif(ch == '0')break;}}//*****************************************************************// CLASS NAME :HKEEP// FUNCTION NAME : HKEEP (CONSTRUCTOR)// DETAILS : IT IS A CONSTRUCTOR FUNCTION, GIVING // DEFAULT VALUES//*****************************************************************hkeep :: hkeep (void){code = 0;name[0] = '\0';roomno[0] = '\0';order[0] = '\0';}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : ~HKEEP (DESTRUCTOR) // DETAILS : IT IS A DESTRUCTOR FUNCTION//*****************************************************************hkeep :: ~hkeep (void){}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : DISPLAY_LIST // DETAILS : IT DISPLAYS LIST OF THE PERSON'S// RECORDS//*****************************************************************void hkeep:: display_list(void){clrscr();menu m;char *t_name, *t1_name = NULL;gotoxy(3,5);cout<<" Enter the character(s) for selective list ";gotoxy(3,6);cout<<" or press <ENTER> for whole list or '0' to exit : ";gets(t_name);if (t_name[0] == '0')return;int len = strlen(t_name);clrscr();fstream file;file.open("HKFILE.IMR", ios :: binary | ios :: in);file.seekg(0, ios :: beg);int row = 4;int found = 0;int pageno = 1;int flag = 1;char ch;gotoxy(1,2);cout<<" Order Serial No.";m.line_hor(1,79,3,196);m.line_hor(1,79,24,196);while (file.read((char *)this , sizeof (hkeep))){flag = 1;for(int i=0;i<len;i++)t1_name= name;t1_name[len] = '\0';if(strcmpi(t_name, t1_name) == 0){delay(200);found = 1;gotoxy(1,row);cout<<code;gotoxy(7,row);puts(name);gotoxy(27,row);cout<<" Room no. :"<<roomno;gotoxy(27,row+1);cout<<" Order : ";puts(order);if( row == 22){flag = 0;row = 4;gotoxy(66,1);cout<<" Page No. : "<<pageno;pageno++;gotoxy(1,25);cout<<" Press <ESC> to exit or any key to continue... ";ch = getch();if(ch == 27)return ;clrscr();gotoxy(1,2);cout<<" Order Serial No.";m.line_hor(1,79,3,196);m.line_hor(1,79,24,196);}elserow = row + 2;}}if ( !found ){sound(500);delay(100);nosound();gotoxy(1,5);cout<<"Records not found" ;}if (flag){gotoxy(66,1);cout<<"age No. : "<<pageno;gotoxy(1,25);cout<<"ress any key to continue...";getch();}file.close();}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : DISPLAY_RECORD // DETAILS : IT DISPLAYS SINGLE RECORD FOR THE// GIVEN RECORD//*****************************************************************void hkeep :: display_record(int t_code){fstream file;file.open("HKFILE.IMR",ios :: binary | ios::in);file.seekg(0,ios::beg);while( file.read((char *) this, sizeof(hkeep))){if(t_code == code){gotoxy(3,3);cout<<"Order serial No."<<code;gotoxy(3,5);cout<<"Name : ";puts(name);gotoxy(3,6);cout<<"Room No. : "<<roomno;gotoxy(3,7);gotoxy(3,7);cout<<"Order : ";puts(order);break;}}file.close();}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : LAST_CODE// DETAILS : IT COUNTS THE RECORD IN THE FILE AND // RETURNS THE LAST CODE//*****************************************************************int hkeep :: last_code(){fstream file;file.open("HKFILE.IMR",ios :: binary | ios::in);file.seekg(0,ios::beg);int t=0;while(file.read((char*) this, sizeof(hkeep)))t++;file.close();return t;}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : FOUND_RECORD// DETAILS : IT RETURNS THAT RECORD IS FOUND FOR THE // GIVEN CODE NO. OR NOT//*****************************************************************int hkeep :: found_record(int t_code){fstream file;file.open("HKFILE.IMR", ios :: binary | ios :: in );file.seekg(0,ios::beg);int found = 0;while(file.read((char *) this, sizeof(hkeep))){if(t_code == code){found++;break;}}file.close();return found;}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : ADD// DETAILS : IT ADDS THE RECORD IN THE HKEEP'S FILE //*****************************************************************void hkeep :: add(void){menu m;int valid, saved=0 ;int t_code;t_code = last_code();t_code++;if(t_code == 1){code = t_code;strcpy(name,"abc");strcpy(roomno,"-");strcpy(order,"xyz");fstream file;file.open("HKFILE.IMR", ios :: binary | ios :: app);file.write((char *)this, sizeof(hkeep));file.close();delete_record(t_code);}char ch;do{clrscr();gotoxy(3,3);cout<<"Order serial No."<<t_code;gotoxy(3,5);cout<<"Name : ";gotoxy(3,6);cout<<"Room no. : ";gotoxy(3,7);gotoxy(3,7);cout<<"Order : ";m.line_hor(1,79,23,196);do{valid = 1;gotoxy(1,25);clreol();gotoxy(3,25);cout<<"ENTER THE NAME OF THE PERSON";gotoxy(13,5);gets(name);strupr(name);if(strlen(name) > 19 || strlen(name) == 0){valid = 0;sound(500);delay(100);nosound();gotoxy(1,25); clreol();gotoxy(1,24);cout<<"LENGTH SHOULD NOT BE BLANK OR GREATER THAN 19 ";gotoxy(1,25);cout<<"ress any key to continue ... ";getch();gotoxy(1,24); clreol();gotoxy(1,25); clreol();gotoxy(13,5); clreol();}}while(!valid);do{valid = 1;gotoxy(1,25); clreol();gotoxy(3,25);cout<<"ENTER THE ROOM NO. OF THE CUSTOMER, <ENTER> FOR BLANK";gotoxy(13,6);gets(roomno);}while(!valid);if(strlen(roomno) == 0)strcpy(roomno,"-");do{valid = 1;gotoxy(1,25); clreol();gotoxy(3,25);cout<<"ENTER THE ORDER OF THE CUSTOMER";gotoxy(13,7);gets(order);if(strlen(order) >99 || strlen(order) == 0){valid = 0;sound(500);delay(100);nosound();gotoxy(1,25); clreol();gotoxy(1,24);cout<<"SHOULD NOT BE BLANK OF GREATER THAN 99";gotoxy(1,25);cout<<"Press any key to continue... ";getch();gotoxy(1,24); clreol();gotoxy(1,25); clreol();gotoxy(13,10); clreol();}}while(!valid);gotoxy(1,25); clreol();gotoxy(1,23); clreol();gotoxy(1,13);cout<<"Do you want to save the record (y/n) : ";do{valid = 1;gotoxy(41,13);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(41,13); clreol();}}while( !valid);if (ch == 'Y'){saved =1 ;code = t_code;fstream file;file.open("HKFILE.IMR", ios :: binary | ios:: app);file.write((char *) this, sizeof(hkeep));file.close();t_code++;}gotoxy(1,14);cout<<"Do you want to add more records (y/n) : ";do{valid = 1;gotoxy(41,14);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(41,14); clreol();}}while(!valid);}while(ch == 'Y');}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : DELETE_RECORD// DETAILS : IT DELETES THE RECORD IN THE HKEEP'S FILE // FOR THE GIVEN CODE//*****************************************************************void hkeep :: delete_record(int t_code){fstream file;file.open("HKFILE.IMR",ios :: binary | ios :: in);fstream temp;temp.open("temp.IMR",ios :: binary | ios:ut);file.seekg(0,ios::beg);while(file.read((char *) this, sizeof(hkeep))){if(code != t_code)temp.write((char *) this, sizeof(hkeep));}file.close();temp.close();file.open("HKFILE.IMR",ios :: binary | ios:ut);temp.open("temp.IMR",ios :: binary | ios::in);t_code = 1;while(temp.read((char *)this,sizeof(hkeep))){code = t_code;file.write((char *)this, sizeof(hkeep));t_code++;}file.close();temp.close();}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : DELETION// DETAILS : IT GIVES THE CODE NO. TO DELETE THE // RECORD IN HKEEP'S FILE//*****************************************************************void hkeep :: deletion(void){menu m;clrscr();int valid;int t_code = 0, t;char t1_code[5], t2_code[5];char ch;gotoxy(3,3);cout<<" Enter Order Serial No. of the record to be deleted ";gotoxy(3,4);cout<<" or Press <ENTER> to see from the list or '0' to exit : ";gets(t1_code);t = atoi(t1_code);t_code = t;if(t1_code[0] == '0')return;if(t1_code[0] != '\0'){clrscr();if(!found_record(t_code)){sound(500);delay(100);nosound();gotoxy(3,15);cout<<"Record not found";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue... ";getch();return;}display_record(t_code);gotoxy(3,12);cout<<"Do you want to delete this record (y/n) : ";do{valid = 1;gotoxy(45,12);ch = getch();ch = toupper(ch);if (ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(45,12); clreol();}}while(! valid);if (ch == 'N')return;gotoxy(1,25);cout<<"Wait...";delete_record(t_code);clrscr();gotoxy(1,14);cout<<"Record Deleted\n";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue...";getch();return;}display_list();gotoxy(1,25); clreol();gotoxy(3,25);cout<<"Enter Order Serial No. of the record or <ENTER> to exit " ;gets(t2_code);t = atoi(t2_code);t_code = t;if(t2_code[0] == '\0')return;clrscr();if(! found_record(t_code)){sound(500);delay(100);nosound();gotoxy(3,15);cout<<"Record not found";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue...";getch();return;}display_record(t_code);gotoxy(3,12);cout<<"Do you want to delete this Record (y/n) : ";do{valid = 1;gotoxy(45,12);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(45,12); clreol();}}while(!valid);if(ch == 'N')return;gotoxy(1,25);cout<<"Wait...";delete_record(t_code);clrscr();gotoxy(1,14);cout<<"Record Deleted\n";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue...";getch();}//*****************************************************************// CLASS NAME : HKEEP// FUNCTION NAME : MODIFY_RECORD// DETAILS : IT MODIFIES THE RECORD IN THE HKEEP'S // FILE FOR THE GIVEN CODE//*****************************************************************void hkeep :: modify_record(int t_code){menu m;int valid,modified = 0;char ch;m.line_hor(1,79,12,196);gotoxy(3,14);cout<<"Order Serial No."<<t_code;gotoxy(3,16);cout<<"Name : ";gotoxy(3,17);cout<<"Room No. : ";gotoxy(3,18);cout<<"Order : ";m.line_hor(1,79,23,196);gotoxy(13,16);cout<<"Change (y/n) : ";do{valid =1;gotoxy(28,16);ch = getche();ch = toupper(ch);if (ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(45,12); clreol();}}while(!valid);valid = 0;while(!valid && ch == 'Y'){modified = 1;valid = 1;gotoxy(13,16);clreol();gotoxy(3,25);cout<<"ENTER THE NAME OF THE PERSON";gotoxy(13,16);gets(name);strupr(name);if(strlen(name) > 19 || strlen(name) == 0){valid = 0;sound(500);delay(100);nosound();gotoxy(1,25); clreol();gotoxy(1,24);cout<<"LENGTH SHOULD NOT BE BLANK OR GREATER THAN 19 ";gotoxy(1,25);cout<<"Press any key to continue ... ";getch();gotoxy(1,24); clreol();gotoxy(1,25); clreol();gotoxy(13,16); clreol();}}gotoxy(1,25); clreol();gotoxy(13,17);cout<<"Change (y/n) : ";do{valid = 1;gotoxy(28,17);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(28,17); clreol();}}while(!valid);valid = 0;while ( !valid && ch == 'Y'){modified = 1;valid = 1;gotoxy(13,17); clreol();gotoxy(3,25);cout<<"ENTER THE ROOM NO. OF THE CUSTOMER, <ENTER> FOR BLANK";gotoxy(13,17);gets(roomno);if (strlen(roomno) == 0)strcpy(roomno,"-");}gotoxy(1,25); clreol();gotoxy(13,18);cout<<"Change (y/n) : ";do{valid = 1;gotoxy(28,18);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(28,18); clreol();}}while(!valid);valid = 0;while(!valid && ch == 'Y'){modified = 1;valid = 1;gotoxy(13,21); clreol();gotoxy(3,21);cout<<"ENTER THE ORDER OF THE CUSTOMER, <ENTER> FOR BLANK";gotoxy(13,18);clreol();gets(order);if(strlen(order) >99 || strlen(order) == 0){valid = 0;sound(500);delay(100);nosound();gotoxy(1,25); clreol();gotoxy(1,24);cout<<"SHOULD NOT BE BLANK OF GREATER THAN 99";gotoxy(1,25);cout<<"Press any key to continue... ";getch();gotoxy(1,24); clreol();gotoxy(1,25); clreol();gotoxy(13,21); clreol();}}if(! modified)return;gotoxy(1,25); clreol();cout<<"Do you want to save the record (y/n) : ";do{valid = 1;gotoxy(41,23);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(41,23); clreol();}}while( !valid);if (ch == 'N')return;fstream file;file.open("HKFILE.IMR", ios :: binary | ios:ut | ios::ate);int recno;recno = t_code;int location;location = (recno -1) * sizeof(hkeep);file.seekp(location);file.write((char*) this, sizeof(hkeep));file.close();clrscr();sound(500);delay(100);nosound();gotoxy(1,14);cout<<"Record modified ";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue...";getch();}//*****************************************************************// CLASS NAME : HKEEP// FUNTION NAME : MODIFY// DETAILS : IT TAKES THE ORDER SERIAL NO. TO MODIFY THE // RECORD IN SYSTEM'S FILE//*****************************************************************void hkeep :: modify(void){menu m;clrscr();int valid;int t_code = 0,t;char t1_code[5], t2_code[5];char ch;gotoxy(3,3);cout<<" Enter the Order Serial No. of the record to be modified : ";gotoxy(3,4);cout<<" or Press <ENTER> to see form the list or '0' to exit : ";gets(t1_code);t = atoi(t1_code);t_code = t;if(t1_code[0] == '0')return;if(t1_code[0] != '\0'){clrscr();if(!found_record(t_code)){sound(500);delay(100);nosound();gotoxy(3,15);cout<<"Record not found";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue ... ";getch();return;}display_record(t_code);gotoxy(3,12);cout<<"Do you want to modify this record (y/n) : ";do{valid =1 ;gotoxy(45,12);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(45,12); clreol();}}while(! valid);if( ch == 'N')return;modify_record(t_code);return;}display_list();gotoxy(1,25);clreol();gotoxy(3,25);cout<<"Enter Order Serial No. of the record or <ENTER> to exit : ";gets(t2_code);t = atoi(t2_code);t_code = t;if(t2_code[0] == '0')return;if(t2_code[0] != '\0')clrscr();if(!found_record(t_code)){sound(500);delay(100);nosound();gotoxy(3,15);cout<<"Record not found";m.line_hor(1,79,24,196);gotoxy(1,25);cout<<"Press any key to continue ... ";getch();return;}display_record(t_code);gotoxy(3,12);cout<<"Do you want to modify this record (y/n) : ";do{valid =1 ;gotoxy(45,12);ch = getche();ch = toupper(ch);if(ch != 'Y' && ch != 'N'){valid = 0;sound(500);delay(100);nosound();gotoxy(45,12); clreol();}}while(! valid);if( ch == 'N')return;modify_record(t_code);}//*****************************************************************// FUNCTION NAME : MAIN// DETAILS : IT CALLS THE STARTUP FUNCTION AND // MENU FUNCTION.//*****************************************************************void main(void){menu m;m.startup();m.main_menu();}附录Base.Dlg.cpp程序:#include "stdafx.h"#include "MyPos.h"#include "BaseDlg.h"#include "MaterielDlg.h"#include "ClassDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CBaseDlg dialogCBaseDlg::CBaseDlg(CWnd* pParent /*=NULL*/): CDialog(CBaseDlg::IDD, pParent){//{{AFX_DATA_INIT(CBaseDlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT}void CBaseDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CBaseDlg)DDX_Control(pDX, IDC_TAB_BASE, m_oTabBase);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CBaseDlg, CDialog)//{{AFX_MSG_MAP(CBaseDlg)//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CBaseDlg message handlersBOOL CBaseDlg::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization herem_oTabBase.AddPage("商品类别", &m_oClassdlg, IDD_DIALOG_CLASS);m_oTabBase.AddPage("商品资料", &m_oMaterieldlg, IDD_DIALOG_MA TERIEL);m_oTabBase.AddPage("付款方式", &m_oPaymodedlg, IDD_DIALOG_PAYMODE);m_oTabBase.Show();return TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSECallDlg.cpp程序:#include "stdafx.h"#include "MyPos.h"#include "CallDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CCallDlg dialogextern CMyPosApp theApp;CCallDlg::CCallDlg(CWnd* pParent /*=NULL*/): CDialog(CCallDlg::IDD, pParent){//{{AFX_DATA_INIT(CCallDlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT}void CCallDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CCallDlg)。