Java课程设计报告书

合集下载

Java课程设计报告1

Java课程设计报告1

Java程序设计课程设计报告院别:计算机系班级:XXXX学号: ******XXXXX姓名: XXX指导教师:XXX日期:2013-5-24目录1概述 (3)1.1实验题目和内容 (3)1.2实验目的和要求 (3)2计算器的设计与实现 (4)2.1程序步骤 (4)2.2程序源代码 (4)3运行调试及讨论分析 (4)4实验小结与心得 (12)1概述1.1设计目的及思路通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。

给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。

除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。

当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!1.2功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。

(2)减法两个数据进行减操作,可以为负数相减。

(3)乘法两个数相乘操作。

(4)除法两个数相除操作(5)清零将运算框清除(6)返回退回一格2计算器的设计与实现2.1程序界面2.2程序源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Calculator extends JFrame implements ActionListener{JPanel vv1,vv2,vv3,vv4;JTextField kk1 ; //添加数字框和符号框JButton[] r={new JButton("7"),new JButton("8"),new JButton("9"),new JButton("/"),new JButton("4"),new JButton("5"),new JButton("6"),new JButton("*"),new JButton("1"),new JButton("2"),new JButton("3"),new JButton("-"),new JButton("0"),new JButton("."),new JButton("+"),new JButton("="),new JButton("←"),new JButton("清空")};double a=0,b=0,c=0,fuhao=5;Boolean has=false;Boolean hav=true;Boolean haw=true;Calculator(String S){setTitle(S);kk1=new JTextField("0",20);kk1.setEditable(false);kk1.setFont(new Font("宋体",Font.BOLD,25));kk1.setBackground(Color.YELLOW);for(int i=16;i<18;i++){r[i].setFont(new Font("黑体",Font.BOLD,15));r[i].setForeground(Color.blue);}vv1=new JPanel(new GridLayout(4,5,5,5));vv2=new JPanel(new GridLayout(1,2,1,1));vv3=new JPanel(new FlowLayout());vv4=new JPanel(new BorderLayout());vv3.add(kk1);vv4.add(vv2,BorderLayout.NORTH);vv4.add(vv1,BorderLayout.CENTER);for(int i=0;i<16;i++)r[i].setForeground(Color.black);this.add(vv3,BorderLayout.NORTH);this.add(vv4,BorderLayout.CENTER);for(int i=16;i<18;i++)vv2.add(r[i]);for(int i=0;i<16;i++)vv1.add(r[i]);for(int i=0;i<18;i++)r[i].addActionListener(this);for(int i=16;i<18;i++){setSize(350,300);setLocation(210,205);setResizable(false);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }public void actionPerformed(ActionEvent e){if(e.getSource()==r[12]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"0");else {kk1.setText("");kk1.setText(kk1.getText()+"0");hav=true;haw=true;}}else if(e.getSource()==r[8]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"1");else {kk1.setText("");kk1.setText(kk1.getText()+"1");hav=true;haw=true;}}else if(e.getSource()==r[9]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"2");else {kk1.setText("");kk1.setText(kk1.getText()+"2");hav=true;haw=true;}}else if(e.getSource()==r[10]){ if(hav&&haw&&!kk1.getText().equals("0"))kk1.setText(kk1.getText()+"3");else {kk1.setText("");kk1.setText(kk1.getText()+"3");hav=true;haw=true;}}else if(e.getSource()==r[4]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"4");else {kk1.setText("");kk1.setText(kk1.getText()+"4");hav=true;haw=true;}}else if(e.getSource()==r[5]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"5");else {kk1.setText("");kk1.setText(kk1.getText()+"5");hav=true;haw=true;}}else if(e.getSource()==r[6]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"6");else {kk1.setText("");kk1.setText(kk1.getText()+"6");hav=true;haw=true;}}else if(e.getSource()==r[0]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"7");else {kk1.setText("");kk1.setText(kk1.getText()+"7");hav=true;haw=true;}}else if(e.getSource()==r[1]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"8");else {kk1.setText("");kk1.setText(kk1.getText()+"8");hav=true;haw=true;}}else if(e.getSource()==r[2]){ if(hav&&haw&&!kk1.getText().equals("0")) kk1.setText(kk1.getText()+"9");else {kk1.setText("");kk1.setText(kk1.getText()+"9");hav=true;haw=true;}} //数字键else if(e.getSource()==r[14]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=0;has=true;hav=true;haw=false;}else if(!haw){fuhao=0;}}//+else if(e.getSource()==r[11]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=1;has=true;hav=true;haw=false;} else if(!haw){fuhao=1; }}//-else if(e.getSource()==r[7]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=2;has=true;hav=true;haw=false;} else if(!haw){fuhao=2;}}//*else if(e.getSource()==r[3]){if(kk1.getText().trim().length()>0){ a=Double.valueOf(kk1.getText());kk1.setText("");fuhao=3;has=true;hav=true;haw=false;} else if(!haw){fuhao=3;}}// 运算符号/else if(e.getSource()==r[15]){if(kk1.getText().length()>0&&has){b=Double.valueOf(kk1.getText()); // =if(fuhao==0){c=a+b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==1){c=a-b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==2){c=a*b;kk1.setText(String.valueOf(c));has=false;hav=false;}else if(fuhao==3){ if(b!=0){c=a/b;kk1.setText(String.valueOf(c));}else JOptionPane.showMessageDialog(null, "除数不能为0");has=false;hav=false;}}} // 计算else if(e.getSource()==r[13]){if(kk1.getText().indexOf(".")==-1&&kk1.getT ext().length()>0) kk1.setText(kk1.getText()+".");} //添加小数点else if(e.getSource()==r[16]){if(kk1.getText().length()>1)kk1.setText(kk1.getT ext().substring(0, kk1.getText().length()-1));else kk1.setText("0");hav=true;} //Backspaceelse if(e.getSource()==r[17]){kk1.setText("0");has=false;hav=true;}}// CEpublic static void main(String[] args){new Calculator("计算器");}}3运行调试及讨论分析将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。

java课程设计报告

java课程设计报告

java课程设计报告
本次Java课程设计项目主题为“学生成绩管理系统”,通过本次课程设计项目,我们深入学习了Java编程语言和面向对象编程思想。

1. 需求分析
学生成绩管理系统是一款基于数据库的应用程序,为学校教务管理部门提供学生信息、课程信息、成绩信息的管理功能。

该系统需要能够实现添加、修改、删除、查询以上信息,并且能够生成有意义的报表。

2. 总体设计
学生成绩管理系统的总体设计采用了三层架构,分为表现层、业务逻辑层、数据访问层。

其中,表现层采用了JavaFX框架,业务逻辑层使用了JavaBean和Service类的方式进行设计,数据访问层使用了JDBC技术进行数据库连接和操作。

3. 详细设计
在表现层设计中,我们使用了JavaFX框架提供的Scene Builder设计界面,采用了Fxml文件的方式进行加载。

在业务逻辑
层和数据访问层设计中,我们使用了JavaBean的技术,采用了面
向对象编程的思想,通过定义JavaBean和Service类,来实现数据的操作和处理。

在数据库操作中,我们使用了JDBC技术,同时
采用了连接池技术来提高数据库连接的效率。

4. 系统测试
在系统测试中,我们主要运用了黑盒测试和白盒测试两种方法,通过对系统的功能、界面、操作、性能进行测试,并对测试结果
进行分析和修复,最后保证系统的稳定性和可靠性。

5. 总结
通过本次课程设计项目,我们深入了解了Java编程语言和面向
对象编程思想,同时提高了我们的编程设计能力和团队协作能力。

在未来的学习和工作中,我们会继续深化对Java编程语言的了解,更好地将其应用于实际项目中。

java课程设计报告书

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期设计题目:《数字连连看》学生:黄杰学号: 2专业班级:软件工程1402指导教师:国权2016 年 7 月 2 日目录1.JAVA程序设计书 31.1《简易连连看》31.1.1具体要求 31.2本系统设计的知识点 32.功能设计 32.1算法设计 32.2部分模块流程图 43.代码设计 54.界面及运行效果,测试工具与测试效果145.设计总结 165.1.程序调试情况:165.2.本人在程序设计中感想: 166.致 16主要参考文献16:1.1Java程序课程设计任务书1.1《简易连连看游戏》本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。

1.1.1具体要求(包括技术要求等):<1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。

方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。

<2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。

<3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。

<4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。

1.2本系统涉及的知识点:循环,javaGUI组件,函数,数组,分支等2.功能设计2.1算法设计本系统需要实现的功能要求:图一,数字按钮功能模块图二,三个功能按钮模块图三,数据记录模块图四,鼠标操作模块2.2部分模块流程图:3代码设计package mybase.programe;/** lianliankan总体算法思路:由两个确定的按钮。

java课程设计报告word

java课程设计报告word

java课程设计报告word一、教学目标本课程的教学目标是使学生掌握Java编程语言的基本语法、概念和编程技巧,培养学生独立编程和解决问题的能力,并提高学生对计算机科学的热情和兴趣。

1.理解Java编程语言的基本语法和结构。

2.掌握Java中的数据类型、运算符、控制语句、数组、字符串等基本概念。

3.学习Java中的面向对象编程,包括类、对象、继承、多态、封装等概念。

4.熟悉Java中的异常处理、文件操作、集合框架等高级概念。

5.能够使用Java编程语言编写简单的程序,解决问题。

6.具备基本的编程能力和代码调试能力。

7.能够运用面向对象编程思想设计和实现程序。

8.能够阅读和理解Java编程相关的文档和资料。

情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。

2.培养学生独立思考、解决问题的能力。

3.培养学生团队合作、交流分享的学习态度。

二、教学内容根据课程目标,本课程的教学内容主要包括Java编程语言的基本语法、概念和编程技巧。

1.Java基本语法:数据类型、运算符、控制语句、数组、字符串等。

2.面向对象编程:类、对象、继承、多态、封装等。

3.高级概念:异常处理、文件操作、集合框架等。

教学内容将按照教材的章节顺序进行讲解和练习,并结合实际案例和习题进行教学。

三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解和演示,向学生传授Java编程的基本概念和技巧。

2.讨论法:学生进行小组讨论,促进学生之间的交流和思考。

3.案例分析法:通过分析实际案例,让学生理解和应用Java编程知识。

4.实验法:安排实验课程,让学生亲自动手编写代码,培养学生的编程能力。

四、教学资源本课程将使用教材《Java编程思想》作为主要教学资源,并结合多媒体资料、实验设备和网络资源进行教学。

1.教材:《Java编程思想》2.多媒体资料:教学PPT、视频教程等。

《Java》课程设计》记事本

《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。

(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。

首先是标准型的记事本,拥有文件、编辑。

格式和帮助。

如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。

如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。

如图三所示。

图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。

如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。

如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。

如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。

java课程设计报告

java课程设计报告

java课程设计报告Java课程设计报告。

一、引言。

Java作为一种跨平台的编程语言,具有广泛的应用领域和强大的功能,因此在计算机专业课程中占据着重要的地位。

本次课程设计旨在通过对Java语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。

二、课程设计内容。

1. 课程设计主题。

本次课程设计的主题为“学生成绩管理系统的设计与实现”。

通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。

2. 课程设计目标。

(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。

三、课程设计过程。

1. 需求分析。

首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。

通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。

2. 系统设计。

在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。

通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。

同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。

3. 编码实现。

在系统设计完成后,团队成员按照设计文档进行了编码实现工作。

在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。

通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。

4. 测试与调试。

在编码实现完成后,团队成员进行了系统的测试与调试工作。

通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。

JAVA_课程设计报告

JAVA_课程设计报告

《J AVA 程序设计》课程设计报告设计题目:学生信息管理系统学院名称:信息工程学院专业班级:13计本 1姓名:学号:目录一需求分析。

3二概要设计。

3三详细设计。

33.1 数据库设计。

33.2 模块及窗体设计。

33.2.1 数据库模块设计。

33.2.2 用户登录识别模块。

53.2.3 用户信息管理模块。

6(1)密码修改。

6(2)用户信息添加和删除。

83.2.4 学生息管理模块。

10(1)添加信息。

10(2)信息查看。

11(3)信息修改。

12(4)删除信息。

143.2.5 系统管理模块。

153.2.6 主窗体菜单设计。

15四软件测试。

15五总结。

15 参考资料:....................................................... 17一需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.系统中需要对拥护身份进行管理,采取登陆进入系统的形式.二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。

项目的成功取决于设计的好坏,而概要设计则是整个设计的关键部分。

概要设计的主要任务是将用户的需求划分为不同的功能,然后将这些功能细分成模块,并给模块一些规则约束,以达到各个模块之间可以相互交流的目的。

概要设计关乎到系统的整体架构,因此想做好一个概要设计,不仅仅要熟悉用户的业务流程,还要具备相当丰富的设计经验。

2.1概要设计的原则概要设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。

概要设计要坚持以下几个原则。

(1)细分原则:软件系统都是由很多不同的模块组成,当设计一套软件时,要先将所有的功能分解。

java课程设计报告册

java课程设计报告册

java课程设计报告册一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:使学生掌握Java编程语言的基本语法、数据类型、控制结构、面向对象编程等核心知识。

2.技能目标:培养学生具备编写简单的Java程序的能力,能运用Java语言解决实际问题。

3.情感态度价值观目标:培养学生对编程语言的兴趣,激发学生主动学习和探索编程的热情。

在教学过程中,我们将根据学生的实际情况,调整教学节奏和内容,确保学生能够达到上述目标。

二、教学内容本章节的教学内容主要包括以下几个部分:1.Java简介:介绍Java编程语言的发展历程、特点和应用领域。

2.基本语法:讲解Java编程语言的基本语法,包括数据类型、变量、运算符等。

3.控制结构:教授Java编程语言的控制结构,如条件语句、循环语句等。

4.面向对象编程:介绍Java编程语言的面向对象编程思想,包括类、对象、继承、多态等。

5.常用类库:讲解Java编程语言常用类库,如java.util、ng等。

6.编程实践:通过编写实际的Java程序,使学生巩固所学知识,提高编程能力。

三、教学方法为了实现本章节的教学目标,我们将采用以下几种教学方法:1.讲授法:讲解Java编程语言的基本语法、控制结构和面向对象编程等理论知识。

2.案例分析法:分析实际编程案例,使学生理解并掌握Java编程的方法和技巧。

3.实验法:安排上机实验,让学生动手编写Java程序,培养学生的实际编程能力。

4.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的合作能力。

四、教学资源为了保证本章节的教学质量,我们将准备以下教学资源:1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。

2.参考书:提供相关的Java编程参考书籍,供学生课后自学。

3.多媒体资料:制作精美的PPT课件,辅助讲解知识点。

4.实验设备:保证学生上机实验的需求,提供足够的计算机设备。

5.在线资源:推荐一些优质的在线教程和编程论坛,方便学生随时查阅和交流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华东交通大学理工学院课程设计报告书( 2010-- 2011年度第 2 学期)所属课程名称 Java面向对象程序设计题目设计一个多功能计算器分院电信分院专业班级 09信管<1>班学号 20090210450106 蔡炜指导教师黄建华2011年06月23日华东交通大学理工学院课程设计(论文)任务书专业09信管班级 <1>班姓名蔡炜一、课程设计(论文)题目设计一个多功能计算器二、课程设计(论文)工作:自 2011 年06 月 13日起至2011年 06 月 23日止。

三、课程设计(论文)的内容要求:本应用程序继承自框架类(JFrame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。

包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。

同时注册按钮事件监听器。

如:Button b=new Button(); b.addActionListener(事件监听器);事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。

事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、清零按钮事件(“C”)。

在事件处理触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。

计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。

学生签名: ( )2011 年06 月 23 日课程设计(论文)评阅意见评阅人职称20 年月日目录第1章课程设计(论文)任务书 (2)第2章程序设计目的 (5)第3章程序实现思路 (6)第4章程序清单或正文 (7)第5章调试与测试 (16)第6章课程设计心得 (17)第7章参考文献 (18)第2章程序设计目的1. 充分的将课本知识与实际应用相结合,做到理论联系实际,融会贯通所学知识。

2. 提高自身的实践能力,为以后做相关编程工作提供经验。

3. 通过对面向对象语言程序代码的阅读、修改、设计,理解和掌握复杂的面向对象如Java语言应用程序的编程,提高实践编程的能力。

4. 能够利用已有资源加工处理处好的程序设计,加强一定的综合处理能力。

5. 通过这次课设让我们更加理解编程工作是多么精细的工作,所以我们要保持良好的程序设计风格,以及学会面向对象程序设计的基本思想。

第3章程序实现思路本程序首先创建了四个面板,每一个都有自己的相关按钮,按照各自的布局方式排列初步形成了一个计算器的图形模板,然后通过注册事件监听器即实现事件处理来完成整个程序流程图第4章程序清单或正文import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.text.DecimalFormat;class Calucator extends JFrame {private JTextField tfResult;private JPanel panel1, panel2, panel3, panel4;private JMenuBar myBar;private JMenu menu1, menu2, menu3;private JMenuItem editItem1, editItem2, editItem3,help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;private JCheckBoxMenuItem seeItem3;private ButtonGroup bgb;private String back;private boolean IfResult = true, falg = false;private String oper = "=";private double result = 0;private Num numActionListener;private DecimalFormat df;boolean isNew=true;public Calucator(){super("计算器");df = new DecimalFormat("0.#######");this.setLayout(new BorderLayout(10, 5));panel1 = new JPanel(new GridLayout());panel2 = new JPanel(new GridLayout(4, 5, 5, 5));panel3 = new JPanel(new GridLayout(5, 1, 5, 5));panel4 = new JPanel(new BorderLayout(5, 5));myBar = new JMenuBar();menu1 = new JMenu("编辑");menu2 = new JMenu("查看");menu3 = new JMenu("帮助");menu1.setFont(new Font("宋体", Font.PLAIN, 12));menu2.setFont(new Font("宋体", Font.PLAIN, 12));menu3.setFont(new Font("宋体", Font.PLAIN, 12)); editItem1 = new JMenuItem("复制");editItem2=new JMenuItem("粘贴"/);editItem3=new JMenuItem( "退出");// 设置退出菜单项editItem3.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){System.exit( 0 );}} );seeItem1 = new JRadioButtonMenuItem("科学型"); seeItem2 = new JRadioButtonMenuItem("标准型"); seeItem3 = new JCheckBoxMenuItem("数字分组");help1 = new JMenuItem("帮助主题");help2 = new JMenuItem("关于计算器(A)");bgb = new ButtonGroup();//做出来的效果图如下menu1.add(editItem1);menu1.addSeparator();//添加分隔线menu1.add(editItem2);menu1.addSeparator();//添加分隔线menu1.add(editItem3);menu2.add(seeItem1);menu2.addSeparator();//添加分隔线menu2.add(seeItem2);menu2.addSeparator();//添加分隔线menu2.add(seeItem3);menu3.add(help1);menu3.addSeparator();//添加分隔线menu3.add(help2);//添加菜单到菜单条myBar.add(menu1);myBar.add(menu2);myBar.add(menu3);this.setJMenuBar(myBar);numActionListener = new Num();tfResult = new JTextField();tfResult.setEditable(false);//文本域不可编辑tfResult.setBackground(Color.white);//文本域tfResult.setHorizontalAlignment(JTextField.RIGHT); tfResult.setText("0");tfResult.setBorder(BorderFactory.createLoweredBevelBorder()); init();}private void init(){addButton(panel1, "CE", new Clear(), Color.red);addButton(panel2, "7", numActionListener, Color.blue); addButton(panel2, "8", numActionListener, Color.blue); addButton(panel2, "9", numActionListener, Color.blue); addButton(panel2, "/", new Signs(), Color.red);addButton(panel2, "sqrt", new Signs(), Color.blue);addButton(panel2, "4", numActionListener, Color.blue); addButton(panel2, "5", numActionListener, Color.blue);addButton(panel2, "6", numActionListener, Color.blue); addButton(panel2, "*", new Signs(), Color.red);addButton(panel2, "%", new Signs(), Color.blue); addButton(panel2, "1", numActionListener, Color.blue); addButton(panel2, "2", numActionListener, Color.blue); addButton(panel2, "3", numActionListener, Color.blue); addButton(panel2, "-", new Signs(), Color.red);addButton(panel2, "1/x", new Signs(), Color.blue); addButton(panel2, "0", numActionListener, Color.blue); addButton(panel2, "-/+", new Clear(), Color.blue); addButton(panel2, ".", new Dot(), Color.blue);addButton(panel2, "+", new Signs(), Color.red);addButton(panel2, "=", new Signs(), Color.red);JButton btns = new JButton("calucator");btns.setBorder(BorderFactory.createLoweredBevelBorder()); btns.setEnabled(false);btns.setPreferredSize(new Dimension(20, 20));//添加面板3panel3.add(btns);addButton(panel3, "sin", new Signs(), Color.red); addButton(panel3, "cos", new Signs(), Color.red); addButton(panel3, "tan", new Signs(), Color.red); addButton(panel3, "π", new Signs(), Color.red);panel4.add(panel1, BorderLayout.NORTH);panel4.add(panel2, BorderLayout.CENTER);this.add(tfResult, BorderLayout.NORTH);this.add(panel3, BorderLayout.WEST);this.add(panel4);pack();this.setResizable(false);this.setLocation(300, 200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }//加入按钮并注册监听者private void addButton(JPanel panel, String name, ActionListener action, Color color){JButton bt = new JButton(name);panel.add(bt);bt.setForeground(color);bt.addActionListener(action);}//主方法public static void main(String[] args) {new Calucator().setVisible(true);}//获取结果显示在文本域private void getResult (double x){System.out.println("result"+result+" "+"x"+x);if(oper == "+"){result += x;}else if(oper == "-"){result -= x;}else if(oper == "*"){result *= x;}else if(oper == "/"){result /= x;}else if(oper == "="){result = x;}System.out.println("result"+result+" "+"x"+x);tfResult.setText(df.format(result));System.out.println(df.format(result));}//定义各种符号的类及相应触发后的处理代码class Signs implements ActionListener{public void actionPerformed(ActionEvent e) {String str = e.getActionCommand();if(str.equals("sqrt")){double i = Double.parseDouble(tfResult.getText());if(i>0){tfResult.setText(String.valueOf(df.format(Math.sqrt(i))));}else{tfResult.setText("负数不能开平方根");}}else if(str.equals("%")){tfResult.setText(df.format(Double.parseDouble(tfResult.getText()) / 100));//计算%}else if(str.equals("1/x")){if(Double.parseDouble(tfResult.getText()) == 0){tfResult.setText("除数不能为零");}else{tfResult.setText(df.format(1 / Double.parseDouble(tfResult.getText())));//计算1/x}}else{if(falg){IfResult = false;}if(IfResult){oper = str;System.out.println(oper);}else{getResult(Double.parseDouble(tfResult.getText()));oper = str;IfResult = true;}if(str.equals("π")){tfResult.setText(""+Math.PI);/*isNew=true;*/}//定义三角函数运算if(str.equals("sin")){//sin函数String showstr=tfResult.getText();if(showstr.equals(""))return;double ishow=0;try{ishow=Double.parseDouble(showstr);}catch(NumberFormatException ee){System.out.println("输入数据不合法!");tfResult.setText("输入数据不合法,请重新输入");isNew=true;return;}double rd=Math.sin(ishow*Math.PI/180); //转换为弧度进行计算int ri=(int)rd;if(ri==rd)tfResult.setText(""+ri);elsetfResult.setText(""+rd);isNew=true;}//cos函数else if(str.equals("cos")){String showstr=tfResult.getText();if(showstr.equals(""))return;double ishow=0;try{ishow=Double.parseDouble(showstr);}catch(NumberFormatException ee){System.out.println("输入数据不合法!");tfResult.setText("输入数据不合法,请重新输入");isNew=true;return;}double rd=Math.cos(ishow*Math.PI/180);int ri=(int)rd;if(ri==rd)tfResult.setText(""+ri);elsetfResult.setText(""+rd);isNew=true;}//tan函数else if(str.equals("tan")){String showstr=tfResult.getText();if(showstr.equals(""))return;double ishow=0;try{ishow=Double.parseDouble(showstr);}catch(NumberFormatException ee){System.out.println("输入数据不合法!");tfResult.setText("输入数据不合法,请重新输入");isNew=true;return;}double rd=Math.tan(ishow*Math.PI/180);int ri=(int)rd;if(ri==rd)tfResult.setText(""+ri);elsetfResult.setText(""+rd);isNew=true;}}}}//定义清零类class Clear implements ActionListener{public void actionPerformed(ActionEvent e) {String str = e.getActionCommand();if(str == "CE"){tfResult.setText("0");IfResult = true;result = 0;}else if(str == "-/+"){double i = 0 - Double.parseDouble(tfResult.getText().trim());tfResult.setText(df.format(i));}}}}//实现数字按钮功能class Num implements ActionListener{public void actionPerformed(ActionEvent e) {String srt = e.getActionCommand();if(IfResult){tfResult.setText("");IfResult = false;}//trim()是去除字符串开头和末尾的空格或其他字符tfResult.setText(tfResult.getText().trim() + srt); if(tfResult.getText().equals("0")){tfResult.setText("0");IfResult = true;falg = true;}}}//实现数据加上小数点class Dot implements ActionListener{public void actionPerformed(ActionEvent e) {IfResult = false;if(tfResult.getText().trim().indexOf(".") == -1){tfResult.setText(tfResult.getText() + ".");}}}}第5章调试与测试调试的方式主要是输入特定的数据然后触发相应的事件,运行计算器查看运行后的结果若是合理的就说明是正确的,主要测试四则运算,三角函数的运算,以及开根号的运算。

相关文档
最新文档