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

下載本文檔

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

文檔簡介

1、<p><b>  Java課程設(shè)計</b></p><p><b>  題目:記事本程序</b></p><p><b>  目錄</b></p><p>  一、程序主要完成的功能 ········

2、3;····························2</p><p>  二、設(shè)計思路和框圖 ··

3、83;····································&

4、#183;·3</p><p>  三、主要代碼 ·····························

5、83;·················7</p><p>  四、創(chuàng)新,收獲和不足及改進 ············

6、3;···················25</p><p>  五、小組成員以及組中每個人做了哪些工作 ·········

7、3;··········25</p><p>  一、程序主要完成的功能</p><p>  本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個方面:</p><p>  (1)、菜單中有“文件”、“編輯”、“幫助”三個主菜單;<

8、/p><p>  (2)、“文件”有“新建”、“打開”、“保存”、“另存為”、“退出”分別用于新建文件,打開文件,保存文件,另存文件,退出記事本。</p><p>  (3)、“編輯”中,有“剪切”、“復(fù)制”、“粘貼”、“刪除”、“查找”、“替換”、“全選”七個子菜單:用于剪切文字,復(fù)制文字,粘貼文字,刪除文字,查找文件中的指定的字符串,替換文件中的指定的字符串,選定整個文件。</p&g

9、t;<p>  (4)“幫助”菜單中有“關(guān)于”的子菜單,用于描述記事本程序的相關(guān)信息。</p><p><b>  設(shè)計思路和框圖</b></p><p><b>  2.1主流程圖</b></p><p>  2.2“文件”菜單操作流程</p><p>  2.3“編輯”菜單操作流程

10、</p><p>  2.4“幫助”菜單操作流程</p><p><b>  三、主要代碼</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.io.*;</p&g

11、t;<p>  import javax.swing.*;</p><p>  public class MyNotePad implements ActionListener{ //實現(xiàn)ActionListener這個接口,實現(xiàn)這個接口中所有方法</p><p>  private JFrame frame=new JFrame("記事本"); //

12、新建記事本frame</p><p>  private JTextArea jta=new JTextArea(); //創(chuàng)建文本輸入?yún)^(qū)</p><p>  private String result="";</p><p>  private boolean flag=true; //布爾型 true/false</p>&l

13、t;p>  private File f; //新建file</p><p>  private JTextField jtf=new JTextField(15); //新建文本框</p><p>  private JTextField jt=new JTextField(15);</p><p>  private JButton jb=new JBu

14、tton("開始"); //開始按鈕</p><p>  private JButton jbt=new JButton("替換為"); //替換按鈕</p><p>  private JButton jba=new JButton("全部替換");</p><p>  private Icon ic=

15、new ImageIcon(" ");</p><p>  private String value;</p><p>  private int start=0;</p><p>  private JFrame jf=new JFrame("查找");//查找對話框frame</p><p>  p

16、rivate JFrame jfc=new JFrame("替換");//替換對話框frame</p><p>  public void actionPerformed(ActionEvent e) { //接收操作事件的偵聽器接口</p><p>  String comm=e.getActionCommand(); //返回e當(dāng)前動作指向?qū)ο蟮拿Q</p&g

17、t;<p>  if("新建".equals(comm)){ //新建按鈕的動作的可能性</p><p>  if(!(frame.getTitle().equals("新記事本"))){ //新建記事本的話就直接寫動作</p><p>  if(!flag){</p><p><b>  write

18、();</b></p><p><b>  newNew();</b></p><p><b>  }</b></p><p>  else //否則保存</p><p><b>  {</b></p><p>  JFileChooser

19、jfc=new JFileChooser(" ");//文件選擇對話框</p><p>  int returnVal = jfc.showDialog(null,"保存為");//對話框的標(biāo)題保存為</p><p>  if(returnVal == JFileChooser.APPROVE_OPTION) {</p><p&g

20、t;  f=jfc.getSelectedFile();</p><p>  flag=false;</p><p>  write();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }

21、</b></p><p>  else //文本區(qū)空,新建前保存</p><p>  if(!(jta.getText().isEmpty())){</p><p>  JFileChooser jfc=new JFileChooser(" ");</p><p>  int returnVal = jfc.

22、showDialog(null,"保存為");</p><p>  if(returnVal == JFileChooser.APPROVE_OPTION) {</p><p>  f=jfc.getSelectedFile();</p><p>  flag=false;</p><p><b>  write

23、();</b></p><p><b>  newNew();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>&l

24、t;b>  newNew();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("打開".equals(comm)){//打開動作</p><p>  JFileChooser jfc=

25、new JFileChooser(" ");</p><p>  jfc.setDialogType(JFileChooser.OPEN_DIALOG);//彈出文件打開對話框</p><p>  int returnVal = jfc.showOpenDialog(null);</p><p>  if(returnVal == JFileCh

26、ooser.APPROVE_OPTION) {</p><p>  f=jfc.getSelectedFile();//選擇的文件賦給f</p><p>  frame.setTitle(f.getName());</p><p>  result=read();</p><p>  flag=false;</p><p&

27、gt;  value=result;</p><p>  jta.setText(result);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("保存".equals(comm)){//保存動作</p&

28、gt;<p>  JFileChooser jfc=new JFileChooser(" ");</p><p><b>  if(flag){</b></p><p>  int returnVal = jfc.showDialog(null,"保存為");</p><p>  if(re

29、turnVal == JFileChooser.APPROVE_OPTION) {</p><p>  f=jfc.getSelectedFile();</p><p>  flag=false;</p><p><b>  write();</b></p><p><b>  }</b></

30、p><p><b>  }</b></p><p><b>  else{</b></p><p><b>  write();</b></p><p><b>  }</b></p><p><b>  }</b>

31、;</p><p>  else if("另存".equals(comm)){//另存動作</p><p>  JFileChooser jfc=new JFileChooser(" ");</p><p>  int returnVal = jfc.showDialog(null,"另存");</p

32、><p>  if(returnVal == JFileChooser.APPROVE_OPTION) {</p><p>  f=jfc.getSelectedFile();</p><p><b>  write();</b></p><p><b>  }</b></p><p

33、><b>  }</b></p><p>  else if("退出".equals(comm)){//退出動作</p><p>  System.exit(0);</p><p><b>  }</b></p><p>  else if("撤銷".e

34、quals(comm)){//撤銷動作</p><p>  jta.setText(value);</p><p><b>  }</b></p><p>  else if("剪切".equals(comm)){//剪切動作</p><p>  value=jta.getText();</p&

35、gt;<p>  jta.cut();</p><p><b>  }</b></p><p>  else if("復(fù)制".equals(comm)){//復(fù)制動作</p><p>  jta.copy();</p><p><b>  }</b></p&g

36、t;<p>  else if("粘貼".equals(comm)){//粘貼動作</p><p>  value=jta.getText();</p><p>  jta.paste();</p><p><b>  }</b></p><p>  else if("刪除&q

37、uot;.equals(comm)){//刪除動作</p><p>  value=jta.getText();</p><p>  jta.replaceSelection(null);</p><p><b>  }</b></p><p>  else if("全選".equals(comm))

38、{//全選動作</p><p>  jta.selectAll();</p><p><b>  }</b></p><p>  else if("查找".equals(comm)){//查找動作</p><p>  value=jta.getText();</p><p> 

39、 jf.add(jtf,BorderLayout.CENTER); //中部加入“查找內(nèi)容”文本框</p><p>  jf.add(jb,BorderLayout.SOUTH);//南面加入“開始”按鈕</p><p>  jf.setLocation(300,300);</p><p>  jf.pack();//默認大小</p><p>

40、;  jf.setVisible(true);</p><p>  jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//關(guān)閉窗口</p><p><b>  }</b></p><p>  else if("替換".equals(comm)){//替換動作</p

41、><p>  value=jta.getText();//在JTextArea jta中替換</p><p>  GridLayout gl=new GridLayout(3,3);//3*3表格布局</p><p>  JLabel jl1=new JLabel("查找內(nèi)容:");</p><p>  JLabel jl2=

42、new JLabel("替換為:");</p><p>  jfc.setLayout(gl);//加入gl</p><p>  jfc.add(jl1);</p><p>  jfc.add(jtf);</p><p>  jfc.add(jb);</p><p>  jfc.add(jl2);&

43、lt;/p><p>  jfc.add(jt);</p><p>  jfc.add(jbt);</p><p>  JLabel jl3=new JLabel();</p><p>  JLabel jl4=new JLabel();</p><p>  jfc.add(jl3);</p><p&g

44、t;  jfc.add(jl4);</p><p>  jfc.add(jba);</p><p>  jfc.setLocation(300,300);</p><p>  jfc.pack();</p><p>  jfc.setVisible(true);</p><p>  jfc.setDefaultCl

45、oseOperation(JFrame.DISPOSE_ON_CLOSE);</p><p><b>  }</b></p><p>  else if("版本".equals(comm)){//版本動作</p><p>  JDialog jd=new JDialog(frame,"版本");</

46、p><p>  jd.setSize(200,200);</p><p>  JLabel l=new JLabel("Ver 1.0");//版本內(nèi)容Label</p><p>  jd.add(l,BorderLayout.CENTER);//中部加入Label</p><p>  jd.setLocation(100,2

47、00);</p><p>  jd.setSize(300,300);</p><p>  jd.setVisible(true);</p><p><b>  //</b></p><p>  jd.pack();</p><p>  jd.setDefaultCloseOperatio

48、n(JDialog.DISPOSE_ON_CLOSE);</p><p><b>  }</b></p><p>  else if("開始".equals(comm)||"下一個".equals(comm)){//替換開始,下一個動作</p><p>  String temp=jtf.getText(

49、);//temp為要查找替換的字符</p><p>  int s=value.indexOf(temp,start);//報告指定字符在此實例中的第一個匹配項的索引。搜索從指定字符位置開始,并檢查指定數(shù)量的字符位置。</p><p>  if(value.indexOf(temp,start)!=-1){</p><p>  jta.setSelection

50、Start(s);</p><p>  jta.setSelectionEnd(s+temp.length());//</p><p>  jta.setSelectedTextColor(Color.RED);</p><p>  start=s+1;</p><p>  jb.setText("下一個");

51、//</p><p>  value=value.substring(s+temp.length());//不能截取字串</p><p><b>  }</b></p><p><b>  else{</b></p><p>  JOptionPane.showMessageDialog(jf

52、, "查找完畢!", "提示", 0, ic);</p><p>  jf.dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("替換為".equa

53、ls(comm)){//替換為動作</p><p>  String temp=jtf.getText();</p><p>  int s=value.indexOf(temp,start);</p><p>  if(value.indexOf(temp,start)!=-1){</p><p>  jta.setSelection

54、Start(s);</p><p>  jta.setSelectionEnd(s+temp.length());</p><p>  jta.setSelectedTextColor(Color.RED);</p><p>  start=s+1;</p><p>  jta.replaceSelection(jt.getText

55、());</p><p><b>  }</b></p><p><b>  else{</b></p><p>  JOptionPane.showMessageDialog(jf, "查找完畢!", "提示", 0, ic);</p><p>  

56、jf.dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("全部替換".equals(comm)){//全部替換動作</p><p>  String temp=jta.getText();

57、</p><p>  temp=temp.replaceAll(jtf.getText(), jt.getText());</p><p>  jta.setText(temp);</p><p><b>  }</b></p><p><b>  }</b></p><

58、p>  public String read(){//讀</p><p>  String temp="";</p><p><b>  try {</b></p><p>  FileInputStream fis = new FileInputStream(f.getAbsolutePath());//文件輸入

59、流</p><p>  byte[] b=new byte[1024];</p><p>  while(true){</p><p>  int num=fis.read(b);</p><p>  if(num==-1)break;</p><p>  temp=temp+new String(b,0,n

60、um);</p><p><b>  }</b></p><p>  fis.close();</p><p><b>  }</b></p><p>  catch (Exception e1) {</p><p>  e1.printStackTrace();&l

61、t;/p><p><b>  }</b></p><p>  return temp;</p><p><b>  }</b></p><p>  public void write(){//寫</p><p><b>  try {</b></

62、p><p>  FileOutputStream fos=new FileOutputStream(f);</p><p>  fos.write(jta.getText().getBytes());</p><p>  fos.close();</p><p><b>  }</b></p><p

63、>  catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void newNew(){//新</p><

64、p>  frame.dispose(); </p><p>  /*釋放由此 Window、其子組件及其擁有的所有子組件所使用的所有本機屏幕資源。即這些 Component 的資源將被破壞,它們使用的所有內(nèi)存都將返回到操作系統(tǒng),并將它們標(biāo)記為不可顯示。通過隨后調(diào)用 pack 或 show 重新構(gòu)造本機資源,可以再次顯示 Window 及其子組件。重新創(chuàng)建的 Window

65、 及其子組 件的狀態(tài)與釋放 Window 時這些對象的狀態(tài)一致(不考慮這些操 作之間的其他更改)。*/</p><p>  new MyNotePad();</p><p>  flag=true;</p><p&

66、gt;<b>  }</b></p><p>  public MyNotePad(){</p><p>  JMenuBar jmb=new JMenuBar();//添加MENU菜單欄</p><p>  String[] menuLab={"文件","編輯","幫助"};&

67、lt;/p><p>  String[][] menuItemLab={</p><p>  {"新建","打開","保存","另存","退出"},//文件下拉菜單</p><p>  {"撤銷","剪切","復(fù)制&q

68、uot;,"粘貼","刪除","全選","查找","替換"},//編輯下拉菜單</p><p>  {"版本"}};//幫助下拉菜單</p><p>  for(int i=0;i<menuLab.length;i++){</p><p>

69、;  JMenu menu=new JMenu(menuLab[i]);</p><p>  jmb.add(menu);</p><p>  for(int j=0;j<menuItemLab[i].length;j++){</p><p>  JMenuItem jmi=new JMenuItem(menuItemLab[i][j]);</

70、p><p>  menu.add(jmi);</p><p>  jmi.addActionListener(this);</p><p><b>  }</b></p><p><b>  }</b></p><p>  frame.setJMenuBar(jmb);

71、</p><p>  jta.setLineWrap(true);//自動換行</p><p>  JScrollPane jsp=new JScrollPane(jta);//滾動窗口面板</p><p>  frame.add(jsp);</p><p>  jb.addActionListener(this);</p>

72、<p>  jbt.addActionListener(this);</p><p>  jba.addActionListener(this);</p><p>  frame.setLocation(200,50);</p><p>  frame.setSize(620,660);</p><p>  frame

73、.setVisible(true);</p><p>  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p>  public static void main(String[] args) {//主函數(shù)</p>&

74、lt;p>  new MyNotePad();</p><p><b>  }</b></p><p><b>  }</b></p><p>  四、創(chuàng)新,收獲和不足及改進</p><p>  創(chuàng)新:除了完成本次實驗要求的內(nèi)容外,本程序還添加“撤銷”功能,增加了版本菜單。</p>

75、<p>  收獲:這次課程設(shè)計主要由王澤恒帶領(lǐng)大家負責(zé)撰寫程序,但因為學(xué)習(xí)時間不長,對相關(guān)知識理解得還不是很透徹。致使在這次課程設(shè)計的過程中,遇到了很多問題。諸如,“查找”“替換”功能不能完全實現(xiàn)??梢哉f,這次寫論文的過程是個很艱辛的過程。不過在設(shè)計的過程中,我收獲了很多。從選擇課程設(shè)計的題目開始,到需求分析,開發(fā)工具的選擇,最終到系統(tǒng)的設(shè)計思路,關(guān)鍵代碼的設(shè)計,每一步都認真思考分析完成。有點遺憾的是,起初在設(shè)計時原本打算

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論