飞机票订票系统设计_第1页
飞机票订票系统设计_第2页
飞机票订票系统设计_第3页
飞机票订票系统设计_第4页
飞机票订票系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告课程名称:基于.NET信息系统项目实战开课学期: 2012 至 2013 学年 第一学期开课班级: 信息管理与信息系统(软件服务外包) 指导老师: 刘位龙 完成时间: 2012 年 12 月 日34 / 38文档可自由编辑打印课程设计名称:项目组长 学号: 2010010498 姓名: 杨宇 成 员 学号: 姓名: 学号: 姓名: 学号: 姓名: 任务贡献表序号姓名班级学号E_mail电话签名1杨宇信管10032010010498任务贡献2任务贡献3任务贡献目 录1系统概述11.1 背景11.2 系统目标11.3 系统需求规格说明12系统分析12.1 用例建模12.1.1 识别参与

2、者和用例12.1.2 绘制用例图12.1.3 用例的描述12.2 类图建模12.2.1 识别对象和类12.2.2 识别属性与操作12.2.3 定义类之间的关系12.2.4 绘制类图12.3 顺序图建模12.3.1 “登录”用例12.3.2 “*”用例1.12.3.* 对用例的调整12.3.* 对类图的调整12.4 状态图建模12.4.1 确定需要进行状态图建模的类(对象)12.4.2 识别状态12.4.3 绘制状态图12.5 活动图建模(可选)13系统设计13.1 系统界面设计23.2 系统数据库设计23.3 其他设计(从实现角度选做,例如构件图、部署图、涉及的设计模式)24系统实施24.1

3、程序设计24.2 系统测试24.3 系统操作手册21系统概述1.1 背景 当今世界,以信息技术为主要标志的科技进步日新月异,高科技成果向现实生产力的转化越来越快。纵观全球经济发展,信息技术和信息产业已经成为经济增长的主要推动力之一,正在改变着传统的生产和经营方式以至生活方式,发达国家经过产业结构的升级和经济结构的转型已进入信息经济阶段。信息资源已经成为国民经济和社会发展的战略资源,信息化水平也已成为现代水平和综合国力的重要标志。党和国家已将国民经济和社会信息化放在优先发展位置,体现了先进生产力的客观要求,是一项重要的战略决策。这是民航加快发展的机遇,更是民航信息化的难得机遇。随着知识经济的到来

4、,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。网上机票预订管理系统的产生和发展正好满足人们的这种需求。现在将详细介绍我的课程设计网上机票预订管理系统。1.2 系统目标系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流繁琐的过程以及其带来的开销。方便用户查询管理自己的票务信息。1.3 系统需求规格说明1:功能需求:A:用户注册功能:该功能可以完成普通旅客注册

5、和管理员注册任务。B:用户信息维护功能:该功能可以完成普通旅客和管理员根据实际情况,对自己的信息进行更新操作。C:用户功能:C1:机票查询功能:该功能为用户提供简洁的页面呈现,方便用户根据自己的需要选择自己需要的机票。C2:机票预定功能:该功能为用户提供简洁的页面呈现,方便用户根据自己的需要预定机票。C3:对票功能:该功能,通过和用户的交互,用户提供机票的订单号,由系统自动用户退票工作。D:管理员功能:D1:票务信息维护功能:通过该功能,管理员可以根据飞机场提供的相关信息,更新最新的票务信息,方便用户查询。D2:飞机信息维护功能:通过该功能,管理员可以根据实际情况,更新飞机的机长,型号,使用年

6、限等信息。D3:用户信息维护功能:通过该功能,管理员可以查阅到用户的详细信息,并根据用户的申请,为用户更新会员信息。2:性能需求:A:系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑程序当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。在系统开发过程中,必须采用一定的方法保证系统的准确性。B:系统的开放性和系统的可扩展性: 系统应该是一个开放系统,只要符合一定的规范,就可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补,替换完成系统的升级和更新换代。C:机票预订系统直接面对使用人员的,而使用人员

7、往往对计算机并不是非常熟悉。这就需要系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的属于和中文信息界面;针对用户可能出现的问题,提供足够的在线帮助,缩短用户对系统的熟悉过程。3:运行需求:机票预定系统中的硬件和软件的配置如下:1,服务器端系统运行要求系统软件:Linux数据库管理系统:SQLServer2005硬件要求:Pentium III 450 以上,256M RAM 14G HD2,客户端子系统的要求:系统软件:window xp硬件要求:pentium 133以上 32M RAM 4,3G HD2系统分析 2.1 用例建模2.1.1 识别

8、参与者和用例2.1.2 绘制用例图2.1.3 用例的描述用例名称:乘客查询机票信息主参与者:乘客层次:海平面(用户目标)利益相关者:乘客、管理员前置条件:乘客必须在线可访问网络最低保证:回滚任何未完成的事务,系统记录进展日志直到失败成功保证:用户想要的信息正确加载触发器:用户访问客户端首页主要的成功情节:1. 乘客选择出发地、目的地和时间等信息。2. 乘客从界面中选择要查看的航班信息。3. 乘客从界面中选择选定的航班查看具体信息。4. 乘客使用“返回”按钮,查看其它航班信息。扩展:1. 距离第一次查询超过30分钟。A 通知管理员和用户,自动更新最新航班信息。2.Interner连接中断A 系统

9、回滚最初状态。3.顾客在任一点退出系统系统会滚到交易前位置。用例名称:乘客退订机票主参与者:乘客层次:海平面(用户目标)利益相关者:乘客前置条件:乘客必须在线可访问网络最低保证:回滚任何未完成的事务,系统记录进展日志直到失败成功保证:用户成功退订一张订单触发器:用户单击退票按钮主要的成功情节:1:用户成功查询自己的订单详情。2:用户选择一张订单,系统将订单详情显示在页面上。3:通知用户是否退订该订单4:用户选择是,调用退票用例,更新票务信息表。5:告知用户成功退票。6:用户选择否,返回页面。扩展:1:根据用户提供的信息,无法查询到一张订单告知用户,提供正确订单号,继续操作2:票务信息票更新出错

10、:告知管理员,手动更新。3:机票信息表更新出错:告知管理员。手动更新。4.Interner连接中断系统回滚最初状态。5.顾客在任一点退出系统系统会滚到交易前位置。用例名称:用户注册主参与者:乘客层次:海平面(用户目标)利益相关者:乘客、航空公司前置条件:乘客已经调用了“用户注册”用例最低保证:回滚任何未完成的事务,系统记录进展日志直到失败成功保证:乘客成功的完成订单,创建订单,信用卡支付,创建收据,返回乘客订单信息触发器:乘客点击“注册按钮”主要的成功细节:1. 页面跳转至用户注册页面。2. 用户填入信息,点击注册。3. 成功校验用户输入的信息:空校验,密码校验等错误信息校验,4. 信息校验合

11、法,更新客户表5. 告知用户,成功注册,请返回登录扩展:1:用户提供的信息不足:告知用户,提供详细信息后,完成注册2:密码校验不相符:告知用户,校验密码后,完成注册3:客户表更新失败告知管理员,手动更新4.Interner连接中断系统回滚最初状态。5.顾客在任一点退出系统系统会滚到交易前位置。用例名称:用户购买机票主参与者:乘客层次:海平面(用户目标)利益相关者:乘客、管理员、航空公司前置条件:乘客已经调用了“查询机票”用例最低保证:回滚任何未完成的事务,系统记录进展日志直到失败成功保证:乘客成功的完成订单,创建订单,信用卡支付,创建收据,返回乘客订单信息触发器:乘客选择支付机票主要的成功细节

12、:6. 为这个事务创建一个订单。7. 乘客根据时间需求,已经确认所需航班。8. 确认航班信息,并登录网上银行进行支付。9. 顾客收到包含航班号、身份证号、乘客姓名、乘机时间、联系电话等在内的确认信息。10. 顾客选择“提交订单”,顾客、订单、和航班数据被更新。11. 订单完成。扩展:1. 已经选择航班,但长时间没有支付A 超过网站预留时间(50分钟),订单被取消。反馈通知用户。B 未超过网站预留时间(50分钟),航班信息被网站更新,订单取消。C 未超过网站预留时间(50分钟),航班信息未被网站更新,业务继续。2. 由于机票已被其他用户预订而不能创建订单。A 顾客收到无机票的消息,被通知选择其他

13、航班。B 顾客收到无机票的消息,退该用例。3. 顾客由于信用卡账户不能成功支付。A 信用卡有问题,顾客被要求用一个新的信用卡账户。B 网站问题,顾客被通知稍后再试。4. Interner连接中断B 系统回滚最初状态。5. 顾客在任一点退出系统A 系统会滚到交易前位置。用例名称:维护航班信息主参与者:管理员层次:海平面(用户目标)利益相关者:管理员前置条件:管理员成功登录系统最低保证:管理员无法获得权限,自动退出系统成功保证:管理员成功登录系统触发器: 管理员登录系统主要的成功情节:1:成功调用登录用例; 2:管理员成功登录系统。 3:管理员通过航空公司所提供的航班信息成功更新票务信息。 4:用

14、户订票信息成功反馈给管理员。 5:管理员根据反馈信息实时更新订票系统。扩展:1:管理员无法正常登录系统:A:告知管理员,管理员校验用户名和密码,并重新登录,并登录成功。B:告知管理员,管理员退出系统。2:用户订票信息无法正常反馈:A:告知管理员和用户,延迟订单操作,等待管理员更新票务信息后,继续订单的执行。3:管理员对航班信息操作不成功A.通知用户,系统暂时不可用,请稍后登录,并手动更新数据。2.2 类图建模2.2.1 识别对象和类对象:管理员,用户,机票,飞机类:飞机类,客户类,管理员,票务信息类,机票类2.2.2 识别属性与操作管理员类:属性:管理员编号,管理员姓名,管理员密码,联系电话操

15、作:更新,增加,信息校验,查询客户类:属性:客户姓名,客户密码,客户年龄,客户地址,联系电话,会员状态。操作:更新,增加,信息校验,查询飞机类:属性:飞机编号,飞机型号,机长姓名,购买时间,服役时间。操作:更新,查询票务信息类:属性:订单编号,客户姓名,出发地,目的地,出发时间,到达时间,票价,客户会员信息,张数。操作:增加,删除,查询机票类:属性:机票编号,出发地,目的地,出发时间,到达时间,票价,库存量操作:增加,删除,修改,更新2.2.3 定义类之间的关系客户类:自查询,自更新,自校验,查询票务信息类,修改票务信息类,修改机票类。管理员:自查询,自更新,自校验,查询客户类,查询机票信息,

16、修改票务信息类,管理飞机类。2.2.4 绘制类图2.3 顺序图建模2.3.1 登录用例2.3.2 用户注册用例2.3.3 订票用例:2.3.4:退票用例:2.3.5机票信息维护2.3.* 对用例的调整2.3.* 对类图的调整2.4 状态图建模2.4.1 确定需要进行状态图建模的类(对象)2.4.2 识别状态2.4.3 绘制状态图2.5 活动图建模(可选)3系统设计3.1 系统界面设计登录界面设计:普通用户注册页面设计:用户信息维护界面:订票界面:退票界面:管理员信息维护页面:客户信息维护页面:票务信息维护界面:飞机信息维护界面:3.2 系统数据库设计管理员信息实体E-R图如图客机信息实体E-R

17、图如图 航线信息实体E-R图如图客户信息实体E-R图如图订票信息实体E-R图如图 关系模式:飞机信息表(飞机型号,机长姓名,购买时间,服役时间)票务信息表(票号(主键),出发地,目的地,出发时间,到达时间,票价,库存量)客户信息表:(客户ID,客户姓名,客户密码,年龄,地址,联系电话,客户类型)管理员信息表(管理员编号(主键),管理员姓名,密码,联系电话)票务信息表(订单号(主键),客户姓名,出发地,目的地,出发时间,到达时间,票价,客户会员信息,预定张数)数据字典:表名T_Manager序号字段名称中文名称数据类型备注1MID管理员编号Int主键(非空)2MName管理员姓名Nvarchar

18、(50)非空3MPassword管理员密码Varchar(50)非空4Mpnumber联系电话Varchar(50)非空表名T_flyer序号字段名称中文名称数据类型备注1FID飞机编号Int主键(非空)2fFX飞机型号Nvarchar(50)非空3fFjizhang飞机机长Varchar(50)非空4fBuyTime购买时间Data非空5fAllTime服役时间Data非空表名T_hangxian序号字段名称中文名称数据类型备注1hid航线编号Int主键(非空)2Chufadi出发地Nvarchar(50)非空3Mudidi目的地Varchar(50)非空4Chufatime出发时间Data

19、非空5Daodatime到达时间Data非空6Piaojia票价Int非空7Kucun库存量Int非空表名T_kehu序号字段名称中文名称数据类型备注1KID客户编号Int主键(非空)2Kpassword客户密码Varchar(50)非空3Kage客户年龄Int非空4Kaddress地址Nvarchar(50)非空5Kpnum联系电话Nvarchar(50)非空6VIP会员信息Int非空表名T_pwxx序号字段名称中文名称数据类型备注1Piaonum订单编号Int主键(非空)2Kehuname客户姓名Nvarchar(50)非空3Chufadi出发地Nvarchar(50)非空4Mudidi目

20、的地Nvarchar(50)非空5Piaojia票价Int非空6Kvip会员信息Int非空7Zhangshu预定张数Int非空3.3 其他设计(从实现角度选做,例如构件图、部署图、涉及的设计模式)4系统实施 4.1 程序设计登录界面部分代码: public partial class Form1 : Form public Form1() InitializeComponent(); public static string USER; private void button2_Click(object sender, EventArgs e) /取消按钮代码 textBox1.Text =

21、"" textBox2.Text = "" private void button3_Click(object sender, EventArgs e) if (textBox1.Text = "" | textBox2.Text = "") MessageBox.Show("请填写完整的用户名和密码"); else if (!radioButton1.Checked) && (!radioButton2.Checked) MessageBox.Show("请选择用户类

22、型"); else if (radioButton1.Checked) /客户登录操作 User user = new User(); user.Username = textBox1.Text; user.Userpassword = textBox2.Text; USER = textBox1.Text; user.Useraddress = "" user.Userage = "" user.Usernum = "" user.Uservip = "" userbll ubll = new user

23、bll(); int i = ubll.loginin(user); if (i = 1) kehuForm kfr = new kehuForm(); kfr.Show(); else if (i = 2) MessageBox.Show("您输入的密码有误"); else MessageBox.Show("您还没有注册本站会员"); else /管理员登录操作 Manager manager = new Manager(); manager.Mname = textBox1.Text; manager.Mpassword = textBox2.Tex

24、t; manager.Mpnumber = "" USER = textBox1.Text; managerbll mbll = new managerbll(); int i = mbll.loginin(manager); if (i = 1) managerForm mfr = new managerForm(); mfr.Show(); else if (i = 2) MessageBox.Show("您输入的密码有误"); else MessageBox.Show("对不起,您不是管理员"); private void bu

25、tton1_Click(object sender, EventArgs e) zhuceForm zfr = new zhuceForm(); zfr.Show(); 注册界面: public partial class zhuceForm : Form public zhuceForm() InitializeComponent(); private void button2_Click(object sender, EventArgs e) if (UserTB.Text = "") /错误信息校验 UserError.Text = "用户名必须填写&quo

26、t; return; else if (PassWord2TB.Text != PassWordTB.Text) PassWord2Error.Text = "两次输入的密码不一样,请核对" return; else if (ageTB.Text = "") AgeError.Text = "年龄有误" return; else if (addressTB.Text = "") AddressError.Text = "地址信息提供有误" return; else if (phoneTB.Tex

27、t = "") PhoneError.Text = "电话号码必须填写" return; User user = new User(); /用户名可用行校验 user.Username = UserTB.Text; user.Userpassword = PassWord2TB.Text; user.Userage = ageTB.Text; user.Useraddress = addressTB.Text; user.Usernum = phoneTB.Text; user.Uservip = vipTB.Text; userbll ubll = n

28、ew userbll(); int i = ubll.useryan(user); if (i = 0) UserError.Text = "该用户已经被注册" else int j = ubll.userinsert(user); /增加用户信息操作 if (j = 1) MessageBox.Show("注册成功,请返回登录"); private void button1_Click(object sender, EventArgs e) /取消按钮 UserTB.Text = "" PassWordTB.Text = "

29、;" PassWord2TB.Text = "" ageTB.Text = "" phoneTB.Text = "" vipTB.Text = "" addressTB.Text = "" 客户操作界面: public partial class kehuForm : Form public kehuForm() InitializeComponent(); private void kehuForm_Load(object sender, EventArgs e) 页面加载时显示该用

30、户的票务信息 string u = Form1.USER; userbll ubll = new userbll(); User user = ubll.userselect(u); userTB.Text = user.Username; passwordTB.Text = user.Userpassword; ageTB.Text = user.Userage; addressTB.Text = user.Useraddress; phoneTB.Text = user.Usernum; vipTB.Text = user.Uservip; pxxbll pbll = new pxxbll

31、(); DataTable dt = pbll.pxxselect(u); dataGridView1.DataSource = dt; private void button1_Click(object sender, EventArgs e) /用户点击修改用户信息按钮 passwordTB.ReadOnly = false; ageTB.ReadOnly = false; addressTB.ReadOnly = false; phoneTB.ReadOnly = false; private void button2_Click(object sender, EventArgs e)

32、/用户点击确认修改按钮 User user = new User(); user.Username = userTB.Text; user.Userpassword = passwordTB.Text; user.Userage = ageTB.Text; user.Usernum = phoneTB.Text; user.Uservip = vipTB.Text; user.Useraddress = addressTB.Text; userbll ubll = new userbll(); int i = ubll.userupdate(user); if (i = 1) MessageB

33、ox.Show("您的信息已经成功更新"); private void caxun_Click(object sender, EventArgs e) /机票查询按钮 piao Piao = new piao(); Piao.Chufadi = chufaTB.Text; Piao.Mudidi = mudiTB.Text; Piao.Hid = "" Piao.Chufatime = "" Piao.Daodatime = "" Piao.Piaojia = "" Piao.Kucun = &

34、quot;" piaobll pbll = new piaobll(); DataTable dt = pbll.piaoselect1(Piao); dataGridView2.DataSource = dt; private void selectBtn_Click(object sender, EventArgs e) /机票信息显示 Random rd = new Random(); int i = rd.Next(10000, 99999); jihaoTB.Text = i.ToString(); faTB.Text = dataGridView2.RowsdataGri

35、dView2.CurrentCell.RowIndex.Cells"出发地".Value.ToString(); DaoTB.Text = dataGridView2.RowsdataGridView2.CurrentCell.RowIndex.Cells"目的地".Value.ToString(); chufaTTB.Text = dataGridView2.RowsdataGridView2.CurrentCell.RowIndex.Cells"出发时间".Value.ToString(); daodaTTB.Text = dat

36、aGridView2.RowsdataGridView2.CurrentCell.RowIndex.Cells"到达时间".Value.ToString(); string jiage = dataGridView2.RowsdataGridView2.CurrentCell.RowIndex.Cells"票价".Value.ToString(); int jia = Convert.ToInt32(jiage); userbll ubll = new userbll(); string vip = ubll.uservip(userTB.Text);

37、if (vip = "1") double newjia = jia * 0.9; jiageTB.Text = Convert.ToString(newjia); else jiageTB.Text = jiage; private void button4_Click(object sender, EventArgs e) /订购机票 DialogResult manager_delete = MessageBox.Show("您确定要预定这一张机票吗?", "提示", MessageBoxButtons.OKCancel); i

38、f (manager_delete = DialogResult.OK) piaobll pbll = new piaobll(); /查询机票库存量 piao Piao = new piao(); Piao.Chufadi = faTB.Text; Piao.Mudidi = DaoTB.Text; Piao.Chufatime = chufaTTB.Text; Piao.Daodatime = daodaTTB.Text; Piao.Hid = "" Piao.Kucun = "" Piao.Piaojia = "" int ku

39、cun = pbll.piaokucun(Piao); if (kucun = 0) MessageBox.Show("对不起您想订购的航线已经没有机票,请选择其他机票"); return; else /更新机票信息和该用户票务信息 dpxx dpxx = new dpxx(); dpxx.Piaohao = jihaoTB.Text; dpxx.Chufadi = faTB.Text; dpxx.Mudidi = DaoTB.Text; dpxx.Chufatime = chufaTTB.Text; dpxx.Daodatime = daodaTTB.Text; dpxx

40、.Kname = Form1.USER; userbll ubll = new userbll(); string vip = ubll.uservip(userTB.Text); dpxx.Kvip = vip; dpxx.Piaojia = jiageTB.Text; dpxx.Zhangshu = zhangshuTB.Text; pxxbll pxbll = new pxxbll(); int geng1 = pxbll.pxxinsert(dpxx); int geng2 = pbll.piaoupdate(Piao,dpxx); if (geng1 = 1) &&

41、(geng2 = 1) MessageBox.Show("您已经成功预定了该机票"); private void button5_Click(object sender, EventArgs e) pxxbll pxbll = new pxxbll(); DataTable dt = pxbll.pxxselect1(haoTB.Text); dataGridView3.DataSource = dt; private void button6_Click(object sender, EventArgs e) /对票操作 DialogResult manager_delete = MessageBox.Show("您确定要退订这一张机票吗?", "提示", MessageBoxButtons.OKCancel); if (manager_delete = DialogResult.OK) dpxx dp = new dpxx(); dp.Piaohao = haoTB.Text; pxxbll pxbll = new pxxbll(); string zhang = pxbll.pxxselec

温馨提示

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

评论

0/150

提交评论