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