一、需求分析 .............................................. 2
1.1 功能需求 .......................................... 2
1.2 数据分析 .......................................... 2
二、 详细设计(系统功能、模块划分及详细设计) .............. 4
2.1 整体结构 .......................................... 4
2.2 主界面设计 ........................................ 4
2.3 登录模块 .......................................... 4
2.4 注册模块 .......................................... 6
2.5 购票 .............................................. 6
2.6 退票 .............................................. 6
2.7 查询个人信息 ...................................... 6
2.8 修改密码 .......................................... 6
三、 数据库设计 ........................................... 7
3.1 SQL SERVER 2005简介 .............................. 7
3.2 概念设计 .......................................... 7
3.3 逻辑设计 .......................................... 8
四、 系统实现 ............................................ 10
4.1 购票 ............................................. 10
五、总结 ................................................. 12
参考文献 ................................................. 13
一、需求分析
1.1 功能需求
本网上订票系统应该具备如下功能:
1.查询
分为对车次信息的查询和客户对已订车票信息的查询。要求:
1)对车次的查询,可以按照发车车次进行查询;
2)车次信息包括:车号、出发地、目的 地、发车日期、开出时刻、票价。
3)座位类型设定。
4)车次信息只允许用户查询,不能修改。
2.订票
通过查询系统,客户根据自己的需求到满意的车次,再输入个人信息后直
接通过网上订票确定已预订选中的车票。要求:
订票记录应包括:会员名、车号、发车日期、订购日期、订购票数、总价。
3.退票
可退票,通过查询系统,客户可以根据自己的名字到自己的订票信息,通
过退票模块退去已购车票。
4.注册
用户可通过输入自己的基本信息完成注册。
1.2 数据分析
1、总体数据流程图
登录,确定访问权限
图1-1
退出
Y
结束
Y
订票
订票
界面
查询 查询
车次 订票
信息 信息
选择订
票窗口
主界面
登录框
开始
Y
选择查询
窗口
Y
查询
界面
选择退
票窗口
Y
退票
界面
Y
订票 退票
退票
二、详细设计(系统功能、模块划分及详细设计)
2.1 整体结构
总体设计阶段完成了软件的结构设计,划分了模块,并规定了各个模块的功
能及他们之间的联系。在此之后,按软件开发工程化的观点,应进入系统的详细
设计阶段,即系统实现。该阶段的根本目标是确定应该怎样实现所要求的系统,
给出软件模块结构中各个模块的内部过程描述。在本系统中主要包括前台销售和
后台管理两部分。
2.2 主界面设计
通过DIV+CSS对系统各个页面进行布局,设计如下所示网站首页:
图2-1
2.3 登录模块
首先,系统检验用户名,用户名是否存在,如果不存在则重新进入开始状态,
让用户重新输入拥护用户名和密码,如果存在则检验密码是否匹配,如果不匹配
则重新返回开始的状态,提示用户重新输入用户名和密码,如果匹配,则进入相
应界面,具体的流程如图2-2:
是否匹
是
否
开始
否
是否存
是
输入用户
输入密码
进入
图2.3
代码实现如下
protected void login_click(object sender, EventArgs e)
{
if ( == "")
= "用户名必填";
else
{
if ( == "")
= "密码必填且不少于六位";
else
{
if ( < 6)
= "密码不少于六位";
else
{
string str =
ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
SqlCommand comm = new SqlCommand();
tion = conn;
();
dText = string.Format("select * from users where username='{0}'
and psw='{1}'",,);
SqlDataReader sqldr = eReader();
int i=0;
while (())
{
i++;
}
if (i == 0)
{
("");
}
else
{
("");
Session["name"]=;
Session["psw"] = ;
("");
//ct("");
}
}
}
}
2.4 注册模块
用户在注册模块上,需要输入用户名,密码,姓名,性别,出生年月,手机
号码,电话号码,,如果用户名已被注册,则不能注册,如果没有被注
册,则可以注册,其他的属性也有相应的约束,如果满足所有的约束,则可以注
册,
2.5 购票
用户登录以后,输入相应的搜索条件,可以查询出相应的列车信息,用户可
以通过点击每列后面的按钮,进行订票,然后生成一条记录插入到相应的表中。
2.6 退票
用户在登陆以后,点击退票,自动查询出自己定的车票信息,然后通过每列
后面的按钮,进行退票,然后从相应的表中删除此条信息。
2.7 查询个人信息
用户在登录以后,点击查询个人信息,用户可以查看自己的基本信息。
2.8 修改密码
用户在登录以后,点击查询修改密码,用户可以修改自己的密码。
三、数据库设计
3.1 SQL SERVER 2005简介
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和
Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在
Windows T 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳
了,Microsoft 将SQL Server移植到Windows T系统上,专注于开发推广SQL
Server 的Windows T 版本。Sybase 则较专注于SQL Server在UⅨ操作系统上
的应用。
Microsoft SQL Server 2005 数据引擎是该企业数据管理解决方案的核心。
此外 Microsoft SQL Server 2005 结合了分析、报表、集成和通知功能。这使您
的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Web
services、Dashboard 和移动设备将数据应用推向业务的各个领域。
3.2 概念设计
经过概念分析,得出系统中包含的实体包括车票、用户、账单。现给出各实
体的分E—R图。
真实姓名 用户邮箱
用户名
用户密码
用户
性别
出生年月
图3-1用户
类型
用户名 订单号
订单
车次
图3-2 订单
3.3 逻辑设计
到达时间
车票终点
单价
出发时间
车票起点
车票
数量
日期
类型
车票车次
图3-3车票
根据局部E—R图,得出各实体的字段信息,列表如下:
表3.1 用户表
字段名 字段类型 可否为空 解释
username varchar(15) ot ull 登录帐号(主键)
psw Varchar(10) ot ull 密码
name Varchar(6) ot ull 真实姓名
sex nchar(10) ot ull 性别
Born_date smalldatetime ull 出生年月
Cell_phone decimal(11, 0) ot ull 手机号码
tel int ull 电话号码
email Varchar(20) ot ull 邮箱
表3.2 车票表
字段名 字段类型 可否为空 解释
tnamber varchar(6) ot ull 车次(主键)
type char(10) ot ull 类型
s_place ot ull 出发地
e_place ot ull 目的地
price float ot ull 价格
rank char(10) ot ull 等级
conditionin
g
number int ot null 余票
s_time Varchar(6) ot null 发车时间
e_time Varchar(6) ot null 到达时间
date ot null 日期
me
Varchar(10
)
Varchar(10
)
char(10) ot ull 空调
smalldateti
表3.3 订单表
字段名 字段类型 可否为空 解释
id int ot ull 订单号(主键)
tnamber Varchar(6) ot ull 车次
username ot ull 用户名
type char(10) ot null 类型
Varchar(15
)
四、系统实现
4.1 购票
用户查询出来车票后,通过每行后面的按钮,进行订票。
图4.7
代码实现如下
protected void Page_Load(object sender, EventArgs e)
{
if (!Back)
{
if (Session["mypage_child_buyticket"] == null)
{
("mypage_child_buyticket", false);
}
getdata();
}
}
public void getdata()
{
string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
SqlCommand comm = new SqlCommand(string.Format("select * from ticket where number>0"),
conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
(ds, "ticket");
this.urce = [0].DefaultView;
this.DataBind();
}
protected void insert_Click(object sender, EventArgs e)
{
string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
SqlCommand comm = new SqlCommand();
tion = conn;
int row = ((GridViewRow)((Button)sender).amingContainer).RowIndex;
dText = string.Format("insert into bill1(tnamber,username,type)
values(@tnamber,@username,@type)");
hValue("@tnamber",
((Button)sender).ng());
hValue("@username", Session["name"]);
hValue("@type",[row].Cells[1].ng());
try
{
();
if (eonQuery() > 0)
{
("");
updateticket(((Button)sender).ng(),
[row].Cells[6].ng(), [row].Cells[1].ng());
}
else
("");
}
catch (Exception ex) { }
getdata();
}
protected void updateticket(string tnamber,string number,string type)
{
string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
SqlCommand comm = new SqlCommand();
tion = conn;
dText=string.Format("update ticket set number='{0}' where tnamber='{1}' and
type='{2}'",Convert.ToInt32(number)-1,tnamber,type);
();
eonQuery();
();
comm = null;
}
五、总结
二十一世纪是一个高速、快捷的年代。在这个高速发展的年代里,速度成了
我们追求的目标;二是提高工作效率;三是降低成本。因此,办公自动化的高速
度、高效率、高便捷、低成本便成了我们的目的,为此开发了这个火车站网上订
票系统。本系统可以大大简化退票、订票、查询等十分繁琐的工作,简化办公环
节,提高工作效率,而且易学、易用,满足客户需求。
这次系统的设计从最开始的可行性研究,需求分析,到系统的总体设计,详
细设计,再到编码、测试等的一个整体过程,使我真正明白了要做一个软件的难
度,特别是要做一个真正可用的软件,就更难了。在老师和同学的帮助下,我把
以往所学的软件工程、数据库知识结合起来,利用VS开发工具,加上SQL Server
数据库系统,完成了本次课程设计,尽量使它能满足各个方面的要求。当然,我
的个人能力有限,还有很多不足的地方,敬请谅解。
在这次课程设计过程中我遇到了不少的难题,比如数据库操作问题,界面设
计问题,函数使用与实现问题,消息处理问题等等。其中,最关键的是在最初对
系统的需求分析做的不透彻,导致后续设计工作乃至编码时的修改工作量变大。
以至于为了能按时完成设计任务,我一连度过了几个通宵。尤其,越接近结束,
就越是时常出现问题。所以,通过这次课程设计我深刻体会到软件工程还是必须
学精通点、学透彻点。
通过这次课程设计,我学会了如何对所学课程综合运用,巩固了软件工程的
一般规范,对数据库的使用也有了更进一步了解。总体来说,课程设计让我学了
不少知识。
我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成
果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感谢指导老师和
同学在这次课程设计中对我的帮助。
参考文献
[1] 陈伟,卫林著,3.5网站开发实例教程[M],北京:清华
大学出版社
[2] 孙卫琴,李洪成著,Tomcat与Java Web开发技术祥解[M],北
京:电子工业出版社,2006.
[3] 郑宇军.C#语言程序设计基础[M].北京:清华大学出版社,2008
[4] 郑人杰.软件工程[M].北京:清华大学出版社,1999
[5] 薛锦云.程序设计方法[M].北京:高等教育出版社,2001
[6] 麻志毅.面向对象分析与设计[M].北京:机械工业出版社,2008
[7] 等.数据库系统导论.北京:机械工业出版社.2004
本文发布于:2023-05-22 22:14:15,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/falv/fa/83/96641.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |