《JAVA课程设计报告.doc》由会员分享,可在线阅读,更多相关《JAVA课程设计报告.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、班 级: 姓 名: 学 号: 指导教师: 实训时间: 实训地点: 目 录一、课程设计目的和要求31、设计目的32、设计要求3二、课程设计选题3三、设计时间、设计安排和考核要求41、时间安排42、设计安排43、考核要求4四、设计内容51、题目:记事本52、需求分析53、流程图54、程序部分源代码8五、程序界面截图16六、设计部分日志16七、总结17八、教师评语:17一、课程设计目的和要求1、设计目的、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能
2、力。提高学生适应实际,实践编程的能力;、 培养学生在项目开发中团队合作精神、创新意识及能力。2、设计要求、 对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;、 系统设计要实用,编程简练,可用,功能全面;、 说明书、流程图要清楚;、 记录设计情况(备查,也为编写设计说明书作好准备);、 要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式;、 设计上交内容:设计报告一份(按格式书写);源程序文件。二、课程设计选题老师提供的题目有:学生信息管理系统、日历记事本、三子棋游戏(Japplet)、库存管理系统、
3、用户管理系统、多人聊天室(GUI)、拿火柴游戏、超市收银系统、ATM柜员机模拟程序、图书信息管理系统、一个简单的算法动态演示程序、商场商品信息管理系统、小区物业管理系统、车辆档案管理系统、自选题目。我选取的是自选题目,我所选设计题目是记事本。三、设计时间、设计安排和考核要求1、时间安排序号时间内容19月16日班级分组,选定课题,查阅相关资料29月17日划分模块、小组成员分工,编制源程序39月18日9月19日编制源程序39月20日上机调试,修改、完善系统49月21日上机调试,修改、完善系统59月22日撰写课程设计报告,上机调试,修改、完善系统69月23日撰写课程设计报告79月24日实习成绩的评定
4、2、设计安排分组选题:最多2人为一组,每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。设计过程:分析设计准备阶段(按组讨论、对系统功能进行分析,并进行明确分工);编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)3、考核要求:在设计期间,学生要按时上机,设计结束根据记录的设计材料整理成设计说明书。设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。结合学生的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量分优、良、中、及格和不及格五等。四、设计内容1、题目:记事本2、需求
5、分析:本程序要构建的记事本参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有【文件】、【编辑】、【格式】、【查看】、【帮助】五个主菜单。(2)、文件菜单中有 新建、打开、保存、另存为、退出菜单项。它们分别用来新建文件,打开文件,保存文件,把文件另存,和退出记事本。(3)、编辑菜单中有 剪切、粘贴、复制、全选、删除、查找、日期菜单项。它们分别用来剪切文字,粘贴文字,复制文字,全选文字,删除文字,查找文字,在记事本里插入日记。(4)、格式菜单中有自动换行、颜色(包括文字颜色和文本区域颜色)、字体菜单项。它们分别用来实现文本换行,改变文字的颜色,改变文本区域的颜色,设置
6、文字的大小类型。(5)、查看菜单中有状态栏菜单项,它用实现状态栏是否显示。(6)、帮助菜单有帮助主题、关于记事本菜单项。它们分别用于怎样使用该记事本,关于该记事本的一些信息。3、流程图【帮助】菜单流程图:开始 【帮助】菜单显示帮助主题显示记事本的有关信息关于记事本 帮助主题 结束结束开始 保存文件关闭另存为新建 保存打开 退出 监听菜单项事件文件是否保存【文件】菜单:【编辑】菜单流程图:开始 保存关闭粘贴复制 结束退出或关闭删除剪切 日期全选 监听菜单项事件文件是否修改True闭【格式】菜单流程图:结束开始 换行 字体颜色 监听菜单项事件【右键】菜单流程图开始 保存关闭粘贴复制 结束退出或关闭
7、删除剪切 阅读顺序全选 监听编辑区的鼠标事件文件是否修改True闭False闭4、程序部分源代码import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import java.util.*;import java.util.regex.*;public class TextEditor extends JFrame implements ActionListener,MouseListener /文件菜单项声明 JMenuItem fileNew,fileOpen,fileSave,file
8、SaveAs,fileQuit; /* 编辑菜单项声明 */ JMenuItem editUndo,editRedo,editCut,editPaste,editCopy,editDelete,editFind,editReplace,editSelectAll,editDate; /*格式菜单项声明*/ JMenuItem formatWordWrap,formatColorFont,formatColorArea,formatFont; /*查看菜单项声明*/ JMenuItem scanStatus; /*帮助项声明*/ JMenuItem helpAbout,helpMainTitle
9、; /*文本区域声明*/ JTextArea text; /*状态栏标签声明*/ JLabel statusFile,statusRow,statusRank,statusSize,statusDate; boolean flag = true; /自动换行标识 boolean readFlag = true;/阅读顺序标识 int number = 0; /行数 JPopupMenu popupMenu;/右键弹出菜单声明 /右键弹出式菜单的菜单项声明 JMenuItem popupUndo,popupCut,popupCopy,popupPaste,popupDelete,popupSel
10、ectAll, popupReadDirection; /工具栏项声明 JButton toolOpen,toolSave,toolCopy,toolPaste,toolCut,toolNew,toolSelectAll, toolDelete,toolUndo,toolRedo,toolHelp; /* 窗体布局 */ /窗体初始化 public TextEditor() super(JAVA凡人记事本); ToolBar(); Menus(); Listener(); JTextArea(); StatusBar(); ShortKeys(); getCalendar(); popupMe
11、nu(); /* 菜单初始化 */ public void Menus() /*创建菜单栏*/ JMenuBar menubar = new JMenuBar(); /*添加菜单栏*/ this.setJMenuBar(menubar); /*初始化【文件】菜单*/ JMenu file = new JMenu(文件(F),true); fileNew = new JMenuItem(新建(N),N); fileOpen = new JMenuItem(打开(O),O); fileSave = new JMenuItem(保存(S),S); fileSaveAs = new JMenuItem
12、(另存为(A); fileQuit = new JMenuItem(退出(X),X); /*初始化【编辑】菜单*/ JMenu edit = new JMenu(编辑(E),true); editUndo = new JMenuItem(撤销(U),Z); editRedo = new JMenuItem(恢复(Y),Y); editCut = new JMenuItem(剪切(T),X); editCopy = new JMenuItem(复制(C),C); editPaste = new JMenuItem(粘贴(P),V); editDelete = new JMenuItem(删除(L
13、); editFind = new JMenuItem(查找(F),F); editReplace = new JMenuItem(替换(R),R); editSelectAll = new JMenuItem(全选(A),A); editDate = new JMenuItem(时间/日期(T); /*初始化【格式】菜单*/ JMenu format = new JMenu(格式(O),true); JMenu color = new JMenu(颜色); formatWordWrap = new JMenuItem(自动换行(W),W); formatColorFont = new JMe
14、nuItem(字体颜色); formatColorArea = new JMenuItem(文件区域颜色); formatFont = new JMenuItem(字体); /*初始化【查看】菜单*/ JMenu scan = new JMenu(查看(V); scanStatus = new JMenuItem(状态栏(S); /*初始化【帮助】菜单*/ JMenu help = new JMenu(帮助(H),true); helpMainTitle = new JMenuItem(帮助主题(H); helpAbout = new JMenuItem(关于记事本(A); /* 添加菜单到窗
15、体 */ menubar.add(file); menubar.add(edit); menubar.add(format); menubar.add(scan); menubar.add(help); /*添加文件菜单项*/ file.add(fileNew); file.add(fileOpen); file.addSeparator(); file.add(fileSave); file.add(fileSaveAs); file.addSeparator(); file.add(fileQuit); /*添加编辑菜单项*/ edit.add(editUndo); edit.add(ed
16、itRedo); edit.addSeparator(); edit.add(editCut); edit.add(editPaste); edit.add(editCopy); edit.addSeparator(); edit.add(editDelete); edit.add(editFind); edit.addSeparator(); edit.add(editSelectAll); edit.add(editDate); /*添加格式菜单项*/ format.add(formatWordWrap); format.add(color); color.add(formatColorF
17、ont); color.add(formatColorArea); format.addSeparator(); format.add(formatFont); /*添加查看菜单项*/ scan.add(scanStatus); /* 添加帮助菜单项*/ help.add(helpMainTitle); help.addSeparator(); help.add(helpAbout); /* 工具栏初始化 */ public void ToolBar() JToolBar toolbar = new JToolBar(工具栏);/创建工具栏 /* 初始化工具栏按钮 */ toolNew = n
18、ew JButton(new ImageIcon(images/new.jpg); toolNew.setToolTipText(新建空白文本);/设置当不鼠标放到上面是的文本 toolOpen = new JButton(new ImageIcon(images/open.jpg); toolOpen.setToolTipText(打开); toolSave = new JButton(new ImageIcon(images/save.jpg); toolSave.setToolTipText(保存); toolCopy = new JButton(new ImageIcon(images
19、/copy.jpg); toolCopy.setToolTipText(复制); toolPaste = new JButton(new ImageIcon(images/paste.jpg); toolPaste.setToolTipText(粘贴); toolCut = new JButton(new ImageIcon(images/cut.jpg); toolCut.setToolTipText(剪切); toolSelectAll = new JButton(new ImageIcon(images/selectAll.jpg); toolSelectAll.setToolTipTe
20、xt(全选); toolUndo = new JButton(new ImageIcon(images/undo.jpg); toolUndo.setToolTipText(撤销); toolRedo = new JButton(new ImageIcon(images/redo.jpg); toolRedo.setToolTipText(恢复); toolDelete = new JButton(new ImageIcon(images/delete.jpg); toolDelete.setToolTipText(删除); toolHelp = new JButton(new ImageIc
21、on(images/help.jpg); toolHelp.setToolTipText(帮助); /* 添加按钮到工具栏 */ toolbar.add(toolNew); toolbar.add(toolOpen); toolbar.add(toolSave); toolbar.add(toolCopy); toolbar.add(toolPaste); toolbar.add(toolCut); toolbar.add(toolSelectAll); toolbar.add(toolUndo); toolbar.add(toolRedo); toolbar.add(toolDelete);
22、 toolbar.add(toolHelp); this.add(toolbar,BorderLayout.NORTH);/把工具栏放到窗体 /* 创建监听对象 */ toolNew.addActionListener(this); toolOpen.addActionListener(this); toolSave.addActionListener(this); toolCopy.addActionListener(this); toolPaste.addActionListener(this); toolCut.addActionListener(this); toolSelectAll
23、.addActionListener(this); toolUndo.addActionListener(this); toolRedo.addActionListener(this); toolDelete.addActionListener(this); toolHelp.addActionListener(this); /* 注册监听对象 */ public void Listener() fileNew.addActionListener(this); fileOpen.addActionListener(this); fileSave.addActionListener(this);
24、 fileSaveAs.addActionListener(this); fileQuit.addActionListener(this); editUndo.addActionListener(this); editRedo.addActionListener(this); editCut.addActionListener(this); editPaste.addActionListener(this); editCopy.addActionListener(this); editDelete.addActionListener(this); editFind.addActionListe
25、ner(this); editReplace.addActionListener(this); editSelectAll.addActionListener(this); editDate.addActionListener(this); formatWordWrap.addActionListener(this); formatColorArea.addActionListener(this); formatColorFont.addActionListener(this); formatFont.addActionListener(this); scanStatus.addActionL
26、istener(this); helpAbout.addActionListener(this); helpMainTitle.addActionListener(this); /弹出式菜单项 /popupUndo.addActionListener(this); /* 添加文本区 */ public void JTextArea() JScrollPane scroll= new JScrollPane();/创建放置文本区域的滚动条 text = new JTextArea(nn Java记事本nn + 版本:1.0nn + 制作人:王元炎); scroll.getViewport().s
27、etView(text); this.add(scroll,BorderLayout.CENTER); /* 添加状态栏 */ public void StatusBar() /*创建管理标签的面板*/ JPanel southPane = new JPanel(); /*初始化标签*/ statusFile = new JLabel(文件状态: ); statusRow = new JLabel(行:+number); statusRank = new JLabel(列: ); statusSize = new JLabel(大小: ); statusDate = new JLabel(日期
28、: ); /*添加标签*/ southPane.add(statusFile); southPane.add(statusRow); southPane.add(statusRank); southPane.add(statusSize); southPane.add(statusDate); /设置面板布局管理方式 southPane.setLayout(new FlowLayout(FlowLayout.LEFT,5,0); /*添加标签到窗体*/ this.add(southPane,BorderLayout.SOUTH); /* 右键菜单 */ public void popupMen
29、u() popupMenu = new JPopupMenu();/创建弹出式菜单 /* 弹出式菜单项初始化 */ popupUndo = new JMenuItem(撤销(U); popupCut = new JMenuItem(剪切(T); popupCopy = new JMenuItem(复制(C); popupPaste = new JMenuItem(粘贴(P); popupDelete = new JMenuItem(删除(D); popupSelectAll = new JMenuItem(全选(A); popupReadDirection = new JMenuItem(从右
30、到左的阅读顺序(R); /把菜单项加入菜单 popupMenu.add(popupUndo); popupMenu.addSeparator(); popupMenu.add(popupCut); popupMenu.add(popupCopy); popupMenu.add(popupPaste); popupMenu.add(popupDelete); popupMenu.addSeparator(); popupMenu.add(popupSelectAll); popupMenu.add(popupReadDirection); text.addMouseListener(this);
31、/注册监听对象 text.add(popupMenu);/把弹出式菜单放入文本区域 public static void main(String args) int width = 0; int height = 0; width = Toolkit.getDefaultToolkit().getScreenSize().width; height = Toolkit.getDefaultToolkit().getScreenSize().height; TextEditor texteditor = new TextEditor(); texteditor.setSize(600,400);
32、 texteditor.setLocation(width - 600) / 2, (height - 400) / 2) ; texteditor.setVisible(true); texteditor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 五、程序界面截图运行时界面:六、设计部分日志9月16日 星期五 今天是大三学年第一学期开学的第一天,根据学校的课程安排,一开学我们就要进行为期两周的JAVA课程设计。今天指导老师主要是给我们一些参考题目和让我们把小组分好。同时指导老师向我们说了课程设计的一些要求。最后给了我们一份电子档的JAVA
33、语言课程设计任务书。9月23日 星期五 JAVA课程设计转眼间就结束了,今天是JAVA课程设计的最后一天。根据指导老师的课程设计时间安排,指导老师主要是检查学生的程序调试是否通过与问学生一些关于本程序的问题。检查程序与设计报告通过了就可以把设计报告打印出来上交给指导老师,JAVA的课程设计就可以说是完成了。如果报告还没完成,可以下星期一的下午上课是在交。原因是我们两周的课程设计时间被缩短了。七、总结经过上学期一个学期对JAVA的学习,对JAVA的编程有了一定的认识。今年一开学就进行JAVA课程设计这样能更好地复习所学的知识和对JAVA编程的更好加深认识。这次JAVA课程设计的周期是两周的时间。
34、其实我们更本就没两周的时间,因为由于运动会放假的原因,准确地说我们只有一个星期多一天的时间。也就是从9月16日到9月23日。因此,我们的任务很艰巨。一开始我本来是想做网络聊天室的,因为做网络聊天室更具有挑战性,能学到的东西更多,涉及的内容更广泛,如多线程和网络的原理等等。但由于时间的原因,担心完成不了任务才选择了记事本的。由于,在以前学习JAVA时就曾经写过一些简单的记事本,因此,此次写记事本就会很快的。但这次在编写记事本的过程中也碰到了许多的问题,如怎样实现文本的撤销与恢复,要实现这些功能还是有一点麻烦。还有就是字体对话框也就有一点麻烦,因为JAVA没有提供字体对话框,所以必须有我自己编写。由于,字体对话框有较多的组件,而且布局也是个问题,但最后经过努力总算能也写出了一个还较为满意的字体对话框。这个记事本我主要是根据Windows系统自带的文编辑工具来写,但同时我也加了许多自己创新的内容。如我添加了工具栏,然操作变为更为简单,更为方便。还有在记事本的状态栏里添加了日期,另外,还在颜色的菜单项里加入了文本区域的背景颜色,能让使用者根据选择自己喜欢的颜色进行调整。最后,通过这次JAVA课程设计让我对JAVA语言编程的有了更深的认识,同时也学到了许多书本学不到的东西。这次课程设