JAVA课设日记本,java课程设计(日记本)
java課程設(shè)計(jì)(日記本)
1 需求分析 日記本是很平常的東西,很多人都有記日記的習(xí)慣,有人記賬,有人記事、有人記下心情。隨著計(jì)算機(jī)技術(shù)的發(fā)展,很多家庭都買(mǎi)了電腦,開(kāi)始上網(wǎng),開(kāi)始使用電腦來(lái)辦公、打字等。所寫(xiě)現(xiàn)在也有很多的人在使用電腦寫(xiě)小說(shuō),寫(xiě)博客等,受此啟發(fā)我就萌生了編寫(xiě)一個(gè)日記本,用電腦來(lái)寫(xiě)日記的想法。 很多事我們不想忘記,于是寫(xiě)進(jìn)日記本里,多年后翻出來(lái)再看看,很是愜意。大多數(shù)人都使用的是紙質(zhì)的日記本,這中日記很難保存,容易丟失,也容易遭到水浸等物理破壞,這樣我們的日記就丟了。同紙質(zhì)的日記本相比較,用軟件日記本不僅環(huán)保,而且安全方便,不怕被別人偷看。軟件日記本可以很方便的攜帶只要存在電腦硬盤(pán)或者U盤(pán)中就可以了。 1.1用戶分析 這個(gè)軟件面向的用戶是擁有個(gè)人電腦,而其具有寫(xiě)日記的習(xí)慣的人。用戶使用的軟件必須簡(jiǎn)單容易使用,在此基礎(chǔ)上盡可能多的提供人性化功能,豐富軟件的內(nèi)涵。同時(shí)軟件必須盡量保證不會(huì)因用戶的不當(dāng)操作而使用戶受到嚴(yán)重的經(jīng)濟(jì)、財(cái)產(chǎn)、精神損失。軟件必須具有很強(qiáng)的可靠性,不會(huì)無(wú)故終止運(yùn)行、死機(jī)、退出等。 1.1.1用戶要求具備以下基本功能: a 編輯日記:包括改變字體大小、改變字體顏色等。 b 管理日記:包括保存及刪除日記、按日期分組日記等。 1.1.2除以上功能外,可另曾特色功能: a 音樂(lè)播放的功能。 b 編輯背景變換的功能。 c 身份驗(yàn)證的功能。 d 日記文件加密存儲(chǔ)的功能。 1.2軟件界面與接口需求 1.2.1界面需求 界面的原則要求:方便、簡(jiǎn)潔、美觀、一致等。整個(gè)界面要保持友好、簡(jiǎn)易的風(fēng)格。 a輸入設(shè)備:鍵盤(pán)、鼠標(biāo)。 b輸出設(shè)備:顯示器。 c顯示風(fēng)格:應(yīng)用程序窗口界面。 1.2.2接口需求 軟件功能比較簡(jiǎn)單,暫時(shí)不需要接口方面的需求。 1.3目標(biāo)軟件其他需求 a.運(yùn)行環(huán)境需求:要求安裝Java Development Kit(JDK) v1.5或以上版本環(huán)境。 b.進(jìn)度要求:2009年6月底必須完成開(kāi)發(fā),并通過(guò)測(cè)試。 2 概要設(shè)計(jì) 本課程設(shè)計(jì)是一個(gè)實(shí)用的日記本程序,主要實(shí)現(xiàn)日記撰寫(xiě)、按月份、日期分類日記、字體設(shè)置、身份認(rèn)證、音樂(lè)播放、背景隨機(jī)變化等。一個(gè)普通的日記本無(wú)需使用數(shù)據(jù)庫(kù),如果要使用數(shù)據(jù)庫(kù)則沒(méi)有適合的數(shù)據(jù)庫(kù)可以使用,桌面數(shù)據(jù)庫(kù)太小不能滿足需求,而其他大型數(shù)據(jù)庫(kù)則又昂貴而不合算,所寫(xiě)我要開(kāi)發(fā)的日記將以文本文件(windows下的.txt文件格式)來(lái)存儲(chǔ),這樣做的好處是顯而易見(jiàn)的。 2.1登陸驗(yàn)證 日記是個(gè)人的隱私,通常日記的擁有者不希望他人看到自己所寫(xiě)的日記,為了實(shí)現(xiàn)基本的保密,程序進(jìn)行了用戶身份認(rèn)證,來(lái)確認(rèn)是否有權(quán)使用。認(rèn)證流程如下: 登陸窗口 登陸者身份驗(yàn)證 登陸失敗:重新登陸/取消登陸 登陸成功:進(jìn)入日記本 編輯日記 圖 2-1 身份驗(yàn)證功能流程 2.2 日記本各部分功能 日記本的基本功能就是撰寫(xiě)日記,對(duì)寫(xiě)好的日記要能夠進(jìn)行保存、修改、刪除等操作。這些都是一個(gè)日記本所具有的最基本的功能,除此之外本日記本還增加了其他功能。具體模塊功能有: a 編輯日記:包括改變字體大小、改變字體顏色等。 b 管理日記:包括保存及刪除日記、按日期分組日記等。 c 音樂(lè)播放的功能。 d 編輯背景變換的功能。 e 身份驗(yàn)證的功能。 f 日記文件加密存儲(chǔ)的功能。 具體功能層出圖如下所示: 日記本 日記編寫(xiě) 字體大小 字體顏色 音樂(lè)播放 背景變化 保存 刪除 編輯 大字 普通字 紅色字 藍(lán)色字 播放音樂(lè) 上一曲 下一曲 隨機(jī)變換 圖 2-2 日記本層次功能 3 詳細(xì)設(shè)計(jì) 下面是程序的全部代碼與詳細(xì)注釋。 /*************************************** * 程序文件名稱:Diary.java * 功能: 日歷本 ***************************************/ package diary; import javax.swing.*; import javax.swing.tree.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.io.*; import sun.audio.*; import java.util.*; // 日記本類 class Remember extends JFrame implements TreeSelectionListener,ActionListener { JTree tree=null; inti=0,r=255,g=255,b=255; JTextArea text=new JTextArea(“ “,20,30); DefaultMutableTreeNode root; DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13]; //對(duì)象數(shù)組 JButton b_save=new JButton(“保存“), b_del=new JButton(“刪除“), b_fontCommen=new JButton(“普通“), b_fontBig=new JButton(“大字“), b_fontRed=new JButton(“紅色“), b_fontBlue=new JButton(“藍(lán)色“), b_music_on = new JButton(“音樂(lè)ON/OFF“), b_music_n = new JButton(“上首“), b_music_p = new JButton(“下首“), b_bg=new JButton(“背景“); StringDiaryRoot=“diaries\\“; intmusic_on = 0,m_now=0;; String[]musics={“Alone.wav“, “Dreaming.wav“, “dying in the sun.wav“, “End Credits.wav“, “l(fā)olita.wav“, “Numb.wav“, “The Pary.wav“, “小茉莉.wav“}; Stream is=null; //構(gòu)造方法,完成界面及樹(shù)結(jié)點(diǎn)初始化 ,音樂(lè)文件列表初始化 Remember() { Container con=getContentPane(); DefaultMutableTreeNode root=new DefaultMutableTreeNode(“日記本“); //設(shè)置以月份為節(jié)點(diǎn)的樹(shù),不考慮閏年的影響。 for(i=1;i0.5) { // 使r,g,b三個(gè)標(biāo)志RGB的變量減小一個(gè)隨機(jī)的大小小在0-50之間的數(shù) if(c4 } if(op<=0.5) { // 使r,g,b三個(gè)標(biāo)志RGB的變量增加一個(gè)隨機(jī)的大小小在0-50之間的數(shù) if(c4 } text.setBackground(new Color(r,g,b)); } } //刪除文件 void del() { // 調(diào)用外部命令執(zhí)行批處理程序 try{ Runtime ce=Runtime.getRuntime(); ce.c(“gxy.bat“); } catch(IOException e1){ } } } //登陸窗口類 class LoginWindow extends JDialog implements ActionListener { JPanel p1=new JPanel(); //定義并建立面板 JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JTextField txtUserName=new JTextField(15); //用戶名文本框 JPasswordField txtPwd=new JPasswordField(15);//密碼框 JButton ok=new JButton(“確定“); JButton cancel=new JButton(“取消“); public LoginWindow() { setModal(true); //設(shè)置模態(tài) setBackground(Color.LIGHT_GRAY);//設(shè)置背景色 Container contentPane=this.getContentPane();//取出內(nèi)容面板 contentPane.setLayout(new GridLayout(5,1)); //設(shè)置布局為5行1列 p2.add(new JLabel(“用戶名:“));p2.add(txtUserName); //將組件添加到中間容器 p3.add(new JLabel(“密 碼:“));p3.add(txtPwd); p4.add(ok);p4.add(cancel); ok.addActionListener(this); cancel.addActionListener(this); txtUserName.addActionListener(this); txtPwd.addActionListener(this); contentPane.add(p1); //將面板添加到內(nèi)容面板 contentPane.add(p2); contentPane.add(p3); contentPane.add(p4); contentPane.add(p5); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//設(shè)置自動(dòng)關(guān)閉窗口 setSize(300,220); // Dimension 類封裝單個(gè)對(duì)象中組件的寬度和高度 Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); setLocation((screen.width-300)/2,(screen.height-220)/2); setTitle(“登錄窗口“); setResizable(false); //設(shè)置窗口大小固定 setVisible(true); } //添加事件監(jiān)聽(tīng)器 public void actionPered(ActionEvent e) { //處理”確定”按鈕事件 if(e.getSource()==ok||e.getSource()==txtPwd) { if(txtUserName.getText().trim().equals(“shenbaise“) //關(guān)閉登錄窗口 } else { JOptionPane.showMessageDialog(null,“用戶名或密碼錯(cuò)誤!“); txtUserName.requestFocus(); //設(shè)置焦點(diǎn) txtUserName.setSelectionStart(0); //設(shè)置選中文本開(kāi)始位置 txtUserName.setSelectionEnd(txtUserName.getText().length()); } } //處理”取消”按鈕事件 else if(e.getSource()==cancel) { dispose(); System.exit(0); //退出程序 } else if(e.getSource()==txtUserName) //在用戶名文本框按回車移動(dòng)焦點(diǎn)到密碼框 { txtPwd.requestFocus(); } } } // 程序主類 public class Diary { public static void main(String args[]) throws Exception { new LoginWindow(); Remember win=new Remember(); win.pack(); } } 以上是整個(gè)程序的全部代碼與詳細(xì)注釋,呈現(xiàn)主要包含了兩個(gè)大類,一個(gè)是日記本類,它來(lái)實(shí)現(xiàn)日記本編輯、保存、刪除、修改、日記分組等的管理與一些其他的附加功能比如音樂(lè)播放、背景變化等;另一個(gè)類是一個(gè)用來(lái)實(shí)現(xiàn)身份驗(yàn)證的登錄窗口類,由它來(lái)實(shí)現(xiàn)最簡(jiǎn)單的身份認(rèn)證與保密的功能。 4 總結(jié) 這個(gè)日記本程序是一個(gè)非常簡(jiǎn)單的java應(yīng)用程序,但是由于經(jīng)驗(yàn)和能力有限,在完成這個(gè)程序時(shí)遇到了不少困難。目前本程序除了可以基本滿足寫(xiě)日記的功能要求外,還增加了一些有特色的功能比如音樂(lè)播放、背景變換等,這些功能為日記本增加了不少特色。其中音樂(lè)播放以前沒(méi)有在在JAVA Application中實(shí)現(xiàn)起來(lái)不太容易,經(jīng)過(guò)努力終于完成了音樂(lè)的循環(huán)播放。有無(wú)日記的節(jié)點(diǎn)標(biāo)記也是一個(gè)難點(diǎn),最后通過(guò)在節(jié)點(diǎn)后面加星號(hào)的形似得到了基本實(shí)現(xiàn),最后省份驗(yàn)證的內(nèi)容比較難,本來(lái)想同過(guò)數(shù)據(jù)庫(kù)并做加密存儲(chǔ)來(lái)實(shí)現(xiàn)但是因?yàn)楣ぷ鲀商?#xff0c;最終還是沒(méi)能完成,而僅是將密碼存儲(chǔ)在程序中了。然而這和最初的設(shè)想還有不小的差距。首先,由于時(shí)間有限未能對(duì)日記做很好的加密,而是直接以windows下記事本的形式存儲(chǔ)了,這樣一來(lái)保密性就不好了;另外,為窗體設(shè)置背景圖片的設(shè)想也沒(méi)能完成;身份認(rèn)證也沒(méi)有十分完美地實(shí)現(xiàn)。這些都有待今后進(jìn)一步完善。
總結(jié)
以上是生活随笔為你收集整理的JAVA课设日记本,java课程设计(日记本)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 软件测试个人求职简历该怎么写,模板在这里
- 下一篇: 手动卸载CAD 删除残留文件 清理遗留