




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l 编号:23JAVA高级编程课程设计报告题 目 : 记事本 姓 名 : 陈敬高 王春山 学 号 : 班 级 : 软件普131班 2015年 12 月 24 日一 题目意义和设计思想1、题目意义 所有正文部分,要求宋体、5号字,行间距固定值20磅,首航缩进2字符此处主要指做此题目的意义和用途,课程设计所具有的功能,以及带来的好处1.1课程设计目的: 1) 巩固和提高java编程技术。 2) 培养掌握成学设计的基本思路和方法。 3) 加强研发、调试程序的能力。 4) 增强分析、解决问题的能力。 5) 提高科技论文写作能力。1.2课程设计用途:本课程设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。1.3课程设计具有的功能:用户可以登录或注册自己的账号,方便地在任何日期记录下有关内容或查看某个日期的记录内容。通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过更改年份或月份来查看自己的日志。使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。2、设计思想此处主要指根据功能划分的功能模块,以及打算解决实现这些模块功能的思路设计思想Java记事本程序是:图形界面、流与文件等技术的综合应用。 图形界面的实现:考虑到简单、实用、高效等特点,大部分选择了awt来完成实现,其中也有swing组件。文本编辑区就选用了TaxtArea作为主要的部件。 文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。 由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能。 在设计类的时候,考虑到简单明了,就用了三个类,一个主类、一个类设计构造函数实现监听接口作为程序的整体框架,一个类设计构造函数实现查找替换功能。所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。1、主要技术日历记事本系统主面板与日历板模块(CalendarPad.java) 该模块设计主要主要包含以下成员变量: 年(year) 月(month) 日(day) 存放日期的表(Hashtable) 存放日志的文件(File) 主要方法有: 创建程序主面板的构造方法(CalendarPad) 处理ActionEvent事件的接口方法(actionPerformed) 程序开始运行的main()方法。 在具体设计过程中,首先,基本功能和组件的创建;然后,创建构造方法,这一部分包括:为各个功能创建监听事件,创建程序主面板以及日历面板.添加关闭窗口方法;第三步分为创建监听方法,实现对各个功能模块的操作,以及鼠标点击实现进入相应的功能面板;最后创建相应的main()方法。 2.日历记事本系统年设置模块(Year.java) 该模块用于实现日历记事本系统中关于年的设置,模块中包含的主要成员变 量有用于改变年的按钮(Jbutton 明年 去年),显示年的文本框(JTextField)。模块中包含的主要方法有用于设置年的方法(setYear),用于获取年的方法(getYear)和处理ActionEvent事件的接口方法(actionPerformed)等在具体设计过程中,首先,显示年的文本框、按钮、文件列表、区域的创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。 3.日历记事本系统月设置模块(Month.java) 该模块用于实现日历记事本系统中关于月的设置,模块中包含的主要成员变 量有用于改变月的按钮(Jbutton 上月 下月),显示月的文本框(JTextField)。模块中包含的主要方法有用于设置月的方法(setMonth),用于获取月的方法(getMonth)和处理ActionEvent事件的接口方法(actionPerformed)等 在具体设计过程中与年设置大体上相近,首先,显示年的文本框、按钮,文件列表、区域的创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。 4.日历记事本系统记事本模块(NotePad.java) 该模块中包含的主要成员变量有文本框(JTextArea),按钮(JButton 保存日 志 删除日志),用于存放日志记录的文件(File)以及响应相关操作的信息提示(JLabel)。该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志 在具体设计过程中首先,将记事本模块中的文本框、按钮创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,实现接口监听,创建监听方法,选择日期时若记事本系统中已经存在记录,则弹出提示,询问是否查看;若不存在记录,则可以保存日志;对存在的日志使用删除日志功能时会弹出提示是否删除日志,选是即删除日志,选否即可返回.以上即实现学生基本信息模块的基本功能实现。二、采用的主要技术、遇到的问题和解决方法此处主要指用到Java中的主要技术,以及技术中的类和方法。在程序设计中遇到的难点和问题,是如何解决的。主类CanlendarPad(1)成员变量成员变量描述 变量类型 名称年、月、日 int year,month,day 保存日志的散列表 Hanshtable hanshtable 存放散列表的文件 File file 显示日期 JtextFile showDay 日历对象 Calendar 日历 记事本对象 NotePad notepad 月 Month 负责改变月 年 Year 负责改变年2.方法名称 功能 备注 CalendarPad 创建窗口主程序 构造方法 设置日历牌 设置日立的年份、月份 排列号码 排列月份中的号码mousePressed 处理MouseEvent事件 接口方法 main 程序开始运行3.对日历添加,基本上完成了我的java课程设计,通过这次的课程设计,同时做这门课程设计也进一步加强了我的动手能力,为了完成好这次课程设计,记事本Note1、成员变量描述变量类型名称文本输入区JTextAreatext保存、删除日志的按钮Button保存日志、删除日志保存日志的散列表Hashtabletable保存散列表的文件4.功能设置名称 功能 备注NotaPad 创建记事本对象 构造方法setYear 设置年份getYear 获取年份setMonth 设置月份getMonth 获取月份setDay 设置日期getDay 获取日期获取日志内容 获取日志内容保存日志 保存日志删除日志 删除日志actionPerformed 处理ActionEvent事件 接口方法年Year1.成员变量描述 变量类型 名称表示年份的整数 int year 显示年份的文本条 JtextFiled showYear 负责增减年份的按钮 Jbutton 明年、去年2.方法名称 功能 备注Year 创建年对象 构造方法 setYear 设置年份getYear 获取年份actionPerformed 处理ActionEvent事件 接口方法月Month1.成员变量描述 变量类型 名称表示月份的整数 int month显示月份的文本条 JtextFiled showMonth 负责增减月份的按钮 Jbutton 下月,上月2.方法名称 功能 备注Month 创建“月”对象 构造方法 SetMonth 设置月份getMonth 获取月份actionPerformed 处理ActionEvent 接口方法 2、遇到的问题和解决方法问题(1):数据传输问题无法连接数据库解决方法:找同学帮忙解决问题(2):数据传输问题解决方法:三、实现的主要功能和系统结构此处写本课程设计的重要功能模块以及模块结构图日历记事本系统四、核心算法描述和相关技术说明此处指解决每个模块问题设计的算法思想描述或者自己写的方法,以及代码实现(不需要在代码中加注释,解释部分在算法思想描述中阐述清楚即可)主类CalendarPad1.成员变量2.方法(1) 数据库连接import java.sql.Connection;import java.sql.DriverManager;public class DB private String Driver_name =jdbc:mysql:/localhost:3306/test;private String USER = root;private String PASS = root;public static Connection con;public DB()try Class.forName(com.mysql.jdbc.Driver);con = DriverManager.getConnection(Driver_name, USER, PASS);con.prepareStatement(set NAMES utf8).executeUpdate(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();public static Connection getConnection()if(con = null)new DB();return con;(2)系统登录public class Login Font d = new Font(楷体, Font.BOLD, 22);Font f = new Font(楷体, Font.BOLD, 15);JFrame logingui = new JFrame(用户登录界面);JLabel userlogin = new JLabel(用户登录);JLabel username = new JLabel(用户名:);JLabel password = new JLabel(密 码:);JTextField name = new JTextField();JTextField pwd = new JPasswordField();JButton login = new JButton(登陆);JButton cancle = new JButton(取消);JButton regist = new JButton(注册);User user = new User();(3)系统注册import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Calendar;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;import .CalendarPad;import net.cw.view.DB;public class registgui /初始化字体Font d = new Font(楷体, Font.BOLD, 22);Font f = new Font(楷体, Font.BOLD, 15);/ 初始化对象JTextField name = new JTextField();JTextField pwd = new JPasswordField();JTextField rpwd = new JPasswordField();JFrame registgui = new JFrame(用户注册界面);JLabel userregist = new JLabel(用户注册);JLabel username = new JLabel(用户名:);JLabel password = new JLabel(密 码:);JLabel rpassword = new JLabel(确认密码:);JButton affirm = new JButton(确认);JButton cancle = new JButton(取消);User user = new User();(4)记录日志public String 获取日志内容(int year,int month,int day) String key=+year+month+day; Connection con = DB.getConnection();try PreparedStatement ps = con.prepareStatement(select * from log);ResultSet rs = ps.executeQuery();if (rs.getRow() != 0) rs.first();String text = rs.getString(3);设置文本区(text); return rs.getString(text); else text.setText(无记录);return null;(5)删除或保存日志public class NotePad extends JPanel implements ActionListener JTextArea text; JButton 保存日志,删除日志; Hashtable table; JLabel 信息条; int year,month,day; File file; CalendarPad calendar; public NotePad(CalendarPad calendar) this.calendar=calendar; year=calendar.getYear(); month=calendar.getMonth(); day=calendar.getDay(); table=calendar.getHashtable(); file=calendar.getFile(); 信息条=new JLabel(+year+年+month+月+day+日,JLabel.CENTER); 信息条.setFont(new Font(TimesRoman,Font.BOLD,16); 信息条.setForeground(Color.blue); text=new JTextArea(10,10); 保存日志=new JButton(保存日志) ; 删除日志=new JButton(删除日志) ; 保存日志.addActionListener(this); 删除日志.addActionListener(this); setLayout(new BorderLayout(); JPanel pSouth=new JPanel(); add(信息条,BorderLayout.NORTH); pSouth.add(保存日志); pSouth.add(删除日志); add(pSouth,BorderLayout.SOUTH); add(new JScrollPane(text),BorderLayout.CENTER); public void actionPerformed(ActionEvent e) if(e.getSource()=保存日志) 保存日志(year,month,day); else if(e.getSource()=删除日志) 删除日志(year,month,day); 五、总结和体会1、总结对本次课程设计进行总结,重点写课程设计实现的总结(不要写感受,感受在体会中写)在这为期一周的课程设计中,我们组的课题项目为日历记事本(CalendarPad.java)作为组长的我亲自请缨担任CalendarPad.java代码的编写,我们通过eclipse软件进行项目的编写。在编写的代码的过程中我们遇到了这样那样的问题,我问询问同学,共同探讨,虽然大家java的学习并不是想象中的那么好,但是大家都在尽心尽力的来完成,特别是在最后的合并起来之后,我们发现在可视窗口的底部的文字显示部分存在很大的漏洞,我们对了几遍源代码,发现并没有出现错误,我们没有放弃。我们发现问题可能出现在了编码上,于是我们尝试着使用CalendarPad.java类包进行编写改动,这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,而且团队之间的合作,成员之间的默契,也很重要,这将对我以后的工作形成良好的习惯 CalendarPad.Java的编写,该文件创建记事本,包括对记事本的输入,保存删除日志的按钮,保存日志散列表和文件,以及记录日志的年,月,日。利用java.awt类的使用。使用类创建记事本,输入文字和保存日志,对日志的年月日进行编辑,设置代码,进一步加深了对java类的认识和使用,编写java的困难,一定要认真仔细,先思考后编写,要想到使用的成员变量和使用的方法,要对编写java进行规范的编写,在编写CalendarPad.java时,充分认识到对java编写重要性,对类的如何使用。 对NotePad.java部分的编写,了解了编写一个程序真的是很不容易,这部分主要是文本输入区、保存、删除日志的按钮、保存日志的散列表、保存散列表的文件以及记录日志年、月、日这部分的实现(变量类型主要有:JTextArea、Button、Hashtable、File、int;主要方法:NotePad、setYear、getYear、setMonth、getMonth、setDay、getDay、获取日志内容、保存日志、删除日志、actionPerformed)通过java.awt;java.io等类的运用让我进一步加深了对java类的认识和使用。在编写程序时多次出现错误,对于java语言基础的理解还不够透彻不够仔细。不过所幸最后通过同学的指点和资料的补充最终共完成了这次的课程设计。 通过这次的课程设计我深刻意识到要在以后的而学习中认真努力,多做程序,多进行练习,不会的多问老师同学,努力培养自己对java的兴趣,努力学好java。 由于是第一次进行Java语言开发所以不足之处不可避免。以前不懂得的东西,通过这次组员之间的讨论,完善,得到补充,使自己对于java这门课程有了全新的认识。用到变量类型有int、JTextField、JButton,对于这些,以前只是听老师讲过,没有运用于实践中,所以创建“年”对象,设置年份,获取年份该用些什么方法,哪些变量,在这次实践得到更完善的积累。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,而且团队之间的合作,成员之间的默契,也很重要,这将对我以后的工作形成良好的习惯。 以及进一步熟悉掌握Java程序设计语言的基础内容,提高Java编程技术以及分析解决问题的综合能力。由于自身能力有限,所以在编写代码的时候难免出现问题,像用什么变量显示日期,用什么变量保存日志的散列表等等,像int、Hashtable、File、JTextField、这些都通过组员之间的讨论得到解决。以前对Java语言的很多知识认识都不深刻,做过这次实训之后,我对Java语言的开发有了一个比较系统的了解,从中发现自己平时学习不足和薄弱环节,从而加以弥补2、体会写课程设计过程中自己的体会经过这一次的设计,总体来说收获还是不小。刚刚开始学习Java语言的时候也曾经想过利用所学的知识来做些真东西。之前用过C语言编写过一些程序,但C语言与Java之前差异比较大,而Java语言对我来说是个新事物,对Java了解不是十分深刻,用起来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科学研究最基本的研究方法是
- 小学课后服务研究论文
- 2025至2030中国智慧医院行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国日光灯行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国无线心电图机行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国数字文旅行业市场发展现状及消费需求及有效策略与实施路径评估报告
- 农村特色农产品种植销售合同
- 六年级日记坐竹筏300字(13篇)
- 我最敬佩的人老师作文(13篇)
- 我的成长日记:从一个难忘的经历出发12篇
- 全国民用建筑工程技术措施暖通空调动力
- 确认与验证管理规程
- 中国阴道炎诊治培训课件
- GB/T 40475-2021冷藏保温车选型技术要求
- GB/T 35446-2017纺织品某些有机溶剂的测定
- GB/T 1885-1998石油计量表
- GB/T 17626.28-2006电磁兼容试验和测量技术工频频率变化抗扰度试验
- GB 18613-2012中小型三相异步电动机能效限定值及能效等级
- 液压支架阀使用及维修讲课教案课件
- 2023年石家庄国控城市发展投资集团有限责任公司招聘笔试题库及答案解析
- Unit 4 Developing Ideas 读后续写初探公开课课件 【教材精讲精研】 高中英语外研版(2019)必修第一册
评论
0/150
提交评论