亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

你知道汽車租賃系統的關鍵點嗎?

2019-11-14 15:56:21
字體:
來源:轉載
供稿:網友

汽車租賃系統

主界面如下:

 

關鍵點一:怎樣理清各個類之間的關系?

一共需要4個類:Car ,TruckVehicle,VehicleUtil

Car類:小汽車類  主要包括小汽車價格的計算方法

Truck類:貨車類   主要包括貨車費用的計算方法

Vehicle類:車輛類  描述車輛的一些基本信息

VehicleUtil類:工具類  創建汽車對象

下面附上一張類圖:

關鍵點二:租車事件

首先要有兩道驗證:即 “輸入出租人姓名驗證” 和 “選擇車輛驗證”,代碼如下:

 

1             if (String.IsNullOrEmpty(this.txtRenter.Text))2             {3                 MessageBox.Show("請輸入租車人姓名","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);4                 return;5             }6             if (this.lvRent.SelectedItems.Count == 0)7             {8                 MessageBox.Show("請選擇車輛", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);9             }

 

 

租車完整代碼如下:

 

 1         PRivate void btnRent_Click(object sender, EventArgs e) 2         { 3             string key = null; 4             if (String.IsNullOrEmpty(this.txtRenter.Text)) 5             { 6                 MessageBox.Show("請輸入租車人姓名","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information); 7                 return; 8             } 9             if (this.lvRent.SelectedItems.Count == 0)10             {11                 MessageBox.Show("請選擇車輛", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);12             }13             else14             {15                 key = lvRent.SelectedItems[0].Text;16                 vehicles[key].RentUser = this.txtRenter.Text;17                 rentVehicles.Add(vehicles[key].LicenseNO, vehicles[key]);18                 if(vehicles.ContainsKey(key))19                 {20                     vehicles.Remove(key);21                 }22                 PrintVehicles(vehicles, lvRent);23                 MessageBox.Show("已出租。", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);24             }25         }

 

關鍵點三:還車事件

開始依然是兩道驗證,模式如上。

驗證“選擇車輛” 和 “輸入租車天數” 關鍵代碼:

 

1 if (String.IsNullOrEmpty(this.txtRentDate.Text))2             {3                 MessageBox.Show("請輸入租車天數", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);4                 return;5             }6             if (this.lvReturn.SelectedItems.Count == 0)7             {8                 MessageBox.Show("請選擇車輛", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);9             }

 

完整還車結算代碼如下:

 1      private void btnCompute_Click(object sender, EventArgs e) 2         { 3             double totalPrice = 0; 4             string key = null; 5             if (String.IsNullOrEmpty(this.txtRentDate.Text)) 6             { 7                 MessageBox.Show("請輸入租車天數", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information); 8                 return; 9             }10             if (this.lvReturn.SelectedItems.Count == 0)11             {12                 MessageBox.Show("請選擇車輛", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);13             }14             else15             {16                 key = lvReturn.SelectedItems[0].Text;17                 rentVehicles[key].RentDate = int.Parse(this.txtRentDate.Text);18                 //調用抽象方法19                 totalPrice = rentVehicles[key].CalcPrice();20                 string msg = string.Format("您的總價是{0}。", totalPrice.ToString());21                 MessageBox.Show(msg, "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);22 23                 vehicles.Add(rentVehicles[key].LicenseNO, rentVehicles[key]);24 25                 if (rentVehicles.ContainsKey(key))26                 {27                     rentVehicles.Remove(key);28                 }29                 this.PrintVehicles(rentVehicles, lvReturn);30             }31         }

關鍵點四:新車入庫

這里要注意的是:選擇轎車單選鈕的時候,卡車載重文本框是不可用狀態。選擇卡車單選鈕則是可用狀態

關鍵代碼如下:

 

1           if (rdoCar.Checked)2                 {3                     type = "car";4                 }5                 if (rdoTruck.Checked)6                 {7                     type = "truck";8                     load = int.Parse(this.txtLoad.Text);9                 }

 

新車入庫完整代碼如下:

 1      private void btnAdd_Click(object sender, EventArgs e) 2         { 3             try 4             { 5                 string LicenseNO = this.txtAutoNum.Text; 6                 string name = this.txtName.Text; 7                 string color = this.cobColor.Text; 8                 int years = int.Parse(this.txtYears.Text); 9                 double DailyRent = double.Parse(this.txtLetting.Text);10                 int load = 0;11                 string type = null;12                 if (rdoCar.Checked)13                 {14                     type = "car";15                 }16                 if (rdoTruck.Checked)17                 {18                     type = "truck";19                     load = int.Parse(this.txtLoad.Text);20                 }21                 Vehicle auto = VehicleUtil.CreateVehicle(LicenseNO, name, color, years, DailyRent, load, type);22                 vehicles.Add(auto.LicenseNO, auto);23                 MessageBox.Show("添加成功。","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);24             }25             catch (Exception ex)26             {27                 MessageBox.Show("入庫數據不正確!","錯誤!",MessageBoxButtons.OK,MessageBoxIcon.Error);28             }29             finally30             {31                 this.txtAutoNum.Text = "";32                 this.txtLetting.Text = "";33                 this.txtLoad.Text = "";34                 this.txtName.Text = "";35                 this.txtRentDate.Text = "";36                 this.txtRenter.Text = "";37                 this.txtYears.Text = "";38             }39         }

關鍵點五:刷新

首先要把listView的項清一下:

 

1 listView.Items.Clear();

 

刷新關鍵代碼如下:

 1         private void PrintVehicles(Dictionary<string, Vehicle> autos, ListView listView) 2         { 3             listView.Items.Clear(); 4             if (autos.Count == 0) 5             { 6                 MessageBox.Show("沒有數據", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information); 7             } 8             else 9             {10                 foreach (Vehicle auto in autos.Values)11                 {12                     ListViewItem item = new ListViewItem(auto.LicenseNO);13                     if (auto is Car)14                     {15                         item.SubItems.AddRange(new string[]{auto.Name,auto.Color,auto.YearsOfService.ToString(),16                         auto.DailyRent.ToString(),""});17                     }18                     if (auto is Truck)19                     {20                         item.SubItems.AddRange(new string[]{auto.Name,auto.Color,auto.YearsOfService.ToString(),21                         auto.DailyRent.ToString(),((Truck)auto).Load.ToString()});22                     }23                     listView.Items.Add(item);24                 }25             }26         }

再在按鈕中調用方法:

1 private void btnQueryRent_Click(object sender, EventArgs e)2         {3             this.PrintVehicles(vehicles, lvRent);4         }

 

知識回顧:窗體傳值

 

方法一、利用屬性傳值 BackGround:①點擊 Button按鈕,將主窗體Form1中textBox1 中的值傳到 Form2中的textBox2中。② 點擊Form2中的按鈕,將Form2中textBox的值傳給主窗體的文本框。1、    在Form2中定義一個字段,封裝成屬性:private string flag;        /// <summary>        /// 接收傳過來的值        /// </summary>        public string Flag        {            get { return flag; }            set { flag = value; }        }2、    在Form1 Button按鈕事件中,實例化一個Form2 窗體對象,并將textBox1中的值賦給 Form2中的Flag,這樣在窗體Form2的登錄事件中就可以獲取到窗體Form1傳過來的值。窗體:Form1中的代碼:private void button1_Click(object sender, EventArgs e)        {            Form2 f2 = new Form2();            f2.Flag = textBox1.Text;//關鍵地方 ↓            if (f2.ShowDialog() == DialogResult.OK)            {                textBox1.Text = f2.Flag;            }        }            窗體:Form2的Load()事件private void Form2_Load(object sender, EventArgs e)        {            textBox1.Text = this.flag;        }3、    子窗體傳值給父窗體(回傳) 點擊Form2中的button按鈕將Form2中textBox的值傳給父窗體Form1.窗體:Form2中的代碼private void button1_Click(object sender, EventArgs e)        {            flag = this.textBox1.Text;//關鍵地方 ↓            this.DialogResult = DialogResult.OK;        }方法二、利用子窗體中的構造函數 (實現了父窗體給子窗體的傳值,但是子窗體的值回傳暫未實現)1、    重載窗體Form2中的 構造函數string str = String.Empty;//接收傳過來的值        public Form2(string textValue)        {            InitializeComponent();            this.str = textValue;        }2、    主窗體調用子窗體時候傳參數:主窗體Form1的Button事件Form2 f2 = new Form2(textBox1.Text);            f2.ShowDialog();

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
57pao成人永久免费视频| 亚洲精品理论电影| 97视频com| 黑丝美女久久久| 一本色道久久综合亚洲精品小说| 91av在线影院| 久久精品国产2020观看福利| 欧美激情一区二区三区成人| 欧美视频免费在线| 国产99视频精品免视看7| 亚洲精品国偷自产在线99热| 欧美激情啊啊啊| 欧美精品久久久久久久久| 国产成人精品久久二区二区| 亚洲在线免费视频| 亚洲一区二区免费| 中文字幕自拍vr一区二区三区| 久久久久久久久久久av| 岛国av在线不卡| 91在线视频一区| 日韩精品999| 成人在线视频福利| 国产精品一二三视频| 精品国产91乱高清在线观看| 亚洲国语精品自产拍在线观看| 日韩欧美高清在线视频| 日韩女在线观看| 国产精品丝袜久久久久久高清| 欧美精品成人91久久久久久久| 欧美激情乱人伦一区| 日韩av在线一区二区| 国产91九色视频| 成人av在线网址| 性欧美长视频免费观看不卡| 国产精品网站入口| 色多多国产成人永久免费网站| 亚洲精品网站在线播放gif| 亚洲激情在线观看视频免费| 91久久久精品| 亚洲国产成人精品一区二区| 91久久嫩草影院一区二区| 日韩精品亚洲元码| 亚洲欧美国产高清va在线播| 亚洲人成网7777777国产| 97超级碰在线看视频免费在线看| 欧美在线影院在线视频| 青草青草久热精品视频在线网站| 国产suv精品一区二区三区88区| 亚洲精品成人久久电影| 欧美极品在线播放| 亚洲欧洲成视频免费观看| 久久久精品一区二区三区| 亚洲图片欧美午夜| 国产一区二区三区在线免费观看| 91av免费观看91av精品在线| 精品女厕一区二区三区| 欧美日韩美女在线观看| 国外成人在线视频| 欧美日韩国产黄| 国产免费观看久久黄| 正在播放欧美一区| 日本欧美一二三区| 国产成人在线视频| 欧美超级乱淫片喷水| 国产精品国产三级国产aⅴ9色| 国产日韩在线观看av| 成人福利网站在线观看| 国产成人综合亚洲| 亚洲精品日产aⅴ| 国产mv免费观看入口亚洲| 欧美激情精品久久久久久蜜臀| 日本亚洲欧美三级| 亚洲精品一区二三区不卡| 久久久国产精品亚洲一区| 欧美黑人巨大xxx极品| 国产在线观看一区二区三区| 欧美性猛交xxxx乱大交蜜桃| 日韩三级影视基地| 国产午夜精品一区理论片飘花| 三级精品视频久久久久| 欧美三级欧美成人高清www| 欧美激情2020午夜免费观看| 久久伊人91精品综合网站| 午夜精品久久久久久久99热| 久久av在线看| 亚洲欧美激情在线视频| 97视频在线观看视频免费视频| 亚洲视频精品在线| 欧美日韩国产丝袜另类| 久久99国产精品自在自在app| 成人疯狂猛交xxx| 日韩成人av网| 精品久久久久久久久久久| 韩国19禁主播vip福利视频| 国产精品久久久久久久久影视| 日本三级韩国三级久久| 日韩电影大片中文字幕| 久久av中文字幕| 国产欧美一区二区| 国产亚洲a∨片在线观看| 成人信息集中地欧美| 成人欧美一区二区三区在线湿哒哒| 国产精品精品视频一区二区三区| 国产精品高清网站| 九九久久综合网站| 热久久免费国产视频| 国产精品美女www| www亚洲欧美| 欧美日产国产成人免费图片| 亚洲国产中文字幕在线观看| 在线播放国产精品| 亚洲欧美日韩爽爽影院| 日韩av在线播放资源| 亚洲新声在线观看| 成人黄色免费在线观看| 成人a在线观看| 欧美一区三区三区高中清蜜桃| 欧美电影在线免费观看网站| 国产精品a久久久久久| 欧日韩不卡在线视频| 国产成人av网| 欧美www在线| 欧美成人在线网站| 亚洲精品自在久久| 欧美国产日韩一区二区在线观看| 国产精品r级在线| 久久九九国产精品怡红院| 亚洲精品美女久久久久| 国产精品久久久久久久午夜| 久久久国产精品视频| 成人免费看黄网站| 大胆欧美人体视频| 成人国产精品一区二区| 色偷偷av一区二区三区乱| 国模视频一区二区三区| 亚洲欧美日韩国产精品| 不卡av在线网站| 精品久久久久久亚洲精品| 亚洲激情免费观看| xxav国产精品美女主播| 国产精品∨欧美精品v日韩精品| 欧美亚洲在线播放| 亚洲字幕一区二区| 亚洲美女激情视频| 欧美理论电影在线播放| 亚洲精品电影网| 国产精品久久久av久久久| 日韩av免费看| 久久成人精品一区二区三区| 中文日韩在线观看| 国产主播喷水一区二区| 中文字幕一区日韩电影| 色爱精品视频一区| 亚洲电影免费观看高清完整版在线观看| 亚洲伊人久久大香线蕉av| 国产91精品视频在线观看| 91高清视频免费观看| 国产精品免费看久久久香蕉| 亚洲va久久久噜噜噜久久天堂| 中文字幕欧美日韩va免费视频| 欧美高清不卡在线| 久久综合五月天| 日韩亚洲欧美成人| 国产丝袜高跟一区|