




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于UML測(cè)試用例的研究和實(shí)現(xiàn)密級(jí): UNIVERSITY 學(xué) 士 學(xué) 位 論 文THESIS OF BACHELOR( 20 年 ) 題 目 學(xué) 院: 系 專 業(yè): 班 級(jí): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 起訖日期: 摘 要計(jì)算機(jī)是一門研究用計(jì)算機(jī)進(jìn)行信息表示和處理的科學(xué),這就需要我們能夠有效的表示信息,處理信息。隨著計(jì)算機(jī)的普及,信息量的增加,信息范圍的拓寬,使許多系統(tǒng)程序和應(yīng)用程序的規(guī)模很大,結(jié)構(gòu)又相當(dāng)復(fù)雜,因此,為了編寫出一個(gè)“好”的程序,必須分析待處理的對(duì)象的特征及各對(duì)象之間存在的關(guān)系,這就是程序設(shè)計(jì)這所要研究的問(wèn)題。計(jì)算機(jī)解決一個(gè)具體問(wèn)題時(shí),大致需要經(jīng)過(guò)下列幾個(gè)步驟:首先要從
2、具體問(wèn)題中抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法(Algorithm),最后編出程序、進(jìn)行測(cè)試、調(diào)整直至得到最終解答。尋求數(shù)學(xué)模型的實(shí)質(zhì)是分析問(wèn)題,從中提取操作的對(duì)象,并找出這些操作對(duì)象之間含有的關(guān)系,然后用數(shù)學(xué)的語(yǔ)言加以描述。計(jì)算機(jī)算法與數(shù)據(jù)的結(jié)構(gòu)密切相關(guān),算法無(wú)不依附于具體的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)直接關(guān)系到算法的選擇和效率。設(shè)計(jì)充分利用C#的強(qiáng)大力量,提高了編程效率和可靠性。算法設(shè)計(jì)是軟件工程、計(jì)算機(jī)科學(xué)及相關(guān)專業(yè)重要的專業(yè)技術(shù)基礎(chǔ)課程和關(guān)鍵性核心課程,是系統(tǒng)軟件及大型應(yīng)用軟件的重要基礎(chǔ)。本課程系統(tǒng)的介紹了軟件設(shè)計(jì)中常用的算法設(shè)計(jì)與分析方法,鍛煉學(xué)生分析問(wèn)題和解決問(wèn)題的能力,
3、為開發(fā)高效的軟件系統(tǒng)及相關(guān)領(lǐng)域的研究工作奠定堅(jiān)實(shí)的基礎(chǔ),為學(xué)習(xí)專業(yè)課程及提高軟件設(shè)計(jì)水平打下良好的基礎(chǔ)。關(guān)鍵字 :編程;C#;窗體System Based on C#Abstract :The computer is a study of computer science and processing, which requires that we can effectively represent information, process information. With the proliferation of computers, the increase in the amount
4、of information, information on the scope of expanding, and so many systems and applications a large scale, the structure is quite complex, Therefore, in order to write a "good" program, you must analyze the pending the relationship that exists between the characteristics of the object and
5、the object, this is the program designed to study the problem. Computer to solve a specific problem, roughly the following steps: first abstract from specific issues in an appropriate mathematical model, and then design a solution of this mathematical model algorithm (Algorithm), and finally compile
6、 the program, test, adjustment until you get the final answer. Seeking the essence of the mathematical model of the problem, extract the object of the operation, and to identify the relationship between the operation target containing, and then use the language of mathematics will be described. Comp
7、uter algorithms and data related to the structure, algorithms are all attached to a specific data structure, the data structure directly related to the selection and efficiency of the algorithm. Designed to take advantage of the powerful force of the C # programming efficiency and reliability. The a
8、lgorithm design software engineering, computer science and related professional important professional and technical foundation courses and critical core curriculum is an important foundation of the system software and large-scale applications. This course introduces the software design algorithm de
9、sign and analysis methods, training students to analyze problems and problem-solving skills, and lay a solid foundation for the development of efficient software systems and related research in the field, learning curriculum and improve software design level and lay a good foundation.Keywords: Progr
10、amming; C #; Forms目 次摘要IAbstractII摘 要II1 緒論11.1 課題背景及其意義11.2 當(dāng)前國(guó)內(nèi)外發(fā)展概況調(diào)研11.2.1 系統(tǒng)理論的發(fā)展11.2.2應(yīng)用技術(shù)的發(fā)展11.3 課題任務(wù)21.4 本文的組織結(jié)構(gòu)32 系統(tǒng)需求分析42.1 系統(tǒng)可行性分析42.2 功能需求分析42.5 本章小結(jié)53 系統(tǒng)概要設(shè)計(jì)63.1 系統(tǒng)功能設(shè)計(jì)63.2 系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)73.2.1 系統(tǒng)實(shí)現(xiàn)技術(shù)73.2.2 開發(fā)語(yǔ)言93.2.3 系統(tǒng)結(jié)構(gòu)93.4 本章小結(jié)104 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)114.1 數(shù)據(jù)庫(kù)表結(jié)構(gòu)114.2 本章小結(jié)115 系統(tǒng)的具體實(shí)現(xiàn)125.1 數(shù)據(jù)訪問(wèn)層的實(shí)現(xiàn)125
11、.1.1 配置數(shù)據(jù)庫(kù)連接125.1.2數(shù)據(jù)庫(kù)類成員125.2 業(yè)務(wù)邏輯層的實(shí)現(xiàn)135.3 頁(yè)面顯示層的實(shí)現(xiàn)135.4 本章小結(jié)156 系統(tǒng)測(cè)試166.1 系統(tǒng)測(cè)試目的166.2 測(cè)試方法166.3 測(cè)試結(jié)果166.3.1 結(jié)構(gòu)信息測(cè)試166.3.2 系統(tǒng)用戶界面測(cè)試176.3.3 系統(tǒng)登錄測(cè)試177 總結(jié)與展望187.1 總結(jié)187.2 展望18參考文獻(xiàn)191 緒論1.1 課題背景及其意義有限狀態(tài)自動(dòng)機(jī)(FSM "finite state machine" 或者FSA "finite state automaton" )是為研究有限內(nèi)存的計(jì)算過(guò)程和某些語(yǔ)
12、言類而抽象出的一種計(jì)算模型。有限狀態(tài)自動(dòng)機(jī)擁有有限數(shù)量的狀態(tài),每個(gè)狀態(tài)可以遷移到零個(gè)或多個(gè)狀態(tài),輸入字串決定執(zhí)行哪個(gè)狀態(tài)的遷移。有限狀態(tài)自動(dòng)機(jī)可以表示為一個(gè)有向圖。有限狀態(tài)自動(dòng)機(jī)是自動(dòng)機(jī)理論的研究對(duì)象。經(jīng)過(guò)大學(xué)四年理論課程的學(xué)習(xí),以及校內(nèi)校外的實(shí)踐,極大的豐富了自身的理論基礎(chǔ),并且也具備了一些處理簡(jiǎn)單問(wèn)題的能力,但即將踏上社會(huì)的我深知這還遠(yuǎn)遠(yuǎn)不夠,因此我利用了畢業(yè)設(shè)計(jì)的機(jī)會(huì),在老師的指導(dǎo)下去完成一個(gè)具有挑戰(zhàn)性的,其具體應(yīng)用及社會(huì)服務(wù)相結(jié)合的項(xiàng)目,深知通過(guò)對(duì)它的開發(fā),將對(duì)我的能力有更高層次的突破。開發(fā)軟件的一個(gè)目的是針對(duì)目前市面上的系統(tǒng)存在的功能不全,操作復(fù)雜,系統(tǒng)要求高等一系列問(wèn)題,而設(shè)想一個(gè)
13、具有個(gè)性化系統(tǒng)。管理人員軟件操作的適應(yīng)時(shí)間和操作感覺(jué)這些方面都將大大的提高。給定xml格式的自動(dòng)機(jī)(自動(dòng)機(jī)描述了邏輯信息)(有代碼),xml里面存儲(chǔ)邏輯控制信息,生成腳本(這個(gè)腳本里面就是控制信息)(所謂的控制信息,就是 測(cè)試場(chǎng)景),這些信息是由自動(dòng)機(jī)轉(zhuǎn)換來(lái)的,自動(dòng)機(jī)里有什么邏輯,轉(zhuǎn)換的腳本就包含什么邏輯,然后和數(shù)據(jù)庫(kù)里的數(shù)據(jù) 合并為一個(gè)最后的執(zhí)行腳本二當(dāng)自動(dòng)機(jī)描述的邏輯是,加減乘除的時(shí)候,就是用來(lái)測(cè)試計(jì)算器的三數(shù)據(jù)驅(qū)動(dòng)腳本是將測(cè)試輸入和期望輸出存儲(chǔ)在數(shù)據(jù)文件中,而不是存儲(chǔ)在腳本中,腳本中只存放控制信息。執(zhí)行測(cè)試時(shí),從文件中而不是從腳本中讀取測(cè)試輸入。 1.2 當(dāng)前國(guó)內(nèi)外發(fā)展概況調(diào)研1.2.1
14、 系統(tǒng)理論的發(fā)展系統(tǒng)的基本理論研究,正朝著以下幾個(gè)方向的發(fā)展:(1)系統(tǒng)研制方法的進(jìn)一步系統(tǒng)化的研究。(2)系統(tǒng)研制工具的進(jìn)一步改善和完善的研究。(3)系統(tǒng)模型的進(jìn)一步研究。(4)信息系統(tǒng)對(duì)人、組織和社會(huì)影響的進(jìn)一步研究。1.2.2應(yīng)用技術(shù)的發(fā)展C#是Microsoft為.NET平臺(tái)量身定做的語(yǔ)言,是基于.NET平臺(tái)的最佳語(yǔ)言。它不僅能輕松的完成其他語(yǔ)言的程序設(shè)計(jì)任務(wù),對(duì)高級(jí)程序設(shè)計(jì)任務(wù)的支持也吸引了大批的程序員,如網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)連接1、多線程、安全和保護(hù)特性等。C#是Microsoft專用在.NET Framework平臺(tái)上進(jìn)行開發(fā)的一門新型編程語(yǔ)言。.NET Framework由兩部分構(gòu)
15、成:托管代碼執(zhí)行的運(yùn)行環(huán)境和幾乎可以完成所有編程任務(wù)的眾多類庫(kù)。雖然很多語(yǔ)言都能夠編寫.NET代碼,但C#是惟一針對(duì).NET Framework而設(shè)計(jì)的語(yǔ)言,因此在今后幾年內(nèi),C#將會(huì)成為編寫.NET應(yīng)用程序的首選。 B/S模式:將服務(wù)器分解成一個(gè)數(shù)據(jù)服務(wù)器和一個(gè)或多個(gè)應(yīng)用服務(wù)器,從而構(gòu)成一個(gè)三層結(jié)構(gòu)體系。利用B/S構(gòu)架技術(shù),即可在內(nèi)部網(wǎng)上發(fā)布各種信息,供查詢、借閱。在查詢過(guò)程中,我們可以在客戶機(jī)通過(guò)瀏覽器實(shí)現(xiàn),不必另外安裝軟件,從而減少了維護(hù)工作量,同時(shí)還可以不斷推出新的查詢版本,以滿足用戶不斷增長(zhǎng)的需要。C/S模式: 將系統(tǒng)分布于兩個(gè)獨(dú)立的實(shí)體客戶機(jī)和數(shù)據(jù)庫(kù)服務(wù)器中,開發(fā)的應(yīng)用程序安裝在每
16、個(gè)客戶機(jī)端,并與網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)庫(kù)相連。其優(yōu)點(diǎn)在于人機(jī)交互方面具有更大的靈活性,在數(shù)據(jù)訪問(wèn)處理速度和數(shù)據(jù)安全上有一定的優(yōu)勢(shì);缺點(diǎn)是在更新客戶端服務(wù)程序時(shí),大大增加維護(hù)量,造成維護(hù)工作困難。1.3 課題任務(wù)有多種類型的有限狀態(tài)自動(dòng)機(jī):接受器判斷是否接受輸入;轉(zhuǎn)換器對(duì)給定輸入產(chǎn)生一個(gè)輸出。常見(jiàn)的轉(zhuǎn)換器有 Moore 機(jī) 與 Mealy 機(jī)。Moore 機(jī)對(duì)每一個(gè)狀態(tài)都附加有輸出動(dòng)作,Mealy 機(jī)對(duì)每一個(gè)轉(zhuǎn)移都附加有輸出動(dòng)作。有限狀態(tài)自動(dòng)機(jī)還可以分成確定與非確定兩種。非確定有限狀態(tài)自動(dòng)機(jī)可以轉(zhuǎn)化為確定有限狀態(tài)自動(dòng)機(jī)。有限狀態(tài)自動(dòng)機(jī)識(shí)別的語(yǔ)言是正規(guī)語(yǔ)言。有限狀態(tài)自動(dòng)機(jī)除了它在理論上的價(jià)值,還在數(shù)字電路
17、設(shè)計(jì)、詞法分析、文本編輯器程序等領(lǐng)域得到了應(yīng)用。自動(dòng)機(jī)接受的所有字串構(gòu)成了自動(dòng)機(jī)識(shí)別的語(yǔ)言 L(M)。非確定有限狀態(tài)自動(dòng)機(jī)一個(gè)非確定有限狀態(tài)自動(dòng)機(jī)(NFA "Non-deterministic finite automaton")M 是由下述元素構(gòu)成的五元組 (Q,q0,F)有窮狀態(tài)集合 Q ;有窮輸入字母表 ;轉(zhuǎn)移函數(shù) : Q × -> 2Q;初始狀態(tài) q0;終結(jié)狀態(tài)集合 F,F(xiàn) 包含于 Q 。自動(dòng)機(jī)從初始狀態(tài) q0 起,逐一讀入輸入串(由輸入字母表 的字母構(gòu)成)的每一個(gè)字母,根據(jù)當(dāng)前狀態(tài)、輸入字母和轉(zhuǎn)移函數(shù) 決定自動(dòng)機(jī)的下一步狀態(tài);如果輸入串結(jié)束時(shí),自動(dòng)
18、機(jī)處于終結(jié)狀態(tài)集合 F 的某一個(gè)狀態(tài),這表示自動(dòng)機(jī)接受該字串;否則自動(dòng)機(jī)不接受該字串。非確定有限狀態(tài)自動(dòng)機(jī)與確定有限狀態(tài)自動(dòng)機(jī)的唯一區(qū)別是它們的轉(zhuǎn)移函數(shù)不同。確定有限狀態(tài)自動(dòng)機(jī)對(duì)每一個(gè)可能的輸入只有一個(gè)狀態(tài)的轉(zhuǎn)移。非確定有限狀態(tài)自動(dòng)機(jī)對(duì)每一個(gè)可能的輸入可以有多個(gè)狀態(tài)轉(zhuǎn)移,接受到輸入時(shí)從這多個(gè)狀態(tài)轉(zhuǎn)移中非確定地選擇一個(gè)。自動(dòng)機(jī)接受的所有字串構(gòu)成了自動(dòng)機(jī)識(shí)別的語(yǔ)言 L(M)。1.4 本文的組織結(jié)構(gòu)本文以基于C#的設(shè)計(jì)與實(shí)現(xiàn)為主題,圍繞c#所采用的技術(shù),及其需求和設(shè)計(jì)進(jìn)行詳細(xì)闡述,分為七部分:第一章主要介紹了課題產(chǎn)生的背景,圍繞背景闡述此課題研究目的和意義,并結(jié)合國(guó)內(nèi)外的研究現(xiàn)狀,分析理論的發(fā)展以及
19、在實(shí)際應(yīng)用中的發(fā)展。接著介紹了課題任務(wù)和文章的章節(jié)安排。第二章主要對(duì)進(jìn)行系統(tǒng)的可行性分析,并按照由簡(jiǎn)單到細(xì)致的順序?qū)τ脩粜枨筮M(jìn)行分析以及從業(yè)務(wù)流程的角度對(duì)系統(tǒng)的功能需求進(jìn)行詳細(xì)描述。第三章主要研究分析系統(tǒng)的功能模塊和體系結(jié)構(gòu)。第四章主要是對(duì)系統(tǒng)的實(shí)現(xiàn)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。第五章陳述了系統(tǒng)的具體實(shí)現(xiàn)過(guò)程,分別對(duì)系統(tǒng)的表示層、業(yè)務(wù)層和數(shù)據(jù)層的實(shí)現(xiàn)進(jìn)行了說(shuō)明。第六章介紹了系統(tǒng)的測(cè)試過(guò)程。第七章總結(jié)了全文的工作,并提出了系統(tǒng)需要進(jìn)一步完善和改進(jìn)的地方。 2 系統(tǒng)需求分析2.1 系統(tǒng)可行性分析可行性分析又稱為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、社
20、會(huì)方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定難題是否得到解決。作為該系統(tǒng)的開發(fā),該系統(tǒng)的可行性分析包括以下幾個(gè)方面。(1)經(jīng)濟(jì)可行性。主要指費(fèi)用的支出與收益回報(bào)的比例,二者是否匹配。用計(jì)算機(jī)代替人工進(jìn)行錄入,核對(duì),統(tǒng)計(jì),不但節(jié)約了時(shí)間,也節(jié)約了人力,例如實(shí)現(xiàn)了無(wú)紙化輸入,節(jié)約了紙張的開銷;網(wǎng)上訂購(gòu)和信息發(fā)布,可以減少采購(gòu)中間環(huán)節(jié)的成本,及時(shí)將讀者的需求進(jìn)行反饋,大大提高了工作的效率。(2)技術(shù)可行性。隨著Internet網(wǎng)絡(luò)的發(fā)展,利用互聯(lián)網(wǎng)進(jìn)行信息的采集和發(fā)布已經(jīng)用在任何地方任何場(chǎng)合,為此本系統(tǒng)考慮采用C/S結(jié)構(gòu),利用先進(jìn)
21、的、效率高的新的系統(tǒng)開發(fā)工具C#來(lái)開發(fā)該系統(tǒng),后臺(tái)數(shù)據(jù)庫(kù)2使用安全性高、可移植性好的SQL Server 2000,利用ADO.NET接口技術(shù)實(shí)現(xiàn)對(duì)后臺(tái)數(shù)據(jù)庫(kù)的訪問(wèn)。(3)人力資源可行性??尚行缘闹攸c(diǎn)應(yīng)在人員素質(zhì)方面。在使用c#的過(guò)程中,新的業(yè)務(wù)流程,新的操作方式。(4)時(shí)機(jī)可行性。為了提高學(xué)C#編程研管理能力,改變以往傳統(tǒng)的管理方法,考慮使用效率更高、技術(shù)更先進(jìn)的管理方式。在這種環(huán)境下,開發(fā)該系統(tǒng)有非常大的實(shí)際意義和可行性。2.2 功能需求分析用戶對(duì)系統(tǒng)的功能要求主要包括:信息要求、處理要求、安全性要求、完整性要求。信息要求:能夠通本系統(tǒng),達(dá)到任務(wù)書要求的規(guī)范和完成系統(tǒng)功能,。處理要求:當(dāng)系
22、統(tǒng)信息和交互信息發(fā)生變化時(shí)候,系統(tǒng)能正確處理。安全性要求:系統(tǒng)應(yīng)設(shè)置訪問(wèn)用戶的標(biāo)識(shí)以鑒別是否是合法用戶,并要求合法用戶設(shè)置其密碼,保證用戶身份不被盜用。 完整性要求:各種信息記錄的完整性,信息記錄內(nèi)容不能為空;各種數(shù)據(jù)間相互的聯(lián)系的正確性;相同的數(shù)據(jù)在不同記錄中的一致性。2.5 本章小結(jié)本章首先對(duì)系統(tǒng)的可行性進(jìn)行了詳細(xì)分析,接著對(duì)用戶需求進(jìn)行分析。其次對(duì)論文的組織結(jié)構(gòu)進(jìn)行概述。最后功能需求分析中首先介紹對(duì)系統(tǒng)的總體功能需求,然后在簡(jiǎn)析各個(gè)功能的要求。3 系統(tǒng)概要設(shè)計(jì)3.1 系統(tǒng)功能設(shè)計(jì)通過(guò)前面章節(jié)所述的用戶需求可以看出,要功能模塊如圖3.1所示:圖3.1 系統(tǒng)主要功能模塊圖功能描述如下:(1)
23、讀取數(shù)據(jù)庫(kù)的值。(2)讀取XML的符號(hào)。(3)自動(dòng)生成結(jié)果。(4)導(dǎo)出txt。 3.2 系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì) 3.2.1 系統(tǒng)實(shí)現(xiàn)技術(shù)sqlDataReader對(duì)象 data reader對(duì)象允許你獲得從command對(duì)象的SELECT語(yǔ)句得到的結(jié)果。考慮性能的因素,從data reader返回的數(shù)據(jù)都是快速的且只是“向前”的數(shù)據(jù)流。這意味著你只能按照一定的順序從數(shù)據(jù)流中取出數(shù)據(jù)。這對(duì)于速度來(lái)說(shuō)是有好處的,但是如果你需要操作數(shù)據(jù),更好的辦法是使用DataSet。 DataSet對(duì)象 該對(duì)象包括多個(gè)DataTable對(duì)象,而DataTable包含列和行,就象一個(gè)普通的數(shù)據(jù)庫(kù)中的表。你甚至能夠定義表
24、之間的關(guān)系來(lái)創(chuàng)建主從關(guān)系(parent-child relationships)。DataSet是在特定的場(chǎng)景下使用幫助管理內(nèi)存中的數(shù)據(jù)并支持對(duì)數(shù)據(jù)的斷開操作的。DataSet是被所有Data Providers使用的對(duì)象,因此它并不像Data Provider一樣需要特別的前綴。 SqlDataAdapter對(duì)象 該對(duì)象通過(guò)斷開模型來(lái)幫助用戶方便的完成對(duì)以上情況的處理。當(dāng)在一單批次的對(duì)數(shù)據(jù)庫(kù)的讀寫操作的持續(xù)的改變返回至數(shù)據(jù)庫(kù)的時(shí)候,Data adapter 填充(fill)DataSet對(duì)象。data adapter包含對(duì)連接對(duì)象以及當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀取或者寫入的時(shí)候自動(dòng)的打開或者關(guān)閉連接的引
25、用。另外,data adapter包含對(duì)數(shù)據(jù)的SELECT,INSERT,UPDATE和DELETE操作的command對(duì)象引用。你將為DataSet中的每一個(gè)table都定義data adapter,它將為你照顧所有與數(shù)據(jù)庫(kù)的連接。所有你將做的工作是告訴data adapter什么時(shí)候裝載或者寫入到數(shù)據(jù)庫(kù)3.2.2 開發(fā)語(yǔ)言C#是微軟公司研究員Anders Hejlsberg的最新成果9。C#看起來(lái)與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語(yǔ)法和編譯成中間代碼再運(yùn)行的過(guò)程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型
26、)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的,由C和C+衍生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言10。它在繼承C和C+強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒(méi)有宏和模版,不允許多重繼承)。C#綜合了VB簡(jiǎn)單的可視化操作和C+的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語(yǔ)言。C#已經(jīng)成為ECMA與ISO的標(biāo)準(zhǔn)規(guī)范11。C#看似基于C+寫成,但又融入其它語(yǔ)言如Delphi、Java、VB,大大方便熟悉不同語(yǔ)言的程序員的使用。3.2.3 系統(tǒng)結(jié)構(gòu)C/S (Client/Serve
27、r)結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。3.4 本章小結(jié)本章首先對(duì)系統(tǒng)所包含的功能模塊進(jìn)行劃分,明確各功能模塊所面向的用戶類型和應(yīng)當(dāng)實(shí)現(xiàn)的功能;
28、最后從系統(tǒng)建設(shè)的角度,對(duì)系統(tǒng)的宏觀結(jié)構(gòu)進(jìn)行劃分,系統(tǒng)結(jié)構(gòu)確定選用C/S架構(gòu),選擇C#編程語(yǔ)言進(jìn)行系統(tǒng)的開發(fā)。4 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 數(shù)據(jù)庫(kù)表結(jié)構(gòu)id int Uncheckednum1nvarchar(MAX)Checkednum2nvarchar(MAX)Checkednum3nvarchar(MAX)Checkednum4nvarchar(MAX)Checked在系統(tǒng)中,數(shù)據(jù)庫(kù)還是最佳的數(shù)據(jù)存儲(chǔ)方式,雖然已經(jīng)有很多的書籍在指導(dǎo)我們進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),但應(yīng)該那種方式是設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)的最好方法、設(shè)計(jì)時(shí)應(yīng)遵從什么樣的原則、四個(gè)范式如何能夠用一種方式達(dá)到順暢的應(yīng)用等是我一直在思考和總結(jié)的問(wèn)題,下
29、文是我針對(duì)這幾個(gè)問(wèn)題根據(jù)自己的設(shè)計(jì)經(jīng)歷準(zhǔn)備總結(jié)的一篇文章的提綱,歡迎大家一塊進(jìn)行探討,集思廣益。其中提到了領(lǐng)域建模的概念,但未作詳細(xì)解釋,希望以后能夠有時(shí)間我們針對(duì)這個(gè)命題進(jìn)行深入探討。1)不應(yīng)該針對(duì)整個(gè)系統(tǒng)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),而應(yīng)該根據(jù)系統(tǒng)架構(gòu)中的組件劃分,針對(duì)每個(gè)組件所處理的業(yè)務(wù)進(jìn)行組件單元的數(shù)據(jù)庫(kù)設(shè)計(jì);不同組件間所對(duì)應(yīng)的數(shù)據(jù)庫(kù)表之間的關(guān)聯(lián)應(yīng)盡可能減少,如果不同組件間的表需要外鍵關(guān)聯(lián)也盡量不要?jiǎng)?chuàng)建外鍵關(guān)聯(lián),而只是記錄關(guān)聯(lián)表的一個(gè)主鍵,確保組件對(duì)應(yīng)的表之間的獨(dú)立性,為系統(tǒng)或表結(jié)構(gòu)的重構(gòu)提供可能性。2)采用領(lǐng)域模型驅(qū)動(dòng)的方式和自頂向下的思路進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),首先分析系統(tǒng)業(yè)務(wù),根據(jù)職責(zé)定義對(duì)象。對(duì)象要
30、符合封裝的特性,確保與職責(zé)相關(guān)的數(shù)據(jù)項(xiàng)被定義在一個(gè)對(duì)象之內(nèi),這些數(shù)據(jù)項(xiàng)能夠完整描述該職責(zé),不會(huì)出現(xiàn)職責(zé)描述缺失。并且一個(gè)對(duì)象有且只有一項(xiàng)職責(zé),如果一個(gè)對(duì)象要負(fù)責(zé)兩個(gè)或兩個(gè)以上的職責(zé),應(yīng)進(jìn)行分拆。3)根據(jù)建立的領(lǐng)域模型進(jìn)行數(shù)據(jù)庫(kù)表的映射,此時(shí)應(yīng)參考數(shù)據(jù)庫(kù)設(shè)計(jì)第二范式:一個(gè)表中的所有非關(guān)鍵字屬性都依賴于整個(gè)關(guān)鍵字。關(guān)鍵字可以是一個(gè)屬性,也可以是多個(gè)屬性的集合,不論那種方式,都應(yīng)確保關(guān)鍵字能夠保證唯一性。在確定關(guān)鍵字時(shí),應(yīng)保證關(guān)鍵字不會(huì)參與業(yè)務(wù)且不會(huì)出現(xiàn)更新異常,這時(shí),最優(yōu)解決方案為采用一個(gè)自增數(shù)值型屬性或一個(gè)隨機(jī)字符串作為表的關(guān)鍵字。4)由于第一點(diǎn)所述的領(lǐng)域模型驅(qū)動(dòng)的方式設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu),領(lǐng)域模型
31、中的每一個(gè)對(duì)象只有一項(xiàng)職責(zé),所以對(duì)象中的數(shù)據(jù)項(xiàng)不存在傳遞依賴,所以,這種思路的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)從一開始即滿足第三范式:一個(gè)表應(yīng)滿足第二范式,且屬性間不存在傳遞依賴。5)同樣,由于對(duì)象職責(zé)的單一性以及對(duì)象之間的關(guān)系反映的是業(yè)務(wù)邏輯之間的關(guān)系,所以在領(lǐng)域模型中的對(duì)象存在主對(duì)象和從對(duì)象之分,從對(duì)象是從1N或NN的角度進(jìn)一步主對(duì)象的業(yè)務(wù)邏輯,所以從對(duì)象及對(duì)象關(guān)系映射為的表及表關(guān)聯(lián)關(guān)系不存在刪除和插入異常。6)在映射后得出的數(shù)據(jù)庫(kù)表結(jié)構(gòu)中,應(yīng)再根據(jù)第四范式進(jìn)行進(jìn)一步修改,確保不存在多值依賴。這時(shí),應(yīng)根據(jù)反向工程的思路反饋給領(lǐng)域模型。如果表結(jié)構(gòu)中存在多值依賴,則證明領(lǐng)域模型中的對(duì)象具有至少兩個(gè)以上的職責(zé),
32、應(yīng)根據(jù)第一條進(jìn)行設(shè)計(jì)修正。第四范式:一個(gè)表如果滿足BCNF,不應(yīng)存在多值依賴。7)在經(jīng)過(guò)分析后確認(rèn)所有的表都滿足二、三、四范式的情況下,表和表之間的關(guān)聯(lián)盡量采用弱關(guān)聯(lián)以便于對(duì)表字段和表結(jié)構(gòu)的調(diào)整和重構(gòu)。并且,我認(rèn)為數(shù)據(jù)庫(kù)中的表是用來(lái)持久化一個(gè)對(duì)象實(shí)例在特定時(shí)間及特定條件下的狀態(tài)的,只是一個(gè)存儲(chǔ)介質(zhì),所以,表和表之間也不應(yīng)用強(qiáng)關(guān)聯(lián)來(lái)表述業(yè)務(wù)(數(shù)據(jù)間的一致性),這一職責(zé)應(yīng)由系統(tǒng)的邏輯層來(lái)保證,這種方式也確保了系統(tǒng)對(duì)于不正確數(shù)據(jù)(臟數(shù)據(jù))的兼容性。當(dāng)然,從整個(gè)系統(tǒng)的角度來(lái)說(shuō)我們還是要盡最大努力確保系統(tǒng)不會(huì)產(chǎn)生臟數(shù)據(jù),單從另一個(gè)角度來(lái)說(shuō),臟數(shù)據(jù)的產(chǎn)生在一定程度上也是不可避免的,我們也要保證系統(tǒng)對(duì)這種情
33、況的容錯(cuò)性。這是一個(gè)折中的方案。8)應(yīng)針對(duì)所有表的主鍵和外鍵建立索引,有針對(duì)性的(針對(duì)一些大數(shù)據(jù)量和常用檢索方式)建立組合屬性的索引,提高檢索效率。雖然建立索引會(huì)消耗部分系統(tǒng)資源,但比較起在檢索時(shí)搜索整張表中的數(shù)據(jù)尤其時(shí)表中的數(shù)據(jù)量較大時(shí)所帶來(lái)的性能影響,以及無(wú)索引時(shí)的排序操作所帶來(lái)的性能影響,這種方式仍然是值得提倡的。9)盡量少采用存儲(chǔ)過(guò)程,目前已經(jīng)有很多技術(shù)可以替代存儲(chǔ)過(guò)程的功能如“對(duì)象/關(guān)系映射”等,將數(shù)據(jù)一致性的保證放在數(shù)據(jù)庫(kù)中,無(wú)論對(duì)于版本控制、開發(fā)和部署、以及數(shù)據(jù)庫(kù)的遷移都會(huì)帶來(lái)很大的影響。但不可否認(rèn),存儲(chǔ)過(guò)程具有性能上的優(yōu)勢(shì),所以,當(dāng)系統(tǒng)可使用的硬件不會(huì)得到提升而性能又是非常重要
34、的質(zhì)量屬性時(shí),可經(jīng)過(guò)平衡考慮選用存儲(chǔ)過(guò)程。10)當(dāng)處理表間的關(guān)聯(lián)約束所付出的代價(jià)(常常是使用性上的代價(jià))超過(guò)了保證不會(huì)出現(xiàn)修改、刪除、更改異常所付出的代價(jià),并且數(shù)據(jù)冗余也不是主要的問(wèn)題時(shí),表設(shè)計(jì)可以不符合四個(gè)范式。四個(gè)范式確保了不會(huì)出現(xiàn)異常,但也可能由此導(dǎo)致過(guò)于純潔的設(shè)計(jì),使得表結(jié)構(gòu)難于使用,所以在設(shè)計(jì)時(shí)需要進(jìn)行綜合判斷,但首先確保符合四個(gè)范式,然后再進(jìn)行精化修正是剛剛進(jìn)入數(shù)據(jù)庫(kù)設(shè)計(jì)領(lǐng)域時(shí)可以采用的最好辦法。11)設(shè)計(jì)出的表要具有較好的使用性,主要體現(xiàn)在查詢時(shí)是否需要關(guān)聯(lián)多張表且還需使用復(fù)雜的SQL技巧。12)設(shè)計(jì)出的表要盡可能減少數(shù)據(jù)冗余,確保數(shù)據(jù)的準(zhǔn)確性,有效的控制冗余有助于提高數(shù)據(jù)庫(kù)的性
35、能。5.2 業(yè)務(wù)邏輯層的實(shí)現(xiàn)業(yè)務(wù)層的設(shè)計(jì)是整個(gè)系統(tǒng)的重點(diǎn)和難點(diǎn)。在該系統(tǒng)中根據(jù)需求分析和設(shè)計(jì),抽象出主要的業(yè)務(wù)層組件。5.3 頁(yè)面顯示層的實(shí)現(xiàn)在表示層中,主要采用C#來(lái)實(shí)現(xiàn)。.NET本身提供了比較豐富的控件,基本上可以滿足需要,為了維護(hù)系統(tǒng)界面的一致性,對(duì)一些比較常用的頁(yè)面元素作成控件,這樣每個(gè)用到的頁(yè)面可直接利用這些控件,簡(jiǎn)化了設(shè)計(jì)。在實(shí)現(xiàn)時(shí),使用C#的Form1結(jié)合用戶控件寫的。例如用戶登錄頁(yè)面Login完成登錄功能,頁(yè)面布局如圖 所示。在此插入系統(tǒng)圖片頁(yè)面布局圖當(dāng)用戶單擊“登錄”按鈕時(shí),系統(tǒng)將根據(jù)用戶的輸入對(duì)其進(jìn)行身份驗(yàn)證,實(shí)現(xiàn)代碼如下: String str = "Data
36、Source=; Initial Catalog=LMS;User ID=sa;pwd=" SqlConnection conn = new SqlConnection(str);/ 建立數(shù)據(jù)庫(kù)連接 String p = "select * from Userid where 用戶名 ='" + textBox1.Text.Trim() + "' and 密碼 ='" + textBox2.Text.Trim() + "'" SqlDataAdapter adapter =
37、new SqlDataAdapter(p, conn); SqlCommandBuilder build = new SqlCommandBuilder(adapter); DataSet ds = new DataSet(); adapter.Fill(ds); if (ds.Tables0.Rows.Count > 0) MainFrom main = new MainFrom(); main.Show(); this.Visible = false; else i+; MessageBox.Show("信息輸入不正確", "提示", Mess
38、ageBoxButtons.OK, MessageBoxIcon.Information); textBox1.Text = "" textBox2.Text = "" if (i > 2) MessageBox.Show("錯(cuò)誤次數(shù)大于3次,強(qiáng)制退出!"); Application.Exit(); return; catch (Exception) MessageBox.Show("請(qǐng)輸入正確信息!"); using System;using System.Collections.Generic;using
39、 System.Text;using System.Data; /添加引用using System.Windows.Forms;using System.Data.SqlClient;using System.Collections; namespace RDSystem.ItemClass class SqlBaseClass #region 代碼中用到的變量 SqlDataAdapter G_Da; /聲明數(shù)據(jù)適配器對(duì)象 DataSet G_Ds; /聲明數(shù)據(jù)集對(duì)象 SqlCommand G_Com; SqlConnection G_Con; /聲明鏈接對(duì)象 #endregion #reg
40、ion 連接數(shù)據(jù)庫(kù) public SqlConnection GetCon() string StrConn = "Data Source=.;Initial Catalog=zdj;Integrated Security=True" G_Con = new SqlConnection(StrConn); G_Con.Open(); return G_Con; #endregion #region 構(gòu)造函數(shù) / <summary> / 構(gòu)造函數(shù) / </summary> public SqlBaseClass() #endregion /#regio
41、n 連接數(shù)據(jù)庫(kù) / <summary> / 連接數(shù)據(jù)庫(kù) / </summary> / <returns></returns> /public SqlConnection GetCon() / / G_Con = new SqlConnection(G_Str_ConnectionString); / G_Con.Open(); / return G_Con; / /#endregion #region 執(zhí)行SQL語(yǔ)句 / <summary> / 執(zhí)行SQL語(yǔ)句 / </summary> / <param name=&
42、quot;cmdtxt">要執(zhí)行的SQL語(yǔ)句</param> / <returns></returns> public bool GetExecute(string cmdtxt) G_Com = new SqlCommand(cmdtxt, GetCon(); G_Com.ExecuteNonQuery(); if (GetCon().State = ConnectionState.Open) GetCon().Close(); GetCon().Dispose(); return true; #endregion #region 返回?cái)?shù)據(jù)
43、集類型 / <summary> / 返回?cái)?shù)據(jù)集類型 / </summary> / <param name="cmdtxt">需要查詢的SQL語(yǔ)句</param> / <returns></returns> public DataSet GetDs(string cmdtxt) G_Da = new SqlDataAdapter(cmdtxt, GetCon(); G_Ds = new DataSet(); G_Da.Fill(G_Ds); if (GetCon().State = ConnectionS
44、tate.Open) GetCon().Close(); GetCon().Dispose(); return G_Ds; #endregion #region 返回?cái)?shù)據(jù)表類型 / <summary> / 返回?cái)?shù)據(jù)表 / </summary> / <param name="cmdtxt"></param> / <param name="tablename"></param> / <returns></returns> public DataTable GetT
45、able(string cmdtxt,string tablename) DataTable P_tbl; /聲明一個(gè)DataTable對(duì)象 G_Da = new SqlDataAdapter(cmdtxt, tablename); P_tbl = new DataTable(tablename); G_Da.Fill(P_tbl); /將表中對(duì)象放入P_tbl中 if (GetCon().State = ConnectionState.Open) GetCon().Close(); GetCon().Dispose(); return P_tbl; #endregion #region 返回
46、SqlDaraReader類型數(shù)據(jù) / <summary> / 返回SqlDataReader類型數(shù)據(jù) / </summary> / <param name="cmdtxt">要執(zhí)行的SQL語(yǔ)句</param> / <returns></returns> public SqlDataReader GetReader(string cmdtxt) G_Com = new SqlCommand(cmdtxt, GetCon(); /聲明SqlCommand對(duì)象 SqlDataReader P_Dr; P_D
47、r = G_Com.ExecuteReader(); if (GetCon().State = ConnectionState.Open) GetCon().Close(); GetCon().Dispose(); return P_Dr; #endregion 5.4 讀取XML數(shù)據(jù)源可擴(kuò)展標(biāo)記語(yǔ)言 (Extensible Markup Language, XML) ,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。 XML是標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統(tǒng)一的方
48、法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。XML與Access,Oracle和SQL Server等數(shù)據(jù)庫(kù)不同,數(shù)據(jù)庫(kù)提供了更強(qiáng)有力的數(shù)據(jù)存儲(chǔ)和分析能力,例如:數(shù)據(jù)索引、排序、查找、相關(guān)一致性等,XML僅僅是存儲(chǔ)數(shù)據(jù)。事實(shí)上XML與其他數(shù)據(jù)表現(xiàn)形式最大的不同是:他極其簡(jiǎn)單。這是一個(gè)看上去有點(diǎn)瑣細(xì)的優(yōu)點(diǎn),但正是這點(diǎn)使XML與眾不同。XML與HTML的設(shè)計(jì)區(qū)別是:XML 被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。而HTML 被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀。HTML 旨在顯示信息,而 XML 旨在傳輸信息。XML和HTML語(yǔ)法區(qū)別:HTML的標(biāo)記不是所有的都需要成對(duì)出現(xiàn),XML則要
49、求所有的標(biāo)記必須成對(duì)出現(xiàn);HTML標(biāo)記不區(qū)分大小寫,XML則 大小敏感,即區(qū)分大小寫。XML的簡(jiǎn)單使其易于在任何應(yīng)用程序中讀寫數(shù)據(jù),這使XML很快成為數(shù)據(jù)交換的唯一公共語(yǔ)言,雖然不同的應(yīng)用軟件也支持其它的數(shù)據(jù)交換格式,但不久之后他們都將支持XML,那就意味著程序可以更容易的與Windows,Mac OS,Linux以及其他平臺(tái)下產(chǎn)生的信息結(jié)合,然后可以很容易加載XML數(shù)據(jù)到程序中并分析他,并以XML格式輸出結(jié)果。using System.Xml;/初始化一個(gè)xml實(shí)例XmlDocument xml=new XmlDocument();/導(dǎo)入指定xml文件xml.Load(path);xml.L
50、oad(HttpContext.Current.Server.MapPath("/file/bookstore.xml");/指定一個(gè)節(jié)點(diǎn)XmlNode root=xml.SelectSingleNode("/root");/獲取節(jié)點(diǎn)下所有直接子節(jié)點(diǎn)XmlNodeList childlist=root.ChildNodes;/判斷該節(jié)點(diǎn)下是否有子節(jié)點(diǎn)root.HasChildNodes;/獲取同名同級(jí)節(jié)點(diǎn)集合XmlNodeList nodelist=xml.SelectNodes("/Root/News");/生成一個(gè)新節(jié)點(diǎn)XmlElement node=xml.CreateElement("News");/將節(jié)點(diǎn)加到指定節(jié)點(diǎn)下,作為其子節(jié)點(diǎn)root.AppendChild(node);/將節(jié)點(diǎn)加到指定節(jié)點(diǎn)下某個(gè)子節(jié)點(diǎn)前root.InsertBefore(node,root.ChildeNodesi);/為指定節(jié)點(diǎn)的新建屬性并賦值node.SetAttribute("id","11111");/為指定節(jié)點(diǎn)添加子節(jié)點(diǎn)root.AppendChild(node);/獲取指定節(jié)點(diǎn)的指定屬性
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 年產(chǎn)10億只芯片產(chǎn)品項(xiàng)目實(shí)施方案(模板)
- 2023年校長(zhǎng)元旦致辭范文(13篇)
- 西安海棠職業(yè)學(xué)院《計(jì)算機(jī)輔助平面設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 護(hù)理專業(yè)體溫測(cè)量技術(shù)規(guī)范與操作流程
- 荊楚理工學(xué)院《國(guó)家預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西工業(yè)工程職業(yè)技術(shù)學(xué)院《中藥分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州航空職業(yè)技術(shù)學(xué)院《護(hù)理學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津職業(yè)技術(shù)師范大學(xué)《圖形與視頻處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊職業(yè)技術(shù)學(xué)院《飛機(jī)故障診斷技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安徽財(cái)經(jīng)大學(xué)《建筑師業(yè)務(wù)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 第18課《井岡翠竹》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 【MOOC】《思想道德與法治》(東南大學(xué))章節(jié)中國(guó)大學(xué)慕課答案
- 卜算子-送鮑浩然之浙東課件
- MOOC 中醫(yī)與辨證-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- 國(guó)家開放大學(xué)《高等數(shù)學(xué)基礎(chǔ)》形考任務(wù)1-4參考答案
- 腦血管意外的急救課件
- 利浦倉(cāng)施工方案
- 三調(diào)土地利用現(xiàn)狀分類和三大地類對(duì)應(yīng)甄選
- 消防工程施工進(jìn)度計(jì)劃?rùn)M道圖+進(jìn)度網(wǎng)絡(luò)圖【建筑施工資料】
- 民族教育發(fā)展調(diào)研報(bào)告3篇
- 金屬屋面鋼結(jié)構(gòu)工程專項(xiàng)施工方案(51頁(yè))
評(píng)論
0/150
提交評(píng)論