




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上南 京 理 工 大 学课程设计说明书作 者:学 号:作 者:学 号:学院(系):专 业:题 目:酒店管理系统 2010年 10月 专心-专注-专业目录 一、 概述 ··································&
2、#183;···1 二、需求分析···································3 三、系统设计········
3、83;··························7 四、系统实施······················&
4、#183;············16 五、系统测试···································42 六
5、、收获和体会 ································51 七、附录···············
6、3;·······················51 八、参考文献·························&
7、#183;·········51一、概述1、项目背景: 酒店兴衰,关键是管理。建设一间现代化的酒店,需要的是钱,而要经营管理好一间酒店,关键是管理。酒店管理是现代酒店的命脉,管理水平的高低,决定着酒店经营的成败。酒店是企业,同样是要重视管理的工作,加强管理。现代管理者即是财富,当代的管理者更是直接的财富。管理的意义,简单地讲,管就是主事,理就是治事,合起来为主管和治理人与事。
8、随着中国加入WTO和经济全球化格局的形成,越来越多的人感到21世纪国际酒店的竞争激烈,从设备豪华到价格竞争发展到人才全方位的竞争。要竞争就必须创新。创新,是酒店的生命。商场如战场,成功的管理者及其管理需要刚柔结合。 一个酒店,无论是土地,还是设备,还是流动资金,他们的实质都是静态资产。人们认为财务管理首要的是讲“管好钱”。其实钱是属于静态资产,钱是不会跑的,它又没有长脚。如果说钱会跑,是因为有人去动他,所以不是钱的问题,仍然是管理的问题。钱是不能主动创造价值的,即使是被投资于很好的项目,也是管理做的决定,也是由人在那里管理。所以,唯有管理的行为才能创造价值。 现在的酒店管理进入e 时代,未来酒
9、店业的竞争必将进入一个新的阶段,伴随着我国旅游业的高速发展,宾馆酒店行业的服务档次迫切需要提高。在宾馆酒店竞争日趋激烈的今天,要成为佼佼者,就必须与高新技术紧密结合。硬件设施落后、管理水平滞后、服务质量低下的酒店将被逐步淘汰,传统的纯手工或简单的计算工具,已经不适应现代经济高速发展的要求,必须运用现代化管理手段,配备完善的自动化设备,提高酒店的服务水平与质量,从而赢得高信誉、强实力、好效益!本系统目地是为了一些酒店还没有使用管理软件,仍靠手工处理业务。2、编写目的:为酒店提供一种方便快捷的服务管理软件3、软件定义:酒店管理系统4、开发环境:Windows 2000/XP二、需求分析1、问题的提
10、出:如何能让酒店客户服务更快捷有效、让各方面信息一目了然呢需要哪些方面的功能才能使管理员只要轻轻敲打计算机就可以轻松完事?2、系统的业务功能分析: 老板界面:管理员信息、员工管 理、财政管理,酒店菜单含客房资料、用户资料、用户登记入住、 结账等项目,顾客可进行自己信息查询和进行员工评价。选择员工管理老板登陆管理员登陆财政管理酒店管理系统酒店管理员工登陆选择 客房资料顾客资料顾客登记顾客消费顾客结账历史记录自助查询评价员工顾客登陆3、 系统的业务流程分析: 输入管理员姓名、密码,判断是普通员工还是老板,老板则进入老板界面, 可进行员工管理、管理员管理和财政管理,如果是普通员工则登录主界面,根 据
11、需要点击客房资料、用户资料、用户登记、结账等选项,进入选项,进行更 选择 新或查询。输入顾客的订单号和密码可进行顾客信息的查询和员工评价。 员工管理老板登陆管理员登陆财政管理开始酒店管理员工登陆选择 客房资料顾客资料顾客登记顾客消费顾客结账历史记录自助查询评价员工顾客登陆4、需完成的功能:系统的总体是为服务人员提供一个方便快捷的管理工具,使得用户能够快速准确完成顾客入住、结账等烦杂工作。具体有以下基本功能:用户登记:完成顾客的入住登记操作,主要是记录顾客信息、分配房间和其他信息。账务结算:结算账务、整理客房资料客房资料:日常信息维护,主要是修改房间状态、删除房间等。顾客信息:存档顾客信息员工信
12、息:存档员工信息,以便对员工考勤 工资 等进行管理用户评价:用户对工作人员的评价,记入员工信息表中5、数据流图:收款客房信息修改付款金额退房结账顾客信息酒店客房管理信息房间信息入住登录酒店管理系统顾客酒店酒店管理系统顾客酒店5、数据字典1)数据流定义表编号数据流名内部名组成L01客房信息E01、E12E20L02顾客资料E01E11L03顾客登记L01、L02L04顾客消费E01、E02、E06、E21E26L05管理员信息E27E29L06员工信息E27、E30E36L07财务结算E37E472)数据元素定义编号数据元素名数据类型类长备注E01订单号Int4不允许空E02顾客姓名Char10
13、E03证件类型E04证件号E05住址E06房间号E07入住时间E08预付金额E09退房日期E10是否在住E11密码E12房间类型E13价格E14是否可住E15床数E16有无空调E17有无电话E18有无电视E19有无卫生间E20有无网线E21住宿费E22服务费用E23餐饮费用E24总消费E25总缴费E26余额E27管理员姓名名E28管理密码E29权限IntE30编号char10不允许空E31性别E32部门E33职务E34评价E35基本工资E36工资E37财政编号不允许空E38净收入E39总收入E40总支出E41餐饮部收入E42住宿部收入E43娱乐部收入E44服务部收入E45工资支出E46维护支出
14、E47购货支出 三、系统设计1、数据表:(1) E-R图客房管理财政信息管理编号管理房间号员工 管理员 付款查询结算评价顾客订单号顾客消费账务结算编号性别基本工资部门员工信息工资评价姓名职务权限用户名编码管理员信息部门密码是否可用房间类型价格房间号有无电视有无空调客房信息有无卫生间有无电话有无网线床数总收入净收入财政编号娱乐部收入餐饮部收入工资支出住宿部收入财政结算维护支出服务部收入购货支出总支出房间号是否在住证件号订单号预付金额顾客姓名客户信息证件类型退房日期入住时间评价密码住址餐饮用费服务用费订单号总缴费用户消费住宿费总消费余额(2) 、数据库的关系模式:管理员(编码,用户名,密码,权限,
15、部门);客房信息(房间号,房间类型,价格,是否可用,床数,有无空调,有无电话,有无电视,有无卫生间,有无网线);客户信息(订单号,姓名,证件类型,证件号,住址,房间号,入住时间,预付金额,退房日期,是否在住,密码,评价);用户消费(订单号,房间号,顾客姓名,住宿费,服务费用,餐饮费用,总消费,总缴费,余额);员工信息(编号,姓名,性别,部门,职务,评价,基本工资,工资);财政结算(财政编号,总收入,净收入,总支出,餐饮部收入,娱乐部收入,住宿部收入,服务部收入,工资支出,维护支出,购货支出);(3) 、表的物理设计:2、数据库权限,触发器:数据库权限 : 触发器: 选择3、软件功能设计(1)、
16、系统的结构图员工管理老板登陆管理员登陆财政管理开始酒店管理员工登陆选择 客房资料顾客资料顾客登记顾客消费顾客结账历史记录自助查询评价员工顾客登陆(2)、功能表:系统模块实现功能功能描述 登陆登陆管理员页面输入管理员姓名、密码 ,登录管理员页面,进行管理登陆顾客界面输入顾客的订单号和密码,进入顾客界面管理员信息管理管理、查看管理员信息对管理员性查询,修改员工信息管理员工信息对员工信息查询,添加,删除,修改财政结算管理财政信息查询,修改财政信息客房资料管理、查看客房资料对客房各种属性查询,添加,删除,修改客房资料,跳转客户登记页面顾客资料管理顾客信息对顾客信息进行添加,删除,修改,查询等功能顾客登
17、记顾客登记登记新顾客的信息用户消费顾客消费管理对顾客消费进行更新管理、结算管理历史记录查询以往历史对以往顾客住房历史进行查询顾客结账顾客结账对顾客消费、缴费运算,并显示余额,以便对客户收退款顾客查询用户信息查询可对用户信息进行查询,还可以修改密码顾客评价评价员工服务态度顾客可以通过自己的一票表扬或批评一名员工四、系统实施登陆界面:登陆界面分为管理员登陆和顾客登陆。管理员用用户名和密码登陆,权限为1的是老板,登陆进去后是管理员信息,权限为2的是管理员,登陆进去后是酒店菜单,进行酒店日常工作。顾客用订单号和密码登陆,可以进行顾客本人的信息查询。代码:procedure TForm14.BitBtn
18、1Click(Sender: TObject);var num,user,pass:string;begin user:=edit1.Text; pass:=edit2.Text;if radiobutton1.checked=true then begin adoquery1.close; adoquery1.SQL.clear; adoquery1.SQL.Text:='select 权限 from 管理员信息 where 用户名='''+user+''' and 密码='''+pass+''&
19、#39;' adoquery1.Open; num:=adoquery1.fieldbyname('权限').AsString; if num='' then showmessage('用户名或密码错误!'); if num='1' then form6.show; if num='2' then Form15.show; endelsebeginadoquery1.close; adoquery1.SQL.clear; adoquery1.SQL.Text:='select * from 客户信息
20、 where 订单号='''+user+''' and 密码='''+pass+'''' adoquery1.Open; long:=adoquery1.fieldbyname('订单号').AsString; num:=adoquery1.fieldbyname('密码').AsString; if num='' then begin showmessage('用户名或密码错误!'); end else begin form8
21、.show; end end; edit1.clear; edit2.clear; close; end;procedure TForm14.BitBtn2Click(Sender: TObject);beginedit1.clear;edit2.clear;close;end;管理员信息:管理员界面,老板可以进行查询,修改管理员信息,也可以查看员工信息和财政结算,然后可以到酒店菜单,进行酒店日常服务。管理员可以进行查询,修改管理员信息,然后可以到酒店菜单,进行酒店日常服务。老板代码:procedure TForm6.Button1Click(Sender: TObject);var name
22、,secert,power,num:string;beginname:=edit1.Text;secert:=edit2.Text;power:=edit3.Text;num:=edit4.Text;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 管理员信息 where 用户名='''+name+''' or 密码='''+secert+''' or 权限='''+power
23、+''' or 编码='''+num+''''adoquery1.Open;edit1.text:=adoquery1.fieldbyname('用户名').AsString;edit2.text:=adoquery1.fieldbyname('密码').AsString;edit3.text:=adoquery1.fieldbyname('权限').AsString;edit4.text:=adoquery1.fieldbyname('编码').As
24、String;end;procedure TForm6.Button2Click(Sender: TObject);var name,secert,num:string;beginname:=edit1.Text;secert:=edit2.Text;num:=edit3.Text;mandText:='UPDATE 管理员信息 SET 密码='''+secert+''',权限='''+num+''' where 用户名='''+name+'''
25、; 'adocommand1.execute;showmessage('修改成功');edit1.text:=adoquery1.fieldbyname('用户名').AsString;edit2.text:=adoquery1.fieldbyname('密码').AsString;edit3.text:=adoquery1.fieldbyname('权限').AsString;edit4.text:=adoquery1.fieldbyname('编码').AsString;end;procedure TF
26、orm6.Button5Click(Sender: TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 管理员信息'adoquery1.Open;end;管理员代码:procedure TForm15.Button1Click(Sender: TObject);var name,secert,power,num:string;beginname:=edit1.Text;secert:=edit2.Text;power:=edit3.Text;num:=edit4
27、.Text;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 管理员信息 where 用户名='''+name+''' or 密码='''+secert+''' or 权限='''+power+''' or 编码='''+num+''''adoquery1.Open;edit1.text:=adoq
28、uery1.fieldbyname('用户名').AsString;edit2.text:=adoquery1.fieldbyname('密码').AsString;edit3.text:=adoquery1.fieldbyname('权限').AsString;edit4.text:=adoquery1.fieldbyname('编码').AsString;end;procedure TForm15.Button2Click(Sender: TObject);var secert:string;beginsecert:=edit
29、2.Text;mandText:='UPDATE 管理员信息 SET 密码='''+secert+''' where 用户名='''+name+''' 'adocommand1.execute;showmessage('修改成功');edit1.text:=adoquery1.fieldbyname('用户名').AsString;edit2.text:=adoquery1.fieldbyname('密码').AsString;edit
30、3.text:=adoquery1.fieldbyname('权限').AsString;edit4.text:=adoquery1.fieldbyname('编码').AsString;end;procedure TForm15.Button5Click(Sender: TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 管理员信息'adoquery1.Open;end;员工信息:这里可以查询,修改,删除酒店员工的各种信息。代码
31、:procedure TForm11.Button1Click(Sender: TObject);var num,user:string;beginuser:=edit1.text;num:=edit2.text;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 员工信息 where 编号='''+user+'''or 姓名='''+num+''''adoquery1.Open;edit3.T
32、ext:=adoquery1.fieldbyname('编号').AsString;edit4.Text:=adoquery1.fieldbyname('姓名').AsString;edit5.Text:=adoquery1.fieldbyname('性别').AsString;edit6.Text:=adoquery1.fieldbyname('职务').AsString;edit7.Text:=adoquery1.fieldbyname('部门').AsString;edit8.Text:=adoquery1.
33、fieldbyname('工资').AsString;edit9.Text:=adoquery1.fieldbyname('基本工资').AsString;edit10.Text:=adoquery1.fieldbyname('评价').AsString;end;procedure TForm11.Button2Click(Sender: TObject);beginform7.show;close;end;procedure TForm11.Button3Click(Sender: TObject);beginadoquery1.Close;a
34、doquery1.SQL.Clear;adoquery1.SQL.text:='select * from 员工信息 'adoquery1.Open;end;procedure TForm11.Button4Click(Sender: TObject);var d1,d2,d3,d4,d5,d6,d7,d8:string;begind1:=edit3.text;d2:=edit4.text;d3:=edit5.text;d4:=edit6.text;d5:=edit7.text;d6:=edit8.text;d7:=edit9.text;d8:=edit10.text;mand
35、Text:='insert into 员工信息(编号,姓名,性别,职务,部门,工资,基本工资,评价) values('''+d1+''','''+d2+''','''+d3+''','''+d4+''','''+d5+''','''+d6+''','''+d7+''
36、;','''+d8+''')'adocommand1.execute;showmessage('保存完毕');d1:=''d2:=''d3:=''d4:=''d5:=''d6:=''d7:=''d8:=''end;procedure TForm11.Button6Click(Sender: TObject);var d1,d2,d3,d4,d5,d6,d7,d8:string;begind
37、1:=edit3.text;d2:=edit4.text;d3:=edit5.text;d4:=edit6.text;d5:=edit7.text;d6:=edit8.text;d7:=edit9.text;d8:=edit10.text;mandText:='UPDATE 员工信息 SET 编号='''+d1+''',姓名='''+d2+''',性别='''+d3+''',职务='''+d4+''
38、9;,部门='''+d5+''',工资='''+d6+''',基本工资='''+d7+''',评价='''+d8+''' where 编号='''+d1+''''adocommand1.execute;showmessage('保存完毕');d1:=''d2:=''d3:=''d4:=&
39、#39;'d5:=''d6:=''d7:=''d8:=''end;procedure TForm11.Button5Click(Sender: TObject);var num:string;beginnum:=edit3.Text;mandText:='delete from 员工信息 where 编号='''+num+'''' ;adocommand1.execute;showmessage('删除成功');end;财政结算:这里可以查询,
40、修改,删除各个月份的酒店财政状况。代码:procedure TForm12.Button1Click(Sender: TObject);var user:string;beginuser:=edit1.text;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 财务结算 where 财政编号='''+user+''''adoquery1.Open;edit2.Text:=adoquery1.fieldbyname('财政编号'
41、;).AsString;edit3.Text:=adoquery1.fieldbyname('净收入').AsString;edit4.Text:=adoquery1.fieldbyname('总收入').AsString;edit5.Text:=adoquery1.fieldbyname('总支出').AsString;edit6.Text:=adoquery1.fieldbyname('餐饮部收入').AsString;edit7.Text:=adoquery1.fieldbyname('住宿部收入').AsS
42、tring;edit8.Text:=adoquery1.fieldbyname('服务部收入').AsString;edit9.Text:=adoquery1.fieldbyname('娱乐部收入').AsString;edit10.Text:=adoquery1.fieldbyname('工资支出').AsString;edit11.Text:=adoquery1.fieldbyname('维护支出').AsString;edit12.Text:=adoquery1.fieldbyname('购货支出').AsS
43、tring;end;procedure TForm12.Button2Click(Sender: TObject);beginform7.show;close;end;procedure TForm12.Button3Click(Sender: TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 财务结算 'adoquery1.Open;end;procedure TForm12.Button4Click(Sender: TObject);var d1,d2,d
44、3,d4,d5,d6,d7,d8,d9,d10,d11:string;begind1:=edit2.text;d2:=edit3.text;d3:=edit4.text;d4:=edit5.text;d5:=edit6.text;d6:=edit7.text;d7:=edit8.text;d8:=edit9.text;d9:=edit10.text;d10:=edit11.text;d11:=edit12.text;mandText:='insert into 财务结算(财政编号,净收入,总收入,总支出,餐饮部收入,住宿部收入,服务部收入,娱乐部收入,工资支出,维护支出,购货支出) v
45、alues('''+d1+''','''+d2+''','''+d3+''','''+d4+''','''+d5+''','''+d6+''','''+d7+''','''+d8+''','''
46、;+d9+''','''+d10+''','''+d11+''')'adocommand1.execute;showmessage('添加成功');d1:=''d2:=''d3:=''d4:=''d5:=''d6:=''d7:=''d8:=''d9:=''d10:=''d11:='
47、9;end;procedure TForm12.Button5Click(Sender: TObject);var num:string;beginnum:=edit3.Text;mandText:='delete from 财务结算 where 财政编号='''+num+'''' ;adocommand1.execute;showmessage('删除成功');end;procedure TForm12.Button6Click(Sender: TObject);var d1,d2,d3,d4,d5,d6,d7,
48、d8,d9,d10,d11:string;begind1:=edit2.text;d2:=edit3.text;d3:=edit4.text;d4:=edit5.text;d5:=edit6.text;d6:=edit7.text;d7:=edit8.text;d8:=edit9.text;d9:=edit10.text;d10:=edit11.text;d11:=edit12.text;mandText:='UPDATE 财政结算 SET 财政编号='''+d1+''',净收入='''+d2+''
49、',总收入='''+d3+''',总支出='''+d4+''',餐饮部收入='''+d5+''',住宿部收入='''+d6+''',服务部收入='''+d7+''',娱乐部收入='''+d8+''',工资支出='''+d8+''',维护支出='
50、39;'+d8+''',购货支出='''+d8+''' where 财政编号='''+d1+''''adocommand1.execute;showmessage('修改成功');d1:=''d2:=''d3:=''d4:=''d5:=''d6:=''d7:=''d8:=''d9:=''d10:=
51、9;'d11:=''end;酒店菜单:酒店菜单分为六个选项:客房资料,顾客资料,顾客登记,顾客消费,历史记录,顾客结账,主要进行酒店运营。客房信息:客房信息模块可进行客房的查询,添加,修改,删除。代码:procedure TForm4.Button1Click(Sender: TObject);var useful,fj1,fj2,fj3,dan,shu,si:string;beginif checkbox1.checked=true thenbeginuseful:='是'endelsebeginuseful:='否'end;if ch
52、eckbox2.checked=true thenbeginfj1:='普通间'endelsebeginfj1:=''end;if checkbox3.checked=true thenbeginfj2:='中等间'endelsebeginfj2:=''end;if checkbox4.checked=true thenbeginfj3:='贵宾间'endelsebeginfj3:=''end;if checkbox5.checked=true thenbegindan:='单人间'
53、endelsebegindan:=''end;if checkbox6.checked=true thenbeginshu:='双人间'endelsebeginshu:=''end;if checkbox7.checked=true thenbeginsi:='四人间'endelsebeginsi:=''end;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 客房信息 where 是否可用=''
54、39;+useful+''' and ( 房间类型='''+fj1+''' or 房间类型='''+fj2+''' or 房间类型='''+fj3+''') and (床数='''+dan+''' or 床数='''+shu+''' or 床数='''+si+''')'adoqu
55、ery1.Open;end;顾客信息:顾客信息可以查询,修改,添加,删除,现有在住人员信息。代码:procedure TForm3.Button1Click(Sender: TObject);var num,user:string;beginuser:=edit1.text;num:=edit2.text;adoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 客户信息 where 证件号='''+user+'''or 顾客姓名=''
56、39;+num+''''adoquery1.Open;edit3.Text:=adoquery1.fieldbyname('订单号号').AsString;edit4.Text:=adoquery1.fieldbyname('顾客姓名').AsString;edit5.Text:=adoquery1.fieldbyname('证件类型').AsString;edit6.Text:=adoquery1.fieldbyname('证件号').AsString;edit7.Text:=adoquery1.
57、fieldbyname('住址').AsString;edit8.Text:=adoquery1.fieldbyname('房间号').AsString;edit9.Text:=adoquery1.fieldbyname('入住时间').AsString;edit10.Text:=adoquery1.fieldbyname('预付金额').AsString;edit11.Text:=adoquery1.fieldbyname('退房日期').AsString;edit12.Text:=adoquery1.field
58、byname('密码').AsString;end;procedure TForm3.Button2Click(Sender: TObject);beginform7.show;close;end;procedure TForm3.Button3Click(Sender: TObject);beginadoquery1.Close;adoquery1.SQL.Clear;adoquery1.SQL.text:='select * from 客户信息 'adoquery1.Open;end;procedure TForm3.Button4Click(Sender: TObject);var d1,d2,d3,d4,d5,d6,d7,d8,d9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级上册数学教学工作计划范文
- 数学四年级下册复习教2
- 2025至2030年PE仿木板条项目可行性研究报告
- 企业人力资源管理的法律风险
- 二零二四年5月份半包合同书地砖对缝工艺要求
- 交通枢纽安全监控综合解决方案
- 产品创新与环保材料的选择与运用
- 银行从业资格考试大纲与试题及答案要点
- 互联网时代的品牌形象塑造
- 人教版语文七年级下册第20课《古代诗歌五首》练习(新课标单元整体教学设计+课时教学设计)
- 中国人工智能系列白皮书 - 大模型技术(2023 版)
- 精神科症状学理论知识考核试题
- 河湖水系连通演变过程
- 财务审计投标方案(完整技术标)
- 图 纸 会 审 签 到 表
- 城镇燃气专业知识培训课件
- 腹内压的测定与腹内高压的处理
- 消毒产品生产企业卫生管理规范
- 妇科PDCA循环在降低广泛全宫切除术后尿潴留的发生率的应用
- 代持股票协议书
- 2023年清华大学考博英语真题及答案详解
评论
0/150
提交评论