300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JAVA课设日记本 java课程设计(日记本)

JAVA课设日记本 java课程设计(日记本)

时间:2019-10-29 06:21:15

相关推荐

JAVA课设日记本 java课程设计(日记本)

java课程设计(日记本)

1 需求分析 日记本是很平常的东西,很多人都有记日记的习惯,有人记账,有人记事、有人记下心情。随着计算机技术的发展,很多家庭都买了电脑,开始上网,开始使用电脑来办公、打字等。所写现在也有很多的人在使用电脑写小说,写博客等,受此启发我就萌生了编写一个日记本,用电脑来写日记的想法。 很多事我们不想忘记,于是写进日记本里,多年后翻出来再看看,很是惬意。大多数人都使用的是纸质的日记本,这中日记很难保存,容易丢失,也容易遭到水浸等物理破坏,这样我们的日记就丢了。同纸质的日记本相比较,用软件日记本不仅环保,而且安全方便,不怕被别人偷看。软件日记本可以很方便的携带只要存在电脑硬盘或者U盘中就可以了。 1.1用户分析 这个软件面向的用户是拥有个人电脑,而其具有写日记的习惯的人。用户使用的软件必须简单容易使用,在此基础上尽可能多的提供人性化功能,丰富软件的内涵。同时软件必须尽量保证不会因用户的不当操作而使用户受到严重的经济、财产、精神损失。软件必须具有很强的可靠性,不会无故终止运行、死机、退出等。 1.1.1用户要求具备以下基本功能: a 编辑日记:包括改变字体大小、改变字体颜色等。 b 管理日记:包括保存及删除日记、按日期分组日记等。 1.1.2除以上功能外,可另曾特色功能: a 音乐播放的功能。 b 编辑背景变换的功能。 c 身份验证的功能。 d 日记文件加密存储的功能。 1.2软件界面与接口需求 1.2.1界面需求 界面的原则要求:方便、简洁、美观、一致等。整个界面要保持友好、简易的风格。 a输入设备:键盘、鼠标。 b输出设备:显示器。 c显示风格:应用程序窗口界面。 1.2.2接口需求 软件功能比较简单,暂时不需要接口方面的需求。 1.3目标软件其他需求 a.运行环境需求:要求安装Java Development Kit(JDK) v1.5或以上版本环境。 b.进度要求:6月底必须完成开发,并通过测试。 2 概要设计 本课程设计是一个实用的日记本程序,主要实现日记撰写、按月份、日期分类日记、字体设置、身份认证、音乐播放、背景随机变化等。一个普通的日记本无需使用数据库,如果要使用数据库则没有适合的数据库可以使用,桌面数据库太小不能满足需求,而其他大型数据库则又昂贵而不合算,所写我要开发的日记将以文本文件(windows下的.txt文件格式)来存储,这样做的好处是显而易见的。 2.1登陆验证 日记是个人的隐私,通常日记的拥有者不希望他人看到自己所写的日记,为了实现基本的保密,程序进行了用户身份认证,来确认是否有权使用。认证流程如下: 登陆窗口 登陆者身份验证 登陆失败:重新登陆/取消登陆 登陆成功:进入日记本 编辑日记 图 2-1 身份验证功能流程 2.2 日记本各部分功能 日记本的基本功能就是撰写日记,对写好的日记要能够进行保存、修改、删除等操作。这些都是一个日记本所具有的最基本的功能,除此之外本日记本还增加了其他功能。具体模块功能有: a 编辑日记:包括改变字体大小、改变字体颜色等。 b 管理日记:包括保存及删除日记、按日期分组日记等。 c 音乐播放的功能。 d 编辑背景变换的功能。 e 身份验证的功能。 f 日记文件加密存储的功能。 具体功能层出图如下所示: 日记本 日记编写 字体大小 字体颜色 音乐播放 背景变化 保存 删除 编辑 大字 普通字 红色字 蓝色字 播放音乐 上一曲 下一曲 随机变换 图 2-2 日记本层次功能 3 详细设计 下面是程序的全部代码与详细注释。 /*************************************** * 程序文件名称: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]; //对象数组 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(“蓝色“), 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“, “lolita.wav“, “Numb.wav“, “The Pary.wav“, “小茉莉.wav“}; Stream is=null; //构造方法,完成界面及树结点初始化 ,音乐文件列表初始化 Remember() { Container con=getContentPane(); DefaultMutableTreeNode root=new DefaultMutableTreeNode(“日记本“); //设置以月份为节点的树,不考虑闰年的影响。 for(i=1;i0.5) { // 使r,g,b三个标志RGB的变量减小一个随机的大小小在0-50之间的数 if(c4 } if(op<=0.5) { // 使r,g,b三个标志RGB的变量增加一个随机的大小小在0-50之间的数 if(c4 } text.setBackground(new Color(r,g,b)); } } //删除文件 void del() { // 调用外部命令执行批处理程序 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); //设置模态 setBackground(Color.LIGHT_GRAY);//设置背景色 Container contentPane=this.getContentPane();//取出内容面板 contentPane.setLayout(new GridLayout(5,1)); //设置布局为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); //将面板添加到内容面板 contentPane.add(p2); contentPane.add(p3); contentPane.add(p4); contentPane.add(p5); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置自动关闭窗口 setSize(300,220); // Dimension 类封装单个对象中组件的宽度和高度 Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); setLocation((screen.width-300)/2,(screen.height-220)/2); setTitle(“登录窗口“); setResizable(false); //设置窗口大小固定 setVisible(true); } //添加事件监听器 public void actionPered(ActionEvent e) { //处理”确定”按钮事件 if(e.getSource()==ok||e.getSource()==txtPwd) { if(txtUserName.getText().trim().equals(“shenbaise“) //关闭登录窗口 } else { JOptionPane.showMessageDialog(null,“用户名或密码错误!“); txtUserName.requestFocus(); //设置焦点 txtUserName.setSelectionStart(0); //设置选中文本开始位置 txtUserName.setSelectionEnd(txtUserName.getText().length()); } } //处理”取消”按钮事件 else if(e.getSource()==cancel) { dispose(); System.exit(0); //退出程序 } else if(e.getSource()==txtUserName) //在用户名文本框按回车移动焦点到密码框 { txtPwd.requestFocus(); } } } // 程序主类 public class Diary { public static void main(String args[]) throws Exception { new LoginWindow(); Remember win=new Remember(); win.pack(); } } 以上是整个程序的全部代码与详细注释,呈现主要包含了两个大类,一个是日记本类,它来实现日记本编辑、保存、删除、修改、日记分组等的管理与一些其他的附加功能比如音乐播放、背景变化等;另一个类是一个用来实现身份验证的登录窗口类,由它来实现最简单的身份认证与保密的功能。 4 总结 这个日记本程序是一个非常简单的java应用程序,但是由于经验和能力有限,在完成这个程序时遇到了不少困难。目前本程序除了可以基本满足写日记的功能要求外,还增加了一些有特色的功能比如音乐播放、背景变换等,这些功能为日记本增加了不少特色。其中音乐播放以前没有在在JAVA Application中实现起来不太容易,经过努力终于完成了音乐的循环播放。有无日记的节点标记也是一个难点,最后通过在节点后面加星号的形似得到了基本实现,最后省份验证的内容比较难,本来想同过数据库并做加密存储来实现但是因为工作两太大,最终还是没能完成,而仅是将密码存储在程序中了。然而这和最初的设想还有不小的差距。首先,由于时间有限未能对日记做很好的加密,而是直接以windows下记事本的形式存储了,这样一来保密性就不好了;另外,为窗体设置背景图片的设想也没能完成;身份认证也没有十分完美地实现。这些都有待今后进一步完善。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。