(完整版)Java课程设计报告27652265

合集下载

JAVA语言课程设计报告

JAVA语言课程设计报告

JAVA语言课程设计报告目录1. 课程设计介绍 (2)1.1 课程设计的目的和意义 (2)1.2 实验环境介绍 (3)2. 课程设计项目概述 (4)2.1 项目背景及设立的目的 (5)2.2 用户需求分析 (6)2.3 功能模块划分 (7)3. Java语言基础知识回顾 (7)3.1 Java程序的基础概述 (8)3.2 Java开发环境搭建 (9)3.3 基本语法及常用数据类型 (10)3.4 类与对象的基本知识 (11)3.5 常用API介绍 (11)4. 项目开发过程 (11)4.1 设计方案 (13)4.2 项目需求分析 (14)5. 课程设计关键技术应用 (15)5.1 错误处理机制 (16)5.2 数据库应用 (17)6. 类库及设计模式的应用 (17)6.1 Java类库的基础知识 (19)6.2 设计模式的功能与应用 (20)7. 课程设计总结与展望 (21)7.1 课程设计总结 (22)7.2 缺陷分析与解决方案 (23)7.3 课程设计展望 (23)1. 课程设计介绍本课程设计旨在通过实际项目实践,让学生深入理解和掌握语言的核心编程技能和设计思想。

本次设计选择了一个具有实际应用背景的项目作为案例,即“简易在线考试系统”。

该系统旨在模拟现实中的在线考试流程,实现考生在线答题、自动评分、成绩查询等功能。

本次课程设计以语言为基础,结合框架、数据库等技术,引导学生从需求分析、系统设计、编码实现到系统测试的完整软件开发流程。

通过本课程设计,学生能够:在本次课程设计中,学生将独立完成系统需求分析、系统设计、编码实现、测试与优化等环节,最终提交一个功能完善、性能稳定的在线考试系统。

通过这一过程,学生不仅能够巩固和提升自身的编程能力,还能培养解决实际问题的能力和创新思维。

1.1 课程设计的目的和意义课程设计目的在于深入理解语言的核心概念与实际应用,通过具体的项目实施巩固和应用课堂上所学的知识点。

java课程设计报告

java课程设计报告

计算机与信息工程系《Java课程设计》报告专业班级学号姓名报告完成日期指导教师网络聊天室一、设计任务与目标现在社会是信息化的社会,什么都追求着快、新、好。

在这种快节奏的生活方式中,人们之间的通讯联系就显得非常的重要了。

商业之间的合作,人们之间的友谊交往,甚至热门谈到的网上恋爱等等都需要通讯联系。

而过去的鸿雁传书已经是满足不了现代人的欲望了。

既然这网络这么的流行,过去的联系方式又这么的落后,因此人们的目光就转向了网络通讯。

聊天工具就是一种网上很普遍但是又很重要的通讯方式。

本聊天软件旨在为同一局域网用户间提供便利的局域网服务,局域网用户可以通过此聊天软件在各终端相互发送聊天信息,同时可以快速传送文件,方便局域网用户间的快速有效通信。

二、.设计思路整体方案的制定聊天工具的系统运行图基本设计思想:采用客户机/服务器(C/S)结构。

即通信双方一方作为服务器等待客户提出请求并予以响应。

客户则在需要服务时向服务器提出申请。

服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。

客户端的设计用户之间通过UDP连接来实现用户间的通讯.每个用户在该聊天工具进入主界面时便创建一个线程,无限监听其他好友发来的消息,如果某个好友发来消息,便接受该消息并弹出聊天界面和显示其发来的消息.聊天消息的接受的部分的核心程序流程如下图所示:图聊天消息的接受的部分的核心程序流程聊天消息的发送的部分的核心程序流程如下图所示:图聊天消息的发送的部分的核心程序流程服务器端的设计服务器与客户间通过套接口Socket(TCP)连接。

在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。

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.1 设计题目高级计算器模拟程序功能要求:该程序显示GUI用户接口,能实现整数的加、减、乘、除、乘方、立方、n次放、开平方、开n次方、倒数、三角函数、反三角函数运算。

界面基本要求:用图形接口实现。

1.2 设计目的1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;3、培养学生在项目开发中团队合作精神、创新意识及能力。

二、需求分析(1)输入一个数。

(2)对它进行运算(3)得出运算结果三.概要设计:3.1程序流程图:3.2功能模块加法运算用“+”按钮进行运算减法运算用“-”按钮进行运算乘法运算用“*”按钮进行运算除法运算用“/”按钮进行运算清零键用“清空”按钮实现四、详细设计4.1 关键算法与技术实现数字的加算法:if(toknizer=="+") //"+" 算法{ if(j==0){wen=0;}b[j]=Double.parseDouble(s);wen=wen+b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben); }数字的减运算:if(toknizer=="-") //"-"算法{b[j]=Double.parseDouble(s);if(j==0){wen=2*b[j];}wen=wen-b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}4.2主要代码:import javax.swing.*;import javax.swing.text.JTextComponent;import java.util.StringTokenizer;import java.awt.*;import java.awt.event.*;import java.math.*;public class Calculator1 implements ActionListener{ //初始化界面按纽JFrame jf=new JFrame("计算器");JTextField tf=new JTextField();JPanel pnl;JButton jButtonDENG; //等JButton jButtonJIAN; //减JButton jButtonCHENG; //乘JButton jButtonCHU; //除JButton jButton1, jButton2, jButton3, jButton4 ,jButton5, jButton6, jButton7, jButton8, jButton9, jButton0;JButton jButtonQINGKONG; //清空JButton jButtonJIA; //加JButton jButtonQUYU; // 取余JButton jButtonPINGFANG; //平方JButton jButtonXIAOSHUDIAN; //小数点JButton jButtonBACKSPACE; //后退JButton jButtonDAOSHU; //倒数JButton jButtonKAIPINGFANG; //开平方JButton jButtonERJINZHI; //二进制JButton jButtonSHIJINZHI; //十进制public Calculator1 () //初始化接口的方法{Container c=jf.getContentPane();tf.setHorizontalAlignment(JTextField.RIGHT);c.add(tf,"North");JPanel pnl=new JPanel();c.add(pnl,"Center");pnl.setLayout(new GridLayout(6,5));jButton1=new JButton("1");jButton1.addActionListener(this);pnl.add(jButton1);jButton2=new JButton("2");jButton2.addActionListener(this);pnl.add(jButton2);jButton3=new JButton("3");jButton3.addActionListener(this);pnl.add(jButton3);jButtonBACKSPACE=new JButton("backspace"); jButtonBACKSPACE.addActionListener(this); pnl.add(jButtonBACKSPACE);jButton4=new JButton("4");jButton4.addActionListener(this);pnl.add(jButton4);jButton5=new JButton("5");jButton5.addActionListener(this);pnl.add(jButton5);jButton6=new JButton("6");jButton6.addActionListener(this);pnl.add(jButton6);jButtonJIA=new JButton("+"); jButtonJIA.addActionListener(this);pnl.add(jButtonJIA);jButton7=new JButton("7");jButton7.addActionListener(this);pnl.add(jButton7);jButton8=new JButton("8");jButton8.addActionListener(this);pnl.add(jButton8);jButton9=new JButton("9");jButton9.addActionListener(this);pnl.add(jButton9);jButtonJIAN=new JButton("-"); jButtonJIAN.addActionListener(this);pnl.add(jButtonJIAN);jButton0=new JButton("0");jButton0.addActionListener(this);pnl.add(jButton0);jButtonQINGKONG=new JButton("清空"); jButtonQINGKONG.addActionListener(this); pnl.add(jButtonQINGKONG);jButtonCHENG=new JButton("*"); jButtonCHENG.addActionListener(this); pnl.add(jButtonCHENG);jButtonCHU=new JButton("/"); jButtonCHU.addActionListener(this);pnl.add(jButtonCHU);jButtonQUYU=new JButton("%"); jButtonQUYU.addActionListener(this); pnl.add(jButtonQUYU);jButtonPINGFANG=new JButton("平方"); jButtonPINGFANG.addActionListener(this); pnl.add(jButtonPINGFANG);jButtonXIAOSHUDIAN=new JButton("."); jButtonXIAOSHUDIAN.addActionListener(this);pnl.add(jButtonXIAOSHUDIAN);jButtonDENG=new JButton("=");jButtonDENG.addActionListener(this);pnl.add(jButtonDENG);jButtonDAOSHU=new JButton("倒数");jButtonDAOSHU.addActionListener(this);pnl.add(jButtonDAOSHU);jButtonKAIPINGFANG=new JButton("开平方"); jButtonKAIPINGFANG.addActionListener(this);pnl.add(jButtonKAIPINGFANG);jButtonERJINZHI=new JButton("二进制");jButtonERJINZHI.addActionListener(this);pnl.add(jButtonERJINZHI);jButtonSHIJINZHI=new JButton("十进制"); jButtonSHIJINZHI.addActionListener(this);pnl.add(jButtonSHIJINZHI);jf.setSize(400,300);jf.setVisible(true); }public void actionPerformed(ActionEvent event) //检测运算符的方法{ try {double wen=0;String toknizer="+";String ben;String wenben=tf.getText()+event.getActionCommand();tf.setText(wenben); //各运算符的判断运行代码if(wenben.indexOf("*")!=-1) {toknizer="*"; }if(wenben.indexOf("+")!=-1) {toknizer="+"; }if(wenben.indexOf("-")!=-1) {toknizer="-"; }if(wenben.indexOf("/")!=-1) {toknizer="/"; }if(wenben.indexOf("%")!=-1) {toknizer="%"; }if(wenben.indexOf("平方")!=-1) {toknizer="平方"; }if(wenben.indexOf("倒数")!=-1) {toknizer="倒数"; }if(wenben.indexOf("开平方")!=-1) {toknizer="开平方"; }if(wenben.indexOf("二进制")!=-1) {toknizer="二进制"; }if(wenben.indexOf("十进制")!=-1) {toknizer="十进制"; }//各个运算符的运算方法代码if(event.getSource()==jButtonQINGKONG) //清空算法{ wenben="";tf.setText(wenben); }if(event.getSource()==jButtonBACKSPACE) //清除算法{wenben=wenben.substring(0,wenben.length()-10);tf.setText(wenben); }if(event.getSource()==jButtonDENG) //"="算法{wenben=wenben.substring(0,wenben.length()-1);double b[]=new double[8];String a[]=new String[12];StringTokenizer sun=new StringTokenizer(wenben,toknizer); int i=0;while(sun.hasMoreTokens()) {a[i++]=sun.nextToken(); }for(int j=0;j<10;j++){String s=a[j];String k=a[j+1];if(s==null){ break; }else{if(toknizer=="*") //"*"算法{if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="+") //"+" 算法{if(j==0){wen=0;}b[j]=Double.parseDouble(s);wen=wen+b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="-") //"-"算法{b[j]=Double.parseDouble(s);if(j==0){wen=2*b[j];}wen=wen-b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="/") // "/"算法{b[j]=Double.parseDouble(s);if(j==0){wen=b[j]*b[j];}wen=wen/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="平方") //平方算法{ if(j==0){wen=1;}b[j]=Double.parseDouble(s);wen=wen*b[j]*b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben); }if(toknizer=="倒数") //倒数算法{b[j]=Double.parseDouble(s);wen=1/b[j];ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if(toknizer=="开平方") //开平方算法{ if(j==0){wen=0;}b[j]=Double.parseDouble(s);double wen1=sqrt(b[j]);ben=Double.toString(wen1);tf.setText(wenben+"="+ben); }JTextComponent textAnswer = null;if (toknizer=="十进制") { //二进制转为十进制代码//b[j]=Integer.parseInt(s);wen =Integer.parseInt(s,2);ben=Double.toString(wen);tf.setText(wenben+"="+ben);}if (toknizer=="二进制") { //十进制转换为二进制代码int den =Integer.parseInt(s);String daen = Integer.toBinaryString(den);tf.setText(wenben+"="+daen); }if(toknizer=="%") //"%"算法{ if(j==0){b[j]=Double.parseDouble(s);b[j+1]=Double.parseDouble(k);if(b[j]<b[j+1]){ wen=b[j]; }if(b[j]==b[j+1]){ wen=0; }if(b[j]>b[j+1]){ wen=b[j]%b[j+1]; } }if(j>1){ b[j]=Double.parseDouble(a[j]);wen=wen%b[j];}ben=Double.toString(wen);tf.setText(wenben+"="+ben); } }}}}catch(Exception e){ e.getMessage(); } }private int sqrt(double d) {// TODO Auto-generated method stubreturn 0;}//主函数public static void main(String[]args){new Calculator1(); //对小程序进行初始化}}五.调试分析(1)加法运算:55+99(2)减法运算:88-55(3)乘法运算:55*88(4)除法运算:88%55(5)25的平方六.课程总结通过这学期的JAVA学习,我对JAVA编程有了一定的理解,在做这个课程设计的时候,真的是没有没任何想法,不知道从哪里做起,很茫然。

java课程设计报告-8页文档资料

java课程设计报告-8页文档资料

面向对象程序设计(Java)课程设计报告题目:真心话大冒险游戏专业:计算机网络技术班级: _ _学号: ____ _姓名: _任课教师: _时间: 2019年 1 月3 日1.概述:课程设计的目的和系统功能概述课程设计目的:利用本次课程设计的机会,让我复习本学期所学的知识,并通过不断修改和尝试,完成程序的设计。

系统功能概述:真心话大冒险小游戏一开始的界面二.详细设计方案,完整代码如下:import java.io.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Truthordare extends JFrame implements ActionListener,ItemListener{ JMenuItem jdakaitiku,jshezhirenshu,jshezhiziti,jtuichuyouxi,jyouxiguize,jzhizuorenyuan;JMenuBar mbar;static JLabel jlabel,jlabel2;static JRadioButton jrb0,jrb3,jrb4;JCheckBox jcb1,jcb2;ImageIcon image;static int i=16,r=4;public Truthordare(){super("菜单窗口");//调用父类构造器,设置标题栏文章this.setLayout(null);image =new ImageIcon("jiuping.gif");JMenu jcaidanshezhi=new JMenu("设置");//创建菜单项jdakaitiku=new JMenuItem("打开题库");//创建子菜单jshezhirenshu=new JMenuItem("设置人数");//创建子菜单jshezhiziti=new JMenuItem("设置字体");//创建子菜单jtuichuyouxi=new JMenuItem("退出游戏");//创建子菜单JMenu jcaidanxinxi=new JMenu("信息");//创建菜单项jyouxiguize=new JMenuItem("游戏规则");//创建子菜单jzhizuorenyuan=new JMenuItem("制作人员"); //创建子菜单jrb0 = new JRadioButton("开始游戏");jrb3 = new JRadioButton("红色");jrb4 = new JRadioButton("黄色");jcb1 = new JCheckBox("加粗");jcb2 = new JCheckBox("斜体");jlabel2 = new JLabel(image);//图片jlabel = new JLabel("真心话大冒险");//设置标签文本的字体jlabel.setFont(new Font("楷体",Font.PLAIN,36));jrb0.addActionListener(this);//开始游戏jrb3.addActionListener(this);//红色jrb4.addActionListener(this);//黄色jcb1.addItemListener(this);//加粗jcb2.addItemListener(this);//斜体jyouxiguize.addActionListener(this);//为子菜单添加监听器jzhizuorenyuan.addActionListener(this);//为子菜单添加监听器jdakaitiku.addActionListener(this);//为子菜单添加监听器jshezhirenshu.addActionListener(this);//为子菜单添加监听器jshezhiziti.addActionListener(this);//为子菜单添加监听器jcaidanshezhi.add(jdakaitiku);//第一个菜单,将子菜单添加到菜单项中jcaidanshezhi.add(jshezhirenshu);//第一个菜单,将子菜单添加到菜单项中jcaidanshezhi.add(jshezhiziti);//第一个菜单,将子菜单添加到菜单项中jcaidanshezhi.add(jtuichuyouxi);//第一个菜单,将子菜单添加到菜单项中jcaidanxinxi.add(jyouxiguize);//第二个菜单,的子菜单jcaidanxinxi.add(jzhizuorenyuan);//第二个菜单,的子菜单jcaidanshezhi.insertSeparator(1);//给菜单添加分隔符jcaidanshezhi.insertSeparator(3);//给菜单添加分隔符jcaidanshezhi.insertSeparator(5);//给菜单添加分隔符jcaidanxinxi.insertSeparator(1);//给菜单添加分隔符ButtonGroup bg = new ButtonGroup();bg.add(jrb0);this.getContentPane().add(jrb0);this.getContentPane().add(jrb3);this.getContentPane().add(jrb4);this.getContentPane().add(jcb1);this.getContentPane().add(jcb2);this.getContentPane().add(jlabel);this.getContentPane().add(jlabel2);this.getContentPane().setLayout(null);jlabel.setBounds(100,100,300,80);jrb0.setBounds(170,160,100,20);JMenuBar mbar=new JMenuBar();//创建菜单栏mbar.add(jcaidanshezhi);//菜单项添加到菜单栏中mbar.add(jcaidanxinxi);mbar=new JMenuBar();mbar.add(jcaidanshezhi);mbar.add(jcaidanxinxi);setJMenuBar(mbar);//设置菜单栏对显示在窗口中jlabel2.setBounds(70,50,300,300);setSize(450,450);setVisible(true);jtuichuyouxi.addActionListener (new ActionListener () { //退出游戏的public void actionPerformed(ActionEvent e) {System.exit (0); } } ); public void itemStateChanged(ItemEvent e){if(jcb1.isSelected()){jlabel.setFont(new Font("宋体",Font.BOLD,20));if(jcb2.isSelected()){jlabel.setFont(new Font("黑体",Font.ITALIC,40));if(jcb2.isSelected()&&jcb1.isSelected()){jlabel.setFont(new Font("黑体",Font.ITALIC|Font.BOLD,33));if(!jcb2.isSelected()&&!jcb1.isSelected()){jlabel.setFont(new Font("黑体",Font.PLAIN,20));public void actionPerformed(ActionEvent e){//貌似是子菜单的方法if(e.getSource()==jrb0){//如果点击新建菜单kaishiyouxi g=new kaishiyouxi();if(e.getSource()==jdakaitiku){//如果点击新建菜单JOptionPane.showMessageDialog(this,"真心话!!!\n和男/女朋友进行到哪一步了\n最喜欢在座哪位异性内衣/裤颜色\n初吻年龄\n自己最丢人的事\n最后一次发自内心的笑是什么时候?\n愿意为爱情牺牲到什么程度\n朋友和男/女朋友那个重要\n身上哪个部位最敏感\n如果有来生,你选择当?\n你会选择Having sex before marriage吗?\n如果让你选择做一个电影中的角色,你会选谁呢\n如果有一天我和你吵架,你会怎么办?\n哭得最伤心的是哪一次为什么?\n如果跟你喜欢的人约会,碰到前任的男(女)朋友,会有什么表现?\n如果有一天我对你说我爱上你了,你怎么办\n大冒险!!!\n背一位异性绕场一周\n唱青藏高原最后一句\n做一个大家都满意的鬼脸\n抱一位异性直到下一轮真心话大冒险结束\n像一位异性表白3分钟\n与一位异性十指相扣,对视10秒\n邀请一位异性与你情歌对唱\n做自己最性感、最妩媚的表情或动作\n吃下每个人为你夹得菜\n跳草裙舞\n 蹲在凳子上作便秘状\n亲某某\n神情的吻墙10秒\n模仿古代特殊职业女子拉客\n模仿脑白金广告,边唱边跳\n让他到街上大喊:我的病有救了");}//二级窗口显示信息if(e.getSource()==jshezhirenshu){//如果点击新建菜单shezhirenshu w=new shezhirenshu();if(e.getSource()==jshezhiziti){//如果点击新建菜单shezhiziti t=new shezhiziti();// this.setVisible(false); //是否关闭二级窗口if(e.getSource()==jyouxiguize){//如果点击新建菜单JOptionPane.showMessageDialog(this,"真心话大冒险游戏规则\n选定方启动游戏,当转盘指向第二人为被动方\n由选定的一方选择真心话或者大冒险\n选择真心话,则由胜方随意问输者问题,输者必须全部如实回答;\n选择大冒险,则胜方随意出任何行为问题由输方尝试完成");}//二级窗口显示信息if(e.getSource()==jzhizuorenyuan){//如果点击新建菜单JOptionPane.showMessageDialog(this,"truth or dare1.0\n制作人员:xxxxx\n 在此特别感谢给予我支持的朋友");}//二级窗口显示信息class shezhirenshu extends JFrame implements ActionListener {//设置人数的界面JRadioButton jrb6,jrb7,jrb8,jrb9;public shezhirenshu(){super("复选框事件处理");jrb6 = new JRadioButton("2位玩家");jrb7 = new JRadioButton("4位玩家");jrb8 = new JRadioButton("6位玩家");jrb9 = new JRadioButton("8位玩家");//注册监听器jrb6.addActionListener(this);jrb7.addActionListener(this);jrb8.addActionListener(this);jrb9.addActionListener(this);ButtonGroup bg = new ButtonGroup();bg.add(jrb6);bg.add(jrb7);bg.add(jrb8);bg.add(jrb9);this.getContentPane().add(jrb6);this.getContentPane().add(jrb7);this.getContentPane().add(jrb8);this.getContentPane().add(jrb9);this.getContentPane().setLayout(null);jrb6.setBounds(40,40,100,20);jrb7.setBounds(150,40,100,20);jrb8.setBounds(40,80,100,20);jrb9.setBounds(150,80,100,20);this.setSize(350,200);this.setVisible(true);public void actionPerformed(ActionEvent e){if(e.getSource()==jrb6)Truthordare.r=2;JOptionPane.showMessageDialog(this,"当前玩家人数为2人");if(e.getSource()==jrb7)Truthordare.r=4;JOptionPane.showMessageDialog(this,"当前玩家人数为4人");if(e.getSource()==jrb8)Truthordare.r=6;JOptionPane.showMessageDialog(this,"当前玩家人数为6人");if(e.getSource()==jrb9)Truthordare.r=8;JOptionPane.showMessageDialog(this,"当前玩家人数为8人");class shezhiziti extends JFrame implements ActionListener,ItemListener {//设置字体二级窗口的界面JRadioButton jrb3,jrb4;JCheckBox jcb1,jcb2;public shezhiziti(){super("复选框事件处理");jrb3 = new JRadioButton("红色");jrb4 = new JRadioButton("黄色");jcb1 = new JCheckBox("加粗");jcb2 = new JCheckBox("斜体");//注册监听器jrb3.addActionListener(this);jrb4.addActionListener(this);jcb1.addItemListener(this);jcb2.addItemListener(this);ButtonGroup bg = new ButtonGroup();bg.add(jrb3);bg.add(jrb4);this.getContentPane().add(jrb3);this.getContentPane().add(jrb4);this.getContentPane().add(jcb1);this.getContentPane().add(jcb2);this.getContentPane().setLayout(null);jrb3.setBounds(40,80,100,20);jrb4.setBounds(150,80,100,20);jcb1.setBounds(40,120,100,20);jcb2.setBounds(150,120,100,20);this.setSize(350,200);this.setVisible(true);public void actionPerformed(ActionEvent e){if(e.getSource()==jrb3)Truthordare.jlabel.setForeground(Color.red);Truthordare.jrb0.setForeground(Color.red);if(e.getSource()==jrb4)Truthordare.jlabel.setForeground(Color.yellow);Truthordare.jrb0.setForeground(Color.yellow);public void itemStateChanged(ItemEvent e){if(jcb1.isSelected()){Truthordare.jlabel.setFont(new Font("宋体",Font.BOLD,20));if(jcb2.isSelected()){Truthordare.jlabel.setFont(new Font("黑体",Font.ITALIC,40));if(jcb2.isSelected()&&jcb1.isSelected()){Truthordare.jlabel.setFont(new Font("黑体",Font.ITALIC|Font.BOLD,33));if(!jcb2.isSelected()&&!jcb1.isSelected()){Truthordare.jlabel.setFont(new Font("黑体",Font.PLAIN,20));class kaishiyouxi extends JFrame implements ActionListener{JRadioButton jrb1,jrb2;JLabel jlabel3;int s=(int)(Math.random()*Truthordare.r);public kaishiyouxi(){super("复选框事件处理");jrb1 = new JRadioButton("真心话");jrb2 = new JRadioButton("大冒险");jlabel3 = new JLabel("请"+s+"号玩家选择");//注册监听器jrb1.addActionListener(this);//真心话jrb2.addActionListener(this);//大冒险jlabel3.setFont(new Font("楷体",Font.PLAIN,36));ButtonGroup bg = new ButtonGroup();bg.add(jrb1);bg.add(jrb1);this.getContentPane().add(jlabel3);this.getContentPane().add(jrb1);this.getContentPane().add(jrb2);this.getContentPane().setLayout(null);jrb1.setBounds(60,60,80,20);jrb2.setBounds(150,60,80,20);jlabel3.setBounds(40,100,300,80);this.setSize(350,350);this.setVisible(true);public void actionPerformed(ActionEvent e){//貌似是子菜单的方法if(e.getSource()==jrb1){//如果点击新建菜单int tureNum=(int)(Math.random()*Truthordare.i);// System.out.println(tureNum+"是正确数字");String truth[]={"和男/女朋友进行到哪一步了","最喜欢在座哪位异性","内衣/裤颜色","初吻年龄","自己最丢人的事","最后一次发自内心的笑是什么时候?","愿意为爱情牺牲到什么程度","朋友和男/女朋友那个重要","身上哪个部位最敏感","如果有来生,你选择当?","你会选择Having sex before marriage吗?","如果让你选择做一个电影中的角色,你会选谁呢","如果有一天我和你吵架,你会怎么办?","哭得最伤心的是哪一次为什么?","如果跟你喜欢的人约会,碰到前任的男(女)朋友,会有什么表现?","如果有一天我对你说我爱上你了,你怎么办"};JOptionPane.showMessageDialog(this,"真心话:"+truth[tureNum]);if(e.getSource()==jrb2){//如果点击新建菜单int tureNum=(int)(Math.random()*Truthordare.i);// System.out.println(tureNum+"是正确数字");String dare[]={"背一位异性绕场一周","唱青藏高原最后一句","做一个大家都满意的鬼脸","抱一位异性直到下一轮真心话大冒险结束","像一位异性表白3分钟","与一位异性十指相扣,对视10秒","邀请一位异性为你唱情歌,或邀请一位异性与你情歌对唱","做自己最性感、最妩媚的表情或动作","吃下每个人为你夹得菜","跳草裙舞、脱衣舞","蹲在凳子上作便秘状","亲某某","神情的吻墙10秒","模仿古代特殊职业女子拉客","模仿脑白金广告,边唱边跳","让他到街上大喊:我的病有救了"};JOptionPane.showMessageDialog(this,"大冒险:"+dare[tureNum]);class Test{public static void main(String arg[]){Truthordare f=new Truthordare();//完全自己做的好有成就感啊!!三.设计思路:功能的实现:随机数的实现。

Java程序设计课程设计报告

Java程序设计课程设计报告

课程设计报告( Java程序设计)设计题目信号灯年级专业2010 级计科一班学生姓名XXX指导老师谭军2012 年 1月一、课程设计的目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

二、课程设计内容:陈述说明程序设计的任务,强调的是程序做什么?明确规定:输入的形式与输入值的范围输出的形式程序所能达到的功能三、概要设计你的设计思路说明本程序中用到的所有数据的定义、程序的流程图以及各程序模块之间的层次(调用)关系。

四、详细设计列出关键代码的设计与分析,关键代码后必须有中文注释。

五、用户使用说明说明如何使用你编写的程序,详细列出每一步的操作步骤。

六、测试结果列出你的测试结果,包括输入和输出。

这里的测试数据应该完整和严格,最好多于需求分析中所列。

注意事项:课程设计成绩评定依据以下方面:1题目的难度系数2程序完成,调试顺利通过,可正常进行,能达到设计功能要求。

3写出《汇编语言程序设计》课程设计说明书。

课程设计说明书要求采用统一稿纸,可手写,有条件亦可上机打印,认真、清晰、不得潦草。

说明书应包括以下内容和项目:1)封面;2)课程设计的题目,本设计所实现的功能简述。

3)主要的设计思想简述。

4)主要程序的框图。

5)源程序代码(要求在关键的位置注释,从而增加程序的可读性)。

6)总结报告,主要包括以下内容:a.课程设计中所遇到的主要问题和解决方法。

b.创新和得意之处。

c.课程设计中存在的不足,需要进一步改进的设想。

d.课程设计的感想和心得体会。

7)参考文献4面试成绩课程设计最后一天安排面试。

检查源程序以及查看运行情况,对关键代码进行询问、考察。

5 学生完成课程设计的实际情况,包括是否独立完成(特别要求),认真态度、考勤 , 遵守纪律等方面。

6 本课程设计按优秀 , 良好 , 中等 , 及格和不及格五级评定成绩.进度安排依照教学计划,课程设计时间为 1 周。

java 课程设计实验报告

java 课程设计实验报告

java 课程设计实验报告Java课程设计实验报告一、引言在本次Java课程设计实验中,我们小组选择了一个有趣的主题,即开发一个学生成绩管理系统。

通过这个实验,我们旨在提高对Java编程语言的理解和应用,同时锻炼团队合作和问题解决能力。

二、需求分析学生成绩管理系统是为了方便学校管理学生成绩而开发的软件。

根据需求分析,我们确定了以下功能:1. 学生信息管理:包括学生的基本信息(学号、姓名、性别、年龄等)和学生成绩(语文、数学、英语等科目)的录入、修改和查询功能。

2. 成绩统计分析:根据学生的成绩数据,进行各种统计分析,如平均分、最高分、最低分等。

3. 成绩排名:根据学生的总成绩进行排名,并显示排名结果。

4. 成绩报表生成:根据学生的成绩数据,生成成绩报表,方便打印和保存。

三、系统设计与实现1. 数据结构设计:我们使用面向对象的思想,设计了学生类和成绩类,学生类包含学生的基本信息,成绩类包含学生的各科成绩。

通过类的封装和继承,实现了数据的组织和管理。

2. 用户界面设计:我们采用图形用户界面(GUI)设计,使用Swing库实现了一个直观、友好的界面。

通过按钮、文本框、表格等组件,实现了用户与系统的交互。

3. 数据库设计:为了持久化数据,我们使用了MySQL数据库。

通过Java的JDBC技术,实现了与数据库的连接和操作。

四、实验结果与分析经过一段时间的开发和测试,我们成功地完成了学生成绩管理系统的开发。

系统具有良好的用户界面和功能完善的业务逻辑。

通过对实验结果的分析,我们得出以下结论:1. 系统运行稳定:经过长时间的测试,系统没有出现崩溃或卡顿的情况,具有较高的稳定性。

2. 功能完善:系统实现了所有的需求功能,并且用户界面友好、操作简单,方便用户使用。

3. 数据一致性:通过数据库的设计和操作,系统保证了数据的一致性和完整性,避免了数据冗余和错误。

五、总结与展望通过本次Java课程设计实验,我们对Java编程语言有了更深入的理解,并学会了如何运用Java开发一个实用的软件。

java课程设计报告

java课程设计报告

java课程设计报告1. 引言Java作为一种全球广泛使用的编程语言,具有跨平台、可靠性强、安全性高等优点,因而备受程序员和开发者的青睐。

本篇报告旨在对我所参与的Java课程设计进行总结和评估,分享学习过程中的经验和收获,以及对未来的展望。

2. 项目背景本次课程设计项目是一个在线购物平台的开发,团队共有3名成员,我们合作进行了2个月的开发工作。

通过这个项目,我学到了许多Java编程的实践经验,不仅提高了编程技能,也增进了团队合作和沟通能力。

3. 设计过程在设计初期,我们进行了需求分析和系统设计。

我们通过与用户进行会议和讨论,了解了用户的需求和期望。

然后,我们进行了功能拆解和流程设计,使用UML建模工具绘制了用例图和类图,明确了系统的整体结构。

4. 技术选型在技术选型上,我们选择了Spring框架作为项目的基础框架,使用了Spring Boot来简化开发流程。

为了实现用户认证和授权功能,我们使用了Spring Security。

此外,为了提高系统性能和扩展性,我们采用了Spring Cloud微服务架构,使用了Eureka作为注册中心、Ribbon作为负载均衡器。

5. 开发实践在开发过程中,我们遵循了面向对象的编程思想,并且使用了版本控制工具Git,实现了团队的协同开发。

我们按照模块划分任务,每个成员负责一个或多个模块的开发。

通过定期的代码审查和团队会议,我们保持了代码的质量和一致性。

6. 问题与挑战在项目开发中,我们也遇到了一些问题和挑战。

例如,数据一致性的处理、性能优化、多线程并发等。

但通过团队成员的共同努力和合作,我们成功地克服了这些问题,并取得了较好的开发效果。

7. 项目成果与展望在项目完成后,我们实现了一个功能完备、用户友好的在线购物平台。

用户可以注册、登录、浏览商品、下订单并进行支付等操作。

同时,我们也考虑到了扩展性和性能优化的问题,系统具备一定的容错和弹性。

未来,我们希望能继续完善和优化这个系统,并根据用户的反馈做出进一步的改进。

java课程设计报告(完整版)

java课程设计报告(完整版)

目录1、摘要2、概要设计3、详细设计4、测试分析5、总结6、参考文献【前言】Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一。

Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。

目前,很多新的技术领域都涉及Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。

本次课程设计就是利用java语言来编写简单的计算器,能进行加、减、乘、除四则运算,下面给出了该设计的理论分析和具体步骤。

一、摘要本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制下。

“Backspace”按钮表示退格,“CE”按钮表示清除当前文本框内的数据,“C”按钮表示清除文本框内数据,同时var、answer清零。

该程序可在JCreator环境下直接运行。

二、概要设计1、自定义说明(1)类名:Calculator作用:主类继承的父类:JFrame类实现的接口:ActionListener类public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"}; //定义数组bstTexts来存放计算器上的各个按钮Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" "); //计算结果显示区public Calculator(){………}public void actionPerformed(ActionEvent event){………}}(2)方法名:Calculator作用:设置窗体布局public Calculator(){//Frame frame = new Frame("Calculator");super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");tForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);nListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置四个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色显示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);R);}(3)方法名:actionPerformed作用:设置各个按钮的行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){……….}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){…………}//'-'操作if (temp == button[11]){…………}//'*'操作if (temp == button[12]){…………}//'/'操作if (temp == button[13]){…………}//'='操作if (temp == EqButton && clickable == true){…………}//按下'+/-'按钮时处理{…………}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true){…………}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){………}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){………}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}2、界面设计下图为该程序运行时的界面截图:三、详细设计以下为该程序的主要代码:import javax.swing.*;import java.awt.*;import javax.swing.event.*;import java.awt.event.*;imalFormat;public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts ={"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"};Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" ");//计算结果显示区public Calculator(){super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");CeButton.setForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);CeButton.addActionListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置三个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);cp.add(p3,BorderLayout.CENTER);}//设置各个按钮行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后if (temp == button[i] && clickable == true)displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){boolean isDot = false;if (displayField.getText().length() == 0)isDot = true;for (int i = 0; i < displayField.getText().length(); i++)if ('.' == displayField.getText().charAt(i)){isDot = true;break;}if (isDot == false)displayField.setText(displayField.getText() + ".");}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:le(displayField.getText());}displayField.setText("");prekey = key = 0;}//'-'操作if (temp == button[11]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 1;}//'*'操作if (temp == button[12]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 2;}//'/'操作if (temp == button[13]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 3;}}//'='操作if (temp == EqButton && clickable == true){//如果连续按'=',则进行连续运算if (prekey == 5){if (key == 0){answerd += vard;displayField.setText(df.format(answerd));}if (key == 1){answerd -= vard;displayField.setText(df.format(answerd));}if (key == 2){answerd *= vard;displayField.setText(df.format(answerd));}if (key == 3){if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= vard;displayField.setText(df.format(answerd));}}}else{vard = Double.parseDouble(displayField.getText());if (key == 0){prekey = -1;answerd += Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 1){prekey = -1;answerd -= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 2){prekey = -1;answerd *= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 3){prekey = -1;if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}}prekey = 5;}//按下'+/-'按钮时处理if (temp == button[15] && clickable == true){boolean isNumber = true;String s = displayField.getText();for (int i = 0; i < s.length(); i++)if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' || s.charAt(i) == '-')){isNumber = false;break;}if (isNumber == true){//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-'){displayField.setText("");for (int i = 1; i < s.length(); i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsedisplayField.setText('-' + s);}}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true)String s = displayField.getText();displayField.setText("");for (int i = 0; i < s.length() - 1; i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){displayField.setText("");clickable = true;}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){vard = answerd = 0;displayField.setText("");clickable = true;}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}}public static void main(String args[]){Calculator calculator = new Calculator();calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);calculator.setSize(300,200);calculator.setVisible(true);}}四、测试分析(1)程序运行情况该程序正常的响应按钮事件,能进行简单的加、减、乘、除四则运算,在输入之前须先进行清零处理,然后再输入数值进行运算。

JAVA课程设计报告_完整版

JAVA课程设计报告_完整版

《JAVA面向对象程序设计》课程设计报告(2011-2012学年第2学期)系别:厦门理工学院计算机科学与技术系专业名称:10级网络工程1班课程设计科目:《JAVA面向对象程序设计》课程设计学生姓名:学号:指导教师:***成绩:完成时间:2012年7月6日题目JAVA程序课程设计任务一手机号码检测器(一)设计任务与目标任务:手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。

要求目标:检测所输入的手机号码是否是11位检测每一位是否都为数字。

分析论证:本题目要求对用户输入的手机号码进行检测,判断输入的正确性。

曾经有做过类似字符比较的题目,可以借鉴。

将字符的比较运用进来,把用户的输入字符和正确的进行比较。

但是必须满足多次输入和错误提醒。

同时还可以添加提示错误的位置和错误字符是什么。

程序正确运行时可以满足以上功能,基本可以达到题目要求了。

(二)方案设计与论证为了满足多次输入的要求,将提示和输入的操作放在一个循环体中,我采用了do_whiele()循环。

每次输入结束后提示是否继续输入。

在循环中逐步对输入的号码位数和字符类型进行检测。

位数可以分超出和不足,并均给出错误提示。

如果位数满足要求后对手机号码类型进行检测。

一般手机号在0~9之间,所以不满足的字符将报错。

通过将输入的整个字符串调用charAt(int i)方法对字符串逐位比较。

本程序的特点在于可以满足了多次输入和错误字符的显示(内容和位置)。

在程序的调试过程中,有过多次输入正确的号码也会报错(还会报错0位错误),这是因为记录错误位子的变量放在错误条件下并且未在循环体中初始化为0。

最终解决了此问题。

(三)程序框图或流程图,程序清单与调用关系(四)程序运行的测试与分析实现了多次输入和错误提示,可以判断输入的号码的错误位置及字符,错误类型,满足了设计构思要求。

最终结果如下图:实验结果截图:(五)结论心得实验过程中对于判断条件的选择出现了问题,开始时觉得要对输入的字符一个一个的比较,这样增加了难度也不方便实现。

机《Java语言程序设计》课程设计报告-24页精选文档

机《Java语言程序设计》课程设计报告-24页精选文档

《Java语言程序设计》课程设计报告题目: ATM机班级: 10信息一班系部:信息管理系专业:计算机应用技术2011年 6 月25 日ATM机设计报告目录1 概述 (2)1.1 问题分析 (2)1.2功能 (2)2 总体设计 (2)3 详细设计 (3)1.登录界面Client()类结构介绍: (3)2.卡号生成界面AtmDemo()类结构介绍:........................................................ 错误!未定义书签。

3.功能界面Main()类结构介绍: (4)4.存款的界面KeepMoney()和取款的界面GetMoney()结构介绍: (4)5.修改密码界面Change()类结构介绍:....................................................... 错误!未定义书签。

7.查询余额界面Yuxia.java()类结构介绍: (5)4 实现 (5)1. 运行环境 (5)2. 运行情况抓图 (5)5 总结与体会 (5)6 参考文献 (6)7 附录:程序清单..................................................................................................... 错误!未定义书签。

1 概述1.1 问题分析模拟ATM机基本操作功能:存款、取款、余额查询、修改密码等;初始账户10000元;修改密码时必须修改两次,确认后才可使用;取款的款项和存款的款项必须是100的整倍数;1.2功能1)模拟ATM机实现当用户进入登陆页面后,用户需先点击银行开户按钮进行银行开户;2)进入银行开户页面之后,进行填写客户信息,系统会自动生成卡号,信息填写完整后系统会自动保存用户信息在生成的文件中,并返回登陆页面进行登录。

3)登陆成功之后进入ATM机操作页面进行存款、取款、余额查询、修改密码,点击一个按钮都会显示出对应的页面。

java课程设计报告

java课程设计报告

java课程设计报告引言:在现代社会的科技发展中,计算机科学已经成为人们生活的一部分。

作为计算机科学的基础语言之一,Java语言在软件开发领域具有广泛的应用。

本文将围绕Java课程设计展开,介绍该课程设计的背景、目的、过程及结果,并对课程设计的意义和价值进行分析。

一、背景说明随着信息技术的快速发展和社会的进步,计算机科学课程在高等教育中变得越来越重要。

Java作为一种面向对象的编程语言,在学术界和工业界都有着广泛应用和较高的口碑。

通过Java课程设计,可以提高学生的动手能力和实践操作能力,为学生的综合素质提供有力的支持。

此外,Java课程设计还可以激发学生的创造力和创新思维,为学生的职业发展打下坚实的基础。

二、目的和目标本次Java课程设计的主要目的是培养学生的编程能力和软件开发实践经验。

具体目标包括:1. 熟练掌握Java语言的基本语法和常用库函数。

2. 理解面向对象的编程思想和设计原则。

3. 能够独立设计和实现一个简单的软件项目。

4. 提高分析问题和解决问题的能力。

5. 培养团队合作和沟通协作能力。

三、课程设计过程本次课程设计分为以下几个阶段:1. 需求分析:明确软件设计的目标和功能要求,了解用户需求和期望。

2. 系统设计:根据需求分析结果,设计系统的结构和模块划分,确定开发所需资源和工具。

3. 编码实现:根据系统设计,利用Java语言进行编码实现,编写各个模块的代码。

4. 软件测试:对编码完成的软件进行全面测试,包括单元测试、集成测试和系统测试,确保软件的稳定性和可靠性。

5. 软件优化:根据测试结果,对软件进行性能优化和代码优化,提高软件的运行效率和用户体验。

6. 报告撰写:根据课程设计要求,撰写课程设计报告,阐述整个课程设计过程和实现的思路方法。

四、课程设计成果通过课程设计的努力,设计实现了一个基于Java语言的个人账单管理系统。

该系统可以帮助用户记录和管理个人的收入和支出情况,提供账单查询、分类统计等功能。

java课程设计报告-java课程设计

java课程设计报告-java课程设计

Java课程设计报告题目: 文本编辑器班级:学号:姓名:成绩:日期:年月日目录一、综合设计得目得与要求 (3)二、综合设计正文 (3)1、系统分析…………………………………………………………31、1系统开发背景、开发范围、建设目标与必要性开发 (3)1、2需求分析 (3)2、系统设计 (3)2、1功能设计 (3)2、2系统运行环境与开发工具 (4)3 、系统实施.....................................................................43、1源程序 (4)3、2、系统测试及部分截图 (1)2三、综合设计总结或结论 (13)四、参考文献 (13)《文本编辑器》一、综合设计得目得与要求要求在学生能够较熟练使用java程序设计语言进行软件代码得编写,同时还要具备较好得项目分析得能力,加深对相关课程基本内容得理解。

同时,在程序设计方法以及上机操作等基本技能与科学作风方面受到比较系统得练习.二、综合设计正文1 系统分析1、1系统开发背景、开发范围、建设目标与必要性随着计算机科学日渐成熟,其强大得功能已为人们深刻认识,它已进入人类社会得各个领域并发挥着越来越重要得作用。

当然对文本编辑操作仍然占据着重要地位,记事本就是简单便捷得文本编辑器,可实现对文本编辑操作得基本功能.1、2需求分析程序设计主要分为两大部分:简单GUI设计与程序功能设计。

通过GUI设计实现图形用户界面,提供图形菜单,方便用户操作.使用Java语言编写一个能够对输入文字进行操作,具有合理得界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出得程序。

通过设计与实现一个具有基本功能得文本编辑器,提高我们对Java语言设计得掌握能力,理论联系实际,进一步提高软件开发技术,从而培养我们分析、解决问题得能力。

2系统设计2、1功能设计根据系统自带得文档编辑器得特征设计,包括如下得功能模块:一、整体结构框架包括:菜单栏与文档编辑区二、每个框架分别包含不同得子框架,各个模块得具体框架:1、菜单栏:文件、编辑、工具、帮助2、菜单栏中各个子菜单功能文件:新建、打开、保存、另存为、退出编辑:剪切、复制、粘贴工具:查找、替换3、子菜单功能得实现主要得几个功能介绍1)打开与另存为:两个窗体调用系统函数直接利用,注意格式得选择2)查找:查找内容、查找、查找下一个4。

java课程设计报告.doc

java课程设计报告.doc

java课程设计报告.doc一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等知识,培养学生编写简单Java应用程序的能力,提高学生解决实际问题的实践能力。

1.掌握Java基本语法和常用数据类型。

2.理解面向对象编程的基本概念,如封装、继承、多态。

3.熟悉Java常用类库和API。

4.掌握Java程序的调试和运行方法。

5.能够使用Java编写简单的应用程序。

6.能够运用面向对象编程思想解决实际问题。

7.具备基本的Java程序调试和优化能力。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。

2.培养学生热爱编程、积极探索的精神。

3.增强学生对计算机科学的兴趣和自信心。

二、教学内容本课程的教学内容主要包括Java基本语法、流程控制、数据结构、面向对象编程等。

具体安排如下:1.Java基本语法:变量、数据类型、运算符、表达式、语句等。

2.流程控制:顺序结构、选择结构、循环结构等。

3.数据结构:数组、链表、栈、队列、树等。

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

5.Java常用类库和API:String类、数学类、日期类等。

6.综合实践:编写简单的Java应用程序,如计算器、通讯录等。

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

1.讲授法:通过讲解Java编程的基本概念和知识点,使学生掌握相关知识。

2.案例分析法:分析实际案例,让学生了解Java编程在实际应用中的优势和特点。

3.实验法:引导学生动手实践,培养学生的编程能力和实际问题解决能力。

四、教学资源1.教材:《Java编程思想》、《Java核心技术》等。

2.参考书:《Java编程指南》、《Java并发编程》等。

3.多媒体资料:PPT、教学视频、在线教程等。

4.实验设备:计算机、网络环境、编程软件等。

五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评价学生的学习成果。

java课程设计设计实验报告

java课程设计设计实验报告

java课程设计设计实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等基本知识,培养学生运用Java语言解决实际问题的能力。

具体目标如下:1.知识目标:(1)理解Java编程语言的基本语法和编程规范;(2)掌握Java中的基本数据类型、运算符、表达式;(3)了解Java的流程控制语句,如if、for、while等;(4)熟悉Java数组、字符串、集合等数据结构的使用;(5)理解面向对象编程的基本概念,如类、对象、封装、继承、多态等;(6)掌握Java异常处理机制和文件操作。

2.技能目标:(1)能够使用Java编写简单的程序,实现基本的功能;(2)能够运用面向对象编程思想,设计并实现具有一定复杂度的程序;(3)具备阅读Java代码的能力,能够理解并修改他人编写的程序;(4)掌握使用Java开发工具,如Eclipse、IntelliJ IDEA等;(5)了解Java程序的调试和性能优化方法。

3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,激发学生主动学习的动力;(2)培养学生团队合作精神,提高学生沟通协作能力;(3)培养学生面对挑战、解决问题的信心和勇气;(4)培养学生具有良好的代码规范和编程习惯。

二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、流程控制、数据结构、面向对象编程等。

具体安排如下:1.第一章:Java入门,介绍Java编程语言的基本概念、环境搭建和基本语法;2.第二章:基本数据类型和运算符,学习Java中的整数、浮点数、字符、布尔等数据类型以及运算符;3.第三章:流程控制语句,学习if、for、while等流程控制语句的使用;4.第四章:数组和字符串,学习数组的声明、初始化和使用,字符串的创建、操作和转换;5.第五章:集合框架,学习List、Set、Map等集合接口及其实现类的使用;6.第六章:面向对象编程,学习类、对象、封装、继承、多态等概念及应用;7.第七章:异常处理和文件操作,学习Java异常处理机制和文件读写方法;8.第八章:Java编程实践,通过案例分析法和实验法,巩固所学知识,提高实际编程能力。

java课程设计报告

java课程设计报告

java课程设计报告Java课程设计报告一、设计背景随着信息技术的发展,计算机编程已经成为一门必备的技能。

而Java作为一种强大的编程语言,具有跨平台性、安全性和易学性的特点,深受广大程序员的喜爱。

基于此,我们决定设计一门Java课程,旨在培养学生的编程能力和解决问题的能力。

二、设计目标我们的设计目标主要有以下几点:1. 帮助学生掌握Java编程的基本概念和语法;2. 培养学生独立解决问题的能力;3. 培养学生的团队合作能力。

三、课程内容1. 第一阶段:基础知识学习在这个阶段,学生将学习Java编程的基本概念和语法。

包括数据类型、变量、运算符、条件语句、循环语句等。

学生将通过讲解、案例演示和实践编程来掌握这些知识。

2. 第二阶段:问题解决能力培养在这个阶段,学生将解决一系列实际问题。

这些问题将涉及各种Java编程知识,例如数组、字符串、文件操作等。

学生将通过解决这些问题来提高自己的Java编程能力,并培养解决问题的能力。

3. 第三阶段:团队合作项目在这个阶段,学生将分成小组开展一个实际项目。

他们需要通过合作来完成项目的需求分析、设计、编码和测试等工作。

这样可以培养学生的团队合作能力和对软件开发过程的理解。

四、教学方法1. 讲解法:教师通过课堂讲解来传授Java的概念和语法。

2. 实践法:学生通过编写小程序来巩固所学知识,并解决实际问题。

3. 项目法:学生通过完成项目来应用所学知识,并培养团队合作能力。

五、教学资源1. 课本:我们将选用一本Java编程的入门教材作为主要教学资料。

2. 编程工具:学生将使用Java集成开发环境(IDE)来进行编程实践。

3. 网络资源:学生可通过互联网获取相关的编程教程、参考资料和实例代码。

六、评估方法1. 期中考试:考察学生对Java编程基础知识和语法的掌握程度。

2. 作业评估:评估学生对实际问题的解决能力和编码规范的掌握程度。

3. 项目评估:评估学生在团队合作项目中的表现和软件开发能力。

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

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:设计一个计算器院系:班级:设计者:学号:指导教师:设计时间:2013.1..1.18课程设计(大作业)任务书目录课程设计(大作业)报告 (4)一、题目要求 (4)⑴、界面设计 (4)⑵、计算器的基本功能 (4)二、需求分析 (4)三、题目分析 (5)四、分工设计 (5)⑴、程序代码 (5)⑵、运行结果截图 (9)五、总体设计 (10)⑴流程图 (10)⑵UML图 (11)六、详细设计和主要代码 (11)七、运行结果 (21)八、总结 (21)九、参考文献 (22)课程设计(大作业)报告一、题目要求⑴、界面设计首先按设计要求实现其基本功能,其次设计布局,按照GridLayoutd的布局方法,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可不同,尽量将相同属性的按钮放在一个区域,方便操作。

⑵、计算器的基本功能:①加法:两个数据进行加操作,可以为小数。

②减法:两个数据进行减操作,可以为负数相减。

③乘法:两个数相乘操作。

④除法:两个数相除操作。

⑤开平方:对任意一个数进行开平方运算,可以是小数。

⑥求余:对任意一个数进行求余运算。

⑦倒数:对任意一个数进行倒数运算功能可自行增加。

提示:添加相关组件并进行按钮事件处理。

二、需求分析在日常生活中经常要用到计算器,比如科学计算器、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。

本次实验要求实现一个具有四则运算的计算器,拥有加、减、乘、除、求余、求倒等功能,并且还要求具备清零等功能。

三、题目分析计算器功能键的实现actionPerformed(ActionEvent e)响应整个计算的文本框。

这次设计的计算器计算功能主要包括加法、减法、乘法、除法、求平方根、取余,1/x将文本框中的数据为它的倒数,sqrt将文本框中的内容求平方根,且有小数点、正负号、求倒数、退格和清零等功能。

其中还有一个缓存区,MC的功能是清除缓存区的数据,MR的功能是恢复缓冲区的数到文本框,MS功能是将文本框的数存入缓冲区,M+的功能是将文本框值与缓冲区的数相加但不显示结果。

四、分工设计⑴、程序代码public Calculator(){f = new JFrame("计算器");//创建一个框架Container contentPane = f.getContentPane();//菜单的创建JMenuBar mBar = new JMenuBar();//实例化mbar菜单mBar.setOpaque(true);mEdit = new JMenu("编辑(E)");mCopy = new JMenuItem("复制(C)");mEdit.add(mCopy);mPaste = new JMenuItem("粘贴(P)");mEdit.add(mPaste);mView = new JMenu("查看(V)");mView.add(new JMenuItem("查看分组"));mHelp = new JMenu("帮助(H)");mHelp.add(new JMenuItem("帮助主题"));mHelp.add(new JMenuItem("关于计算器"));mBar.add(mEdit);mBar.add(mView);mBar.add(mHelp);f.setJMenuBar(mBar);contentPane.setLayout(new BorderLayout());//使mbar菜单用Border布局JPanel pt = new JPanel();//实例化pt容器tText = new JTextField(" ",26);pt.add(tText);contentPane.add(pt,BorderLayout.NORTH);//把pt容器用Border布局位于北面JPanel pBottom = new JPanel();//实例化pBottom容器pBottom.setLayout(new BorderLayout());JPanel pPlef = new JPanel();//实例化pPlef容器pPlef.setLayout(new GridLayout());//pLeft容器用Grid布局5行1列,GridLayout以网格形式将组件放在同样大小的单元了bEmptykey = new JButton(" ");pPlef.add(bEmptykey);//功能键定义bLeftkey = new JButton("MC");//对象MC:清除存储器中的数值。

bLeftkey.addActionListener(this);//注册监听器bLeftkey.setForeground(Color.blue);bLeftkey.setMargin(new Insets());pPlef.add(bLeftkey);bLeftkey = new JButton("MR");//MR:将存于存储器中的数显示在计算器的显示框上bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);bLeftkey.setMargin(new Insets());pPlef.add(bLeftkey);bLeftkey = new JButton("MS");//MS:将显示框的数值存于存储器中。

如果存储器中有数值将会显示M标志bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);bLeftkey.setMargin(new Insets());pPlef.add(bLeftkey);bLeftkey = new JButton("M+");//M+:将显示框的数与存储器中的数相加并进行存储。

bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);bLeftkey.setMargin(new Insets());pPlef.add(bLeftkey);pBottom.add(pPlef,BorderLayout.WEST);//pPlef容器中用Border布局位于西面JPanel pRight = new JPanel();//实例化pRight容器pRight.setLayout(new BorderLayout());//BorderLayout是在五个区域中排列组件,每个区域包含一个组件JPanel pOn = new JPanel();//实例化pOn容器pOn.setLayout(new GridLayout());//pOn容器用Grid布局1行3列bLeftkey = new JButton("BackSpace");//"Backspace"退格,删除当前输入数字中的最后一位bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);//将bOther的前景色设置为blue bLeftkey.setMargin(new Insets());pOn.add(bLeftkey);bLeftkey = new JButton("CE");//"CE"清除,清除显示的数字bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);pOn.add(bLeftkey);bLeftkey = new JButton("C");//"C"归零,清除当前的计算bLeftkey.addActionListener(this);bLeftkey.setForeground(Color.blue);pOn.add(bLeftkey);//数字键盘区定义JPanel pNum = new JPanel();//实例化pNum容器pNum.setLayout(new GridLayout());//pNum容器用Grid布局4行5列bNumberkey = new JButton("7");bNumberkey.setForeground(Color.blue);bNumberkey.addActionListener(this);bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);//在pNum容器中添加按键bNumber bNumberkey = new JButton("8");bNumberkey.setForeground(Color.blue);bNumberkey.addActionListener(this);bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);bNumberkey = new JButton("9");bNumberkey.setForeground(Color.blue);bNumberkey.addActionListener(this);bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);bOperator = new JButton("/");bOperator.setForeground(Color.blue);bOperator.addActionListener(this);bOperator.setMargin(new Insets());pNum.add(bOperator);bOperator = new JButton("sqrt");bOperator.addActionListener(this);bOperator.setForeground(Color.blue);bOperator.setMargin(new Insets());pNum.add(bOperator);bNumberkey = new JButton("4");bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets()); bNumberkey.setHorizontalTextPosition(JButton.LEFT); pNum.add(bNumberkey);bNumberkey = new JButton("5");bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);bNumberkey = new JButton("6");bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets()); pNum.add(bOperator);bOperator = new JButton("%"); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets()); pNum.add(bOperator);bNumberkey = new JButton("1"); bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets()); pNum.add(bNumberkey); bNumberkey = new JButton("2"); bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets()); pNum.add(bNumberkey); bNumberkey = new JButton("3"); bNumberkey.setForeground(Color.blue); bNumberkey.addActionListener(this); bNumberkey.setMargin(new Insets()); pNum.add(bNumberkey);bOperator.setForeground(Color.blue);bOperator.addActionListener(this);bOperator.setMargin(new Insets());pNum.add(bOperator);bOperator = new JButton("1/x");bOperator.setForeground(Color.blue);bOperator.addActionListener(this);pNum.add(bOperator);bNumberkey = new JButton("0");bNumberkey.setForeground(Color.blue);bNumberkey.addActionListener(this);bNumberkey.setMargin(new Insets());pNum.add(bNumberkey);bOperator = new JButton("+/-");//按下(+/-)键可改变数字的正负值。

相关文档
最新文档