收藏 分享(赏)

信息系统开发平台课程设计.pdf

上传人:精品资料 文档编号:10954857 上传时间:2020-01-27 格式:PDF 页数:46 大小:1.01MB
下载 相关 举报
信息系统开发平台课程设计.pdf_第1页
第1页 / 共46页
信息系统开发平台课程设计.pdf_第2页
第2页 / 共46页
信息系统开发平台课程设计.pdf_第3页
第3页 / 共46页
信息系统开发平台课程设计.pdf_第4页
第4页 / 共46页
信息系统开发平台课程设计.pdf_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、经济管理学院实验报告姓 名 : 诸 男 班 级 : 11信 管 (1)班 学 号 : 2011333540114 实 验 成 绩 :课 程 名 称 : 信 息 系 统 开 发 平 台 课 程 设 计 指 导 教 师 :祝锡永实 验 名 称 : 信 息 系 统 开 发 平 台 课 程 设 计 2013年 1 月 24 日实 验 目 的 :1) 掌 握 基 于 win32和 C/S 结 构 的 信 息 系 统 基 本 构 成 及 其 架 构 的 知 识 , 与 软 件 设 计 和 软 件 实 现 相 关的 知 识 ; 同 时 具 备 自 主 学 习 和 掌 握 其 它 基 于 Win32和 c/s

2、结 构 的 信 息 系 统 开 发 工 具 的 能 力 。2) 掌 握 数 据 库 管 理 系 统 与 信 息 系 统 开 发 平 台 之 间 的 集 成 方 法 ; 具 备 综 合 运 用 数 据 库 应 用 和 信 息 系统 开 发 平 台 对 已 有 信 息 系 统 进 行 剖 析 的 能 力 ; 将 数 据 库 应 用 与 信 息 系 统 开 发 平 台 结 合 , 能 独 立 完 成 开 发管 理 信 息 系 统 。实 验 环 境 :;软件开发平台Delphi2010+数据库管理系统SQLServer2008等实 验 内 容 与 步 骤 :一 、 软 件 主 要 功 能 介 绍本 系

3、 统 全 名 叫 Z酒 店 信 息 管 理 系 统 , 主 要 是 提 供 给 酒 店 前 台 人 员 使 用 的 。 进 入 系 统 后主 界 面 的 显 示 主 要 是 四 部 分 , 其 中 业 务 中 心 包 括 : 前 台 中 心 , 客 务 中 心 , 预 订 管 理 ; 报 表中 心 包 括 房 费 日 报 表 ; 系 统 设 置 包 括 账 号 设 置 ; 个 人 中 心 包 括 修 改 密 码 。 其 中 业 务 中 心 是最 重 要 的 部 分 。 下 面 是 关 于 各 项 目 内 容 的 简 介 。1) 前 台 中 心功 能 较 多 , 主 要 有 4块 , 已 入 住

4、 包 括 查 看 和 退 房 、 已 预 定 包 括 查 看 和 更 改 、 未 入 住 包括 查 看 和 入 住 、 脏 房 包 括 查 看 和 更 改 。2) 客 务 中 心主 要 是 查 询 客 户 信 息3) 预 订 管 理主 要 是 进 行 预 订 和 查 询4) 报 表 中 心主 要 是 对 金 额 的 分 析 和 查 询5) 系 统 设 置主 要 是 员 工 信 息 的 查 看 和 增 删 改 。6) 个 人 中 心主 要 是 当 前 操 作 者 的 密 码 修 改 。二 、 数 据 库 设 计1. 建 立 数 据 库 的 SQL代 码数 据 库 名 称 : myhotel, 主

5、 要 包 含 9个 表 , 各 个 表 结 构 如 下 :1 建 房 间 表ifOBJECT_ID(rooms)isnotnulldroptableroomsgocreatetablerooms(roomidnvarchar(5)notnullprimarykeyclusteredcheck(roomidlikeA-Z0-90-90-9),categoryidnchar(1)notnull,floorsnchar(1)constraintck_rooms_floorscheck(floors0),isemptynchar(1)constraintdf_rooms_isemptydefault(

6、1),isusingnchar(1)constraintdf_rooms_isusingdefault(0),isdirtynchar(1)constraintdf_rooms_isdirtydefault(0)goinsertintoroomsvalues(A101,1,1,1,0,0)insertintoroomsvalues(A102,2,1,1,0,0)insertintoroomsvalues(B201,2,2,1,0,0)insertintoroomsvalues(B202,3,2,1,0,0)insertintoroomsvalues(C301,3,3,1,0,0)inserti

7、ntoroomsvalues(C302,4,3,1,0,0)go建 房 间 种 类 表ifOBJECT_ID(roomcategories)isnotnulldroptableroomcategoriesgocreatetableroomcategories(categoryidnchar(1)notnullprimarykey,categorynamenvarchar(20),unitpricemoneycheck(unitprice0)goinsertintoroomcategoriesvalues(1,标准单人间,100)insertintoroomcategoriesvalues(2,

8、标准双人间,150)insertintoroomcategoriesvalues(3,豪华单人间,150)insertintoroomcategoriesvalues(4,豪华双人间,200)go建 员 工 表ifOBJECT_ID(hotelemployees)isnotnulldroptablehotelemployeesgocreatetablehotelemployees(employeeidnvarchar(10)notnullprimarykeycheck(employeeidlikeFM0-90-90-9),employeenamenvarchar(20),sexnchar(1)

9、check(sexin(F,M),countrynvarchar(100),provincenvarchar(100),citynvarchar(100),addressnvarchar(100)goinsertintohotelemployeesvalues(F001,小 丹 ,F,中 国 ,浙 江 ,杭 州 ,西 湖 路 号 )insertintohotelemployeesvalues(F002,小 丽 ,F,中 国 ,浙 江 ,杭 州 ,西 湖 路 号 )insertintohotelemployeesvalues(F003,小 黄 ,F,中 国 ,江 苏 ,南 京 ,南 京 路 号

10、)insertintohotelemployeesvalues(M001,小 陈 ,M,中 国 ,上 海 ,宝 山 ,宝 山 路 号 )insertintohotelemployeesvalues(M002,小 吴 ,M,中 国 ,浙 江 ,杭 州 ,西 湖 路 号 )go建 客 户 表ifOBJECT_ID(hotelcustomers)isnotnulldroptablehotelcustomersgocreatetablehotelcustomers(customeridnchar(10)notnullprimarykey,customernamenvarchar(100),sexnch

11、ar(1)check(sexin(F,M),birthdatedatetime,countrynvarchar(100),provincenvarchar(100),citynvarchar(100),addressnvarchar(100),isvipnchar(1)constraintdf_hotelcustomers_isvipdefault(0)go建 订 单 表ifOBJECT_ID(hotelorders)isnotnulldroptablehotelordersgocreatetablehotelorders(orderidnchar(10)primarykey,orderdat

12、edatetime,customeridnchar(10),employeeidnvarchar(10)constraintfk_hotelorders_employeeidreferenceshotelemployees(employeeid)go建 订 单 详 细 表ifOBJECT_ID(hotelorderitems)isnotnulldroptablehotelorderitemsgocreatetablehotelorderitems(orderidnchar(10)primarykeyconstraintfk_hotelorderitems_orderidreferencesho

13、telorders(orderid),roomidnvarchar(5)constraintfk_hotelorderitems_roomidreferencesrooms(roomid),timeintcheck(time0),unitpricemoney,discountdecimalconstraintdf_hotelorderitems_discountdefault(0.12),amountascast(time*unitprice*(1-discount)asdecimal(12,2)go建 历 史 表ifobject_id(history)isnotnulldroptablehi

14、storygocreatetablehistory(customeridnchar(10)notnullprimarykey,customernamenvarchar(100),sexnchar(1)check(sexin(F,M),indatedatetime,offdatedatetime,countrynvarchar(100),provincenvarchar(100),citynvarchar(100),addressnvarchar(100),isvipnchar(1)constraintdf_history_isvipdefault(0)go建 定 金 表ifobject_id(

15、earnest)isnotnulldroptableearnestgocreatetableearnest(customeridnchar(10)notnullprimarykey,customernamenvarchar(100),roomidnvarchar(5)constraintfk_earnest_roomidreferencesrooms(roomid),emoneymoney)go建 预 订 表ifOBJECT_ID(reserve)isnotnulldroptablereservegocreatetablereserve(roomidnvarchar(5)constraintf

16、k_reserve_roomidreferencesrooms(roomid),customeridnchar(10),customernamenvarchar(100),intimedatetime,timeint)go三 、 程 序 功 能 、 实 现 界 面 及 其 代 码1. 数 据 模 块1) 功 能 介 绍 及 设 计 说 明 :数 据 连 接 和 全 局 变 量2) 程 序 运 行 界 面3) 程 序 代 码varDataModule2:TDataModule2;flag,f,f1,f2:integer;dl,roomid11,roomid1,r,r1,r2,r3,r4:stri

17、ng;r91:string;close3:integer;r10,r101:string;yd:integer;注 : 在 后 面 的 表 单 中 , 若 用 到 数 据 模 块 , 则 必 须 在 uses 中 添 加 数 据 模 块 的 文 件 名( unit2) 。2. 主 菜 单 程 序( 1) 、 主 页其 中 上 面 的 工 具 栏 依 次 为 主 页 、 前 台 中 心 、 客 务 中 心 、 预 订 管 理 、 锁 屏 离 开 , 为 快 捷键 , 方 便 操 作 员 操 作 。 点 击 前 四 个 为 直 接 跳 到 相 应 界 面 , 程 序 为 :/主 页 按 钮proc

18、edureTForm1.ToolButton1Click(Sender:TObject);vari,j:integer;s:string;begin/showmessage(inttostr(panel2.ControlCount);if(panel2.ControlCount1)thenbegin/释放原有窗体forj:=0topanel2.controlcount-2dobeginfori:=1topanel2.ControlCountdobegins:=lowercase(panel2.Controlsi.ClassName);/showmessage(s);/showmessage(i

19、nttostr(i);if(copy(s,1,5)=tform)thenbeginpanel2.Controlsi.Free;break;end;end;end;end;end;/其 余 三 个 按 钮procedureTForm1.ToolButton6Click(Sender:TObject);vari:integer;s:string;beginNewFormClass:=nil;NewForm:=TForm(application.FindComponent(lowercase(form客务中);ifNewFormnilthenbeginNewForm:=NewFormClass.Cr

20、eate(Self);NewForm.Hide;ifisshowmodal=1then NewForm.ShowmodalelsebeginNewForm.BorderStyle:=bsNone;NewForm.Parent:=panel2;NewForm.Align:=alclient;NewForm.Show;end;end;/锁 屏 离 开 按 钮procedureTForm1.ToolButton7Click(Sender:TObject);vari,j:integer;s:string;beginif(panel2.ControlCount1)thenbegin/释放原有窗体forj

21、:=0topanel2.controlcount-2dobeginfori:=1topanel2.ControlCountdobegins:=lowercase(panel2.Controlsi.ClassName);/showmessage(s);/showmessage(inttostr(i);if(copy(s,1,5)=tform)thenbeginpanel2.Controlsi.Free;break;end;end;end;end;form12.showmodal;end;/其 中 form12procedureTForm12.Button1Click(Sender:TObject

22、);vars,c:string;begins:=edit1.text;withadoquery1dobeginclose;sql.clear;sql.text:=selectcodefromhotelemployeeswhereemployeename=+dl+;open;c:=fieldbyname(code).asstring;end;ifs1)thenbegin/释放原有窗体fori:=1topanel2.ControlCountdobegins:=lowercase(panel2.Controlsi-1.ClassName);if(copy(s,1,5)=tform)thenbegin

23、panel2.Controlsi-1.Free;break;end;end;end;NewFormClass:=nil;NewForm:=TForm(application.FindComponent(lowercase(s1);ifNewFormnilthenbeginNewForm:=NewFormClass.Create(Self);NewForm.Hide;ifisshowmodal=1then NewForm.ShowmodalelsebeginNewForm.BorderStyle:=bsNone;NewForm.Parent:=panel2;NewForm.Align:=alcl

24、ient;NewForm.Show;end;end;end;end;( 2) 、 前 台 中 心1) 查 看 已 入 住 的 房 间procedureTForm前台中.Button3Click(Sender:TObject);vars,s1:string;i:integer;beginf:=1;withdbgrid1dobegincolumns.Clear;forI:=0to4docolumns.Add;columns0.Title.caption:=房间号;columns1.Title.caption:=房间类型;columns2.Title.caption:=客户名称;columns3.T

25、itle.caption:=性别;columns4.Title.caption:=入住日期;columns0.Width:=20*10;columns1.Width:=20*10;columns2.Width:=20*10;columns3.Width:=20*5;columns4.Width:=20*10;forI:=0to4docolumnsi.Title.Alignment:=tacenter;columns0.FieldName:=roomid;columns1.FieldName:=categoryname;columns2.FieldName:=customername;colum

26、ns3.FieldName:=sex;columns4.FieldName:=orderdate;end;s:=ifobject_id(y)isnotnulldroptabley;s:=s+selecta.roomid,categoryname,customername,sex,orderdateintoyfromroomsasa;s:=s+joinroomcategoriesasbona.categoryid=b.categoryid;s:=s+joinhotelorderitemsascona.roomid=c.roomid;s:=s+joinhotelordersasdonc.order

27、id=d.orderid;s:=s+joinhotelcustomersaseond.customerid=e.customeridwhereisusing=1;xx:=s;mandtext:=s;adocommand1.execute;withadotable1dobeginclose;tablename:=y;open;end;end;/其 中 双 击 DBGRID可 以 查 看 客 户 详 细 信 息 , 也 可 以 修 改procedureTForm前台中.DBGrid1DblClick(Sender:TObject);vars:string;beginiff=1thenbeginro

28、omid11:=trim(dbgrid1.SelectedField.Text);form5.showmodal;/datasource1.dataset:=adotable1;mandtext:=xx;adocommand1.execute;withadotable1dobeginclose;tablename:=y;open;end;end;end;/修 改 按 钮procedureTForm5.Button3Click(Sender:TObject);beginedit2.Enabled:=true;edit3.Enabled:=true;/edit4.Enabled:=true;edi

29、t5.Enabled:=true;combobox1.Enabled:=true;combobox2.Enabled:=true;combobox3.Enabled:=true;combobox4.Enabled:=true;combobox5.enabled:=true;end;/保 存 按 钮procedureTForm5.Button2Click(Sender:TObject);beginwithadoquery3dobeginclose;sql.text:=select*fromhotelcustomers;open;edit;fieldbyname(customername).ass

30、tring:=trim(edit2.text);fieldbyname(birthdate).asstring:=trim(edit5.text);fieldbyname(address).asstring:=trim(edit3.text);fieldbyname(sex).asstring:=trim(combobox1.text);fieldbyname(province).asstring:=trim(combobox2.text);fieldbyname(country).asstring:=trim(combobox3.text);fieldbyname(city).asstrin

31、g:=trim(combobox4.text);iftrim(combobox5.text)=否thenfieldbyname(isvip).asstring:=0elsefieldbyname(isvip).asstring:=1;post;end;showmessage(保存成功!);end;2) 退 房/退 房 按 钮 的 click事 件procedureTForm前台中.Button1Click(Sender:TObject);beginroomid1:=dbgrid1.selectedfield.text;form8.showmodal;mandtext:=xx;adocomman

32、d1.execute;withadotable1dobeginclose;tablename:=y;open;end;end;/结 账 表 单 的 代 码procedureTForm8.FormShow(Sender:TObject);vars,s1,s2,rdate,yf,dj:string;amount1,amount:integer;beginwithadoquery1dobeginclose;s:=selectcustomername,roomidfromhotelcustomersasajoinhotelordersasbona.customerid=b.customerid;s:=

33、s+joinhotelorderitemsasconb.orderid=c.orderidwhereroomid=+roomid1+;/roomid1是dbgrid选中行的房间编码sql.text:=s;open;s1:=fieldbyname(customername).asstring;s2:=fieldbyname(roomid).asstring;end;edit1.text:=s1;edit2.text:=s2;withadoquery1dobeginclose;sql.clear;sql.text:=select*fromy;open;rdate:=fieldbyname(orde

34、rdate).asstring;edit3.text:=rdate;datetimetostring(s,yyyy-mm-dd,now();/当前时间edit4.text:=s;end;d1:=strtoint(copy(edit3.text,9,2);/取出入住的日期d2:=strtoint(copy(edit4.text,9,2);/取出当前的日期withadoquery1dobeginclose;sql.clear;sql.text:=selectunitpricefromroomcategoriesasajoinroomsasbona.categoryid=b.categoryidwh

35、ereroomid=+roomid1+;open;s:=fieldbyname(unitprice).asstring;end;amount:=(d2-d1)*strtoint(s);/算出应收账款edit5.text:=inttostr(amount);withadoquery1dobeginclose;sql.clear;s:=selecta.customerid,sum(emoney)asdjfromearnestasajoinhotelcustomersasb;s:=s+ona.customerid=b.customerid wherea.customername=+s1+groupb

36、ya.customerid;sql.text:=s;open;dj:=fieldbyname(dj).asstring;/定金close;sql.clear;s:=selectb.customerid,sum(amount)asmfromhotelorderitemsasajoinhotelordersasbona.orderid=b.orderid;s:=s+joinhotelcustomersasconb.customerid=c.customeridwherecustomername=+s1+groupbyb.customerid;sql.text:=s;open;yf:=fieldby

37、name(m).asstring;/房钱end;amount1:=strtoint(dj)+strtoint(yf);/已付金额edit6.text:=inttostr(amount1);edit7.text:=inttostr(amount-amount1);/结账时应收金额end;3) 查 看 已 预 订 房 间procedureTForm前台中.Button7Click(Sender:TObject);vari:integer;s:string;beginwithdbgrid1dobegincolumns.Clear;forI:=0to3docolumns.Add;columns0.Ti

38、tle.caption:=房间号;columns1.Title.caption:=客户名称;columns2.Title.caption:=房间类型;columns3.title.caption:=入住时间;columns0.fieldname:=roomid1;columns1.fieldname:=customername;columns2.fieldname:=categoryname;columns3.fieldname:=intime;columns0.Width:=20*10;columns1.Width:=20*10;columns2.Width:=20*10;columns3.

39、Width:=20*10;forI:=0to3docolumnsi.Title.Alignment:=tacenter;end;s:=ifobject_id(yd)isnotnulldroptableyd;s:=s+selecta.roomidasroomid1,customername,categoryname,intimeintoydfromreserveasa;s:=s+joinroomsasbona.roomid=b.roomid;s:=s+joinroomcategoriesasconb.categoryid=c.categoryid;x3:=s;mandtext:=s;adocom

40、mand1.execute;withadotable1dobeginclose;tablename:=yd;open;end;end;4) 更 改 预 订 状 态跳 出 来 其 实 就 是 登 记 入 住 的 窗 口 , 稍 微 改 动 一 下 。procedureTForm前台中.Button8Click(Sender:TObject);beginyd:=1;r:=dbgrid1.selectedfield.text;form6.showmodal;mandtext:=x3;adocommand1.execute;withadotable1dobeginclose;tablename:=yd

41、;open;end;end;/其 中 form6procedureTForm6.FormShow(Sender:TObject);vars,s1,s2:string;i:integer;beginii:=0;edit1.SetFocus;f1:=0;edit1.Text:=;edit2.Text:=;edit3.Text:=;edit4.text:=;edit8.Text:=;edit10.Text:=;edit11.Text:=;edit12.Text:=;combobox3.Text:=;combobox4.Text:=;combobox1.items.add(M);combobox1.i

42、tems.add(F);combobox1.itemindex:=0;combobox5.clear;combobox5.Items.Add(会员);combobox5.items.add(非会员);combobox5.itemindex:=0;withadoquery1dobeginclose;sql.text:=select*fromDict_Countries;open;whilenoteofdobegins1:=fieldbyname(country).asstring;combobox2.Items.Add(s1);next;end;end;combobox2.ItemIndex:=

43、0;withdbgrid1dobegincolumns.Clear;forI:=0to3docolumns.Add;columns0.Title.caption:=房间号;columns1.Title.caption:=房间类型;columns2.title.caption:=价格;columns3.Title.caption:=楼层;columns0.fieldname:=roomid;columns1.fieldname:=categoryname;columns2.fieldname:=unitprice;columns3.fieldname:=floors;columns0.Width

44、:=131;columns1.Width:=131;columns2.Width:=131;columns3.width:=131;forI:=0to3dobegincolumnsi.Title.Alignment:=tacenter;columnsi.alignment:=taleftjustify;end;end;ifyd=0then/判断是直接登记还是由预订更改的begins:=ifobject_id(rz)isnotnulldroptablerz;s:=s+selectroomid,categoryname,unitprice,floorsintorzfromroomsasa;s:=s

45、+joinroomcategoriesasbona.categoryid=b.categoryidwhereroomid=+r+;mandtext:=s;adocommand1.execute;withadotable1dobeginclose;tablename:=rz;open;end;endelsebegins:=ifobject_id(yddj)isnotnulldroptableyddj;s:=s+selecta.roomid,categoryname,unitprice,floorsintoyddjfromreserveasa;s:=s+joinroomsasbona.roomid

46、=b.roomid;s:=s+joinroomcategoriesasconb.categoryid=c.categoryidwherea.roomid=+r+;mandtext:=s;adocommand1.execute;withadotable1dobeginclose;tablename:=yddj;open;end;withadoquery4dobeginclose;sql.clear;sql.text:=select*fromreservewhereroomid=+r+;open;edit1.text:=fieldbyname(customername).asstring;edit

47、2.text:=fieldbyname(customerid).asstring;end;end;/添加按钮procedureTForm6.Button1Click(Sender:TObject);beginform7.showmodal;iff1=1thenbeginwithadotable1dobeginappend;edit;fieldbyname(roomid).asstring:=r1;fieldbyname(categoryname).asstring:=r2;fieldbyname(unitprice).asstring:=r3;fieldbyname(floors).asstring:=r4;post;end;end;end;/添 加 窗 口 的 代 码procedureTForm7.Button1Click(Sender:TObject);beginr1:=adotable1.fieldbyname(roomid).asstring;r2:=adotable1.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报