長(zhǎng)途汽車管理系統(tǒng)課程設(shè)報(bào)告
《長(zhǎng)途汽車管理系統(tǒng)課程設(shè)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《長(zhǎng)途汽車管理系統(tǒng)課程設(shè)報(bào)告(25頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 1 概述 隨著時(shí)代的進(jìn)步,科學(xué)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)的應(yīng)用已經(jīng)設(shè)計(jì)到生活的方方面面,有的應(yīng)用與國(guó)防領(lǐng)域,有的應(yīng)用于教育領(lǐng)域,有的應(yīng)用于商業(yè)領(lǐng)域,與之而來的是各種各樣的軟件,這些軟件給人們提供了方便。人們也享受著這些軟件給自己帶來的便利,足不出戶即可做很多很多的事情,可以網(wǎng)上購(gòu)買衣服,充值話費(fèi)等。在春節(jié)將要來臨之際,很多學(xué)生都要訂票回家,有很多學(xué)生回家坐火車,訂火車票,當(dāng)然也有不少學(xué)生回家坐汽車,訂長(zhǎng)途汽車票。為了方便訂長(zhǎng)途汽車票回家的學(xué)生,也為了方便長(zhǎng)途汽車方面的運(yùn)營(yíng)。我特地做了一個(gè)長(zhǎng)途汽車管理系統(tǒng),這個(gè)系統(tǒng)對(duì)于回家的學(xué)生來說主要是為了查看長(zhǎng)途汽車的相關(guān)信息,從而避免因訂票緊張
2、而訂不到回家的長(zhǎng)途汽車票,同時(shí)學(xué)生還可以通過這個(gè)軟件來查看自己所訂的票數(shù)和乘坐的長(zhǎng)途汽車編號(hào)、車次等相關(guān)信息;而對(duì)于長(zhǎng)途汽車運(yùn)營(yíng)商來說,可以由系統(tǒng)管理員來添加新的長(zhǎng)途汽車方面的信息,比如起始點(diǎn)和終點(diǎn)、起始時(shí)間等相關(guān)的重要信息。也可以刪除某條長(zhǎng)途汽車的信息,更改長(zhǎng)途汽車相關(guān)信息等等。 2 需求分析 在春節(jié)快來臨之際,很多在遠(yuǎn)方求學(xué)的學(xué)生都希望回家過年,他們希望早點(diǎn)訂到自己回家的票,不至于因訂票緊張而錯(cuò)失回家的最后一班車,有很多學(xué)生回家乘坐火車,不少學(xué)生回家乘坐長(zhǎng)途汽車,長(zhǎng)途汽車雖然票價(jià)貴了點(diǎn),但是比火車速度快,也沒有火車擁擠,可以讓那些希望早點(diǎn)回家的同學(xué)早點(diǎn)的回家,避免長(zhǎng)時(shí)間乘坐火
3、車,學(xué)生乘坐長(zhǎng)途汽車可以直達(dá)目的地,不需要中途到站停車。這個(gè)長(zhǎng)途汽車管理系統(tǒng)軟件一方面是針對(duì)需要訂購(gòu)長(zhǎng)途汽車的學(xué)生服務(wù),學(xué)生可以通過此軟件來查看目前有哪些長(zhǎng)途汽車可以回家的,還可以查看票價(jià),實(shí)現(xiàn)訂票;另外一方面可以給管理員來添加新的長(zhǎng)途汽車信息,刪除沒有的長(zhǎng)途汽車信息,修改長(zhǎng)途汽車信息。這個(gè)軟件主要是針對(duì)上面兩個(gè)方面進(jìn)行設(shè)計(jì)的,基本上滿足了學(xué)生和管理員的需求。 3 系統(tǒng)設(shè)計(jì) (一)E-R圖 (二)關(guān)系模式 Lb(cn,lno,lkind,lsp,lep,lst
4、,lnt,ln,price) Ps(id,pwd,slevel) Bd(lno,id,cn,nm) (三)表的定義: 1.Lb表 字段 類型 主鍵 非空 說明 cn nvarchar(8) Y Y 車次 lno nvarchar(6) N Y 長(zhǎng)途汽車編號(hào) lkind nvarchar(8) N Y 長(zhǎng)途汽車種類 lsp nvarchar(8) N Y 起始點(diǎn) lep nvarchar(8) N Y 終點(diǎn) lst
5、nvarchar(8) N Y 起始時(shí)間 lnt nvarchar(10) N N 所需時(shí)間 ln int N Y 剩余票數(shù) price int N Y 票價(jià) 2.Ps表 字段 類型 主鍵 非空 說明 id nvarchar(20) Y Y 用戶名 pwd nvarchar(20) N Y 密碼 slevel nvarchar(8) N Y 權(quán)限 3.Bd表 字段 類型 主鍵 非空 說明 lno nvarchar
6、(6) N Y 長(zhǎng)途汽車編號(hào) id nvarchar(20) N Y 用戶名 cn nvarchar(8) N Y 所選車次 nm int N Y 票數(shù) 附:Bd表的主鍵是(lno,id,nm) 4 系統(tǒng)實(shí)現(xiàn)及界面流程 通過建立三個(gè)表格:Lb,Ps,Bd,主鍵、外鍵之間的聯(lián)系來創(chuàng)建數(shù)據(jù)庫(kù),在系統(tǒng)中第一個(gè)界面主要是給登陸和注冊(cè)用的,普通乘客查看信息必須先注冊(cè),用注冊(cè)的賬號(hào)和自己設(shè)的密碼來登陸,登陸之后進(jìn)入第二個(gè)界面,可以查看長(zhǎng)途汽車信息,訂票,查看自己訂的長(zhǎng)途汽車票數(shù)
7、和車次等;如果是管理員,則無需注冊(cè),數(shù)據(jù)庫(kù)里面已經(jīng)有管理員的賬號(hào)了,管理員進(jìn)入第二個(gè)界面,可以添加長(zhǎng)途汽車信息,也可以更改長(zhǎng)途汽車信息,刪除長(zhǎng)途汽車信息,但是訂票對(duì)管理員是不允許的,當(dāng)然管理員也可以修改自己的密碼,由于管理員無訂票功能,故管理員也無需查看當(dāng)前用戶訂票信息。 流程圖: 已經(jīng)注冊(cè)? 注冊(cè)新用戶 否 輸入用戶名和密碼 是 確認(rèn)密碼 登錄 選擇身份 兩次輸入一致?
8、 重新輸入 否 管理員 普通乘客 是 注冊(cè)成功 輸入用戶名和密碼 密碼正確? 重新輸入密碼 否 是 長(zhǎng)途汽車查詢界面 查詢長(zhǎng)途汽車信息 修改、刪除、添加信息(管理員) 訂票(普通乘客)
9、 系統(tǒng)各功能模塊的介紹 (1)用戶登錄模塊設(shè)計(jì) (a)登陸窗口如圖1; 圖1.登錄界面 (b)登錄身份選擇如圖2 圖2.用戶身份選擇 (c)注冊(cè)界面如圖3 圖3.注冊(cè)界面 (d)注冊(cè)后提示如圖4 圖4.注冊(cè)后提示 (f)注冊(cè)成功提示如圖5 圖5.提示注冊(cè)成功 (2)長(zhǎng)途汽車查詢模塊設(shè)計(jì) (a) 普通乘客登錄成功后進(jìn)入界面如圖6 圖6.普通乘客進(jìn)入長(zhǎng)途汽車查詢界面 (b)查詢長(zhǎng)途汽車信息如圖7 圖7.查詢長(zhǎng)途汽車信息 (c)訂票提示成功如圖8 圖8.訂票提示成功 (d)查看用戶訂票信息 圖9.查詢用戶訂票信息
10、 (e)用戶密碼修改提示如圖10 圖10.用戶密碼修改提示 (f)密碼修改成功后提示如圖11 圖11.密碼修改成功后提示 (g)管理員登錄長(zhǎng)途汽車管理系統(tǒng)界面如圖12 圖12.管理員登錄長(zhǎng)途汽車管理界面 (h)管理員查詢長(zhǎng)途汽車信息如圖13 圖13.管理員查詢長(zhǎng)途汽車信息 (i)管理員修改長(zhǎng)途汽車信息如圖14、圖15 圖14.管理員修改后提示 圖15.管理員修改成功后 (j)管理員刪除長(zhǎng)途汽車信息如圖16、圖17 圖16.管理員刪除長(zhǎng)途汽車信息提示 圖17.管理員刪除長(zhǎng)途汽車信息成功后 (k)管理員添加長(zhǎng)途汽車信息如圖18、圖19
11、 圖18.添加長(zhǎng)途汽車后提示信息 圖19.添加成功后信息 5 源代碼 form1窗口: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace longbus { public partial class
12、 Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string use = Login1(); Login2(use); } private void Login2(string use)
13、 { if (use == "管理員") { SqlConnection cn = new SqlConnection("server=.;database=longbus;integrated security=true"); cn.Open(); string id = textBox1.Text; string pwd = textBox2.Text; stri
14、ng sql = " Select count(*) from Ps where id=" + id + " and pwd=" + pwd + ""; SqlCommand cmd = new SqlCommand(sql, cn); int result = (int)cmd.ExecuteScalar(); string sql1 = " Select count(*) from Ps where id=" + id + " and pwd=" + pwd + "and sle
15、vel=" + use + ""; SqlCommand cmd1 = new SqlCommand(sql1, cn); int quanxian = (int)cmd1.ExecuteScalar(); cn.Close(); if (result > 0) { Form2 form2 = new Form2(); form
16、2.p = 1; form2.Show(); form2.textBox9.Text = textBox1.Text; Hide(); } else MessageBox.Show("用戶名或密碼錯(cuò)誤"); } } private string Login1()
17、 { string use = boBox1.Text.ToString(); if (use == "普通乘客") { SqlConnection cn = new SqlConnection("server=.;database=longbus;integrated security=true"); cn.Open(); string id = textBox1.Text;
18、 string pwd = textBox2.Text; string sql = " Select count(*) from Ps where id=" + id + " and pwd=" + pwd + ""; SqlCommand cmd = new SqlCommand(sql, cn); int result = (int)cmd.ExecuteScalar(); string sql1= " Select count(*) from Ps
19、 where id=" + id + " and pwd=" + pwd + "and slevel="+use+""; SqlCommand cmd1 = new SqlCommand(sql1, cn); int quanxian = (int)cmd1.ExecuteScalar(); cn.Close(); if (result > 0)
20、 { if (quanxian>0) { Form2 form2 = new Form2(); form2.Show(); form2.textBox9.Text = textBox1.Text; Hide();
21、 } else MessageBox.Show("權(quán)限不夠"); } else MessageBox.Show("用戶名或密碼錯(cuò)誤"); } return use; } private void button2_Click(o
22、bject sender, EventArgs e) { Register(); } private void Register() { if (this.textBox3.Text.ToString() == "") MessageBox.Show("用戶名不能為空"); else { if (this.textBox4.Text.ToString
23、() == "") MessageBox.Show("密碼不能為空"); else { if (this.textBox5.Text.ToString() == "") MessageBox.Show("確認(rèn)密碼不能為空"); else { if (this.te
24、xtBox4.Text.ToString() != this.textBox5.Text.ToString()) MessageBox.Show("兩次密碼不一致!"); else { if (MessageBox.Show("確定所填信息?", "message", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == Dialo
25、gResult.Yes) { using (SqlConnection con = new SqlConnection("server=(local);Trusted_Connection=SSPI;database=longbus")) { con.Open();
26、 SqlCommand cmd = new SqlCommand("insert into Ps(id,pwd) values(" + this.textBox3.Text.ToString() + "," + this.textBox5.Text.ToString() + ")", con); cmd.ExecuteNonQuery(); con.Close(); Me
27、ssageBox.Show("注冊(cè)成功!"); } } } } } } } private void button3_Click(object sender, EventArgs e) { Application.Exit();
28、 } private void button4_Click(object sender, EventArgs e) { panel1.Visible = false; panel2.Visible = true; } private void button5_Click(object sender, EventArgs e) { panel2.Visible = false; panel1
29、.Visible = true; } } } Form2 窗口: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace longbus { public partial class F
30、orm2 : Form { public Form2() { InitializeComponent(); } string Sql; public int p = 0; private void button5_Click(object sender, EventArgs e) { Form1 form1 = new Form1(); form1.Show();
31、 Hide(); } private void button1_Click(object sender, EventArgs e) { Sql = "select * from lb where lsp = " + comboBox1.Text + " and lep = " + comboBox2.Text + ""; datag1(); } private void datag1() {
32、SqlConnection cn = new SqlConnection("server=.;database=longbus;integrated security=true"); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(Sql, cn); da.Fill(dt); dataGridView1.DataSource =dt; } private vo
33、id Form2_Load(object sender, EventArgs e) { Form1 f1 = new Form1(); if (p == 0) { button2.Hide(); button3.Hide(); button4.Hide(); } if (p == 1) {
34、 button6.Hide(); groupBox4.Hide(); } SqlConnection cn = new SqlConnection("server=.;database=longbus;integrated security=true"); cn.Open(); SqlCommand cmd1 = new SqlCommand("select distinct
35、lsp from Lb", cn); SqlCommand cmd2 = new SqlCommand("select distinct lep from Lb", cn); SqlDataReader dr1 = cmd1.ExecuteReader(); while (dr1.Read()) { comboBox1.Items.Add(dr1["lsp"]); } dr1.Close();
36、 SqlDataReader dr2 = cmd2.ExecuteReader(); while (dr2.Read()) { comboBox2.Items.Add(dr2["lep"]); } dr2.Close(); cn.Close(); } private void button2_Click(object sender, EventArgs e) {
37、 if (this.textBox1.Text.ToString() == "") MessageBox.Show("添加信息不能為空"); else { if (MessageBox.Show("確定添加?", "message", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { tr
38、y { using (SqlConnection cn = new SqlConnection("server=(local);Trusted_Connection=SSPI;database=longbus")) { cn.Open(); SqlCommand cmd = new SqlCommand("insert into Lb(cn
39、,lno,lkind,lsp,lep,lst,lnt,ln,price) values ("+textBox12.Text+"," + textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + "," + textBox4.Text + "," + textBox5.Text + "," + textBox6.Text + "," + textBox7.Text + "," + textBox8.Text + ")", cn); cmd.ExecuteNonQuery();
40、 cn.Close(); MessageBox.Show("success!"); } } catch { throw; } dataGridView1.DataSourc
41、e = null; SqlConnection cn1 = new SqlConnection("server=.;database=longbus;integrated security=true"); DataTable dt1 = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("select * from lb ",cn1); da.Fill(dt1);
42、 dataGridView1.DataSource = dt1; } } } private void button3_Click(object sender, EventArgs e) { delete(); this.button1_Click(sender, e); } private void delete() {
43、 string str = textBox12.Text; if (str != "") { if (MessageBox.Show("您確定要?jiǎng)h除本條信息嗎?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { using (SqlConnection con = new SqlConnection
44、("server=.;Trusted_Connection=SSPI;database=longbus")) { con.Open(); SqlCommand cmd = new SqlCommand("delete from Lb where cn=" + str + "", con); cmd.Connection = con; cmd.Execute
45、NonQuery(); DataTable dt = new DataTable(); dataGridView1.DataSource = dt; MessageBox.Show("刪除成功"); con.Close(); } } } } private
46、void button4_Click(object sender, EventArgs e) { update(); datag1(); } private void update() { if (this.textBox1.Text.ToString() == "") MessageBox.Show("車次不能為空"); else {
47、 if (MessageBox.Show("確定修改?", "message", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { try { string txt1 = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[0].Val
48、ue.ToString(); string Sql = "update lb set cn=" + this.textBox12.Text + " where cn=" + txt1 + ""; sql(Sql); Sql = "update lb set lno=" + this.textBox1.Text + " where cn=" + this.textBox12.Text + ""; s
49、ql(Sql); Sql = "update lb set lkind=" + this.textBox2.Text + " where cn=" + this.textBox12.Text + ""; sql(Sql); Sql = "update lb set lsp=" + this.textBox3.Text + " where cn=" + this.textBox12.Text + "";
50、 sql(Sql); Sql = "update lb set lep=" + this.textBox4.Text + " where cn=" + this.textBox12.Text + ""; sql(Sql); Sql = "update lb set lst=" + this.textBox5.Text + " where cn=" + this.textBox12.Text + "";
51、 sql(Sql); Sql = "update lb set lnt=" + this.textBox6.Text + " where cn=" + this.textBox12.Text + ""; sql(Sql); Sql = "update lb set ln=" + this.textBox7.Text + " where cn=" + this.textBox12.Text + "";
52、 sql(Sql); Sql = "update lb set price=" + this.textBox8.Text + " where cn=" + this.textBox12.Text + ""; sql(Sql); SqlConnection cn1 = new SqlConnection("server=.;database=longbus;integrated security=true");
53、 DataTable dt1 = new DataTable(); dataGridView1.DataSource = dt1; MessageBox.Show("success!"); txt1 = ""; } catch (InvalidCastException a)
54、 { throw (a); } } } } private void sql(string Sql) { try { using (SqlConnection cn = new SqlConnection("server=(local);Trusted_Connection=
55、SSPI;database=longbus")) { cn.Open(); SqlCommand cmd = new SqlCommand(Sql, cn); cmd.ExecuteNonQuery(); cn.Close(); } } catch (InvalidCastException a)
56、 { throw (a); } } private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { mouseclick(); } private void mouseclick() { this.textBox12.Text = this.dataGri
57、dView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString(); this.textBox1.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString(); this.textBox2.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIn
58、dex].Cells[2].Value.ToString(); this.textBox3.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[3].Value.ToString(); this.textBox4.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[4].Value.ToString(); thi
59、s.textBox5.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[5].Value.ToString(); this.textBox6.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[6].Value.ToString(); this.textBox7.Text = this.dataGridView1.Rows[this.d
60、ataGridView1.CurrentCell.RowIndex].Cells[7].Value.ToString(); this.textBox8.Text = this.dataGridView1.Rows[this.dataGridView1.CurrentCell.RowIndex].Cells[8].Value.ToString(); } private void button7_Click(object sender, EventArgs e) { if
61、(this.textBox10.Text.ToString() == "") MessageBox.Show("新密碼不能為空"); else { if (this.textBox11.Text.ToString() == "") MessageBox.Show("確認(rèn)密碼不能為空"); else {
62、 if (this.textBox10.Text.ToString() != this.textBox11.Text.ToString()) MessageBox.Show("兩次輸入的密碼不一致"); else { if (MessageBox.Show("確定修改?", "message", MessageBoxButtons.YesNo, Mess
63、ageBoxIcon.Warning) == DialogResult.Yes) using (SqlConnection con = new SqlConnection("server=(local);Trusted_Connection=SSPI;database=longbus")) { con.Open();
64、SqlCommand cmd = new SqlCommand("update Ps set pwd=" + this.textBox10.Text + " where pwd in(select pwd from Ps where id="+textBox9.Text+") ", con); cmd.ExecuteNonQuery(); con.Close(); Messa
65、geBox.Show("密碼修改成功!", "提示"); } } } } } private int insert() { SqlConnection cn = new SqlConnection("server=.;database=longbus;integrated security=true");
66、 cn.Open(); string id = textBox1.Text; string pwd = textBox2.Text; string sql = "select count(*) from bd,lb where bd.lno=lb.lno and bd.lno=" + textBox1.Text + " and id=" + textBox9.Text + " and lsp="+textBox3.Text+" and lep="+textBox4.Text+""; SqlCommand cmd = new SqlCommand(sql, cn); int result = (int)cmd.ExecuteScalar();
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 造林密度(共28張PPT)
- 皮膚的色斑與美白祛斑化妝品2022優(yōu)秀文檔
- Module+3+My+schoolUnit+3+Language+in+use(共21張PPT)
- 三年級(jí)語文上冊(cè) 鹿柴 3課件 人教
- 根管長(zhǎng)度的確定方法---電測(cè)法
- 看云識(shí)天氣 (4)(教育精品)
- 人教部編版二年級(jí)上冊(cè)語文課件坐井觀天
- 人教部編版二年級(jí)《媽媽睡了》課件1
- 護(hù)士執(zhí)照模擬考試 專業(yè)務(wù)實(shí)
- 焦?fàn)t-焦炭的生產(chǎn)
- 集團(tuán)財(cái)務(wù)軟件解決方案
- 蘇教版五上8成語故事2(教育精品)
- 七八九乘法口決求商
- 四年級(jí)英語下冊(cè)Unit3BankorBeach
- 土壤重金屬污染修復(fù)課件