《java課程設(shè)計報告》word版
《《java課程設(shè)計報告》word版》由會員分享,可在線閱讀,更多相關(guān)《《java課程設(shè)計報告》word版(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、精品 面向?qū)ο蟪绦蛟O(shè)計(Java) 課程設(shè)計報告 題 目:真心話大冒險游戲 專 業(yè): 計算機網(wǎng)絡(luò)技術(shù) 班 級: _ _ 學(xué) 號: ____ _ 姓 名: _ 任課教師: _ 時間: 2013年 1 月3 日 1.概述:課程設(shè)計的目的和系統(tǒng)功能概述 課程設(shè)計目的:利用本次課程設(shè)計的機會,讓我復(fù)習(xí)本學(xué)期所學(xué)的知識,并通過不斷修改和嘗試,完成程序的設(shè)計。 系統(tǒng)功能概述:真心話大冒險小游戲 一開始的
2、界面 二. 詳細設(shè)計方案,完整代碼如下: import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Truthordare extends JFrame implements ActionListener,ItemListener{ JMenuItem jdakaitiku,jshezhirenshu,jshezhiziti,jtuichuyouxi,jyouxiguize,jzhizuorenyuan; JMenuBa
3、r mbar; static JLabel jlabel,jlabel2; static JRadioButton jrb0,jrb3,jrb4; JCheckBox jcb1,jcb2; ImageIcon image; static int i=16,r=4; public Truthordare(){ super("菜單窗口");//調(diào)用父類構(gòu)造器,設(shè)置標(biāo)題欄文章 this.setLayout(null); image =new ImageIcon("jiuping.gif"); JMenu jcaidansh
4、ezhi=new JMenu("設(shè)置");//創(chuàng)建菜單項 jdakaitiku=new JMenuItem("打開題庫");//創(chuàng)建子菜單 jshezhirenshu=new JMenuItem("設(shè)置人數(shù)");//創(chuàng)建子菜單 jshezhiziti=new JMenuItem("設(shè)置字體");//創(chuàng)建子菜單 jtuichuyouxi=new JMenuItem("退出游戲");//創(chuàng)建子菜單 JMenu jcaidanxinxi=new JMenu("信息");//創(chuàng)建菜單項 jyouxiguize=new JMenuItem(
5、"游戲規(guī)則");//創(chuàng)建子菜單 jzhizuorenyuan=new JMenuItem("制作人員"); //創(chuàng)建子菜單 jrb0 = new JRadioButton("開始游戲"); jrb3 = new JRadioButton("紅色"); jrb4 = new JRadioButton("黃色"); jcb1 = new JCheckBox("加粗"); jcb2 = new JCheckBox("斜體"); jlabel2 = new JLabel(image);//圖片 jlabel = ne
6、w JLabel("真心話大冒險"); //設(shè)置標(biāo)簽文本的字體 ,36)); jrb0.addActionListener(this);//開始游戲 jrb3.addActionListener(this);//紅色 jrb4.addActionListener(this);//黃色 jcb1.addItemListener(this);//加粗 jcb2.addItemListener(this);//斜體 jyouxiguize.addActionListener(this);//為子菜單添加監(jiān)聽器
7、jzhizuorenyuan.addActionListener(this);//為子菜單添加監(jiān)聽器 jdakaitiku.addActionListener(this);//為子菜單添加監(jiān)聽器 jshezhirenshu.addActionListener(this);//為子菜單添加監(jiān)聽器 jshezhiziti.addActionListener(this);//為子菜單添加監(jiān)聽器 jcaidanshezhi.add(jdakaitiku);//第一個菜單,將子菜單添加到菜單項中 jcaidanshezhi.add(jshezhire
8、nshu);//第一個菜單,將子菜單添加到菜單項中 jcaidanshezhi.add(jshezhiziti);//第一個菜單,將子菜單添加到菜單項中 jcaidanshezhi.add(jtuichuyouxi);//第一個菜單,將子菜單添加到菜單項中 jcaidanxinxi.add(jyouxiguize);//第二個菜單,的子菜單 jcaidanxinxi.add(jzhizuorenyuan);//第二個菜單,的子菜單 jcaidanshezhi.insertSeparator(1);//給菜單添加分隔符 jcaidanshez
9、hi.insertSeparator(3);//給菜單添加分隔符 jcaidanshezhi.insertSeparator(5);//給菜單添加分隔符 jcaidanxinxi.insertSeparator(1);//給菜單添加分隔符 ButtonGroup bg = new ButtonGroup(); bg.add(jrb0); this.getContentPane().add(jrb0); this.getContentPane().add(jrb3); this.ge
10、tContentPane().add(jrb4); this.getContentPane().add(jcb1); this.getContentPane().add(jcb2); this.getContentPane().add(jlabel); this.getContentPane().add(jlabel2); this.getContentPane().setLayout(null); jlabel.setBounds(100,100,300,80); jrb0.setBounds(170,160,100,20);
11、 JMenuBar mbar=new JMenuBar();//創(chuàng)建菜單欄 mbar.add(jcaidanshezhi);//菜單項添加到菜單欄中 mbar.add(jcaidanxinxi); mbar=new JMenuBar(); mbar.add(jcaidanshezhi); mbar.add(jcaidanxinxi); setJMenuBar(mbar);//設(shè)置菜單欄對顯示在窗口中 jlabel2.setBounds(70,50,300,300); setSize(450,
12、450); setVisible(true); jtuichuyouxi.addActionListener (new ActionListener () { //退出游戲的 public void actionPerformed(ActionEvent e) { System.exit (0); } } ); } public void ite
13、mStateChanged(ItemEvent e){ if(jcb1.isSelected()){ jlabel.setFont(new Font("宋體",Font.BOLD,20)); } if(jcb2.isSelected()){ jlabel.setFont(new Font("黑體",Font.ITALIC,40)); } if(jcb2.isSelected()&&jcb1.isSelected()){ jlabel.setFont(new Font("黑體",Font.ITALIC|Font.BOLD,
14、33)); } if(!jcb2.isSelected()&&!jcb1.isSelected()){ jlabel.setFont(new Font("黑體",Font.PLAIN,20)); } } public void actionPerformed(ActionEvent e){//貌似是子菜單的方法 if(e.getSource()==jrb0){//如果點擊新建菜單 kaishiyouxi g=new kaishiyouxi(); }
15、 if(e.getSource()==jdakaitiku){//如果點擊新建菜單 JOptionPane.showMessageDialog(this,"真心話?。?!\n和男/女朋友進行到哪一步了\n最喜歡在座哪位異性內(nèi)衣/褲顏色\n初吻年齡\n自己最丟人的事\n最后一次發(fā)自內(nèi)心的笑是什么時候?\n愿意為愛情犧牲到什么程度\n朋友和男/女朋友那個重要\n身上哪個部位最敏感\(zhòng)n如果有來生,你選擇當(dāng)?\n你會選擇Having sex before marriage嗎?\n如果讓你選擇做一個電影中的角色,你會選誰呢\n如果有一天我和你吵架,你會怎么辦?\n哭得最傷心的是哪一次為什么?\n
16、如果跟你喜歡的人約會,碰到前任的男(女)朋友,會有什么表現(xiàn)?\n如果有一天我對你說我愛上你了,你怎么辦\n大冒險?。?!\n背一位異性繞場一周\n唱青藏高原最后一句\n做一個大家都滿意的鬼臉\n抱一位異性直到下一輪真心話大冒險結(jié)束\n像一位異性表白3分鐘\n與一位異性十指相扣,對視10秒\n邀請一位異性與你情歌對唱\n做自己最性感、最嫵媚的表情或動作\n吃下每個人為你夾得菜\n跳草裙舞\n蹲在凳子上作便秘狀\n親某某\n神情的吻墻10秒\n模仿古代特殊職業(yè)女子拉客\n模仿腦白金廣告,邊唱邊跳\n讓他到街上大喊:我的病有救了"); }//二級窗口顯示信息 if(
17、e.getSource()==jshezhirenshu){//如果點擊新建菜單 shezhirenshu w=new shezhirenshu(); } if(e.getSource()==jshezhiziti){//如果點擊新建菜單 shezhiziti t=new shezhiziti(); // this.setVisible(false); //是否關(guān)閉二級窗口 } if(e.getSource()==jyouxiguize){//如果點擊新建菜單 JOptionPa
18、ne.showMessageDialog(this,"真心話大冒險游戲規(guī)則\n選定方啟動游戲,當(dāng)轉(zhuǎn)盤指向第二人為被動方\n由選定的一方選擇真心話或者大冒險\n選擇真心話,則由勝方隨意問輸者問題,輸者必須全部如實回答;\n選擇大冒險,則勝方隨意出任何行為問題由輸方嘗試完成"); }//二級窗口顯示信息 if(e.getSource()==jzhizuorenyuan){//如果點擊新建菜單 JOptionPane.showMessageDialog(this,"truth or dare1.0\n制作人員:xxxxx\n在此特別感謝給予我支持的朋友");
19、 }//二級窗口顯示信息 } } class shezhirenshu extends JFrame implements ActionListener {//設(shè)置人數(shù)的界面 JRadioButton jrb6,jrb7,jrb8,jrb9; public shezhirenshu(){ super("復(fù)選框事件處理"); jrb6 = new JRadioButton("2位玩家"); jrb7 = new JRadioButton("4位玩家"); jrb8 = new JRadioButton("6位玩家"); jr
20、b9 = new JRadioButton("8位玩家"); //注冊監(jiān)聽器 jrb6.addActionListener(this); jrb7.addActionListener(this); jrb8.addActionListener(this); jrb9.addActionListener(this); ButtonGroup bg = new ButtonGroup(); bg.add(jrb6); (jrb7); bg.add(jrb8); bg.add(jrb9);
21、 this.getContentPane().add(jrb6); this.getContentPane().add(jrb7); this.getContentPane().add(jrb8); this.getContentPane().add(jrb9); this.getContentPane().setLayout(null); jrb6.setBounds(40,40,100,20); jrb7.setBounds(150,40,100,20); jrb8.setBounds(40,80,100,20);
22、jrb9.setBounds(150,80,100,20); this.setSize(350,200); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==jrb6) { Truthordare.r=2; JOptionPane.showMessageDialog(this,"當(dāng)前玩家人數(shù)為2人"); } if(e.getSource()==jrb7) { Trutho
23、rdare.r=4; JOptionPane.showMessageDialog(this,"當(dāng)前玩家人數(shù)為4人"); } if(e.getSource()==jrb8) { Truthordare.r=6; JOptionPane.showMessageDialog(this,"當(dāng)前玩家人數(shù)為6人"); } if(e.getSource()==jrb9) { Truthordare.r=8; JOptionPane.showMessageDialog(this,"當(dāng)前玩家人數(shù)為8人");
24、 } } } class shezhiziti extends JFrame implements ActionListener,ItemListener {//設(shè)置字體二級窗口的界面 JRadioButton jrb3,jrb4; JCheckBox jcb1,jcb2; public shezhiziti(){ super("復(fù)選框事件處理"); jrb3 = new JRadioButton("紅色"); jrb4 = new JRadioButton("黃色"); jcb1 = new
25、JCheckBox("加粗"); jcb2 = new JCheckBox("斜體"); //注冊監(jiān)聽器 jrb3.addActionListener(this); jrb4.addActionListener(this); jcb1.addItemListener(this); jcb2.addItemListener(this); ButtonGroup bg = new ButtonGroup(); bg.add(jrb3); bg.add(jrb4); this.getCon
26、tentPane().add(jrb3); this.getContentPane().add(jrb4); this.getContentPane().add(jcb1); this.getContentPane().add(jcb2); this.getContentPane().setLayout(null); jrb3.setBounds(40,80,100,20); jrb4.setBounds(150,80,100,20); jcb1.setBounds(40,120,100,20); jcb2.setBoun
27、ds(150,120,100,20); this.setSize(350,200); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==jrb3) { Truthordare.jlabel.setForeground(Color.red); Truthordare.jrb0.setForeground(Color.red); } if(e.getSource()==jrb
28、4) { Truthordare.jlabel.setForeground(Color.yellow); Truthordare.jrb0.setForeground(Color.yellow); } } public void itemStateChanged(ItemEvent e){ if(jcb1.isSelected()){ Truthordare.jlabel.setFont(new Font("宋體",Font.BOLD,20)); } if(jcb2.isS
29、elected()){ Truthordare.jlabel.setFont(new Font("黑體",Font.ITALIC,40)); } if(jcb2.isSelected()&&jcb1.isSelected()){ Truthordare.jlabel.setFont(new Font("黑體",Font.ITALIC|Font.BOLD,33)); } if(!jcb2.isSelected()&&!jcb1.isSelected()){ Truthordare.jlabel.setFont(new Font("
30、黑體",Font.PLAIN,20)); } } } class kaishiyouxi extends JFrame implements ActionListener{ JRadioButton jrb1,jrb2; JLabel jlabel3; int s=(int)(Math.random()*Truthordare.r); public kaishiyouxi(){ super("復(fù)選框事件處理"); jrb1 = new JRadioButton("真心話"); jrb2 = new JRadi
31、oButton("大冒險"); jlabel3 = new JLabel("請"+s+"號玩家選擇"); //注冊監(jiān)聽器 jrb1.addActionListener(this);//真心話 jrb2.addActionListener(this);//大冒險 jlabel3.setFont(new Font("楷體",Font.PLAIN,36)); ButtonGroup bg = new ButtonGroup(); bg.add(jrb1); bg.add(jrb1); this.getC
32、ontentPane().add(jlabel3); this.getContentPane().add(jrb1); this.getContentPane().add(jrb2); this.getContentPane().setLayout(null); jrb1.setBounds(60,60,80,20); jrb2.setBounds(150,60,80,20); jlabel3.setBounds(40,100,300,80); this.setSize(350,350); this.setVisible
33、(true); } public void actionPerformed(ActionEvent e){//貌似是子菜單的方法 if(e.getSource()==jrb1){//如果點擊新建菜單 int tureNum=(int)(Math.random()*Truthordare.i); // System.out.println(tureNum+"是正確數(shù)字"); String truth[]={"和男/女朋友進行到哪一步了","最喜歡在座哪位異性","內(nèi)衣/褲顏色","初吻年齡","自己最丟人的事","最后
34、一次發(fā)自內(nèi)心的笑是什么時候?","愿意為愛情犧牲到什么程度","朋友和男/女朋友那個重要","身上哪個部位最敏感","如果有來生,你選擇當(dāng)?","你會選擇Having sex before marriage嗎?","如果讓你選擇做一個電影中的角色,你會選誰呢","如果有一天我和你吵架,你會怎么辦?","哭得最傷心的是哪一次為什么?","如果跟你喜歡的人約會,碰到前任的男(女)朋友,會有什么表現(xiàn)?","如果有一天我對你說我愛上你了,你怎么辦"}; JOptionPane.showMessageDialog(this,"真心話:"+truth[tureNum]);
35、} if(e.getSource()==jrb2){//如果點擊新建菜單 int tureNum=(int)(Math.random()*Truthordare.i); // System.out.println(tureNum+"是正確數(shù)字"); String dare[]={"背一位異性繞場一周","唱青藏高原最后一句","做一個大家都滿意的鬼臉","抱一位異性直到下一輪真心話大冒險結(jié)束","像一位異性表白3分鐘","與一位異性十指相扣,對視10秒","邀請一位異性為你唱情歌,或邀請一位異性與你情歌對唱"
36、,"做自己最性感、最嫵媚的表情或動作","吃下每個人為你夾得菜","跳草裙舞、脫衣舞","蹲在凳子上作便秘狀","親某某","神情的吻墻10秒","模仿古代特殊職業(yè)女子拉客","模仿腦白金廣告,邊唱邊跳","讓他到街上大喊:我的病有救了"}; JOptionPane.showMessageDialog(this,"大冒險:"+dare[tureNum]); } } } class Test{ public static void main(String arg[]){ Truthordare f=new Truth
37、ordare(); } } //完全自己做的好有成就感?。?! 三.設(shè)計思路: 功能的實現(xiàn):隨機數(shù)的實現(xiàn)。圖片的加入,實現(xiàn)二級窗口,文本框按鈕,退出按鈕 當(dāng)你點擊了“開始游戲“ 設(shè)置欄里有打開題庫,設(shè)置人數(shù),設(shè)置游戲,退出。 信息欄里有版本信息,幫助信息并且功能都能實現(xiàn) 分析:總結(jié)目前的缺陷以及打算如何解決 所有的功能都能實現(xiàn),美中不足是界面太單調(diào),不夠美化。。還有個小小的BUG,隨機時有可能選擇到“0號玩家“ 五.感想 Java課程設(shè)計這兩周來,通過對所選java題目程序的詳細分析和更改,受益匪淺.讓我了解到了Java更多的實用功能,也了解到了自己學(xué)習(xí)結(jié)合實踐的不足.實用的軟件理論,技術(shù)與方法才是我們學(xué)習(xí)的最終目的,應(yīng)該有更多的時間花在實踐環(huán)節(jié),也希望學(xué)校以后能安排更多的實驗性課程,不至于讓理論成為白字,為以后的工作打好基礎(chǔ). 在這次課程設(shè)計中,我學(xué)到了很多的知識,在對Java的學(xué)習(xí)上是我學(xué)會了怎么將學(xué)到的理論知識用到實踐中去,改變了過去的學(xué)習(xí)方法和學(xué)習(xí)態(tài)度,找到了一門自己很喜歡的學(xué)科。 總之通過本次實驗,掌握了使用Java語言進行面向?qū)ο笤O(shè)計的基本方法,提高運用面向?qū)ο笾R解決實際問題的能力。提高面向?qū)ο蟪绦蛟O(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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。