万历java课程设计说明书.doc

上传人:laozhun 文档编号:2387292 上传时间:2023-02-17 格式:DOC 页数:9 大小:31.50KB
返回 下载 相关 举报
万历java课程设计说明书.doc_第1页
第1页 / 共9页
万历java课程设计说明书.doc_第2页
第2页 / 共9页
万历java课程设计说明书.doc_第3页
第3页 / 共9页
万历java课程设计说明书.doc_第4页
第4页 / 共9页
万历java课程设计说明书.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《万历java课程设计说明书.doc》由会员分享,可在线阅读,更多相关《万历java课程设计说明书.doc(9页珍藏版)》请在三一办公上搜索。

1、 辽 宁 工 业 大 学 课程设计(论文) 题 目: 万 年 历 院(系): 软 件 学 院专业班级: 计算机信息管理051班 学 号:学生姓名:指导教师:教师职称: 助 教起止时间: 程序设计专题(报告)任务及评语 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) 目 录第1章 课程设计的目的与要求 . 11.1 课程设计目的 . 11.2 课程设计的实验环境 . 11.3 课程设计的预备知识 . 11.4 课程设计要求 . 1第2章 课程设计. 13 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计

2、算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机信息管理专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟

3、悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。 1辽 宁 工 业 大 学 课 程 设 计 说

4、明 书(论 文)第2章 课程设计 使用JAVA语言及SWT进行可视编辑完成该功能。2.2.1课程设计内容(一)安装编译环境(1)安装Java开发包:jdk1.6.0 :运行j2sdk1.6.0.exe程序。(2)安装Eclipse :将下载的Eclipse压缩包eclipse-SDK-3.2.1-win32.zip解压到指定目录下。(3)汉化Eclipse:将下载的汉化压缩包NLpack1-eclipse-SDK-3.2.1-win32.zip按原路径解压即可,也就是直接覆盖eclipse文件下的features、plugins两个文件夹。(4)安装SWT designer:将下载的压缩包按原

5、路径解压即可,也就是直接覆盖eclipse文件夹下的features、plugins两个文件夹。(二)进入Eclipse:双击Eclipse图标,进入Eclipse。(三)打开Eclipse,首先选择工作空间,点击“浏览”选择路径:“我的文档课程设计”。(四)新建SWT项目: Eclipse中选择菜单项:文件 > 新建 > 项目>Designer> SWT/JFace Java Project 在弹出的对话框中输入项目名称:“Kechengsheji”并设置各项参数。(五)新建包:选择菜单项:文件 > 新建 >包,包的名称为“lizhiyong”,按“确 2

6、辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)定”按钮,新建包。(六)在“包资源管理器”视图中,选择 lizhiyong 项目。单击菜单项:文件>新建>文件 在弹出的对话框中输入文件名MainFrame.java 同样再建立Clock.java。(七)打开MainFrame.java 新建并设计主窗体类MainFrame。(八)打开Clock.java 新建并设计当前时钟类Clock。(九)调试:选择菜单项:运行>调试>调试方式>SWT应用程序,找出错误并改正,直到调试成功。(十)运行程序看结果:菜单项:运行>运行>运行方式>SWT

7、应用程序,运行程序看结果,验证是否与期待结果相同。2.2.2程序中所用类说明MainFrame 主窗体类:设计显示月历和时间及年份和月份选择按钮及查看按钮。Clock 当前时间类:从系统中提取当前时间并以yyyy年MM月dd日hh:mm:ss显示。2.2.3程序中使用方法的说明MainFrame类中方法:MainFrame():MainFrame类的构造函数,设置窗体属性Init()显示月历方法use():取查询月份第一天星期的方法Resetday():运算是否闰年及各个月天数的方法main():主方法程序在此开始执行Clock 类中方法:Clock():Clock类的构造函数run():每秒

8、取一次系统时间paint():在主窗体上显示当前时间的方法getTime():提取系统时间的方法3辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)2.2.4异常处理说明异常是异常事件的简称,它定义为在执行程序过程中出现了不正常的事件,破坏了正常的指令流。Java语言如果出现异常就要进行异常处理。Clock类中有段代码含有异常处理。tryt.sleep(1000);/休眠1秒钟catch(InterruptedException e)System.out.println("异常");很多 Java 语言方法,如 Thread.sleep()可以抛出 Interru

9、ptedException异常。 程序需要暂停一段时间,于是调用 t.sleep(1000)休眠一秒。(t.sleep(1000)是Thread.sleep()的一个实例。)所以我在使用这个方法时先try捕获异常,然后catch处理异常(如果出现异常显示提示信息:“异常”)。2.2.5程序运行效果及存在的问题 在ECLIPSE下编译运行的效果如图。可以选择年月查看每月日历。并且能显示当前系统时间和某天是星期几。可以点击年份后的选择年,月份后的选择月,点查看按 4辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)钮查看该月的日历。存在的问题:在进行代码的调试的时候,代码有的地方少了输入

10、有误,有的少了标点,有的方法引用不当,最重要的是版本不正确而导致不能运行程序中的部分包。但经过细心的调试,认真的解读有了很好的改观,错误从十几处,减到无错误,便已成功,最后被圆满的完成课设。功能上存在的问题就是不能显示出农历效果,当然农历的算法比较复杂,就连Microsoft Windows系统的时间/日期功能也没有提供农历的效果。2.3程序部分源代码及注释MainFrame.java 源代码package lizhiyong;/包:lizhiyongimport javax.swing.*;/引入包import java.awt.*; /引入包import java.awt.event.*;

11、 /引入包import java.text.*; /引入包import java.util.*; /引入包class MainFrame extends JFrame /建立MainFrame类JPanel panel=new JPanel(new BorderLayout();/设置窗体属性JPanel panel1=new JPanel();/设置窗体属性JPanel panel2=new JPanel(new GridLayout(7,7); /设置窗体属性JPanel panel3=new JPanel();/设置窗体属性JLabel label=new JLabel49; /设置窗体

12、属性JLabel y_label=new JLabel("年份");/设置窗体属性JLabel m_label=new JLabel("月份");/设置窗体属性JComboBox com1=new JComboBox();/设置窗体属性JComboBox com2=new JComboBox();/设置窗体属性JButton button=new JButton("查看");/设置窗体属性int re_year,re_month;/定义变量:年,月int x_size,y_size;/定义变量:位置x坐标,y坐标String year

13、_num;/定义字符串类型变量year_numCalendar now=Calendar.getInstance();/实例化Calendar5辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)MainFrame()/编写构造函数,设置窗体属性super("万年历");/标题:万年历setSize(300,350);/大小:300*350x_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth(); /设置x坐标位置y_size=(int)(Toolkit.getDefaultToolkit

14、().getScreenSize().getHeight(); /设置y坐标位置setLocation(x_size-300)/2,(y_size-350)/2); /设置位置X setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置关闭按钮panel1.add(y_label);/设置标签及按钮panel1.add(com1); /设置标签及按钮panel1.add(m_label); /设置标签及按钮panel1.add(com2); /设置标签及按钮panel1.add(button); /设置标签及按钮for(int i=0;i< 4

15、9;i+)labeli=new JLabel("",JLabel.CENTER);/将显示的字符设置为居中 panel2.add(labeli);panel3.add(new Clock(this);panel.add(panel1,BorderLayout.NORTH);panel.add(panel2,BorderLayout.CENTER);panel.add(panel3,BorderLayout.SOUTH);panel.setBackground(Color.white); /设置背景颜色:白色panel1.setBackground(Color.white);

16、 /设置背景颜色:白色panel2.setBackground(Color.white); /设置背景颜色:白色panel3.setBackground(Color.white); /设置背景颜色:白色Init();/调用Init方法显示日历button.addActionListener(new ActionListener()/设置按钮代码 public void actionPerformed(ActionEvent e)int c_year,c_month,c_week;6辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文) c_year=Integer.parseInt(co

17、m1.getSelectedItem().toString();/得到当前所选年份c_month=Integer.parseInt(com2.getSelectedItem().toString()-1; c_week=use(c_year,c_month);/调用函数use,得到星期几Resetday(c_week,c_year,c_month);/调用函数Resetday);setContentPane(panel);/设置按钮属性setVisible(true); /设置按钮属性setResizable(false); /设置按钮属性public void Init()/建立Init方法

18、显示日历int year,month_num,first_day_num;String log="日","一","二","三","四","五","六"for(int i=0;i< 7;i+)labeli.setText(logi);/显示"日","一","二","三","四","五","六" for(int i=

19、0;i< 49;i=i+7)labeli.setForeground(Color.red);/将星期日的日期设置为红色 for(int i=6;i< 49;i=i+7)labeli.setForeground(Color.green);/将星期六的日期设置为绿色 for(int i=1;i< 10000;i+)com1.addItem(""+i);for(int i=1;i< 13;i+)com2.addItem(""+i);7辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)month_num=(int)(now.ge

20、t(Calendar.MONTH);/得到当前时间的月份 year=(int)(now.get(Calendar.YEAR);/得到当前时间的年份com1.setSelectedIndex(year-1);/设置下拉列表显示为当前年com2.setSelectedIndex(month_num);/设置下拉列表显示为当前月first_day_num=use(year,month_num);/计算第一天是星期几Resetday(first_day_num,year,month_num);/计算是否闰年public int use(int reyear,int remonth)/建立use方法in

21、t week_num;now.set(reyear,remonth,1);/设置时间为所要查询的年月的第一天week_num= (int)(now.get(Calendar.DAY_OF_WEEK);/得到第一天的星期 return week_num;/返回星期数public void Resetday(int week_log,int year_log,int month_log)int month_score_log;/判断是否是闰年的标记int month_day_score;/存储月份的天数int count;month_score_log=0;month_day_score=0;co

22、unt=1;if(year_log%4=0&&year_log%100!=0|year_log%400=0)/判断是否为闰年 month_score_log=1;/标记为闰年month_log=month_log+1;/将传来的月份数加1switch(month_log)/判断该月天数case 1:case 3:case 5:case 7:8辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)case 8:case 10:case 12:month_day_score=31;/1、3、5、7、8、10、12月 天数设置为31天 break;case 4:case 6:c

23、ase 9:case 11:month_day_score=30;/4、6、9、11月 天数设置为30天break;case 2:if(month_score_log=1)month_day_score=29; /闰年2月 天数设置为29天elsemonth_day_score=28; /平年2月 天数设置为28天break;for(int i=7;i< 49;i+)/初始化标签labeli.setText("");week_log=week_log+6;/将星期数加6,使显示正确month_day_score=month_day_score+week_log;for

24、(int i=week_log;i< month_day_score;i+,count+)labeli.setText(count+"");public static void main(String args)/主方法9辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)JFrame.setDefaultLookAndFeelDecorated(true);MainFrame start=new MainFrame(); Clock.java源代码package lizhiyong; /包:lizhiyongimport javax.swing.*; /引入

25、包import java.awt.*; /引入包import java.awt.event.*; /引入包import java.text.*; /引入包import java.util.*; /引入包class Clock extends Canvas implements Runnable/建立Clock类显示当前时间 MainFrame mf;Thread t;String time;Clock(MainFrame mf)this.mf=mf;setSize(400,40);/设置窗体大小400*40setBackground(Color.white);/设置背景颜色:白色t=new T

26、hread(this);/实例化线程t.start();/调用线程public void run()/建立run方法每秒更新时间while(true)try/捕获异常t.sleep(1000);/休眠1秒钟catch(InterruptedException e)/处理异常System.out.println("异常");10辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)this.repaint(100);public void paint(Graphics g)/建立paint方法显示当前时间Font f=new Font("宋体",Fo

27、nt.BOLD,16); /设置字体SimpleDateFormat SDF=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");/格式化时间显示类型Calendar now=Calendar.getInstance();time=SDF.format(now.getTime();/得到当前日期和时间g.setFont(f);g.setColor(Color.orange); /设置背景颜色:橙色g.drawString(time,100,25); 11辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)第3章 课程设计总结通过这

28、次课程设计,加强了我对JAVA语言的理解,使课堂上的理论在实践中得到运用。我对JAVA程序设计这门程序设计语言进行了一次完整的学习与实践。对JAVA的常量、变量、运算、类、流程、SWT、窗体和Applet进行了复习与实践,综合运用所学知识,系统的进行了一次软件工程开发,完成了课程设计的任务,并在实践应用方面打下一定基础。这次课程设计,使我对本门课程有了更深一步的理解,JAVA程序设计并不是简单的计算机语言,它能够延伸到更宽更广的领域。学好这些知识也能为自己在以后学习动态网页制作打下坚实的基础。在掌握JAVA语言程序设计的理论知识的基础上,我能够结合实际,设计编程,调试运行JAVA语言程序,完成

29、课程设计论文。为了能够较好地完成本次课程设计,我进行了阅读教材,网上搜索,到图书馆查找相关资料等准备工作,在做课程设计的过程中,我在利用所学知识的同时,又学到了很多实例化的理论知识和软件工程的一些实践。总结了一些经验和方法。强化了我的实际动手能力。同时也找到自己的不足。我一定会继续学习增加自己的编程能力和调试能力,在今后的学习中我会更加的努力,增加自己的知识储备。拓宽了知识面,锻炼了能力,综合素质得到较大提高。最后感谢老师给予的耐心指导与帮助,使我能顺利完成这次课程设计。 12辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)参考资料1 宋振会.JAVA语言编程基础教程. 北京:清华

30、大学出版社, 2005-52 耿祥义.JAVA大学实用教程. 北京:电子工业出版社, 2005-33 耿祥义.JAVA大学实用教程实验指导.北京 :电子工业出版社, 2005-34 美Cay S.Horstmann,程峰.JAVA2核心技术. 北京 : 机械工业出版社, 2003-35 魏永继.JAVA应用程序开发. 北京 :机械工业出版社, 2007-26 王雪轻.JAVA入门与提高. 北京 :人民邮电出版社, 2004-27 孟繁新.Eclipse实例开发与应用. 沈阳 :东北大学出版社, 2005-18 王一平.JAVA应用技术. 北京 :人民邮电出版社, 2005-129 张浩军.Eclipse应用与实践. 北京 :高等教育出版社, 2006-910 李洪飞.J2SE开发应用实例教程. 北京 :人民邮电出版社, 2004-911 赵如艳.JAVA软件工程. 大连 :东北财经大学出版社, 2006-212 王大魁.JAVA程序设计与开发. 北京 :清华大学出版社, 2004-813 李宇.JAVA语言培训教程. 北京 :人民邮电出版社, 2005-6 13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号