数据库课程设计111_第1页
数据库课程设计111_第2页
数据库课程设计111_第3页
数据库课程设计111_第4页
数据库课程设计111_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、攀枝花学院课程设计题 目: 院 (系): 年级专业: 姓 名: 学 号: 指导教师: 二一四年十二月二十二日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目民航订票管理系统开发1、课程设计的目的使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)(1)航班信息管理:每个航班基本

2、信息的录入、修改与删除。 (2)航班坐位信息管理:每个航班坐位信息的录入、修改与删除。 (3)机票预定管理:输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单(4)退订机票管理:对退订机票信息进行判断、录入、修改与删除。 (5)查询信息:能够查询每个航班的基本信息、预定情况、旅客的基本信息等。(6)统计信息:计算每个航班的满座率,统计旅客的乘坐次数数、乘坐总金额等。3、主要参考文献2 王成良数据库技术及应用M北京:清华大学出版社20113 刘金岭,冯万利数据库系统及应用教程SQL Server 2008 M北京:清华大学4 杨学全等.SQL SERVER 实例教程(第2版)M北京:电子工

3、业出版社,20085 郑阿奇等. Asp.Net 程序设计教程M北京:机械工业出版社,20086 邓子云,张赐JSP网络编程从基础到实践M北京:电子工业出版社M20064、课程设计工作进度计划第1天 :选题、完成需求分析第2天 :数据库概念结构设计第3天:数据库逻辑结构设计及物理实现第4天:应用程序开发第5天: 程序调试分析和结果、编写课程设计报告指导教师(签字)日期年 月 日教研室意见: 年 月 日学生(签字): 接受任务时间: 年 月 日课程设计(论文)指导教师成绩评定表题目名称民航订票管理系统开发评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科

4、学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运

5、算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日摘要目前,国内航空公司的数量和规模都在扩大,国外航空公司也纷纷着陆中国,这些航空公司之间的竞争可谓日

6、益激烈。配备一个安全、高效、灵活、可靠的客户服务中心系统对于航空公司加强客户服务质量,提高客户服务水平,扩展业务途径,维护公众形象,提高工作效率必将发挥重要作用。航空订票是整个民航客运业务中一个最基本的业务。虽然它只是民航客运业务中一个非常简单的部分,但因其涉及到资金管理以及客户管理所以使其变得非常重要。随着电子客票的出现,以及越来越多的数据量,传统的售票方式已经不能满足现代航空业务的发展。这时就需要开发一套具有开放体系结构的、容易扩展和维护的,并且具有良好人际交互界面的航空订票系统。关键词:订票管理系统、分层部署、售票目 录摘 要I1 需求分析11.1 需求概述11.2 需求环境11.3 功

7、能描述22 概要设计32.1 程序功能模块32.2 程序流程图32.3 数据结构的设计43 详细设计53.1 程序初始化53.1.1 代码功能53.1.2 功能实现代码53.2 盘块的移动过程5代码功能53.2.2 功能实现代码53.3 递归函数63.3.1 流程图63.3.2 功能实现代码74 测试与运行8结束语9参考文献10前言1 需求分析1.1需求来源对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。建设航空订票管理系统是体现和提高航空公司领导业绩

8、的一条捷径,此外还具有重要意义:2007年,民用航空行业完成旅客总周转量2776.3亿人公里、旅客运输量19452.1万人、货物周转量115.6亿吨公里,民用航空货运量394.9万吨,比2006年同期分别增长18.7%、1.7%和14.3%。国内航线(含港澳)三项指标分别完成232.5亿吨公里、1952.1万人和272万吨,同比分别增长17.1%、16.1%和12.3%;国际航线三项指标分别完成129.1亿吨公里、1884.1万人和119.4万吨,同比分别增长26.4%、20.8%和26.2%。在人民币持续升值预期明确、燃油成本波动相对较平和以及2008年奥运会、2010年世博会、亚运会等相对

9、积极因素推动下,行业正处于景气度不断提升时期。1、改善航空公司服务质量;2、创造和提升航空公司的品牌优势;3、优化航空公司的服务流程;4、提升信息化的水平;1.2设计目的 该软件为用户提供一个在订票系统,所有用户可以订票,查询系统余票,自己退票,在查询时可以知道系统的剩余票,什么地方发往什么地方,什么时间,剩余票数,自己是否订票,填写个人信息,最后确定提交自己信息,可以查询自己的票,系统给用户发送消息,告诉用户基本信息,可以按时取票,最后得到机票。1.3需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS、C/VC+6.0,SQL。2

10、 概要设计2.1程序功能模块由需求分析知,本次课程设计是用实现订票的程序,故其功能模块分为:用户权限模块,订票模块,购票模块和航班管理模块四个模块。2.2数据流程图航班查询修改航班撤销航班航班管理新增航班退票管理修改航班订单查询订单管理购票购票管理用户查询修改密码用户权限民航订票系统图2.2 系统数据流2.3数据结构设计 根据需求分析将订票系统的数据结构的设计如下: 登录窗口模块的函数代码如下private void txtusername_TextChanged(object sender, EventArgs e) 主界面模块模块的函数代码设计如下 private void miBookT

11、icket_Click(object sender, EventArgs e) 更改密码模块代码 private void texOldPsw_TextChanged(object sender, EventArgs e) 航班基本信息模块代码BindingSource bs = null;DataTable dtchanges = null;private void button5_Click_1(object sender, EventArgs e) /录入 Ticket fi = new Ticket(); 其他功能合作人实现3详细设计3.1 程序初始化代码功能在初始化程序中,设计各个模

12、块的功能,模块例如:查询,订票,退票等。3.1.2 功能实现代码private void miBookTicket_Click(object sender, EventArgs e) /订票 BookForm bookf = new BookForm(tsbBookTiket, miBookTicket); bookf.Show(); tsbBookTiket.Enabled = false; miBookTicket.Enabled = false;private void miBackTicket_Click(object sender, EventArgs e) /退票 BackForm

13、 backf = new BackForm(miBackTicket, tsbBackTicket); backf.Show(); miBackTicket.Enabled = false; tsbBackTicket.Enabled = false;private void miFlightBaseInfo_Click(object sender, EventArgs e) /航班基本信息 FlightBaseForm fbform = new FlightBaseForm(tsbBaseFlight, miFlightBaseInfo); fbform.MdiParent = this;

14、fbform.Show(); tsbBaseFlight.Enabled = false; miFlightBaseInfo.Enabled = false;private void miSeatBaseInfo_Click(object sender, EventArgs e) /座位基本信息 SeatBaseForm sbf = new SeatBaseForm(tsbBaseSeat, miSeatBaseInfo);sbf.MdiParent = this sbf.Show(); tsbBaseSeat.Enabled = false; miSeatBaseInfo.Enabled =

15、 false;private void miLogoff_Click(object sender, EventArgs e) /注销 Application.Restart();private void miExit_Click(object sender, EventArgs e) /退出 Application.Exit(); private void miChangePwd_Click(object sender, EventArgs e) /更改密码 ChangePwdForm frmfrom = new ChangePwdForm(miChangePwd, tsbChangePwd)

16、; frmfrom.Show(); frmfrom.MdiParent = this; miChangePwd.Enabled = false; tsbChangePwd.Enabled = false;private void miQu_Click(object sender, EventArgs e) /查询 QueryForm qf = new QueryForm(miQu, tsbQuery); qf.Show(); qf.MdiParent = this; miQu.Enabled = false; tsbQuery.Enabled = false;3.2 登陆界面实现3.2.1代码

17、功能登录窗口模块3.2.2功能实现代码登录窗口模块private void txtusername_TextChanged(object sender, EventArgs e) btnOk.Enabled = !string.IsNullOrEmpty(txtusername.Text) && !string.IsNullOrEmpty(txtpassword.Text);private void txtpassword_TextChanged(object sender, EventArgs e) btnOk.Enabled = !string.IsNullOrEmpty(

18、txtusername.Text) && !string.IsNullOrEmpty(txtpassword.Text);private void txtusername_KeyDown(object sender, KeyEventArgs e) if (e.KeyValue = 13) txtpassword.Focus();private void txtpassword_KeyDown(object sender, KeyEventArgs e) if (e.KeyValue = 13) btnOk.Focus(); public string UserName get

19、 return txtusername.Text; public string UserPassword get return txtpassword.Text; 3.3更改密码3.3.1代码功能对密码进行更改3.3.2功能实现代码private void texOldPsw_TextChanged(object sender, EventArgs e) btnOk.Enabled = !string.IsNullOrEmpty(texOldPsw.Text) && !string.IsNullOrEmpty(texNewPsw.Text) && !string

20、.IsNullOrEmpty(ConfirmNewPsw.Text);private void texNewPsw_TextChanged(object sender, EventArgs e) btnOk.Enabled = !string.IsNullOrEmpty(texOldPsw.Text) && !string.IsNullOrEmpty(texNewPsw.Text) && !string.IsNullOrEmpty(ConfirmNewPsw.Text);private void ConfirmNewPsw_TextChanged(object

21、sender, EventArgs e) btnOk.Enabled = !string.IsNullOrEmpty(texOldPsw.Text) && !string.IsNullOrEmpty(texNewPsw.Text) && !string.IsNullOrEmpty(ConfirmNewPsw.Text);private void btnOk_Click(object sender, EventArgs e) DB db = new DB(); DataTable dt; try db.BeginTransaction(); dt = db.Get

22、DataTable("SELECT 1 FROM useraccount WHERE username = ? AND userpassword = ?", UserInfo.UserName, texOldPsw.Text); if (dt.Rows.Count > 0) if (texNewPsw.Text != ConfirmNewPsw.Text) MessageBox.Show("两次输入的密码不一致!"); else dt = db.GetDataTable("UPDATE useraccount SET userpasswo

23、rd = ? WHERE username = ?", texNewPsw.Text, UserInfo.UserName); MessageBox.Show("密码修改成功!"); else MessageBox.Show("您输入的密码不正确!"); db.Commit(); dt.AcceptChanges(); catch (Exception ex) MessageBox.Show(ex.Message); db.Rollback();3.4航班基本信息模块3.4.1代码功能对航班基本信息进行查询3.4.2功能实现代码BindingS

24、ource bs = null;DataTable dtchanges = null;private void button5_Click_1(object sender, EventArgs e) /录入 Ticket fi = new Ticket(); DataTable dt = fi.GetDatable("select * from Flight"); bs = new BindingSource(); bs.DataSource = dt.DefaultView; dataGridView1.DataSource = bs; private void butt

25、on3_Click_1(object sender, EventArgs e) /删除 bs.RemoveCurrent();private void button2_Click_1(object sender, EventArgs e) /修改 if (dataGridView1.DataSource is BindingSource) BindingSource bs = dataGridView1.DataSource as BindingSource; DataRowView dv = (DataRowView)bs.Current; dv.Row.RejectChanges(); p

26、rivate void button4_Click_1(object sender, EventArgs e) DB db = new DB(); if (bs.DataSource is DataView) DataTable dtchanges = (bs.DataSource as DataView).Table.GetChanges(); try db.BeginTransaction(); foreach (DataRow dr in dtchanges.Rows) if (dr"price", DataRowVersion.Original.Equals(1)

27、&& dr"price", DataRowVersion.Current = DBNull.Value) db.Execute("delete from Flight where Fno = ?", dr"price"); else if (dr"price", DataRowVersion.Original.ToString() != dr"price", DataRowVersion.Current.ToString() db.Execute("update Fli

28、ght set price=? where Fno=?", dr"price", dr"Fno"); db.Commit(); (bs.DataSource as DataView).Table.AcceptChanges(); catch (Exception ex) db.Rollback(); finally MessageBox.Show("保存成功"); if (bs.DataSource is DataView) dtchanges = (bs.DataSource as DataView).Table.GetC

29、hanges(DataRowState.Deleted); DeleteFromDB(db, dtchanges); dtchanges = (bs.DataSource as DataView).Table.GetChanges(DataRowState.Modified); UpdataFromDB(db, dtchanges); dtchanges = (bs.DataSource as DataView).Table.GetChanges(DataRowState.Added); InseFromDB(db, dtchanges); private void DeleteFromDB(

30、DB db, DataTable dtDeleted) if (dtDeleted != null) string sql = "delete from Flight where Fno = ?" foreach (DataRow dr in dtDeleted.Rows) db.Execute(sql, dr"Fno", DataRowVersion.Original); private void InseFromDB(DB db, DataTable dtInserted) if (dtInserted != null) string sql = &

31、quot;insert into Flight (Fno,lbA,lbB,timeA,timeB,price) values(?,?,?,?,?,?)" foreach (DataRow dr in dtInserted.Rows) db.Execute(sql, dr"Fno", dr"lbA", dr"lbB", dr"timeA", dr"timeB", dr"price"); private void UpdataFromDB(DB db, DataTabl

32、e dtUpdata) if (dtUpdata != null) string sql = "UPDATE Flight SET lbA=?,lbB=?,timeA=?,timeB=?,price=? WHERE Fno = ?" foreach (DataRow dr in dtUpdata.Rows) db.Execute(sql, dr"lbA", DataRowVersion.Current, dr"lbB", DataRowVersion.Current, dr"timeA", DataRowVersi

33、on.Current, dr"timeB", DataRowVersion.Current, dr"price", DataRowVersion.Current, dr"Fno", DataRowVersion.Original); 3.5座位基本信息模块3.5.1代码功能对座位号惊醒查询3.5.2功能实现代码BindingSource bs = null;DataTable dt = null;DataTable dtchanges = null;private void button5_Click(object sender, E

34、ventArgs e) /录入 DB db = new DB(); dt = db.GetDataTable("select * from Seat", UserInfo.UserName); bs = new BindingSource(); bs.DataSource = dt.DefaultView; dataGridView1.DataSource = bs;private void button2_Click(object sender, EventArgs e) /修改 if (dataGridView1.DataSource is BindingSource)

35、 BindingSource bs = dataGridView1.DataSource as BindingSource; DataRowView dv = (DataRowView)bs.Current; dv.Row.RejectChanges(); private void button3_Click(object sender, EventArgs e) /删除 bs.RemoveCurrent(); private void button4_Click(object sender, EventArgs e) /确定 DB db = new DB(); if (bs.DataSour

36、ce is DataView) DataTable dtchanges = (bs.DataSource as DataView).Table.GetChanges(); try db.BeginTransaction(); foreach (DataRow dr in dtchanges.Rows) if (dr"Fno", DataRowVersion.Original.Equals(1) && dr"Fno", DataRowVersion.Current = DBNull.Value) db.Execute("delet

37、e from Flight where Fno = ?", dr"Fno"); else if (dr"Fno", DataRowVersion.Original.ToString() != dr"Fno", DataRowVersion.Current.ToString() db.Execute("update Flight set stno=? where Fno=?", dr"stno",dr"Fno"); db.Commit(); (bs.DataSourc

38、e as DataView).Table.AcceptChanges(); catch (Exception ex) db.Rollback(); finally MessageBox.Show("保存成功"); if (bs.DataSource is DataView) dtchanges = (bs.DataSource as DataView).Table.GetChanges(DataRowState.Deleted); DeleteFromDB(db, dtchanges); dtchanges = (bs.DataSource as DataView).Table.GetChanges(DataRowState.Modified); UpdataFromDB(db, dtchanges); dtchanges = (bs.DataSource as DataView).Table.GetChanges(DataRowState.Added); InseFromDB(db, dtchanges); 4 系统结构4.1系统图E_R图E-R图也称实体-联系图(Entity Relationship

温馨提示

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

评论

0/150

提交评论