立方酒店管理系统 (大型代码)下载

1努力加油1 2019-03-05 06:07:23
关于系统:建议本系统在800×600显示分辨率下运行;关于使用UPS稳压电源:本系统经过全面破坏性测试,本系统能够修复突然断电而造成的数据表损坏,但是为了以防万一,建议用户使用UPS不间断电源,以免非正常退出本系统而造成数据被破坏。关于开机顺序:如果是网络化运行,每此启动本系统前必须先运行服务器,然后再运行客户机系统。服务器系统在运行时会运行服务器程序特有的系统操作,不管任何原因造成的重开机,都必须先运行服务器。关于系统版本:本版本在继续开发完善中,请您经常访问我们的网站了解最新版本信息。希望您能够及时反馈给我们,以便我们及时修正和改进,对于您的支持,我们深表感谢。关于数据备份:为了预防数据因
相关下载链接://download.csdn.net/download/chenxh/130516?utm_source=bbsseo
...全文
17 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
关于系统:建议本系统在800×600显示分辨率下运行;关于使用UPS稳压电源:本系统经过全面破坏性测试,本系统能够修复突然断电而造成的数据表损坏,但是为了以防万一,建议用户使用UPS不间断电源,以免非正常退出本系统而造成数据被破坏。关于开机顺序:如果是网络化运行,每此启动本系统前必须先运行服务器,然后再运行客户机系统。服务器系统在运行时会运行服务器程序特有的系统操作,不管任何原因造成的重开机,都必须先运行服务器。关于系统版本:本版本在继续开发完善中,请您经常访问我们的网站了解最新版本信息。希望您能够及时反馈给我们,以便我们及时修正和改进,对于您的支持,我们深表感谢。关于数据备份:为了预防数据因某种原因被破坏而造成的损失,建议用户经常对系统进行数据备份操作。(建议每天做多次,以防万一。)虽然本系统在夜审时对夜审前的数据和夜审后的数据均进行了备份,但建议用户仍然需要操作数据备份模块,将数据备份到另外一台机器上,以防万一。其他关于“系统定义中代码的设置”:在“系统” 模块中的数据表的“代码”字段是为了方便在其他模块中录入数据时不必记住编号,直接输入代码可以定位到所需得项目。关于“餐饮管理系统中菜单定义”:“末级”字段是为了区分菜单分类,如果是大类,请录入空,如果是最终末级菜单,请录入“*”。关于“房态刷新”按钮:“刷新”是为了调用服务器中当前的最新数据,建议用户在模块中经常进行“刷新”操作。关于“结帐中的预交款”:如果在结帐中的帐单中出现预交款消费项目,是因为有预先结帐或客户预交款或持贵宾卡消费的情况,请不要在预交款项目中进行优惠操作。关于“系统定义中记录的删除”:使用键盘Ctrl+Del组合键。请不要轻易删除。-------------------------------------------------------------------立方酒店管理系统Cubic Hotel Management System功能说明l 预定 -------------------------------------------------------------------------- 2l 接待 -------------------------------------------------------------------------- 5l 结账 -------------------------------------------------------------------------- 8l 查询 --------------------------------------------------------------------------12l 夜审 --------------------------------------------------------------------------14l 报表 --------------------------------------------------------------------------15l 系统 --------------------------------------------------------------------------18l 餐饮 --------------------------------------------------------------------------20l 贵宾卡 -----------------------------------------------------------------------21l 电话 --------------------------------------------------------------------------22l 洗浴l 娱乐预定内容丰富的预定单1、 可以完成散客、团队的预定,预定方法简单。2、 可以完成对客房、餐厅、会议室的预定3、 客房预定 l 预定房态盘操作,简便直观,可以用不同颜色显示预定状态;l 可以方便的切换到任何一天的预定房态盘,是否有预定信息一目了然;l 可以预定任何时间的客房,超预定和占房冲突自动提示;l 可以自动查询预定客人是否是历史客人,来店次数和消费金额,以便为老客户提供优惠和感情服务;l 客房预定可以只是意向性,可以确认预定,可以取消预定;l 预定信息在预定时间到达时,自动显示在接待房态盘中,提示接待员当天有预定客人;l 可以从预定信息直接转接待,无需再录入客人信息;l 预定转接待后,预定信息自动清除;l 打印预定回执,令预定者满意;l 团队预定时可以快速批处理,可以手工分房也可以自动分房;l 团队预定时可以统一修改房价,也可以单独对某些房价进行修改;l 可以进行加房、减房、换房处理;l 预定客房的同时,可以利用相同的客人信息直接预定餐饮和会议室;l 客人信息没有任何预定时,系统自动清除客人信息;l 柱状图显示某天预定客房的模拟出租率;l 预定列表查询预定客人信息,预定房信息,预定时间,到店时间,离店时间;4、 餐饮预定 l 预定餐厅盘操作,简便直观,可以用不同颜色显示预定状态;l 可以方便的切换到任何一天的餐厅房态盘,是否有预定信息一目了然;l 可以预定任何时间的餐厅,超预定和占餐厅冲突自动提示;l 餐厅预定可以只是意向性,可以确认预定,可以取消预定;l 预定信息在预定时间到达时,自动显示在餐厅状态盘中,提示接待员当天有预定客人;l 在餐厅系统中,可以直接使用预定餐厅信息进行开台操作;l 餐厅系统中确认预定信息后,预定信息自动清除;l 打印预定回执,令预定者满意;l 团队预定时可以预定任何日期段的一日三餐;l 散客预定时可以录入婚房、司仪等信息;l 预定的用餐标准可以是 元/每桌,元/人,点菜;l 可以进行加、减、换处理;l 预定餐厅的同时,可以利用相同的客人信息直接预定客房和会议室;l 客人信息没有任何预定时,系统自动清除客人信息;l 柱状图显示某天预定餐厅的模拟出租率;l 预定列表查询预定客人信息,预定餐厅信息,预定时间,用餐时间,用餐标准;5、 会议室预定 l 预定会场盘操作,简便直观,可以用不同颜色显示预定状态;l 可以方便的查看到所有会议室的所有预定情况,是否有预定信息一目了然;l 可以预定任何时间的会议室,超预定和占会场冲突自动提示;l 会议室预定可以只是意向性,可以确认预定,可以取消预定;l 可以录入会场人数、主席台人数、租金、横幅、鲜花、水果、话筒等大量信息;l 会场结算后,预定信息自动清除;l 打印预定回执,令预定者满意;l 预定会场的同时,可以利用相同的客人信息直接预定餐饮和客房;l 客人信息没有任何预定时,系统自动清除客人信息;l 柱状图显示某天预定会场的模拟出租率;l 预定列表查询预定客人信息,预定会场信息,预定时间,使用时间;接待以客房状态盘为中心的客人接待1、 内容丰富的客房状态盘l 在客房状态盘中可以完成几乎所有的接待功能,方便快捷;l 客房状态盘用不同的颜色显示空房、散客、团队、维修、脏空、免费房;l 房态的颜色用户可以按照自己的喜好进行修改;l 各种房态也可以用形象的图标表示出来;l 客房状态盘可以使多达10个团队的客房用不同的颜色表示出来,同时标示团队名称和对应的颜色,使操作者对各个团队的用房准确掌握;l 柱状图显示当前的客房出租率,包括总客房数、出租数、出租率等信息;l 对空房双击鼠标左键,可以直接进入散客接待;l 对使用房双击鼠标左键,可以查询散客或团队的消费情况,押金情况,押金余额;l 对空房单击鼠标右键弹出下拉菜单,可以进行内宾接待,外宾接待,免费接待,团队接待,调换房间,寓客收银,散客结账,帐单查询,设置维修房,设置空房等一系列操作;l 按住Shift+鼠标左键可以对散客直接结账;l 单击相应客房时,显示该客房的客人姓名和房价;l 当客房被预定时,客房状态盘显示相应的信息,提示接待员;l 当客人的押金不足时,客房状态也显示相应的信息,提示接待员发催交通知单;l 可以对所有脏空房批量进行设置成空房,也可以单一设置;l 客房状态盘一屏可以显示250个客房信息;2、快捷的客人信息页l 列表显示所有客房的信息,包括客人姓名,实际房价,到店日期,到店时间,半全价的情况;l 信息补登可以对快速入住的客人的信息进行补充录入;l 馅饼图显示当前散客、团队、空房、免费房、维修房、脏空房的比例;l 房价修改需要经过权限认证后,进行房加变更;l 客人列表可以快速列出客人的详细信息;3、 快速的散客入住l 只需要录入客人的姓名和房价以及押金方式,就可以快速入住了,其他信息可以以后补登;l 自动判别客人是否为历史客人,显示来店次数,提供友情服务;l 自动判别客人是否在黑名单中,自动提示;l 如果是VIP客户可以自动显示以前的协议房价;l 多种押金方式,包括人民币,信用卡,支票,记账等;l 民族,地区,国家等许多信息可以采用拼音码自动定位;l 自动判别15位,18位身份证号码的合法性,自动计算出生年月和性别;l 可以打印房卡,制作IC房卡;4、 集中的团队管理l 在团队管理页中可以集中完成团队接待,团队补登房间,团队取消房间,团队退房,团队结账,团账查询,补交押金,变更押金方式,团队预结账等一系列操作;l 方便快捷的查询团队的所有用房情况;l 团队接待时可以录入多达4个的可签单人,供团队成员消费签单时查询;5、 灵活的房态导航器l 可以使客房状态盘只显示其中一种房态,快速显示相应信息;l 可以使客房状态盘按照几号楼第几楼层显示相应的客房;l 可以使客房状态盘只显示某个团队的所有客房;l 快速切换回全部客房;6、 信息修改l 可以更改客人的相关信息;7、 信息导出l 可以将客人信息按照一定格式导出为文本文件,便于向当地公安机关传送信息;结帐完善的结帐功能1、 散客结帐l 可以在房态盘中操作,也可以在主菜单中操作,也可以在右键菜单中操作;l 可以单独结帐,也可以多个客房合并结帐;l 多达8种的结帐方式,包含人民币、信用卡、支票、记帐、挂散客、挂团队、未结帐、贵宾卡结帐;l 可以对逃帐的客人进行未结帐结帐,以便空出客房用于接待;l 根据结帐方式不同,押金可以自动退还,也可以抵冲消费;l 可以预先结帐;l 下午结帐时,系统自动加收半价房费,晚上结帐时,系统自动加收全价房费;l 实结金额可以根据系统的设置,在一定范围内调整;l 实结金额根据结算金额自动取整(加),多收的余额作为额外费项目统计;l 可以对帐单中除预交款的所有消费项目分别给予优惠;l 实结金额根据押金情况、消费情况、优惠金额、预结金额自动计算;l 结帐时可以打印对帐单和发票;l 贵宾卡结帐时,自动扣除贵宾卡金额,贵宾卡金额不足时,可以选择余额部分的结帐方式,系统自动分解帐单;l 电话费自动统计,累加到帐单中;2、 团队退房和结帐l 团队可以退全部客房,也可以退部分客房,退房的客房不再累计房费;l 可以在房态盘中操作,也可以在主菜单中操作,也可以在右键菜单中操作;l 多种的结帐方式,包含人民币、信用卡、支票、记帐、未结帐、贵宾卡结帐;l 根据结帐方式不同,押金可以自动退还,也可以抵冲消费;l 可以预先结帐;l 下午结帐时,系统自动加收半价房费,晚上结帐时,系统自动加收全价房费;l 实结金额可以根据系统的设置,在一定范围内调整;l 实结金额根据结算金额自动取整(加),多收的余额作为额外费项目统计;l 可以对帐单中除预交款的所有消费项目分别给予优惠;l 实结金额根据押金情况、消费情况、优惠金额、预结金额自动计算;l 结帐时可以打印对帐单和发票;l 贵宾卡结帐时,自动扣除贵宾卡金额,贵宾卡金额不足时,可以选择余额部分的结帐方式,系统自动分解帐单;l 电话费自动统计,累加到帐单中;3、 寓客收银l 住店客人的其他消费可以挂帐到自己的账户上,离店时统一结算;l 可以对酒店所有的消费项目收费,并可单独优惠;l 散客收银时显示客人姓名等信息,以便查询;l 团队客人签单时,自动显示可签单人,以便查询;4、 非寓客结帐l 对非住店客人的消费进行结帐处理;l 可以对酒店所有的消费项目收费,并可单独优惠;l 多种的结帐方式,包含人民币、信用卡、支票、贵宾卡结帐;5、 预先结帐l 散客和团队可以预先结帐,实际结帐时扣除预结金额;l 多种的结帐方式,包含人民币、信用卡、支票、贵宾卡结帐;l 预先结帐时,可以根据押金方式选择是否退还押金;6、 押金补交和方式变更l 押金不足时,可以补交押金;l 系统分别记录预交的押金和补交的押金;l 客人可以随时变更押金的方式;7、 零客未结帐结帐l 当做了未结帐结帐处理的客人又回到酒店结帐,系统可调出客人的帐单进行结帐;8、 客户结帐l 对在酒店设立特殊帐户的团体和个人进行结帐;l 可以预交款;l 可以全部结帐,也可以部分结帐;l 可以按消费明细逐个对帐结帐;l 可以按消费项目汇总结帐;l 可以按照时间段选择结帐;l 对每个消费项目可以选择结或不结,并单独给予优惠;l 对预交款可以全部扣除,也可以部分扣除;查询1、 查询客人l 按房号、帐号、姓名查询;l 按地区、国别等组合查询;l 查询客人的详细信息,并可以修改;l 历史客人查询;l 历史客人组合查询;l 可以打印当前客人列表,也可以打印客人信息;2、 帐单查询l 可以按照客房号查询散客帐单;l 可以按照团队名称查询团队帐单;l 帐单查询时,自动根据当前时间预算房费;l 同时可以查询押金总额,押金明细;l 可以查询帐单总额,帐单明细;l 自动计算押金余额,押金余额不足时自动提示;l 历史客人的帐单查询;l 可以打印帐单信息;3、 客人留言l 寓客可以留言;l 访客可以留言;l 可以按房号、姓名定位到客人留言;4、 电话号码簿l 可以输入需要经常使用的电话号码,以备查询;l 可以按姓名和电话号码检索;5、 列车、航班时刻表l 可以按列车车次查询;l 可以按区间站查询车次;l 可以按航班号查询;l 可以按中转站查询;6、 世界钟l 显示当前数十个重要城市的时间;夜审规范化的夜审程序1、夜间审核l 核对房金、帐单等所有当日操作的正确性、有效性、和合法性;l 自动房金滚帐;l 核对滚帐是否正确;l 两种计算平衡方式,今日应收是否等于昨日应收加上本日营业减去上交财务,今日应收是否等于零客应收款加上记帐应收款加上总台未结的发票额;察看两种方式的今日应收是否相等;l 系统自动判断外围站点是否全部结帐,否则不能夜审;l 统计楼层出租率;l 统计所有消费项目的营业、优惠、应收;l 夜审前后自动备份,如果夜审发生错误,可以恢复到夜审前的状态;l 打印夜审工作报告;2、 餐厅上交l 餐厅的收入在总台上结算;3、 财务结单l 总台上的收入和财务结算;报表图文并茂的报表功能1、 当前收回表l 统计当前的收回情况,显示收回明细;l 显示当前的未结发票额,餐厅收回额,餐厅上交额,上交财务额,计算是否平衡;l 可以打印;2、 日收明细表l 可查询任何时间的收回明细,消费金额,优惠金额,收回金额;l 可以打印;3、 零客应收款l 用图表方式显示各个消费项目的应收金额和总额;l 可以打印列表,也可以打印图形;4、 非寓客消费报表l 可以统计任何时间段的消费情况;l 可以按照明细显示,也可以按照消费项目显示;l 可以打印;5、 当前半全价报表l 统计当前房价的半价和全价情况,计算当前房价的构成情况;l 可以打印;6、 客房日报表l 统计夜审后的客房的营业,收回、优惠的情况;l 可以查询任何一天的客房营业情况;l 可以打印列表,也可以打印图形;7、 今日营业表l 统计夜审后的酒店所有营业情况;l 统计今日、昨日的营业,收回,优惠,应收的情况;l 统计上个月同期的营业情况;l 显示宾馆当前的营业收支平衡表;l 用柱状图和列表两种方式表达;l 可以单独查询营业、收回、优惠、应收的情况;l 可以打印列表,也可以打印图形;8、 历史营业表l 可以查询任何日期的酒店所有营业情况;l 其他功能同今日营业表;9、 结帐统计表l 按结帐方式统计收回、优惠情况;l 可以查询任何一天的情况;10、 消费项目表l 按消费项目显示消费明细和总额;l 可以查询任何时间段的情况;11、 楼层出租表l 按照柱状图和列表两种方式统计各个楼层的出租率和半全价情况;l 统计客房总数,和出租数;12、 电话统计表l 按客房号统计客人的电话费、附加费、服务费;13、 半全价报表l 统计累计的所有半全价情况;14、 餐厅上交表l 统计所有餐厅上交到总台的情况;15、 财务结单表l 统计所有总台上交到财务的情况;16、 员工开房表l 统计各个接待员和结帐员的工作量;l 统计开房数量、开房金额、开房比例、金额比例,便于核算工作量;17、 客户应收总帐l 统计特殊客户的所有应收款和按消费项目列表显示;l 打印对帐单,便于客户对帐;18、 客户应收明细l 统计特殊客户的所有应收款的消费明细;l 打印对帐单,便于客户对帐;19、 客户结帐明细l 统计特殊客户的结帐的明细;l 打印对帐单,便于客户对帐;系统1、 系统定义l 楼层定义;l 房型定义;l 地区定义;l 国别定义;l 民族定义;l 证件定义;l 签证定义;l 客户分类;l 餐厅定义;l 会场定义;l 信用卡;2、 部门设置3、 员工档案l 可以设置员工的口令;l 可以设置员工的操作权限;4、 客户档案l 可以设置特殊客户;l 按照客户分类归档;5、 客房定义6、 消费项目定义7、 黑名单8、 数据备份l 用户可以使用数据备份功能将数据库备份到本地或网络上的任何一台电脑;9、 数据恢复l 当夜审出错时,可以使用该功能恢复到夜审前的状态;10、 口令设置l 当前操作员可以通过该功能修改自己的密码;11、 重新登录l 不需要退出系统,利用该功能可以快速重新登录;12、 系统设置l 可设置酒店名称、数据库备份路径、房态盘的显示等;餐饮1、 日常营业l 餐厅状态盘显示当前所有餐厅餐台的营业情况;l 用不同的颜色和图标表示餐台的状态;l 双击鼠标左键可以进行开台操作;l 可以开一个餐台,也可以开多个餐台;l 可以方便的进行转台操作;l 可以方便的进行并台操作;l 馅饼图显示当前餐台的使用率;l 餐厅状态盘显示客人的姓名和用餐金额;l 用餐列表用不同的颜色显示当天所有的用餐情况;l 预定列表可以快速开台;l 其他餐费可以对非点菜项目的消费进行结帐处理;l 可以对客人一次使用的多个餐台分别进行点菜操作;l 快速的点菜功能,可以使用代码、拼音码通过键盘快速点菜,也可以通过鼠标左键双击菜单,用右键确认,快速点菜;l 方便的菜单操作,菜单分大类和实际菜谱,定位菜单快速;l 多种结帐方式,人民币、信用卡、支票、挂散客、挂团队、贵宾卡、记帐和宾馆招待;l 结帐时可以按折扣计算,也可以直接录入优惠金额;l 可以录入服务费等其他消费;l 可以对菜单进行退菜、删菜、恢复等操作,用不同颜色显示;2、 查询统计l 可以查询统计任何时间段内的菜的消耗量;l 可以查询统计点菜变动情况,包括删菜、退菜操作;l 可以查询餐厅的营业情况,营业流水帐和营业统计报表;3、 系统设置l 餐厅消费项目定义;l 餐厅餐台定义;l 餐厅菜单定义;l 口令设置;l 重新登录;贵宾卡1、 读卡l 读取贵宾卡的客人信息,资金信息;2、 发卡l 将卡号、写卡金额、客人姓名、身份证号码等信息写入贵宾卡;l 录入写卡人信息,以便日后查询;3、 充值l 对旧卡进行充值操作4、 数据库查询l 可以查询写卡总额,写卡明细;l 可以查询贵宾卡的总额、消费金额、余额的情况;5、 消费查询l 可以查询贵宾卡的消费明细、消费金额,以便对帐使用;电话1、 话费设置l 设有国际电话、国内长途、市内电话、农话等收费等级,可以根据酒店需要自动开关;l 备有国际、国内长话区号、农话区号和标准话价数据库,可以随时增补修改;l 可以设置服务费、附加费,168服务台的收取标准;l 可以设置国际、国内、农话、市话、港澳台的收费标准,可按通话时间长短制定标准;l 晚间和周末电话折扣设置;l 每部电话可以设置不同的收费标准;2、 话费计费l 显示每次通话的呼叫号码,时长,服务费、附加费、和总金额;l 一屏可以显示40条通话记录;l 进行其他操作如查询话单等操作时,不影响计费;3、 话费查询l 可以按分机号查询;l 可以按部门查询;l 可以查询任何时间段的话费明细;
主体:(一) 一、C++概述 (一) 发展历史 1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。 1985年,C++开始在外面慢慢流行。经过多年的发展,C++已经有了多个版本。为次,ANSI和ISO的联合委员会于1989年着手为C++制定标准。1994年2月,该委员会出版了第一份非正式草案,1998年正式推出了C++的国际标准。 (二) C和C++ C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。 例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。 C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。 C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。 标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。 C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。 二、关键字和变量 C++相对与C增加了一些关键字,如下: typename bool dynamic_cast mutable namespace static_cast using catch explicit new virtual operator false private template volatile const protected this wchar_t const_cast public throw friend true reinterpret_cast try bitor xor_e and_eq compl or_eq not_eq bitand 在C++中还增加了bool型变量和wchar_t型变量: 布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。 #include iostream.h int main() { bool flag; flag=true; if(flag) cout<a; /*输入一个数值*/ cout<a; cout<代码: int fun(int x,int) //注意不同点 { return x*2; } (二) 函数的默认参数 C++函数的原型中可以声明一个或多个带有默认值的参数。如果调用函数时,省略了相应的实际参数,那么编译器就会把默认值作为实际参数。可以这样来声明具有默认参数的C++函数原型: #include iostream.h void show(int=1,float=2.3,long=6); int main() { show(); show(2); show(4,5.6); show(8,12.34,50L); return 0; } void show(int first,float second,long third) { cout<a; for(int i=1;i<=10;i++) //C语言中,不允许在这里定义变量 { static int a=0; //C语言中,同一函数块,不允许有同名变量 a+=i; cout<<::a<< <size; int *array=new int[size]; for(int i=0;idt; if(dt>0 && dt<4) { const Date& bd=getdate(dt); cout<立方体对象的数据成员。 如果构造函数没有参数,那么声明对象时也不需要括号。 1.使用默认参数的构造函数 当在声明类对象时,如果没有指定参数,则使用默认参数来初始化对象。 #include iostream.h class Box { private: int height,width,depth; public: Box(int ht=2,int wd=3,int dp=4) { height=ht; width=wd; depth=dp; } ~Box(); int volume() { return height*width*depth; } }; int main() { Box thisbox(3,4,5); //初始化 Box defaulbox; //使用默认参数 cout<tm_mon+1; yr=tim->tm_year; if(yr>=100) yr-=100; } int main() { time_t now=time(0); Date dt(now); dt.display(); return 0; } 本程序先调用time()函数来获取当前时间,并把它赋给time_t对象;然后程序通过调用Date类的转换构造函数来创建一个Date对象,该对象由time_t对象转换而来。time_t对象先传递给localtime()函数,然后返回一个指向tm结构(time.h文件中声明)的指针,然后构造函数把结构中的日月年的数值拷贝给Date对象的数据成员,这就完成了从time_t对象到Date对象的转换。 二、成员转换函数 成员转换函数把该类的对象转换为其他数据类型的对象。在成员转换函数的声明中要用到关键字operator。这样声明一个成员转换函数: operator aaa(); 在这个例子中,aaa就是要转换成的数据类型的说明符。这里的类型说明符可以是任何合法的C++类型,包括其他的类。如下来定义成员转换函数; Classname::operator aaa() 类名标识符是声明了该函数的类的类型说明符。上面定义的Date类并不能把该类的对象转换回time_t型变量,但可以把它转换成一个长整型值,计算从2000年1月1日到现在的天数。 #include iostream.h class Date { int mo,da,yr; public: Date(int m,int d,int y) {mo=m; da=d; yr=y;} operator int(); //声明 }; Date::operator int() //定义 { static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31}; int days=yr-2000; days*=365; days+=(yr-2000)/4; for(int i=0;i代码中明确给出的显式转换。C++强制类型转换是一种,还有一种是显式调用转换构造函数和成员转换函数。下面的程序给出了三中转换形式: #include iostream.h class CustomDate { public: int da, yr; CustomDate(int d=0,int y=0) {da=d; yr=y;} void display() { cout<代码,仅需要重新编译程序即可。 2.常量成员函数 注意上面的程序中getyear()被声明为常量型,这样可以保证该成员函数不会修改调用他的对象。通过加上const修饰符,可以使访问对象数据的成员函数仅仅完成不会引起数据变动的那些操作。 如果程序声明某个Date对象为常量的话,那么该对象不得调用任何非常量型成员函数,不论这些函数是否真的试图修改对象的数据。只有把那些不会引起数据改变的函数都声明为常量型,才可以让常量对象来调用。 3.改进的成员转换函数 下面的程序改进了从Date对象到CustomDate对象的成员转换函数,用取值和赋值函数取代了使用公有数据成员的做法。(以前的程序代码在上一帖中) #include iostream.h class CustomDate { int da,yr; public: CustomDate() {} CustomDate(int d,int y) { da=d; yr=y; } void display() const {cout< name; if (strncmp(name, end, 3) == 0) break; ListEntry* list = new ListEntry(name); if (prev != 0) prev->AddEntry(*list); prev = list; } while (prev != 0) { prev->display(); ListEntry* hold = prev; prev = prev->PrevEntry(); delete hold; } return 0; } 程序运行时,会提示输入一串姓名,当输入完毕后,键入end,然后程序会逆序显示刚才输入的所有姓名。 程序中ListEntry类含有一个字符串和一个指向前一个表项的指针。构造函数从对中获取内存分配给字符串,并把字符串的内容拷贝到内存,然后置链接指针为NULL。析构函数将释放字符串所占用的内存。 成员函数PrevEntry()返回指向链表前一个表项的指针。另一个成员函数显示当前的表项内容。 成员函数AddEntry(),它把this指针拷贝给参数的preventry指针,即把当前表项的地址赋值给下一个表项的链接指针,从而构造了一个链表。它并没有改变调用它的listEntry对象的内容,只是把该对象的地址赋给函数的参数所引用的那个ListEntry对象的preventry指针,尽管该函数不会修改对象的数据,但它并不是常量型。这是因为,它拷贝对象的地址this指针的内容给一个非长常量对象,而编译器回认为这个非常量对象就有可能通过拷贝得到的地址去修改当前对象的数据,因此AddEntry()函数在声明时不需要用const。 主体:(六)类对象数组和静态成员 一、类对象数组 类的对象和C++其他数据类型一样,也可以为其建立数组,数组的表示方法和结构一样。 #include iostream.h class Date { int mo,da,yr; public: Date(int m=0,int d=0, int y=0) { mo=m; da=d; yr=y;} void display() const { cout<代码(不论是在类的内部还是外部)都可以访问这个成员。下面的程序通过静态数据成员来记录链表首项和末项的地址。 #include iostream.h #include string.h class ListEntry { public: static ListEntry* firstentry; private: static ListEntry* lastentry; char* listvalue; ListEntry* nextentry; public: ListEntry(char*); ~ListEntry() { delete [] listvalue;} ListEntry* NextEntry() const { return nextentry; }; void display() const { cout<name

12,694

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧