2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  課程設(shè)計(jì)報告</b></p><p>  課程名稱: 網(wǎng)絡(luò)編程技術(shù) 課程設(shè)計(jì)</p><p>  設(shè)計(jì)題目: 圖片瀏覽器 </p><p><b>  目錄</b></p><p><b>  1 需求分析2<

2、/b></p><p>  1.1 課程設(shè)計(jì)題目2</p><p>  1.2 課程設(shè)計(jì)要求及功能2</p><p>  1.3 課程設(shè)計(jì)思想2</p><p>  1.4 軟硬件運(yùn)行環(huán)境及開發(fā)工具2</p><p>  1.5 功能設(shè)計(jì)2</p><p><b>  

3、2 總體設(shè)計(jì)2</b></p><p>  2.1 概要設(shè)計(jì)2</p><p>  2.2程序執(zhí)行流程圖3</p><p><b>  3 設(shè)計(jì)內(nèi)容4</b></p><p>  3.1 功能的代碼4</p><p>  3.2 效果展示7</p><p

4、>  4 調(diào)試及操作說明8</p><p>  5 課程設(shè)計(jì)總結(jié)與體會8</p><p><b>  6 致謝9</b></p><p><b>  7 參考文獻(xiàn)9</b></p><p><b>  圖片瀏覽器</b></p><p>&

5、lt;b>  ——文件下一張模塊</b></p><p><b>  1 需求分析</b></p><p>  1.1 課程設(shè)計(jì)題目</p><p><b>  圖片瀏覽器課程設(shè)計(jì)</b></p><p>  1.2 課程設(shè)計(jì)要求及功能</p><p>  

6、本次課程設(shè)計(jì)主要任務(wù)是由我們小組所有人員一起工作利用java語言,編寫一個圖片瀏覽器的軟件,根據(jù)老師的要求我們是每個人負(fù)責(zé)一個模塊,但是最后的組裝是由組長來完成的。該圖片瀏覽器所具有的功能有:打開圖片、上一張、下一張、放大圖片、縮小圖片、關(guān)閉程序、幫助與支持等基本功能。</p><p>  1.3 課程設(shè)計(jì)思想</p><p>  本軟件主要使用圖形用戶界面,JAVA的輸入輸出流,以及鼠標(biāo)

7、監(jiān)聽等事件監(jiān)聽器等技術(shù)。在具體實(shí)現(xiàn)方面大體上將程序分為事件監(jiān)聽類ViewerFrame,程序入口類main,,事件監(jiān)聽處理類ViewerAction,程序功能實(shí)現(xiàn)類ViewerService,文件過濾處理類ViewerFileChooser;通過整合是個各類連接起來形成一個統(tǒng)一的整體進(jìn)而封裝成一個整體,形成一個軟件可以方便用戶的使用。本軟件類似于現(xiàn)在市面上流行的圖片瀏覽軟件但是沒有流行的軟件那么多功能,但是它使用起來比較簡單方便。<

8、;/p><p>  1.4 軟硬件運(yùn)行環(huán)境及開發(fā)工具</p><p>  開發(fā)環(huán)境:Windows XP下安裝了JDK JRE6.0軟件;</p><p>  開發(fā)工具:Eclipse3.5;</p><p><b>  1.5 功能設(shè)計(jì)</b></p><p>  本圖片瀏覽器主要功能如下:<

9、/p><p>  打開:從指定目錄中導(dǎo)入選中的圖片;</p><p>  上一張:導(dǎo)入當(dāng)前圖片所在存儲位置的上一張圖片;</p><p>  下一張:導(dǎo)入當(dāng)前圖片所在存儲位置的下一張圖片;</p><p>  放大:放大顯示當(dāng)前圖片;</p><p>  縮小:縮小顯示當(dāng)前圖片;</p><p>&

10、lt;b>  退出:退出軟件。</b></p><p><b>  2 總體設(shè)計(jì)</b></p><p><b>  2.1 概要設(shè)計(jì)</b></p><p>  本軟件主要由以下模塊構(gòu)成:主模塊、界面、文件篩選、服務(wù)模塊構(gòu)成。各模塊的主要功能是:主模塊主要用來打開該軟件;界面模塊主要實(shí)現(xiàn)軟件界面;文件篩

11、選模塊主要對文件的后綴進(jìn)行判斷與過濾,判斷文件是否為圖片文件;服務(wù)模塊主要實(shí)現(xiàn)軟件中的一些關(guān)鍵代碼。比如,文件的打開以及在打開文件的同時調(diào)用文件篩選功能;各模塊分別在不同的源文件中實(shí)現(xiàn),對軟件的界面設(shè)計(jì)放在ViewerFrame里面。在軟件窗口中主要分為兩部分:菜單部分和圖片顯示部分;菜單部分使用JMenuBar類實(shí)現(xiàn),圖片顯示部分使用JLabel類實(shí)現(xiàn);對文件類型以擴(kuò)展名的方式進(jìn)行過濾,該部分是在ViewerFileChooser類中

12、實(shí)現(xiàn);事件的監(jiān)聽是在ViewerFrame里面,在菜單欄中,對每一個選項(xiàng)使用二維數(shù)組進(jìn)行編號,在選項(xiàng)內(nèi)容設(shè)置的同時為其設(shè)置監(jiān)聽;事件的實(shí)現(xiàn)是在ViewerService里面,當(dāng)所監(jiān)聽到的事件被觸發(fā)時會自動轉(zhuǎn)入該類中的相應(yīng)處理方法;功能的實(shí)現(xiàn)是在ViewerService里面,在該類中,利用menuDo()方法對當(dāng)前觸發(fā)事件進(jìn)行選擇,然后跳轉(zhuǎn)到本類中的響應(yīng)處理方法來實(shí)現(xiàn)功能。</p><p>  2.2程序執(zhí)行流程

13、圖</p><p><b>  圖1 系統(tǒng)流程圖</b></p><p><b>  3 設(shè)計(jì)內(nèi)容</b></p><p>  在該圖片瀏覽器的設(shè)計(jì)制作中,我所負(fù)責(zé)的部分是圖片下一張的功能的實(shí)現(xiàn)。此功能主要是在事件的監(jiān)聽是在ViewerFrame,這個模塊里面實(shí)現(xiàn)的。</p><p><b&g

14、t;  3.1 功能的代碼</b></p><p>  package com.gh;</p><p>  import java.awt.Image;</p><p>  import java.io.File;</p><p>  import java.util.ArrayList;</p><p>

15、  import java.util.List;</p><p>  import javax.swing.ImageIcon;</p><p>  import javax.swing.filechooser.FileFilter;</p><p>  public class ViewerService {</p><p>  priva

16、te static ViewerService service = null;</p><p>  // 新建一個ViewerFileChooser</p><p>  private ViewerFileChooser fileChooser = new ViewerFileChooser();</p><p>  // 放大或者縮小的比例</p>

17、<p>  private double range = 0.2;</p><p><b>  // 目前的文件夾</b></p><p>  private File currentDirectory = null;</p><p>  // 目前文件夾下的所有圖片文件</p><p>  private

18、List<File> currentFiles = null;</p><p><b>  // 目前圖片文件</b></p><p>  private File currentFile = null;</p><p>  public static ViewerService getInstance() {</p>

19、<p>  if (service == null) {</p><p>  service = new ViewerService();</p><p><b>  }</b></p><p>  return service;</p><p><b>  }</b></p&

20、gt;<p>  public void open(ViewerFrame frame) {</p><p><b>  // 如果選擇打開</b></p><p>  if (fileChooser.showOpenDialog(frame) == ViewerFileChooser.APPROVE_OPTION) {</p><p

21、>  // 給目前打開的文件賦值</p><p>  this.currentFile = fileChooser.getSelectedFile();</p><p><b>  // 獲取文件路徑</b></p><p>  String name = this.currentFile.getPath();</p>&l

22、t;p>  // 獲取目前文件夾</p><p>  File cd = fileChooser.getCurrentDirectory();</p><p>  // 如果文件夾有改變</p><p>  if (cd != this.currentDirectory || this.currentDirectory == null) {</p>

23、<p>  // 或者fileChooser的所有FileFilter</p><p>  FileFilter[] fileFilters = fileChooser</p><p>  .getChoosableFileFilters();</p><p>  File files[] = cd.listFiles();</p>&l

24、t;p>  this.currentFiles = new ArrayList<File>();</p><p>  for (File file : files) {</p><p>  for (FileFilter filter : fileFilters) {</p><p>  // 如果是圖片文件</p><p>

25、;  if (filter.accept(file)) {</p><p>  // 把文件加到currentFiles中</p><p>  this.currentFiles.add(file);</p><p><b>  }</b></p><p><b>  }</b></p>

26、<p><b>  }</b></p><p><b>  }</b></p><p>  ImageIcon icon = new ImageIcon(name);</p><p>  frame.getLabel().setIcon(icon);</p><p><b>

27、  }</b></p><p><b>  }</b></p><p>  public void zoom(ViewerFrame frame, boolean isEnlarge) {</p><p>  // 獲取放大或者縮小的乘比</p><p>  double enLargeRange = is

28、Enlarge ? 1 + range : 1 - range;</p><p>  // 獲取目前的圖片</p><p>  ImageIcon icon = (ImageIcon) frame.getLabel().getIcon();</p><p>  if (icon != null) {</p><p>  int width =

29、 (int) (icon.getIconWidth() * enLargeRange);</p><p>  // 獲取改變大小后的圖片</p><p>  ImageIcon newIcon = new ImageIcon(icon.getImage()</p><p>  .getScaledInstance(width, -1, Image.SCALE_DEF

30、AULT));</p><p>  // 改變顯示的圖片</p><p>  frame.getLabel().setIcon(newIcon);</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void l

31、ast(ViewerFrame frame) {</p><p>  // 如果有打開包含圖片的文件夾</p><p>  if (this.currentFiles != null && !this.currentFiles.isEmpty()) {</p><p>  int index = this.currentFiles.indexOf(t

32、his.currentFile);</p><p><b>  // 打開上一個</b></p><p>  if (index > 0) {</p><p>  File file = (File) this.currentFiles.get(index - 1);</p><p>  ImageIcon ico

33、n = new ImageIcon(file.getPath());</p><p>  frame.getLabel().setIcon(icon);</p><p>  this.currentFile = file;</p><p><b>  }</b></p><p><b>  }</b>

34、;</p><p><b>  }</b></p><p>  public void next(ViewerFrame frame) {</p><p>  // 如果有打開包含圖片的文件夾</p><p>  if (this.currentFiles != null && !this.curren

35、tFiles.isEmpty()) {</p><p>  int index = this.currentFiles.indexOf(this.currentFile) + 1;</p><p><b>  // 打開下一個</b></p><p>  if (index + 1 < this.currentFiles.size())

36、{</p><p>  File file = (File) this.currentFiles.get(index + 1);</p><p>  ImageIcon icon = new ImageIcon(file.getPath());</p><p>  frame.getLabel().setIcon(icon);</p><p>

37、;  this.currentFile = file;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void menuDo(ViewerFrame frame, St

38、ring cmd) {</p><p><b>  // 打開</b></p><p>  if (cmd.equals("打開(O)")) {</p><p>  open(frame);</p><p><b>  }</b></p><p><

39、b>  // 放大</b></p><p>  if (cmd.equals("放大(M)")) {</p><p>  zoom(frame, true);</p><p><b>  }</b></p><p><b>  // 縮小</b></p&g

40、t;<p>  if (cmd.equals("縮小(O)")) {</p><p>  zoom(frame, false);</p><p><b>  }</b></p><p><b>  // 上一個</b></p><p>  if (cmd.equ

41、als("上一個(X)")) {</p><p>  last(frame);</p><p><b>  }</b></p><p><b>  // 下一個</b></p><p>  if (cmd.equals("下一個(P)")) {</p&g

42、t;<p>  next(frame);</p><p><b>  }</b></p><p><b>  // 退出</b></p><p>  if (cmd.equals("退出(X)")) {</p><p>  System.exit(0);<

43、/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.2 效果展示</b></p><p>  本功能相關(guān)實(shí)現(xiàn)截圖如圖2圖3:</p><p>  圖2 含有“下一張”功能截圖</p>&

44、lt;p>  圖3 圖片進(jìn)行下一章操作的效果</p><p><b>  4 調(diào)試及操作說明</b></p><p>  本模塊編寫完成后,交由組長進(jìn)行整合及測試;本軟件簡單易用,關(guān)于下一張操作,只需要在軟件成功運(yùn)行后,選擇菜單欄中的文件”下一張”即可。</p><p>  5 課程設(shè)計(jì)總結(jié)與體會</p><p>

45、  通過這幾天的學(xué)習(xí),我感覺到了對于網(wǎng)絡(luò)編程這門課程有了更加深刻的認(rèn)識,雖然到最后學(xué)會的東西不是很多,但是我覺得挺充實(shí)的,覺得這幾天過的很有意義,在這個過程中才意識到原來編程還是挺有意思的。以前只是編寫C語言等程序感覺是那么的枯燥,即使編寫出來也沒多少成功的感覺。但是做了這個課程設(shè)計(jì)后我的看法改變了。</p><p>  這次做課程設(shè)計(jì),給我最大的收獲是鍛煉了我編程的能力,增加了我對編程的興趣,雖然我依然不喜歡編

46、程但是不妨礙我從另一個角度去思考它,最主要的是明白了做什么讀不容易,并且在這個過程中我學(xué)會了面對一個問題我應(yīng)該如何入手,如何思考,如何尋找問題的突破口。而且我應(yīng)該感謝我的指導(dǎo)老師,是他對我們那么嚴(yán)格要求,才使得我們可以更加精益求精,把我們的程序盡可能的做到完美。當(dāng)然,也由于我的經(jīng)驗(yàn)不足,這次編的程序也不是特別的完美,但是,我依然很高興,因?yàn)槲覀儚倪@次的實(shí)習(xí)中學(xué)到了對我們來說很重要的東西,這個經(jīng)歷讓我感受頗多,我發(fā)現(xiàn)耐心的重要性,我更發(fā)現(xiàn)

47、了學(xué)習(xí)的重要性。沒有什么不可能的,什么事情都得自己親自嘗試了,才知道其中的酸甜苦辣。這不僅可以用到我的學(xué)習(xí)生活中,也為我將來的工作提供了一次實(shí)踐的機(jī)會。讓我深刻的了解到,學(xué)習(xí)的要性,并且跟同學(xué)的交流也是特別的重要。在實(shí)習(xí)過程中組長對我的教導(dǎo)是我在能完成任務(wù)的一個必不可少的原因,而且在很多的程序不能運(yùn)行時,是他及時出現(xiàn)幫助我找到了原因,并且指導(dǎo)我在以后碰到同類型問題應(yīng)該如何處理,讓我獲益良多。</p><p>  

48、在實(shí)習(xí)即將結(jié)束時王老師和我們說了一句自己的人生經(jīng)驗(yàn):“人要學(xué)會吃苦吃虧“,因?yàn)樵趯淼墓ぷ鳝h(huán)境中不如意的事將多如牛毛,又苦又累的工作總的有人做,而且不是每個人都能吃到肉總的有人喝湯,總得有人連湯也喝不上,但是這正是磨礪人得時候如果這時候退縮了,則人生注定一事無成。在實(shí)習(xí)結(jié)束候我仔細(xì)的回味了回味老師的這倆句話,感覺很有哲理,覺得這是老師自己的的人生經(jīng)驗(yàn),對我觸動挺大的,也許可以這樣說這次實(shí)習(xí)讓我學(xué)會的人生經(jīng)驗(yàn)比知識更加寶貴吧!我仿佛在我的

49、心里種下了個火種,指引著我努力的向前方邁進(jìn)。</p><p>  總的來說,這次課程設(shè)計(jì)真是讓我終身難忘啊,這里面的酸甜苦辣也就只有自己知道啊。這里面有自身的不足,有知識的不夠,也有中間耐心的不夠,不過,我很高興有這次做課程設(shè)計(jì)的經(jīng)歷。終身難忘!??!</p><p><b>  6 致謝</b></p><p>  在本次課程設(shè)計(jì)過程中,我十分

50、感謝給予我們幫助的*老師、**老師以及同學(xué)們在我遇到問題時耐心地給我們幫助。*老師們對我們認(rèn)真嚴(yán)謹(jǐn)?shù)慕虒W(xué)態(tài)度和深厚的知識底蘊(yùn),讓我獲益良多。再次感謝老師們對我們孜孜不倦的教誨,以及同學(xué)們無私的幫助。</p><p><b>  7 參考文獻(xiàn)</b></p><p>  馬曉敏 肖明 姜遠(yuǎn)明 齊永波,《Java網(wǎng)絡(luò)編程原理與JSP Web開發(fā)核心技術(shù)》中國鐵道出版社,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論