freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設(shè)計(jì)---物流配送管理系統(tǒng)(留存版)

2025-08-03 16:13上一頁面

下一頁面
  

【正文】 組員 趙映寰 表現(xiàn)層的 FGuestOrder MainForm代碼設(shè)計(jì) 組員 孫博 表現(xiàn)層的 Forder FSearch代碼設(shè)計(jì) 四 、 設(shè)計(jì)過程 ( 一 )設(shè)計(jì)思想 我們小組 們采用三層架構(gòu)模式,使系統(tǒng)的代 碼不冗長(zhǎng),也有利于系統(tǒng)的編譯和運(yùn)行,如果系統(tǒng)出現(xiàn)錯(cuò)誤就會(huì)第一時(shí)間知道問題出現(xiàn)在哪里。 + GuestPhone + 39。 using System。 } set { guestAddress = value。 =。 = true。 } IArea bll = new AreaBLL()。 窗體加載 但在窗體加載過程中,需要為區(qū)域下拉框添加數(shù)據(jù)源: IArea area=new AreaBLL ()。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 = true。 = false。 } } 需要定義一個(gè)接口 ListTCycle GetNoUseCycle() 在窗體加載時(shí),為這個(gè) Combobox添加數(shù)據(jù)源。 ( 六 )數(shù)據(jù)層建立 及代碼實(shí)現(xiàn) 1) 數(shù)據(jù)庫公共執(zhí)行類 —— DatabaseControl 介紹并基本建類 在框架基礎(chǔ)上,建立類庫項(xiàng)目: DAL,并添加對(duì) CommonModel 類庫的引用 。 } } } 進(jìn)一步加工這個(gè)類,整合 OpenDatabase方法 根據(jù)兩個(gè)三參 Execute 方法, 我們小組 們可以看出,在建立指令對(duì)象時(shí),需要為 SqlCommand 對(duì)象指定:CommandType、 CommandText以及 Parameter。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 關(guān)于泛型: 在過去, 我們小組 們定義數(shù)組: int[] array = new int[]{1,2,3,4}。 (4)。 (3)。 //這時(shí)程序會(huì)提示語法錯(cuò)誤,因?yàn)橐?list的集合必須是 Class1的對(duì)象。 = conn。 (t)。 = dr[AreaName].ToString()。 } return list。其中最重要的是數(shù)據(jù)層,它的功能是與數(shù)據(jù)庫交互,并將數(shù)據(jù)庫的結(jié)果集返回到業(yè)務(wù)邏輯層,編譯數(shù)據(jù)層最常用的知識(shí)點(diǎn)是泛型。例如: M不一定具備 SetData方法, M和 T也不一定具備實(shí)例化,這時(shí), 我們小組 們就需要使用到反省篩選器來將泛型類進(jìn)行篩選。 DataTable dt = new DataTable()。 } 當(dāng) 我們小組 們需要執(zhí)行這個(gè) Execute的時(shí)候,就需要寫如下的代碼: ListTArea list=ExecuteTArea(?? ) 為每個(gè)數(shù)據(jù)對(duì)象定義屬性賦值索引類 —— T***RowMapper 接下來,就需要為每個(gè)數(shù)據(jù)模型處理他們屬性上的賦值,既 SetData方法。 DataTable dt = new DataTable()。 private SqlCommand m = new SqlCommand()。 (new Class1())。 (true)。 關(guān)于泛型: 在過去, 我們小組 們定義數(shù)組: int[] array = new int[]{1,2,3,4}。 return rtn。 } public int Execute(CommandType type, string mand, SqlParameter[] para) { } public IList Execute(CommandType type, string mand, SqlParameter[] para) { } private void OpenDatabase() { if ( != ) 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 { ()。 業(yè)務(wù)邏輯開發(fā)員只需要將 BLL實(shí)現(xiàn)即可。 = list。 string Address = + , + + , + 。 = 。 = false。 = area。 } 雙擊 ListView操作 雙擊 ListView后,可能引發(fā)的三種情況: 代碼如下: if ( != 0) { TArea area = (TArea)[0].Tag。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 區(qū)域管理窗口 —— FArea 窗體控件布局 根據(jù)需求分析,在區(qū)域管理的功能上,只需要做到增、刪、 查即可,不需要為區(qū)域管理添加其他功能,因此可將區(qū)域管理功能的界面設(shè)計(jì)如圖所示界面: 業(yè)務(wù)邏輯的功能統(tǒng)計(jì) 根據(jù)界面的設(shè)計(jì), 我們小組 們知道該功能需要: 查詢出目前所有區(qū)域的信息 創(chuàng)建區(qū)域信息 修改區(qū)域信息 刪除區(qū)域信息 操作邏輯 窗體加載成功后,通過查詢功能將區(qū)域信息加載到內(nèi)存,并在區(qū)域信息的數(shù)據(jù)源列表中的第一個(gè)位置新增具有“新建區(qū)域”信息的區(qū)域項(xiàng)目; 單擊“創(chuàng)建”按鈕,則調(diào)用業(yè)務(wù)邏輯層的創(chuàng)建方法,并傳遞區(qū)域名和區(qū)域描述兩個(gè)文本框的內(nèi)容; 單擊“修改”按鈕,則調(diào)用業(yè)務(wù)邏輯層的修改方法,并傳遞區(qū)域編號(hào)、區(qū)域名、區(qū) 域描述; 單擊“刪除”按鈕,則調(diào)用業(yè)務(wù)邏輯層的刪除方法,并傳遞區(qū)域編號(hào); 單擊“取消”按鈕,則使區(qū)域信息框隱藏,既 Visible=false。 } set { guestName = value 。 +convert(varchar(50), AresID)+ 39。 + GuestName + 39。 業(yè)務(wù)邏輯層 :將表現(xiàn)層的數(shù)據(jù)解析成數(shù)據(jù)層的數(shù)據(jù)模型,并傳遞給數(shù)據(jù)層。所以采用三層的架構(gòu)模式,不僅調(diào)理清晰,組員分工明確完成的效率也會(huì)提高。%39。 using 。 } } public string GuestDesc { get { return guestDesc。 =新建區(qū)域 。 = false。 if ((, )) { (區(qū)域新建成功! )。 = ()。 = true。 } else { (顧客創(chuàng)建失??! )。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 ICycle cyc=new ()。由于 DAL 負(fù)責(zé)與數(shù)據(jù)庫的交互,為了減少代碼重寫,提高數(shù)據(jù)庫的操作, 我們小組 們將數(shù)據(jù)庫的操作過程寫在一個(gè)名為 DatabaseControl的類中。需要注意的是 SqlCommand 所接受的 Parameter 并不是數(shù)組,而是SqlParameterCollection 對(duì)象,因此 我們小組 們需要將 SqlParameter 數(shù)組對(duì)象添加到這個(gè) Collection 中。 當(dāng) 我們小組 們需要對(duì)數(shù)組長(zhǎng)度的動(dòng)態(tài)增長(zhǎng),對(duì)于這種定義方式是不可行的,這時(shí)就會(huì)想到 Array、ArrayList。 如果這時(shí)對(duì) array對(duì)象中的元素進(jìn)行加和,并得到結(jié)果時(shí),就會(huì)出現(xiàn)數(shù)據(jù)類型不統(tǒng)一的異常錯(cuò)誤。 //這時(shí)程序會(huì)提示語法錯(cuò)誤,因?yàn)橐?list的集合必須是 Class1的對(duì)象。 這三個(gè) list 不但具備了數(shù)組長(zhǎng)度的動(dòng)態(tài)增長(zhǎng),還要求了數(shù)據(jù)類型的統(tǒng)一 (當(dāng)然, ListObject不在考慮范圍之內(nèi),因?yàn)? Object 是所有類型的基類) 使用泛型集合: foreach(int tmp in list){} foreach(string tmp in list){} foreach(Class1 tmp in list){} 可見,使用泛型集合和使用普通的數(shù)組沒有區(qū)別,而且泛型還為 我們小組 們統(tǒng)一了數(shù)據(jù)類型。 = type。 } Close()。 = dr[AreaDesc].ToString()。 } 再次碰到這種情況, ****所填寫 的位置必須是跟 T類型相關(guān)的 T***RowMapper。業(yè)務(wù)邏輯層是將數(shù)據(jù)層的結(jié)果集進(jìn)行判斷 ,并將結(jié)果返回到表現(xiàn)層,從而實(shí)現(xiàn)增、刪、改、查等功能。 } 至此, Execute 方法就 算是完成了,但目前 我們小組 們發(fā)現(xiàn),整個(gè)方法被 VS IDE 標(biāo)記為紅色浪線,表示代碼依然存在問題,而整個(gè)問題,就是 我們小組 們所使用的泛型類 T和 M并沒有滿足某種條件。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 = m。 } return list。 = m。 private SqlConnection conn = new SqlConnection()。 ListClass1 list = new ListClass1()。 //這時(shí)程序會(huì)提示語法錯(cuò)誤,因?yàn)橐?list的集合必須是 string類型。 //這時(shí)程序會(huì)提示語法錯(cuò)誤,因?yàn)橐?list的集合必須是 int類型。 Close()。 } public IList Execute(CommandType type, string mand) { return Execute(type, mand, new SqlParameter[] { })。} 至于 CommonModel應(yīng)該通過組長(zhǎng)向數(shù)據(jù)層開發(fā)員索要。 ListTGuest list = ()。 TGuest guest = (TGuest)。 = area。 if ((((TArea)).ID)) { (區(qū)域刪除成功! )。 = true。 (lvi)。 該窗體由于屬于各個(gè)功能窗體的調(diào)用總窗體,因此不需要與業(yè)務(wù)邏輯層進(jìn)行任何的交互操作。 } } public string GuestName { get { return guestName。%39。%39。 表現(xiàn)層 : 根據(jù) 需求進(jìn)行界面設(shè)計(jì),并完成基本交互代碼,能夠?qū)崿F(xiàn)將代碼提交給業(yè)務(wù)邏輯層。以下就是三層架構(gòu)邏輯關(guān)系圖。 and [Gues
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1