版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、需求分析日記本是很平常的東西,很多人都有記日記的習(xí)慣,有人記賬,有人記事、有人記下心情。隨著計(jì)算機(jī)技術(shù)的發(fā)展,很多家庭都買了電腦,開始上網(wǎng),開始使用電腦來辦公、打字等。所寫現(xiàn)在也有很多的人在使用電腦寫小說,寫博客等,受此啟發(fā)我就萌生了編寫一個(gè)日記本,用電腦來寫日記的想法。很多事我們不想忘記,于是寫進(jìn)日記本里,多年后翻出來再看看,很是愜意。大多數(shù)人都使用的是紙質(zhì)的日記本,這中日記很難保存,容易丟失,也容易遭到水浸等物理破壞,這樣我們的日記就丟了。同紙質(zhì)的日記本相比較,用軟件日記本不僅環(huán)保,而且安全方便,不怕被別人偷看。軟件日記本可以很方便的攜帶只要存在電腦硬盤或者u盤中就可以了。1.1用戶分析這
2、個(gè)軟件面向的用戶是擁有個(gè)人電腦,而其具有寫日記的習(xí)慣的人。用戶使用的軟件必須簡單容易使用,在此基礎(chǔ)上盡可能多的提供人性化功能,豐富軟件的內(nèi)涵。同時(shí)軟件必須盡量保證不會(huì)因用戶的不當(dāng)操作而使用戶受到嚴(yán)重的經(jīng)濟(jì)、財(cái)產(chǎn)、精神損失。軟件必須具有很強(qiáng)的可靠性,不會(huì)無故終止運(yùn)行、死機(jī)、退出等。用戶要求具備以下基本功能:a編輯日記:包括改變字體大小、改變字體顏色等。b管理日記:包括保存及刪除日記、按日期分組日記等。1.1.2除以上功能外,可另曾特色功能:a音樂播放的功能。b編輯背景變換的功能。c身份驗(yàn)證的功能。d日記文件加密存儲(chǔ)的功能。1.2軟件界面與接口需求界面需求界面的原則要求:方便、簡潔、美觀、一致等。
3、整個(gè)界面要保持友好、簡易的風(fēng)格。a輸入設(shè)備:鍵盤、鼠標(biāo)。b輸出設(shè)備:顯示器。c顯示風(fēng)格:應(yīng)用程序窗口界面。1.2.2接口需求軟件功能比較簡單,暫時(shí)不需要接口方面的需求。1.3目標(biāo)軟件其他需求運(yùn)行環(huán)境需求:要求安裝JavaDevelopmentKit(JDK)vl.5或以上版本環(huán)境。進(jìn)度要求:2009年6月底必須完成開發(fā),并通過測試。概要設(shè)計(jì)本課程設(shè)計(jì)是一個(gè)實(shí)用的日記本程序,主要實(shí)現(xiàn)日記撰寫、按月份、日期分類日記、字體設(shè)置、身份認(rèn)證、音樂播放、背景隨機(jī)變化等。一個(gè)普通的日記本無需使用數(shù)據(jù)庫,如果要使用數(shù)據(jù)庫則沒有適合的數(shù)據(jù)庫可以使用,桌面數(shù)據(jù)庫太小不能滿足需求,而其他大型數(shù)據(jù)庫則又昂貴而不合算,
4、所寫我要開發(fā)的日記將以文本文件(windows下的.txt文件格式)來存儲(chǔ),這樣做的好處是顯而易見的。21登陸驗(yàn)證日記是個(gè)人的隱私,通常日記的擁有者不希望他人看到自己所寫的日記,為了實(shí)現(xiàn)基本的保密,程序進(jìn)行了用戶身份認(rèn)證,來確認(rèn)是否有權(quán)使用。認(rèn)證流程如下:圖2-l身份驗(yàn)證功能流程2.2日記本各部分功能日記本的基本功能就是撰寫日記,對寫好的日記要能夠進(jìn)行保存、修改、刪除等操作。這些都是一個(gè)日記本所具有的最基本的功能,除此之外本日記本還增加了其他功能。具體模塊功能有:a編輯日記:包括改變字體大小、改變字體顏色等。b管理日記:包括保存及刪除日記、按日期分組日記等。c音樂播放的功能。d編輯背景變換的功
5、能。e身份驗(yàn)證的功能。f日記文件加密存儲(chǔ)的功能。具體功能層出圖如下所示:詳細(xì)設(shè)計(jì)下面是程序的全部代碼與詳細(xì)注釋。、程序文件名稱:Diary.java功能:日歷本、packagediary;importjavax.swing.*;importjavax.swing.tree.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.event.*;importjava.io.*;importsun.audio.*;importjava.util.*;/日記本類classRememberextendsJFrameimplementsTr
6、eeSelectionListener,ActionListenerJTreetree=null;inti=0,r=255,g=255,b=255;JTextAreatext=newJTextArea(,20,30);DefaultMutableTreeNoderoot;DefaultMutableTreeNodemonth=newDefaultMutableTreeNode13;/對象數(shù)組JButtonb_save=newJButton(保存),b_del=newJButton(刪除),b_fontCommen=newJButton(普通),b_fontBig=newJButton(大字),
7、b_fontRed=newJButton(紅色),b_fontBlue=newJButton(藍(lán)色),b_music_on=newJButton(音樂ON/OFF),b_music_n=newJButton(上首),b_music_p=newJButton(下首),b_bg=newJButton(背景);StringDiaryRoot=diaries;intmusic_on=0,m_now=0;Stringmusics=Alone.wav,Dreaming.wav,dyinginthesun.wav,EndCredits.wav,lolita.wav,Numb.wav,ThePary.wav,
8、小茉莉.wav;InputStreamis=null;/構(gòu)造方法,完成界面及樹結(jié)點(diǎn)初始化,音樂文件列表初始化Remember()Containercon=getContentPane();DefaultMutableTreeNoderoot=newDefaultMutableTreeNode(日記本);/設(shè)置以月份為節(jié)點(diǎn)的樹,不考慮閏年的影響。for(i=1;i=12;i+)monthi=newDefaultMutableTreeNode(+i+月);root.add(monthi);/設(shè)置不同月份的節(jié)點(diǎn)for(i=1;i=12;i+)/處理有31天的月份if(i=1|i=3|i=5|i=7|
9、i=8|i=10|i=12)for(intj=1;j=31;j+)Strings1=monthi.toString();Strings2=j+日.txt;Filefile=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/處理有30天的月份elseif(i=4|i=6|i=9|i=11)for(intj=1;j=30;j+
10、)Strings1=monthi.toString();Strings2=j+日.txt;Filefile=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)志if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/處理有28天的月份elsefor(intj=1;j=28;j+)Strings1=monthi.toString();Strings2=j+日.txt;Filefi
11、le=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)志if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/設(shè)置監(jiān)聽b_save.addActionListener(this);b_del.addActionListener(this);b_music_on.addActionListener(this);b_music_n.addActionListener(this)
12、;b_music_p.addActionListener(this);b_fontRed.addActionListener(this);b_fontCommen.addActionListener(this);b_fontBig.addActionListener(this);b_fontBlue.addActionListener(this);b_bg.addActionListener(this);/創(chuàng)建樹及其面板tree=newJTree(root);JPanelp=newJPanel();/設(shè)置邊界布局p.setLayout(newBorderLayout();JScrollPane
13、scrollpane_1=newJScrollPane(text);/帶滾動(dòng)條的面板放置到中間,可以占據(jù)最大空間位置p.add(scrollpane_1,BorderLayout.CENTER);/設(shè)置面板,放置保存和刪除按鈕等按鈕,面板放在上部JPanelp_1=newJPanel();p_1.add(b_save);p_1.add(b_del);p_1.add(b_fontCommen);p_1.add(b_fontBig);p_1.add(b_fontRed);p_1.add(b_fontBlue);p_1.add(b_music_on);p_1.add(b_music_n);p_1.a
14、dd(b_music_p);p_1.add(b_bg);/設(shè)置布局p.add(p_1,BorderLayout.NORTH);JScrollPanescrollpane_2=newJScrollPane(tree);JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);tree.addTreeSelectionListener(this);con.add(splitpane);/設(shè)置窗體適配器,關(guān)閉功能addWindowListener(newWindowAdapter()publicvoidwindowClosing(Wind
15、owEvente)System.exit(0););setVisible(true);setBounds(100,150,500,600);/處理樹節(jié)點(diǎn)事件publicvoidvalueChanged(TreeSelectionEvente)/清空文本區(qū)中的內(nèi)容text.setText();if(e.getSource()=tree)/定義被選中的節(jié)點(diǎn)DefaultMutableTreeNodenode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();/如果是葉節(jié)點(diǎn),則可以對文件進(jìn)行操作if(node.isLeaf()/日
16、記以“-月-日txt”的形式存儲(chǔ),所以要消除“*”號(hào)的影響Stringstr=node.toString();str=str.substring(0,str.length()-1);for(inti=0;i05時(shí)做減法負(fù)責(zé)做加法,doubleop=Math.random();doublec=Math.random()*10;if(op0.5)/使r,g,b三個(gè)標(biāo)志RGB的變量減小一個(gè)隨機(jī)的大小小在0-50之間的數(shù)if(c4&c7)b-=Math.random()*50;if(op=0.5)/使r,g,b三個(gè)標(biāo)志RGB的變量增加一個(gè)隨機(jī)的大小小在0-50之間的數(shù)if(c4&c7)b-=Math.
17、random()*50;text.setBackground(newColor(r,g,b);/刪除文件voiddel()/調(diào)用外部命令執(zhí)行批處理程序tryRuntimece=Runtime.getRuntime();ce.exec(gxy.bat);catch(IOExceptione1)/登陸窗口類classLoginWindowextendsJDialogimplementsActionListenerJPanelp1=newJPanel();/定義并建立面板JPanelp2=newJPanel();JPanelp3=newJPanel();JPanelp4=newJPanel();JP
18、anelp5=newJPanel();JTextFieldtxtUserName=newJTextField(15);/用戶名文本框JPasswordFieldtxtPwd=newJPasswordField(15);/密碼框JButtonok=newJButton(確定);JButtoncancel=newJButton(取消);publicLoginWindow()setModal(true);/設(shè)置模態(tài)setBackground(ColorLIGHT_GRAY);/設(shè)置背景色ContainercontentPane=thisgetContentPane();/取出內(nèi)容面板contentP
19、anesetLayout(newGridLayout(5,1);/設(shè)置布局為5行1列p2add(newJLabel(用戶名:);p2.add(txtUserName);/將組件添加到中間容器p3add(newJLabel(密碼:);p3.add(txtPwd);p4add(ok);p4add(cancel);okaddActionListener(this);canceladdActionListener(this);txtUserNameaddActionListener(this);txtPwd.addActionListener(this);contentPane.add(p1);/將面
20、板添加到內(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è)對象中組件的寬度和高度Dimensionscreen=Toolkit.getDefaultToolkit().getScreenSize();setLocation(screen.width-300)/2,(screen.height-220
21、)/2);setTitle(登錄窗口);setResizable(false);/設(shè)置窗口大小固定setVisible(true);/添加事件監(jiān)聽器publicvoidactionPerformed(ActionEvente)/處理”確定”按鈕事件if(e.getSource()=ok|e.getSource()=txtPwd)if(txtUserName.getText().trim().equals(shenbaise)&txtPwd.getText()trim()equals(123456)/如果用戶名為shenbaise密碼為123456則正確dispose();/關(guān)閉登錄窗口elseJOptionPaneshowMessageDialog(null,用戶名或密碼錯(cuò)誤!);txtUserNamerequestFocus();/設(shè)置焦點(diǎn)txtUserNamesetSelectionStart(0);/設(shè)置選中文本開始位置txtUserNamesetSelectionEnd(txtUserNamegetText()length();/處理”取消”按鈕事件elseif(e.getSource()=cancel)dispose();System.exit(0);/退
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產(chǎn)學(xué)研合作項(xiàng)目人才培養(yǎng)與就業(yè)合作協(xié)議3篇
- 二零二五版園林景觀綠化施工監(jiān)理與質(zhì)量控制合同3篇
- 二零二五版農(nóng)產(chǎn)品出口轉(zhuǎn)內(nèi)銷進(jìn)口合同3篇
- 二零二五年度新能源汽車牌照使用權(quán)轉(zhuǎn)讓合同4篇
- 2025年度代購合同(跨境代購電商合作)4篇
- 2025年度汽車行業(yè)市場調(diào)研合同范本4篇
- 二零二五年度智慧社區(qū)物業(yè)運(yùn)營管理服務(wù)合同下載3篇
- 二零二五年度土地流轉(zhuǎn)信息服務(wù)平臺(tái)合作協(xié)議3篇
- 二零二五年度創(chuàng)業(yè)擔(dān)保貸款風(fēng)險(xiǎn)防控合作協(xié)議3篇
- 2025年度木材加工代加工協(xié)議書范本4篇
- 第7課《中華民族一家親》(第一課時(shí))(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級上冊
- 2024年醫(yī)銷售藥銷售工作總結(jié)
- 急診科十大護(hù)理課件
- 山東省濟(jì)寧市2023-2024學(xué)年高一上學(xué)期1月期末物理試題(解析版)
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務(wù)輔助人員211人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級上學(xué)期期末數(shù)學(xué)模擬試題(無答案)
- 國家重點(diǎn)風(fēng)景名勝區(qū)登山健身步道建設(shè)項(xiàng)目可行性研究報(bào)告
- 投資計(jì)劃書模板計(jì)劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
- 2024-2025學(xué)年九年級語文上學(xué)期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論