




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号:23JAVA咼级编程课程设计报告记事本陈敬高王春山20131514219 20131514209软件普131班2015年 12 月 24 日题目意义和设计思想1、题目意义所有正文部分,要求宋体、5号字,行间距固定值 20磅,首航缩进2字符此处主要指做此题目的意义和用途,课程设计所具有的功能,以及带来的好处1.1课程设计目的:1)巩固和提高java编程技术。2) 培养掌握成学设计的基本思路和方法。3)加强研发、调试程序的能力。4)增强分析、解决问题的能力。5)提高科技论文写作能力。1.2课程设计用途: 本课程设计GUI界面的日历记事本。系统将日历、记事本功能结合 在一起,用户可以方便地在任
2、何日期记录下有关内容或查看某个日期的记录内容。1.3课程设计具有的功能:用户可以登录或注册自己的账号,方便地在任何日期记录下有关内容或查看某个日期的记录内容。通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过更改年份或月份来查看自己的日志。使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。2、设计思想此处主要指根据功能划分的功能模块,以及打算解决实现这些模块功能的思路设计思想Java记事本程序是:图形界面、流与文件等技术的综合应用。图形界面的实现:考虑到简单、实用、高效等特点,大
3、部分选择了awt来完成实现,其中也有swing组件。文本编辑区就选用了 TaxtArea作为主要的部件。文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。 由于Java的特性,可能用任何一个编辑器来编辑,于是就将 Windows中的记事本作为模仿对象, 根据实现情况删减了其中的一些功能。在设计类的时候,考虑到简单明了,就用了三个类,一个主类、一个类设计构造函数实现监听接口作为程序的整体框架,一个类设计构造函数实现查找替换功能。所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设
4、计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。1、主要技术日历记事本系统主面板与日历板模块(Cale ndarPad.java)该模块设计主要主要包含以下成员变量:年(year)月(month) 日(day)存放日期的表(Hashtable)存放日志的文件(File)主要方法有:创建程序主面板的构造方法(Cale ndarPad)处理 ActionEvent 事件的接口方法(actionPerformed )程序开始运行的main ()方法。在具体设计过程中,首先,基本功能和组件的创建;然后,创建构造方法,这一部分包括:为各个功能创建监听事件,创建程序主面板
5、以及日历面板.添加关闭窗口方法;第三步分为创建监听方法,实现对各个功能模块的操作,以及鼠标点击实现进入相应的功能面板;最后创建相应的 mai n()方法。2.日历记事本系统年设置模块(Year.java)量有用该模块用于实现日历记事本系统中关于年的设置,模块中包含的主要成员变于改变年的按钮(Jbutton明年 去年),显示年的文本框(JTextField)。模块中包含的主要方法有用于设置年的方法(setYear),用于获取年的方法(getYear)和处理ActionEvent事件的接口方法(actionPerformed)等在具体设计过程中,首先,显示年的文本框、按钮、文件列表、区域的 创建和
6、初始化;然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。3.日历记事本系统月设置模块(Mon th.java)该模块用于实现日历记事本系统中关于月的设置,模块中包含的主要成员变 量有用于改变月的按钮(Jbutton上月 下月),显示月的文本框(JTextField)。模块中包含的主要方法有用于设置月的方法(setM on th),用于获取月的方法(getMo nth)和处理 Actio nEvent事件的接口方法(actionPerformed)等在具体设计过程中与年设置大体上相近,首先,显示年的文本框、按钮文件列表
7、、区域的创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。4.日历记事本系统记事本模块(Note Pad.java)该模块中包含的主要成员变量有文本框(JTextArea),按钮(JButton保存日 志 删除日志),用于存放日志记录的文件(File)以及响应相关操作的信息提示(JLabel)。该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志在具体设计过程中首先,将记事本模块中的文本框、按钮创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,实现接口监听,创建监听方
8、法,选择日期时若记事本系统中已经存在记录,则弹出提示,询问是否查看 若不存在记录,则可以保存日志;对存在的日志使用删除日志功能时会弹出提示是否删除日志,选是即删除日志,选否即可返回.以上即实现学生基本信息模块的基本功能实现。二、采用的主要技术、遇到的问题和解决方法此处主要指用到 Java中的主要技术,以及技术中的类和方法。在程序设计中遇到的难点和冋题,是如何解决的。主类 CanlendarPad(1 )成员变量成员变量描述变量类型名称年、月、日 int year,m on th,day保存日志的散列表Han shtable han shtable存放散列表的文件File file显示日期 Jt
9、extFile showDay日历对象Calendar日历记事本对象 Note Pad note pad月Mo nth负责改变月年Year负责改变年2.方法名称功能备注 CalendarPad创建窗口主程序 构造方法 设置日历牌 设置日立的年份、月份 排列号码 排列月份中 的号码mouse Pressed 处理MouseEve nt事件接口方法 mai n 程序开始运行3.对日历添加,基本上完成了我的java课程设计,通过这次的课程设计,同时做这门课程设计也进一步加强了我的动手能力,为了完成好这次课程设计,记事本Note1、成员变量描述变量类型名称文本输入区JTextAreatext保存、删除
10、日志的按钮Butt on保存日志、删除日志保存日志的散列表 Hashtabletable保存散列表的文件4.功能设置名称功能备注Nota Pad创建记事本对象构造方法setYear设置年份getYear获取年份setM on th设置月份getMo nth获取月份setDay设置日期getDay获取日期获取日志内容获取日志内容保存日志保存日志删除日志删除日志actionPerformed处理 ActionEvent 事件接口方法年 Year1.成员变量描述变量类型名称表示年份的整数int year显示年份的文本条 JtextFiled showYear负责增减年份的按钮Jbutton明年、去年
11、2.方法名称功能备注Year创建年对象构造方法setYear设置年份getYear获取年份actionPerformed处理 ActionEvent 事件接口方法月 Month1.成员变量描述变量类型名称表示月份的整数int month显示月份的文本条JtextFiled showMo nth 负责增减月份的按钮 Jbutt on 下月,上月2.方法名称功能备注Month创建月”寸象构造方法SetMonth设置月份 getMo nth获取月份actionP erformed处理 Action Eve nt 接口方法2、遇到的问题和解决方法问题(1):数据传输问题无法连接数据库解决方法:找同学帮
12、忙解决问题(2):数据传输问题解决方法:三、实现的主要功能和系统结构此处写本课程设计的重要功能模块以及模块结构图日历记事本系统四、核心算法描述和相关技术说明此处指解决每个模块问题设计的算法思想描述或者自己写的方法, 代码中加注释,解释部分在算法思想描述中阐述清楚即可)主类 CalendarPad1.成员变量以及代码实现(不需要在战员变描述变重类型名称年、月.日intZe ar, month, day保存日志的散列表Hashtablehashtahik押放散列表的文件Filefile显示日期JTextFieWshow Day日历对象Calendar日历记事本对象N otflPadnot 亡 pa
13、d月Month负责改变月年Year负责改变無2方法名称功能备注CakndarPad创建程序主窗口构造方法设羞日历牌设畫日历的年份、月份排列号码排列月份中的号码mouse Pressed处理Mouse E/ent事件接口方法man程序开始运行i己事本MotePad1.成员变量描迷变量英型名称文桶入区JTertAreatxt保存.删除日志的按钮Button保存日志、除日志保存日志的散列表Hashtabictable保存散列表的文件Fikfile记录日志的年、月.日intye ar* m onth day2.方法名称功能备注Notepad创建记事本对嫌灘方法setVear设置年份geWear获取年份
14、setMonth设畫月份getMonth获取月份setDav设置B期action Performed处渥ActionEvtnt事件接口方法SpYcar1.成员变量描述变量类型名称寒示年份的整数(负数表示intyear公元前)显示年份的文本条JTextFiddshowYear负责増减年份的按初J Button明牟去年2.方法名称功能备注Year创建“年”对象构造方法setYear设2年份getvear茯取年份actionPe rformed处理ActionEvent事件接口方法月 Morth1.蔽员变量箱述变重芙型若称表示月份的整數(贾埶襲示intmonth公元甫)i示月份的文本眾JTixtFi
15、eldShowMonth负責増遍月份JEuttfln上月,下月2.方法名称功能备注Month创謹幼対构崔方法set Month谀置月份get Pilonth義取月粉action rformed扯理 ActionEvent 件接口方袪(1)数据库连接import java.sql.C onnection;import java.sql.DriverMa nager;P ublic class DB p rivate Stri ng Driver, name =jdbc:mysql:/localhost:3306/test;private Stri ng USER = root;private S
16、tri ng PASS = root;p ublic static Conn ecti on con;p ublic DB()try Class.forName(com.mysql.jdbc.Driver);con = DriverMa nager.getCo nn ectio n(Driver_name, USER, P ASS); con.prep areStateme nt(set NAMES utf8).execute Up date(); catch (Exce ptio n e) / TODO Auto-ge nerated catch blocke.prin tStackTrac
17、e();p ublic static Conn ecti on getC onnection() if(c on = n ull)new DB();return con;(2 )系统登录:classLogi n Font d =new Font(楷体 “,Font.BOLD, 22);Font f =new Font(楷体,Font.BOLD, 15);JFramelogi ngui=new JFrame(用户登录界面JLabeluserlog in=new JLabel(用户登录“JLabeluser name =new JLabel(用户名:“);JLabelp assword=new J
18、Label(密码:);JTextFieldn ame =new JTextField();JTextFieldpwd =new JP asswordField();JButt onlog in= new JButt on(登陆);JButt oncan cle =new JButt on(取消);JButt onregist=new JButt on(注册);User user = new User();););(3 )系统注册import java.awt.F ont;import java.awt.eve nt.Act ion Eve nt; import java.awt.eve nt.
19、Act ion Liste ner; import java.sql.C onn ecti on;import java.sql. Prep aredStateme nt; import java.sql.SQLExce pti on;import java.util.Cale ndar;import javax.swi ngJButt on;import javax.swi ngJFrame;import javax.sw in g.JLabel;import javax.sw in g.JO pti onPane;import javax.sw in g.J PasswordField;i
20、mport javax.swi ng.JTextField;import n .Cale ndarPad;import n et.cw.view.DB;p ublic class registgui /初始化字体Font d = new Font(” 楷体,Font.BOLD, 22); Font f = new Font(楷体,Font.BOLD, 15); /初始化对象JTextField n ame = new JTextFieldQ;JTextField pwd = new JP asswordField();JTextField rpwd = newJP asswo
21、rdField();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(” 取消”);(4 )记录日志P ublicStringString ke
22、y=Conn ecti on con = DB.User user = new User();获取日志内容(int year, int mon th,int day)+yea r+ +mon th+ +day;getC onn ecti on();select * fromtry Prep aredStateme nt ps = con.prep areStateme nt(log);ResultSet rs = p s.executeQuery(); if (rs.getRow() != 0) rs.first();String text = rs.getStri ng(3); 设置文本区(
23、text);retur n rs.getStri ng(text); else text .setText( 无记录); returnnull(5 )删除或保存日志p ublicclass NotePadJTextAreatextJButtonHashtableexte ndsJPanelimp leme ntsActi on Liste ner保存日志,删除日志;table ;JLabel 信息条;intyear , month , day ;File file ;Cale ndarPadcale ndarp ublicNote Pad(Cale ndar Pad cale ndar)thi
24、s . calendar=calendar;year =cale ndar.getYear();month =cale ndar.getM on th();day =cale ndar.getDay();table=cale ndar.getHashtable();file =cale ndar.getFile();信息条=new JLabel( +year +年“ +month +月 “ +day +日,JLabel. CENTER);信息条.setFont( new Font(TimesRoman,Font.BOLD,16);信息条.setForeground(Color.text =ne
25、w JTextArea(10,10);保存日志删除日志保存日志删除日志setLayout(blue );JPanel pSouth=add( 信息条p South.add(p South.add(= new JButton(保存日志);= new JButton(删除日志);.addActi on Liste ner(this );.addActi on Liste ner(this );new BorderLayout();new JPan el();,BorderLayout.保存日志删除日志NORTH);););add( pSouth,BorderLayout.add(publicnew
26、 JScroll Pane(SOUTH);text ),BorderLayout.CENTER);ifvoid acti onP erformed(Acti on Eve nt e)(e.getSource()=保存日志)保存日志(year , month , day );else if (e.getSource()=删除日志)删除日志(year , month , day );五、总结和体会1、总结对本次课程设计进行总结,重点写课程设计实现的总结(不要写感受,感受在体会中写)Cale ndarPad.java)作为在这为期一周的课程设计中,我们组的课题项目为日历记事本(组长的我亲自请缨担任C
27、alendarPad.java代码的编写,我们通过 eclipse软件进行项目的编写。在编写的代码的过程中我们遇到了这样那样的问题,我问询问同学,共同探讨,虽然大家java的学习并不是想象中的那么好,但是大家都在尽心尽力的来完成,特别是在最后的 合并起来之后,我们发现在可视窗口的底部的文字显示部分存在很大的漏洞,我们对了几遍 源代码,发现并没有出现错误,我们没有放弃。我们发现问题可能出现在了编码上,于是我们尝试着使用CalendarPad.java类包进行编写改动,这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,而且团队之间的合作,成员之间的默契,也很重要,这将对我
28、以后的工作形成良好的习惯CalendarPad.java的编写,该文件创建记事本,包括对记事本的输入,保存删除日志的按钮,保存日志散列表和文件,以及记录日志的 年,月,日。利用java.awt类的使用。使用类创建记事本,输入文字和保存日志,对日志的 年月日进行编辑,设置代码,进一步加深了对java类的认识和使用,编写java的困难,一定java进行规范要认真仔细,先思考后编写,要想到使用的成员变量和使用的方法,要对编写 的编写,在编写 CalendarPad.java时,充分认识到对java编写重要性,对类的如何使用。对NotePad.java部分的编写,了解了编写一个程序真的是很不容易,这部
29、分主要是文本 输入区、保存、删除日志的按钮、保存日志的散列表、保存散列表的文件以及记录日志年、 月、日这部分的实现(变量类型主要有:JTextArea、Button、Hashtable、File、int;主要方法:Note Pad、setYear、getYear、setMo nth、getMo nth、setDay、getDay、获取日志内容、保存日 志、删除日志、actionPerformed)通过java.awt ; java.io等类的运用让我进一步加深了对java类的认识和使用。在编写程序时多次出现错误,对于java语言基础的理解还不够透彻不够仔 细。不过所幸最后通过同学的指点和资料的
30、补充最终共完成了这次的课程设计。通过这次的课程设计我深刻意识到要在以后的而学习中认真努力,多做程序,多进行练习,不会的多问老师同学,努力培养自己对java的兴趣,努力学好java。 由于是第一次进行Java语占开发所W不足之处不可避见*以斷不懂得的东四,通过这次爼於之间的讨呛,完善,得到补充,使自己对于java这门课程有了全新的认识。用到变量类型有int、JTextField、JButton,对于这些,以前只是听老师讲过,没有运用于实践中,所以创建“年”对象,设置 年份,获取年份该用些什么方法,哪些变量,在这次实践得到更完善的积累。这次课程设计 使我懂得了理论与实际相结合是很重要的,只有理论知
31、识是远远不够的,而且团队之间的合以及进一步熟作,成员之间的默契,也很重要,这将对我以后的工作形成良好的习惯。悉掌握Java程序设计语言的基础内容,提高Java编程技术以及分析解决问题的综合能力。由于自身能力有限,所以在编写代码的时候难免出现问题,像用什么变量显示日期,用什么变量保存日志的散列表等等,像int、Hashtable、File、JTextField、这些都通过组员之间的Java讨论得到解决。以前对Java语言的很多知识认识都不深刻,做过这次实训之后,我对语言的开发有了一个比较系统的了解,从中发现自己平时学习不足和薄弱环节,从而加以弥2、体会写课程设计过程中自己的体会经过这一次的设计,总体来说收获还是不小。刚刚开始学习Java语言的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T-ZSM 0052-2024“领跑者”评价技术要求 普通型立式带锯床
- T-ZSA 227-2024 低慢小无人驾驶航空器车载式预警处置系统
- 2025年度村级林业资源监测村级护林员职责合同
- 2025年度美甲服务连锁品牌合作协议
- 二零二五年度汽车维修保养抵押借款合同
- 2025年度美发店员工劳动合同及员工福利政策
- 二零二五年度个人心理咨询服务合同
- 2025年度消防车辆抵押借款合同范本
- 二零二五年度直播平台用户行为数据分析合同
- 2025年度石材石材加工定制采购协议
- 2024年湖南省岳阳市中考数学一模试卷
- DZ∕T 0080-2010 煤炭地球物理测井规范(正式版)
- 2024年国家公务员考试时事政治必考试题库(完整版)
- 否定副词“不”和“没有”比较研究
- 售楼部销售礼仪培训内容
- (高清版)DZT 0347-2020 矿山闭坑地质报告编写规范
- 2024年不停电电源UPS相关项目营销计划书
- 重汽重卡培训课件
- 干式变压器培训课件
- 公司SWOT分析表模板
- 2023年上海中考语文试卷(附答案)
评论
0/150
提交评论