数据库课程设计
更新时间:2024-03-19 12:39:01 阅读量: 综合文库 文档下载
数据库原理
课程设计任务书
题目名称: 机票销售系统 学生学院: 信科院 专业班级: 软件4班 参与人员及学号:
曹小涛(200905070406) 李杰(200905070404) 罗先宇(200905070405) 张博宇(200905070417)
2009050704
目录
一. 需求分析 ......................................................................................... 1.1 需求分析的任务 ........................................... 1.2 需求分析的过程 ........................................... 1.3功能需求 与 功能模块图 .................................... 二 . 详细设计 ....................................................................................... 2.1系统所需要的表 ........................................... 2.2 系统各个模块的流程图 ..................................... 2.3源文件关键代码 ........................................... 2.4头文件关键代码 ........................................... 三.数据库的运行测试和结果 .............................................................
2
2009050704
一. 需求分析
1.1 需求分析的任务
调查机票预定系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析购票人信息和飞机预定流程。处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
1.2 需求分析的过程
航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。如果某方面出现问题,旅客可以持有效证件去飞机场退票。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
1.3功能需求 与 功能模块图
1.业务流程分析
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出旅客信息、订票信息和取票通知的具体需求。
⑴ 调查用户需求 ① 机场办公需求
?
功能:旅客持个人证件去机场购买机票。希望能通过旅客姓名查到该旅客的飞机编号并记录旅客基本信息。
② 旅客信息需求:
?
查询功能:购票旅客查询;购票旅客姓名;购票旅客身份证号;购票旅客订单号
③ 航班信息需求
查询功能:航班号;起飞地;目的地;起飞时间 2.系统功能模块分析
在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示。
3
2009050704
机票销售系统 各子系统需要进一步细化。旅客信息系统为例进一步细化 以其中的查询旅客信息功能为例进一步细化,如图1.3
旅客信息系统航班信息系统航班系座统位信息取票信息系统退票信息系统 图1.2机票销售系统总框架图
旅客信息系统 旅客订单号旅客姓名电话号码身份证号码 图1.3查询旅客信息功能
航班信息系统 航班号出发地目的地起飞时间 4
图1.4航班信息系统细化
2009050704
航班座位信息系统
图1.6取票通知系统细化
座位号航班号座位信息机票类型 旅客姓名 订单号旅客姓名 取票信息系统 图1.5 航班座位系统细化
取票时间 退票信息系统 电话号码省份证号码
图1.7退票信息系统细化
5
2009050704
二 . 详细设计
2.1系统所需要的表
表2-1旅客信息系统的结构
字段名 数据类型 Varchar Decimal Decimal Varchar Varchar 长度 50 50 50 约束 主键 不为空 不为空 不为空 不为空 描述 旅客姓名 身份证号 电话号 性别 工作单位 passager name id telephone number sex work department 表2-2 退票信息系统的结构
字段名 数据类型 Decimal Varchar Decimal Varchar 长度 50 50 约束 主键 不为空 不为空 不为空 描述 订单号 旅客姓名 电话号 身份证号 order form passager name telephone number id 表2-3 航班信息表系统的结构
字段名 Flight number Take off place destination Flight time 数据类型 Decimal Varchar Varchar Time 长度 50 50 约束 主键 不为空 不为空 不为空 描述 航班号 起飞地 目的地 起飞时间 表2.4取票通知单系统的结构
字段名 数据类型 Varchar Time Decimal Decimal Varchar 长度 50 50 约束 主键 不为空 不为空 不为空 不为空 描述 旅客姓名 取票时间 航班号 座位号 机票类型 passager name Get ticket time flight number Seat number Flight ticket type
表2.5 航班座位信息表
字段名 数据类型 Decimal 长度 约束 主键 描述 座位号 Seat number 6
2009050704
Flight number Decimal Varchar Varchar 50 50 不为空 不为空 不为空 航班号 座位信息 机票类型 Seat message Flight ticket type
2.2 系统各个模块的流程图
7
初始化com坏境 创建连接对象实例 打开数据库 执行SQL语句 输入用户名及密码 用户是否否 存在? 是 密码是否否 正确? 是 进入管理界面 2.6 登陆模块流程图
2009050704
创建ADO对象 对象初始化 执行SQL语句 While循环 判断指针是否指向最后 否 是 输出一行信息 指针指向下一个 结束循环 释放ADO对象 结束
2.7 查询模块流程图
8
创建ADO对象 对象初始化 执行SQL语句 输入数据 增加数据 更新窗口
2.8 增加数据功能模块流程图
创建ADO对象 对象初始化 执行SQL语句 选择删除数据 删除数据 更新窗口
2.9 删除功能模块流程图
9
2009050704
创建ADO对象 对象初始化 执行SQL语句 选择要修改的行 修改数据 更新窗口
2.10修改功能模块流程图
2009050704
2.3源文件关键代码
1. // Ado.cpp
CAdo::CAdo()
{ }
CAdo::~CAdo() { }
void CAdo::OnInitADOConn()
{ ::CoInitialize(NULL); //初始化COM环境 try { m_pConnection.CreateInstance(\ //创建连接对象实例 _bstr_t strConnect= \ pwd=123;\ m_pConnection->Open(strConnect,\打开数据库 } catch(_com_error e) { AfxMessageBox(e.Description()); //弹出错误 } }
BOOL CAdo::ExecuteSQL(_bstr_t bstrSQL) { try { if(m_pConnection==NULL) OnInitADOConn(); m_pConnection->Execute(bstrSQL,NULL,adCmdText); //执行SQL语句 return TRUE; } catch(_com_error e) { AfxMessageBox(e.Description() ); return FALSE; } }
_RecordsetPtr& CAdo::OpenRecordset(CString sql) { ASSERT(!sql.IsEmpty()); //sql语句不能为空 try { m_pRecordset.CreateInstance(__uuidof(Recordset)); //创建记录集对象实例 m_pRecordset->Open(_bstr_t(sql), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); //执行sql得到的记 录集
10
2009050704
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } }
SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon return TRUE; // return TRUE unless you set the focus to a control }
void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } }
void CMyDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } }
HCURSOR CMyDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon;
16
2009050704
}
void CMyDlg::OnOK() { UpdateData(true); m_sUSER.TrimRight(\
if ( \
{ AfxMessageBox(_T(\请填写用户名\ return; } CAdo m_Ado; _variant_t Holder,user, strQuery; m_Ado.OnInitADOConn(); CString sql=\ m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql); CString sPWD,muser; while(!m_Ado.m_pRecordset->rsEOF) { user=m_Ado.m_pRecordset->GetCollect(\ muser=user.vt==VT_NULL?\ if ( muser==m_sUSER ) { Holder = m_Ado.m_pRecordset->GetCollect(\ sPWD = Holder.vt==VT_NULL?\ if(0!=sPWD.Compare(m_sPWD)) { AfxMessageBox(\输入密码不正确,请重新输入\ MB_ICONEXCLAMATION); return; } Cdlg di; di.DoModal(); } m_Ado.m_pRecordset->MoveNext(); } if ( muser!=m_sUSER ) { AfxMessageBox(\用户名不存在,请重新输入\ return; } }
2.4头文件关键代码
1 . //StdAfx.h:
#if !defined(AFX_STDAFX_H__1E743018_E961_41F4_B46C_7C6F24315B30__INCLUDED_) #define AFX_STDAFX_H__1E743018_E961_41F4_B46C_7C6F24315B30__INCLUDED_ #if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000
17
2009050704
#define VC_EXTRALEAN #include #include #include #include
#ifndef _AFX_NO_AFXCMN_SUPPORT #include #endif
#import \rename(\ #endif
2 机票销售系统.h:
#if !defined(AFX__H__91673FF1_C875_4E49_B0E8_1371EAA60C3F__INCLUDED_) #define AFX__H__91673FF1_C875_4E49_B0E8_1371EAA60C3F__INCLUDED_ #if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000 #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif
#include \ // main symbols class CMyApp : public CWinApp {
public: CMyApp(); public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() };
#endif
3 机票销售系统dlg.h
#if !defined(AFX_DLG_H__06ED6489_0661_4E79_B2E0_73F5625066C3__INCLUDED_) #define AFX_DLG_H__06ED6489_0661_4E79_B2E0_73F5625066C3__INCLUDED_
#if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000 class CMyDlg : public CDialog { public: CMyDlg(CWnd* pParent = NULL); // standard constructor enum { IDD = IDD_MY_DIALOG };
18
2009050704
CString m_sUSER; CString m_sPWD; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support protected: HICON m_hIcon;
virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); virtual void OnOK(); DECLARE_MESSAGE_MAP() };
#endif
三.数据库的运行测试和结果
图3.1登陆界面
19
2009050704
图3.2 用户界面
图3.3 航班信息查询,更新图
3.4 航班座位信息查询
20
2009050704
图3.5 取票信息查询,更新
图3.6 退票信息查询,更新
4.收获和体会
这次课程设计我们组选择了机票销售这个题目,它主要用于实现机票销售人性化,关于这个课程设计,可以说来的相当不容易,由于初次接触SQL,许多地方都不懂,在网上下载了一个SQL2008之后,老是安装有问题,不知道出错在什么地方,安装完后没有SQL server management studio这个程序,经过不懈的努力,最后终于成功搞定了SQL2008,之后就是机票销售系统的具体实现,系统所具有的功能
21
2009050704
怎样实现,都一一设计代码然后运行、修改、调试。
最后,整个系统基本上实现了所有要求,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。如果某方面出现问题,旅客可以持有效证件去飞机场退票。
初次做数据库课程设计难免有些不足之处,但是学习就是一个不断提高的过程,相信经过长时间、多次数的锻炼,我们以后都能设计出比较满意的项目。通过这次课程设计,我觉得我对数据库有了更进一步更深刻的认识,比如:对表内一些字段的约束,关系等的运用已经比较熟练,巩固了数据库的知识。而且也学会了SQLserver的一些基础应用,在以后的时间中,一定还会运用到高级的东西,这次课程设计为以后打下了基础。
22
正在阅读:
数据库课程设计03-19
有意义的活动作文400字06-30
冀教版小学英语三、四年级单词汇总08-10
大学生职业规划书 - 图文06-05
医疗废物流失、泄漏、扩散 和意外事故发生的应急预案09-19
房企代垫首付涉税处理06-17
这个故事让我懂得勤作文350字07-15
含羞草作文600字04-01
铁路栈桥吊装专项施工方案07-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 课程
- 数据库
- 设计
- 互联网+在线教育云平台项目技术解决方案 - 图文
- 写给高中母校的感谢信
- 2013 年一级建造师
- 安徽省赛口中学2018-2019高一4月月考数学试卷--附答案 - 图文
- 2013届高三(山东)一轮复习单元测试:必修3第5单元:近现代中国
- 2.2 向心力的应用 学案
- 2013中国食品行业整合并购十大事件
- REACH声明
- 14我应该感到自豪才对上课教案
- 2018-2019年教师资格中学教师中学教育学省考教育目的概念和层次
- 文艺常识全真模拟试题十二
- 样板间工作流程及服务标准
- 上海交通大学网院财务管理复习大纲2014最新
- 笔记本电脑知识
- 2015-2016学年度最新苏教版三年级数学下册期末测试卷(三套)
- 一年级上册解决问题汇总(1) - 图文
- 初中班主任工作经验交流(精选多篇)
- 技术文件电子数据文件管理作业指导书
- 数字频率计数器电子设计
- 变压器检修规程 - 图文