版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目目 錄:錄:前前 言言.1一、題目分析一、題目分析.21 1.1.1 課程課程設(shè)計設(shè)計的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求) .21.2 團隊任務(wù)分析團隊任務(wù)分析 21.31.3 相關(guān)學問介紹相關(guān)學問介紹.2二、概要設(shè)計二、概要設(shè)計.32.12.1 抽象數(shù)據(jù)類型的定義抽象數(shù)據(jù)類型的定義.32.22.2 各程序模塊之間的層次各程序模塊之間的層次( (調(diào)用調(diào)用) )關(guān)系關(guān)系.4三、具體設(shè)計三、具體設(shè)計.53.13.1 程序流程圖程序流程圖 .5 53.23.2 圖形用戶界面模塊圖形用戶界面模塊 .63.33.3 加密操作模塊加密操作模塊.
2、73.43.4 解密操作模塊解密操作模塊.7 73.53.5 文件保存模塊文件保存模塊.73.63.6 文件選擇模塊文件選擇模塊 .8四、調(diào)試分析四、調(diào)試分析.94.14.1 對設(shè)計與實現(xiàn)的回顧爭辯和分析對設(shè)計與實現(xiàn)的回顧爭辯和分析.104.24.2 算法的時空分析算法的時空分析.114.34.3 閱歷和體會閱歷和體會.12五、測試結(jié)果五、測試結(jié)果.125.15.1 加密加密 .125.25.2 解密解密 .15六、主要參考資料六、主要參考資料 .16 七、附錄七、附錄.16精選文檔- 1 -前前 言言 隨著網(wǎng)絡(luò)技術(shù)的不斷進展,人們的個人信息、網(wǎng)絡(luò)間的文件傳遞、電子商務(wù)等方面都需要大力的愛護,
3、文件加密技術(shù)也就隨之產(chǎn)生。文件的加密主要是由加密算法實現(xiàn),加密算法有多種,常見的有 RSA、DES、MD5 等。但是這些算法雖然原理簡潔,但具體實現(xiàn)起來卻格外繁瑣簡單,故而本程序設(shè)計對文件的加密使用的是最基礎(chǔ)的異或加密算法。Java 語言具有簡潔、平安、可移植、面對對象、健壯、多線程、體系結(jié)構(gòu)中立、解釋執(zhí)行、高性能、分布式和動態(tài)等主要特點。Java 是一門很優(yōu)秀的編程語言,是目前軟件設(shè)計中極為健壯的編程語言。Java 不僅可以用來開發(fā)大型的應(yīng)用程序,而且特殊適合于 Internet 的應(yīng)用開發(fā)。Java 的確具備了“一次寫成,處處運行”的特點,所以,Java 已經(jīng)成為網(wǎng)絡(luò)時代最重要的編程語言之
4、一。本程序充分利用 Java 語言的特點,針對當下社會比較重視的文件加密,設(shè)計了本程序。使用本程序可以對 txt,word 等多種文件進行加密解密,使用便捷有用,功能完善,滿足了用戶對文件平安性的需求。關(guān)鍵詞:JAVA ; 加密; 解密;精選文檔- 2 -一、題目分析一、題目分析1.1 課程設(shè)計的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要課程設(shè)計的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求)求)基本要求:1.用圖形用戶界面實現(xiàn),建立菜單。2. 給定任意一個文本文件,進行加密,生成另一個文件。3對加密后的文件還原。1.2 團隊任務(wù)分析團隊任務(wù)分析分析如下:1向圖形用戶界面中添加組件。2設(shè)置各個
5、組件的布局。3.添加窗口大事。4. 查找讀入及寫入文件,并顯示。5.加密功能實現(xiàn)。6.解密功能實現(xiàn)。其中:團隊成員及其負責的任務(wù)如下: 馮治波:圖形用戶界面 吳祎筱和陳冬姣:文本加密 高峻輝:文本的還原(解密)1.3 相關(guān)學問介紹相關(guān)學問介紹本程序接受傳統(tǒng)的異或加密算法,沒有接受 DES 算法,但對于世界上公認的 DES 是一種分組加密算法,是以 64 位為分組對數(shù)據(jù)加密。64 位一組的明文從算法的一端 輸入,64 位的密文從另一端輸出。密鑰的長度為 56 位(密鑰通常表示為 64 位的數(shù),但每個第 8 位都用作奇偶檢驗,可以忽 略)。密鑰可以是任意的 56 位數(shù),且可以在任意的時候轉(zhuǎn)變。 本
6、程序接受的算法與 DES 相同的精選文檔- 3 -一點是:都是一個對稱算法:及加密和解密用的是同一個算法。我們或許知道公認的 DES 算法的工作過程,那就是:若 Mode 為加密,則用Key 對數(shù)據(jù) Data 進行加密,生成 Data 的密碼 形式(64 位)作為 DES 的輸出結(jié)果;若 Mode 為解密,則用 Key 對密碼形式的數(shù)據(jù) Data 解密,還 原為 Data 的明碼形式(64 位)作為 DES 的輸出結(jié)果。但是,重要的是本程序首先經(jīng)“打開”菜單項,進入文件選擇模塊,讀取字符流,輸出文本文檔后,在一個數(shù)組中,對字符進行異或運算,從而達到加密的效果。在通信網(wǎng)絡(luò)的兩端,雙方商定了全都的
7、 Key,在通信的源點用 Key 對核心數(shù)據(jù)進行 DES 加密 ,然后以密碼形式通過公共通信網(wǎng)(如電話網(wǎng))傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點,數(shù)據(jù)達到目的 地后,用同樣的 Key 對密碼數(shù)據(jù)進行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣便保證了核 心數(shù)據(jù)(如 PIN,MAC 等)在公共通信網(wǎng)中傳輸?shù)钠桨残院屠慰啃?。通過定期在通信網(wǎng)絡(luò)的源 端和目的端同時改用新的 Key,便能更進一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融界交易網(wǎng) 絡(luò)的流行作法。 簡潔地說,DES 算法只不過是加密的其中一種技術(shù),通過一個初始置換,將明文分組分成左半部分和右半部分,各 32 位 長。然后進行 16 輪相同的運算,這些相同的運算被稱為函數(shù)
8、f,在運算過程中數(shù)據(jù)和密 鑰相結(jié)合。經(jīng)過 16 輪運算后左、右部分在一起經(jīng)過一個置換(初始置換的逆置換) ,這樣算 法就完成了。 本程序雖然沒有接受此算法,而是接受眾所周知的與 DES 有相像之處的異或算法,實際上是降低了程序的簡單度,使其更清楚,但功能照舊很強大,可見優(yōu)勢也是很多的。二、概要設(shè)計二、概要設(shè)計2.1 抽象數(shù)據(jù)類型的定義抽象數(shù)據(jù)類型的定義2.1.12.1.1 程序所需要引入的包:程序所需要引入的包:import java.awt.*; /包含用于創(chuàng)建用戶界面和繪制圖形圖像的全部類。精選文檔- 4 -import java.awt.event.*; /供應(yīng)處理由 AWT 組件所激發(fā)
9、的各類大事的接口和類。import javax.swing.*; /供應(yīng)一組“輕量級”(全部是 Java 語言)組件,盡量讓這些組件在全部平臺上的工作方式都相同。import java.io.*; /通過數(shù)據(jù)流、序列化和文件系統(tǒng)供應(yīng)系統(tǒng)輸入和輸出。2.1.22.1.2 其他定義:其他定義:new FlowLayout() 對文件加密器對話框接受 FlowLayout 管理器。new ActionListener() 對文件的加密和解密設(shè)置大事監(jiān)聽器。2.2 各程序模塊之間的層次各程序模塊之間的層次(調(diào)用調(diào)用)關(guān)系關(guān)系2.2.12.2.1 模塊定義模塊定義圖形用戶界面模塊:添加各種所需組件,設(shè)置
10、窗口大事。加密操作模塊:依據(jù)選擇的文本文件,在掃瞄窗口中顯示后,進行加密,顯示在“文本掃瞄窗口”中。解密操作模塊:同加密模塊一樣,由密文的保存路徑,打開,進行解密,顯示在“文本掃瞄窗口”中。文件選擇模塊:選擇需要加密或解密的文件。文件保存模塊:選擇保存路徑,保存需要加密或解密的文件。2.2.2 層次層次(調(diào)用調(diào)用)關(guān)系關(guān)系 依據(jù)以上各程序模塊的定義,可以大致畫出各模塊的層次調(diào)用關(guān)系,由文件加密器模塊開頭調(diào)用,直到解密模塊調(diào)用為止。如下圖 2-2-2 所示。精選文檔- 5 -文件加密器模塊文件選擇模塊加密操作模塊文件保存模塊解密操作模塊 圖圖 2-2-22-2-2 層次(調(diào)用)關(guān)系層次(調(diào)用)關(guān)
11、系三、具體設(shè)計三、具體設(shè)計3.1 程序流程圖程序流程圖 該程序的模塊調(diào)用格外簡潔明白,所以主程序的運行也很清楚,以下就是主程序的具體流程圖,如圖 3-1 所示精選文檔- 6 -開頭彈出文件加密器對話框點擊“文件”菜單下的“打開” ,獲得文件對顯示在掃瞄窗口的“文件”加密生成加密文件點擊“保存” ,選擇路徑,生成新文件,并以“.txt”命名點擊“文件”菜單下的“打開” ,獲得加密后的文件對顯示在掃瞄窗口的“文件”解密生成解密文件結(jié)束 圖圖 3-13-1 主程序流程圖主程序流程圖3.2 圖形用戶界面模塊圖形用戶界面模塊在圖形用戶界面,設(shè)置兩個面板,并分別設(shè)置顯示其組件的布局。設(shè)置兩個菜單項,分別為
12、“打開”和“保存” ;設(shè)置兩個按鈕,分別為“加密”和“解密”;創(chuàng)建一個文本區(qū),用一個標簽注明“文件掃瞄窗口” ,這就是整個圖形用戶界面。 此外,還添加了一個窗口大事 windowClosing,可以關(guān)閉運行的程序。精選文檔- 7 -窗口大事的代碼實現(xiàn):addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );3.3 加密操作模塊加密操作模塊本程序接受簡潔的加密算法,即把從文本區(qū)獲得的文本文件,初始化,存放到一個數(shù)組中,然后進行異或運算,把結(jié)果重新存放于該數(shù)組中
13、,從而顯現(xiàn)在“文件掃瞄窗口”中。代碼實現(xiàn):代碼實現(xiàn):if(e.getSource()=button1)char a=texta.getText().toCharArray();/*把 texta 中獲得的文本,進行初始化,與原字符串長度相等,并將該字符串對象的全部字符復制到該數(shù)組 a中*/texta.setText(null);int n;char secret= ;for(int i=0;ia.length;i+)char c=(char)(secretai);/進行異或運算texta.append(+c);精選文檔- 8 -3.4 解密操作模塊解密操作模塊 解密操作其實同加密操作相同,照舊
14、首先打開加密后的文件,使其顯示在文本區(qū)中,再同樣對數(shù)組里的元素進行初始化,進行異或運算,即可得到解密后的文件,再顯示到“文件掃瞄窗口”中。 入口參數(shù):指定文件路徑代碼實現(xiàn):代碼實現(xiàn):if(e.getSource()=button2)char a=texta.getText().toCharArray();texta.setText(null);int n;char secret= ;for(int i=0;ia.length;i+)char c=(char)(secretai);/再次異或運算,即還原texta.append(+c);3.5 文件保存模塊文件保存模塊本程序最大的特點就是:可以選
15、擇是否保存加密后的文本文件。由于加密后的文件先顯示在文本區(qū)中,之后選擇菜單項“保存” ,即可彈出“保存對話框” ,進行查找寫入文件,寫入字符流,從而實現(xiàn)保存。代碼實現(xiàn):代碼實現(xiàn):精選文檔- 9 -if(e.getSource()=itemSave)/查找寫入的文件filedialog_save.setVisible(true);if(filedialog_save.getFile()!=null)tryFile file=new File(filedialog_save.getDirectory(),filedialog_save.getFile();FileWriter tofile=new
16、 FileWriter(file);/寫入字符流BufferedWriter out=new BufferedWriter(tofile);out.write(texta.getText(),0,(texta.getText().length();out.close();tofile.close();catch (IOException e2)3.6 文件選擇模塊文件選擇模塊 同上個文件保存模塊類似,照舊在選擇菜單項“打開”后,查找讀入文件,讀取字符流,彈出“打開對話框” ,從而可實現(xiàn)獵取文件。 出口值:被選文件的路徑代碼實現(xiàn):代碼實現(xiàn):public void actionPerformed(
17、ActionEvent e)/查找讀入文件if(e.getSource()=itemOpen)精選文檔- 10 -filedialog_load.setVisible(true);texta.setText(null);String s;if(filedialog_load.getFile()!=null)tryFile file=new File(filedialog_load.getDirectory(),filedialog_load.getFile();FileReader file_reader=new FileReader(file);/讀取字符流BufferedReader in
18、=new BufferedReader(file_reader);while(s=in.readLine()!=null)texta.append(s+n);in.close();file_reader.close();catch (IOException e1)四、調(diào)試分析四、調(diào)試分析4.1 對設(shè)計與實現(xiàn)的回顧爭辯和分析對設(shè)計與實現(xiàn)的回顧爭辯和分析在程序設(shè)計之初,考慮的是如何實現(xiàn) DES 算法,但發(fā)覺 DES 算法對于本次小程序來說,的確過于繁瑣,但當我們發(fā)覺接受簡化后的 DES 算法-異或算精選文檔- 11 -法也可實現(xiàn)本功能,所以以后大大削減了工作量,可以說用 Java 語言是程序?qū)崿F(xiàn)的
19、一個成功之處。Java 語言具有簡潔、平安、可移植、面對對象、健壯、多線程、體系結(jié)構(gòu)中立、解釋執(zhí)行、高性能、分布式和動態(tài)等主要特點。而且,我覺得隨著科技的不斷進步,Java 語言的優(yōu)越性會不斷地被挖掘出來,由于Java 語言也是有生命的,它是不斷被人們的需求演化的越來越強大,這些,我覺得不言而喻。但往后,我想只有在不斷的使用以后才能體會到,在發(fā)覺 Java擁有隱秘密鑰工廠后更是感受到它的強大。Java 的 JDK 掛念文檔對于使用 Java編程是格外有掛念的,在我們編程過程中,遇到的一些不清楚的地方,都是靠它才得以解決,同時對 Java 語言的了解也更便利、深化了。程序利用 Java 圖形界面
20、設(shè)計了一個便利用戶操作的窗口,使得程序運行的時候更想是個封裝好的運用程序,不過我知道離這個還是有很大距離的,而程序所要提升空間格外大,現(xiàn)在界面所能實現(xiàn)的也就幾個操作而已。但我們?nèi)颊J為:假如程序要再做的強大點,可以引入其他的加密算法共用戶選擇,還可以設(shè)計成同時對多個文件進行加密,不過這只能放到我們課下對此進行更深一步的爭辯了。程序的每個模塊實現(xiàn)的功能還算完整,層次間的調(diào)用還是比較清楚的,各個功能也得到了基本的實現(xiàn)。4.2 算法的時空分析算法的時空分析算法的時空分析,其實就是指算法的空間簡單度(包括時間簡單度和空間簡單度) ,其作用: 時間簡單度是度量算法執(zhí)行的時間長短;而空間簡單度是度量算法所
21、需存儲空間的大小。程序的時間簡單度理論上是算不出來的,必需經(jīng)過 必需上機運行測試才能知道。但我們不行能也沒有必要對每個算法都上機測試。但我們可以知道本算法其實是 DES 算法的簡化,所以,確定 只需知道哪個算法花費的時間多,哪個算法花費的時間少就可以了 ,并且,一個算法花費的時間與算法中語句的執(zhí)行次數(shù) 成正比例,DES 對 64 位的明文分組進行操作,通過一個初始置換,將明文分組成左半部分 Li 和右半部分 Ri,各 32 位長。然后進行 16 輪完全相同的運算,本程序直接接受數(shù)組,對其中的字符循環(huán)異或,只需進行一輪,所以時間簡單度 T(n)是比較小的??臻g簡單度 O(n)也是一樣的,它是對精
22、選文檔- 12 -程序占用內(nèi)存的分析,由公式 T(n)=O(f(n) )知,時間簡單度與空間簡單度均為 O(n)。4.3 閱歷和體會閱歷和體會這次課程設(shè)計的要求并不多,只要實現(xiàn)加密與解密功能,而且只需要接受一種加密算法,但是為了本次課程設(shè)計,我們組也搜尋了大量的資料,并依據(jù)在課堂上,書本上,老師講過的學問,結(jié)合自身主觀和客觀因素,制定了本次課程設(shè)計的目標,并齊心協(xié)力,完成了此次設(shè)計。通過本次的課程設(shè)計,我們還知道了很多自身存在的不足,例如僅把握了一種加密算法,但在日益發(fā)達的社會商業(yè)等領(lǐng)域,加密解密需要做的還格外多,并且 Java 領(lǐng)域博大精深,我們現(xiàn)在只是學到了它的一點皮毛而已,所以還需多多努
23、力。但是通過這些我還是學到了很多東西,先不說其他的,我最起碼最基礎(chǔ)的加密算法,而且以后可以運用到自己想要保密的文件當中去。通過這次課程設(shè)計,我用 JAVA 語言實現(xiàn),我這是我對 JAVA 語言有了根深的了解鞏固了以前學到的學問,也學習到了新的學問,課程設(shè)計雖然暫告一個段落,但我們學習 Java 的步伐不會終止。五、測試結(jié)果五、測試結(jié)果5.1 加密加密 首先在我機器 C 盤文件夾名為 1 的文件夾離創(chuàng)建一個名為 Example.txt 文本文件用做測試。 運行程序,彈出如圖 5-1-1 的對話框精選文檔- 13 - 圖圖 5-1-15-1-1 運行程序運行程序點擊“文件” ,選擇“打開” ,即彈
24、出“打開”對話框,選擇一個文本文件,如圖 5-1-2。 圖圖 5-1-25-1-2 選擇加密文件選擇加密文件精選文檔- 14 - 選擇文件后,即可在“文件掃瞄窗口”中顯示文本的信息,點擊“加密”按鈕,即可在“文件掃瞄窗口”看到加密后的文件(如圖 5-1-3) 。 圖圖 5-1-35-1-3 生成加密文件生成加密文件對加密后的密文進行保存,選擇“文件”下的“保存” ,即可彈出“保存”對話框,選擇路徑,即可保存,如圖 5-1-4 和 5-1-5 所示。精選文檔- 15 - 圖圖 5-1-45-1-4 保存加密文件保存加密文件 圖圖 5-1-55-1-5 掃瞄加密文件掃瞄加密文件5.2 解密解密解密
25、操作中對文件選擇,密碼輸入和加密操作是一樣的。將剛剛加密的程序進行解密,打開密文文件,選擇“加密與解密”窗口下“解密”按鈕,點擊,即可解密,如圖 5-2 所示。圖圖 5-25-2 生成解密文件生成解密文件精選文檔- 16 -六、主要參考資料六、主要參考資料 1 Java 語言程序設(shè)計教程邱桃榮 機械工業(yè)出版社 2 Java 程序設(shè)計試驗指導陳軼 姚曉昆 清華高校出版社 3 耿祥義等.Java 課程設(shè)計(第 2 版).北京:清華高校出版社,2006.8 4 耿祥義等.Java 有用教程(第三版).北京:清華高校出版社,2006.8 5 ??藸? Java 編程思想(第 4 版).北京:機械工業(yè)出
26、版社,2007.6 6 通過互連網(wǎng)檢索相關(guān)資料。七、附錄七、附錄源代碼:源代碼:import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;class Myframe extends Frame implements ActionListener FileDialog filedialog_save,filedialog_load;Button button1,button2;Label label;MenuBar bar;Menu menu;MenuItem itemOpen,itemSave
27、;TextArea texta;Myframe(String s) /創(chuàng)建對話框精選文檔- 17 -super(s); texta= new TextArea(38,160);button1= new Button(加密);button2= new Button(解密);menu=new Menu(文件);itemOpen=new MenuItem(打開);itemSave=new MenuItem(保存);label=new Label(文件掃瞄窗口);itemOpen.addActionListener(this);itemSave.addActionListener(this);butt
28、on1.addActionListener(this);button2.addActionListener(this);filedialog_save=new FileDialog(this,保存文件對話框,FileDialog.SAVE);filedialog_load=new FileDialog(this,打開文件對話框,FileDialog.LOAD);filedialog_save.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)filedialog_save.setVisibl
29、e(false););filedialog_load.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)filedialog_load.setVisible(false);精選文檔- 18 -);Box box1=Box.createHorizontalBox();/創(chuàng)建一個從左到右顯示其組件的 box1;Box box2=Box.createVerticalBox();/創(chuàng)建一個從上到下顯示其組件的 box2; Box box3=Box.createVerticalBox();Box bo
30、xbase=Box.createVerticalBox();Panel panel1=new Panel();Panel panel2=new Panel();setMenuBar(bar=new MenuBar();bar.add(menu);menu.add(itemOpen); menu.add(itemSave);panel1.add(button1);panel1.add(button2);box1.add(panel1);box2.add(label);panel2.add(texta);box3.add(panel2);boxbase.add(box1);boxbase.add(
31、box2);boxbase.add(box3);add(boxbase);setLayout(new FlowLayout();setBounds(100,0,1200,750);setVisible(true); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)精選文檔- 19 - System.exit(0); );/“關(guān)閉”窗口大事;public void actionPerformed(ActionEvent e)/查找讀入文件if(e.getSource()=itemOpen)filedialog_load.setVisible(true);texta.setText(null);String s;if(filedialog_load.getFile()!=null)tryFile file=new File(filedialog_load.getDirectory(),filedialog_load.getFile();FileReader file_reader=new FileReade
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村干部先進事跡(6篇)
- 銷售類實習報告模板錦集五篇
- DB12T 509-2014 地稅辦稅服務(wù)廳服務(wù)規(guī)范
- 中秋節(jié)向全體員工的慰問信(12篇)
- 計算周長課件教學課件
- 責任演講稿集錦七篇
- DB12∕T 1058-2021 河湖健康評估技術(shù)導則
- 探求防止初中英語兩極分化的有效策略
- 探究論文:淺談高中數(shù)學課堂教學中的探究式教學
- 影響數(shù)學成績的15個壞習慣
- 駕校年度安全生產(chǎn)目標方案
- 2024年插花花藝師理論知識考試題庫(含答案)
- 干部履歷表(中共中央組織部2015年制)
- 2024年基因編輯技術(shù)的倫理問題
- “訂餐協(xié)議書:團體訂餐服務(wù)合作協(xié)議”
- 小學各年級小學一年級提高思維能力的方法主題班會
- 宣傳欄安裝施工方案
- 張曉風散文自選集
- 膽囊息肉的護理查房
- 新課標下小學生運算能力的培養(yǎng)研究的開題報告
- 餐飲行業(yè)初期投資預算分析
評論
0/150
提交評論