《火车票购票系统实验报告(共17页).doc》由会员分享,可在线阅读,更多相关《火车票购票系统实验报告(共17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上教师评阅意见: 签名: 年 月 日实验成绩:火车票售票系统一、 实验目的:1、 熟练掌握数据库设计原理及模型构建软件PowerDesignerd的使用。2、 熟练掌握Visual Studio 2008的使用。3、 实现方便、快捷使用火车票购票系统查票、购票、退票等功能。4、 实现系统的安全性设置,使系统具有一定的维护功能。二、实验设备及软件:PC机一台、Visual Studio 2008、SQL SERVER 2000三、 需求分析:3.1 功能分析:火车票售票系统票价查询退 票余票查询购票、预约新用户注册功能模块图1、 新用户注册模块:新用户注册需要新用户填入自
2、己的基本信息包括用户名、密码和确认密码),详细的购票需要信息(包括姓名、性别、出生日期、证件类型、证件号码)以及联系方式(包括手机号码、电子邮箱、地址),只有当所有的信息格式填写正确和填写完全后才能注册成功。2、 购票/预订模块: 购票/预订模块需要用户登录后,输入需要购票的出发站、目的站和出发日期后即可显示可购票,选择自己需要的票即可购票,点击购票则购票成功。3、 余票查询模块: 余票查询模块需要用户在登录进入售票系统后点击余票查询按钮,按照要求填入出发地、目的地,选择出发日期,选择填入出发车次,完成输入后即可在界面下方看到所有满足要求的查询结果。4、 退票模块: 退票模块需要用户在登录后,
3、进入退票界面,即可显示登录用户所有订单,选择需要退票的订单,点击退票按钮即可退票。5、 票价查询模块:票价查询模块同样需要用户在登录进入售票系统后点击余票查询按钮,按照要求填入出发地、目的地,选择出发日期,选择填入出发车次,完成输入后即可在界面下方看到所有满足要求的查询结果。3.2 流程图:火车票售票系统业务流程图如下图所示:1、 新用户注册及登录流程图:新用户 填写 失败注 册 信 息 提交注 册 成 功2、购票/预订流程图:用 户 填写 失败出 发 日 期目 的 站出 发 站 成功购 票 用 户2、 余票查询流程图: 填写出 发 日 期目 的 站出 发 站 显示余 票 信 息用 户3、 退
4、票流程图: 登陆退票界面 失 败 显示所 有 订 单 成功退 票用 户4、 票价查询流程图: 登陆票 价 查 询 显示车 票 票 价四、 数据库结构设计:4.1 E-R模型的建立: E-R模型由新用户注册、登录界面、购票、余票查询、票价查询这五个实体构成。1. 概念模型设计:2. 物理模型设计:4.2 数据库设计:五、 系统实现:5.1 主要界面:1. 主界面:2. 新用户注册界面:3. 登录界面:4. 购票界面:5. 票价查询界面:6. 余票查询界面:5.2 主要代码:using System;using System.Collections.Generic;using System.Com
5、ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 火e车票订?票系统? public partial class 主界?面? : Form /主界?面? ZJM = new 主界?面?(); public 主界?面?() InitializeComponent(); private void pictureBox1_Click(object sender, EventArgs e) private
6、void 主界?面?_Load(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e) 登?陆?界?面? a = new 登?陆?界?面?(); a.Show(); private void button1_Click(object sender, EventArgs e) 新?用?户注痢?册 a = new 新?用?户注痢?册(); a.Show(); private void pictureBox1_Click_1(object sender, EventArgs e) priva
7、te void toolTip1_Popup(object sender, PopupEventArgs e) private void textBox1_TextChanged(object sender, EventArgs e) private void textBox2_TextChanged(object sender, EventArgs e) private void domainUpDown1_SelectedItemChanged(object sender, EventArgs e) private void groupBox1_Enter(object sender, E
8、ventArgs e) private void pictureBox1_Click_2(object sender, EventArgs e) private void pictureBox2_Click(object sender, EventArgs e) private void pictureBox4_Click(object sender, EventArgs e) private void button4_Click(object sender, EventArgs e) 登?陆?界?面? a = new 登?陆?界?面?(); a.Show(); private void bu
9、tton5_Click(object sender, EventArgs e) 登?陆?界?面? a = new 登?陆?界?面?(); a.Show(); private void button3_Click(object sender, EventArgs e) 登?陆?界?面? a = new 登?陆?界?面?(); a.Show(); using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.L
10、inq;using System.Text;using System.Windows.Forms;namespace 火e车票订?票系统? public partial class 登?陆?界?面? : Form public 登?陆?界?面?() InitializeComponent(); private void 登?陆?界?面?_Load(object sender, EventArgs e) private void panel2_Paint(object sender, PaintEventArgs e) private void panel1_Paint(object sende
11、r, PaintEventArgs e) private void pictureBox1_Click(object sender, EventArgs e) private void textBox2_TextChanged(object sender, EventArgs e) private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) private void label2_Click(object sender, EventArgs e) private void button1
12、_Click(object sender, EventArgs e) int i = 0; if (textBox1.Text = 223) i += 1; if (textBox2.Text = 223) i += 1; if (i = 2) 余?票查询 d= new 余?票查询(); d.Show(); Close(); else MessageBox.Show( 账?号?或者?密码?有瓺误!?登?录?失骸?败悒?!?); i = 0; return; private void textBox1_TextChanged(object sender, EventArgs e) private
13、 void button2_Click(object sender, EventArgs e) 新?用?户注痢?册 a = new 新?用?户注痢?册(); a.Show(); Close(); using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.Sql;usin
14、g System.Data.SqlClient;using System.Data.SqlTypes;namespace 火e车票订?票系统? public partial class 新?用?户注痢?册 : Form public 新?用?户注痢?册() InitializeComponent(); private SqlConnection con;/表括?示?一?个?到? SQL Server 数簓据Y库a的?打洙?开a的?连?接。 此?类?不?能被?继承D。 private SqlDataAdapter com, com1;/DataAdapter对?象在DataSet与?数簓据Y之?
15、间?起e桥?梁作痢?用? private SqlCommand com2; private string connect = server=;uid=sa1;pwd=123;database=m_student; /string strConn=uid=账?号?;pwd=密码?;database=数簓据Y库a;server=服务?器;/SQL Server链?接字?符?串? private string s = select * from cf; /string strSQL = SELECT * FROM 表括?名?1 ; /要癮执行D的?SQL语?句? private string s1
16、= select * from student; private DataSet ds = new DataSet(), ds1 = new DataSet(); private DataTable dt = new DataTable(), dt1 = new DataTable(); private void Form2_Load(object sender, EventArgs e) private void label10_Click(object sender, EventArgs e) private void label5_Click(object sender, EventAr
17、gs e) private void textBox5_TextChanged(object sender, EventArgs e) private void label7_Click(object sender, EventArgs e) private void textBox6_TextChanged(object sender, EventArgs e) private void textBox10_TextChanged(object sender, EventArgs e) private void label15_Click(object sender, EventArgs e
18、) private void radioButton2_CheckedChanged(object sender, EventArgs e) private void radioButton1_CheckedChanged(object sender, EventArgs e) private void label20_Click(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e) 主界?面? f1 = new 主界?面?(); f1.Show(); this.Hide(); pr
19、ivate void label4_Click(object sender, EventArgs e) private void label14_Click(object sender, EventArgs e) /* private void button1_Click(object sender, EventArgs e) */ private void button1_Click(object sender, EventArgs e) con = new SqlConnection(connect); con.Open(); com = new SqlDataAdapter(s, con
20、); com.Fill(ds, 保馈?存?); dt = ds.Tables保馈?存?; int i = 1; int n = dt.Rows.Count; com1 = new SqlDataAdapter(s1, con); com1.Fill(ds1, 添?加1); /da.Fill(ds,自?定义?虚拟a表括?名?);/使?用?DataAdapter的?Fill方?法?填?充?),?调獭?用?SELECT命令? dt1 = ds1.Tables添?加1; int i1 = 1; int n1 = dt1.Rows.Count; if (i = 0 & i1 = 0) if (textB
21、ox3.Text != & textBox4.Text != ) DateTime t1; t1 = Convert.ToDateTime(textBox4.Text); com2 = new SqlCommand(insert into cf values ( + textBox1.Text + , + textBox2.Text + , + textBox3.Text + , + t1 + ), con); com2.ExecuteNonQuery(); con.Close();/ConnSql.Close ();/关?闭?数簓据Y库a MessageBox.Show(添?加成功|!?!?
22、); else MessageBox.Show(添?加失骸?败悒?!?!?); 六、 心得体会:总的来说,通过这次课程设计我们感触很多。第一感觉就是理论和实践的差距远远大于人的想象;课堂上觉得很简单的东西,真到了要做的时候,会发现难于下手。常常为了解决一个问题而长时间停滞不前,但经过我们小组成员的商量讨论、查阅资料和不断的尝试、思考,最后这些问题都得到了解决。首先我们进行的是对火车售票管理系统进行系统分析:如需求分析和开发工具选择,功能分配等等。考虑要实现整个程序大致需要的几个模块画数据流图和数据字典。然后在概念模型设计中,将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局
23、部应用中的实体、实体的属性,标识实体的码,确定实体之间的联系及其类型,设计E-R图。在逻辑结构设计阶段,把概念结构设计阶段设计好的基本E-R图转换为关系模型。接着进行数据库的建立还有代码的书写:这是一个至关重要而且需要反复修改的环节,在此环节中又发现总体设计和模块思想会存在很多问题,需要不断改进。如何实现各模块功能,达到预期效果也将是一项繁复的工作。最后还要进行测试系统,发现所有可能出现的问题。通过这次课程设计,使我们更加熟悉地掌握了C#及VS的运用,帮助我们熟悉了更多连接数据库及与数据库有关方面的操作,从中学到了许多解决实际问题的经验。同时也加强了与同学的合作,学会了团结协作地去完成一个项目。在以后的学习中,我们会多学习,多实践,在实践中发现问题,增强自己的实力。七、 参考文献:1 数据库系统概论 王珊,萨师煊 高等教育出版社2 数据库系统原理与应用SQL Server 2000 夏冰冰 国防工业出版社3 数据库系统原理与应用教程 李春葆 清华大学出版社八、 具体分工:界面制作:袁路洋E-R模型:郭雅馨代码编写:赵文聪报告写作:古荣凤专心-专注-专业