1203090132向栋才《Java程序设计》课程设计报告

合集下载

JAVA程序设计报告

JAVA程序设计报告

JAVA程序设计报告1. 简介在当前信息技术迅速发展的背景下,编程语言在软件开发中扮演着重要的角色。

JAVA作为一种功能强大且广泛应用的编程语言,其在程序设计领域中拥有广泛的应用。

本报告将全面介绍JAVA程序设计的基本原理和方法,以及在实际项目中的应用案例。

2. JAVA程序设计原理JAVA是一种面向对象的编程语言,具有强大的跨平台能力。

它的核心思想是将问题分解为多个对象,每个对象有自己的属性和方法,并通过相互之间的交互实现任务的完成。

在编写JAVA程序时,我们需要熟悉JAVA的基本语法规则,如变量的声明、条件判断和循环结构等。

同时,理解类和对象的概念,掌握封装、继承和多态等面向对象的特性也是必要的。

3. JAVA程序设计方法在实际项目中,我们需要遵循一系列的程序设计方法。

首先,需求分析是决定程序功能和结构的重要步骤。

通过详细的需求分析,我们能够清晰地定义问题并设计出合适的解决方案。

接下来,我们需要进行程序的设计和编码。

良好的程序设计应该具有模块化,即将程序划分为多个模块,各个模块之间耦合度低,易于维护和扩展。

在编码过程中,我们要注重代码的规范和风格,提高代码的可读性和可维护性。

最后,我们要进行测试和调试,确保程序的正确性和稳定性。

4. JAVA程序设计实例为了更好地理解JAVA程序设计的实际应用,我们将介绍一个实例项目。

假设我们要开发一个学生管理系统,实现学生的信息录入、查询和统计等功能。

我们可以利用JAVA的面向对象特性,创建学生类和管理类,并通过GUI界面与用户进行交互。

在程序设计中,我们可以运用JAVA提供的各种库和API来简化开发过程,如Swing库用于图形界面的设计和操作,JDBC库用于数据库的连接和操作等。

通过该项目实例,我们可以深入了解JAVA程序设计的整个流程和方法。

5. 结论本报告全面介绍了JAVA程序设计的基本原理和方法,以及在实际项目中的应用案例。

通过深入学习和实践,我们可以掌握JAVA编程的核心思想和技巧,提高程序设计的效率和质量。

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程序设计)设计题目信号灯年级专业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课程设计报告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课程设计成果一、教学目标本节课的目标是让学生掌握Java编程的基础知识,包括数据类型、变量、运算符等。

学生应能够理解并运用这些知识编写简单的Java程序。

此外,学生还应掌握基本的编程技巧,如控制流程、函数定义等。

通过本节课的学习,学生应能够独立完成简单的Java程序设计任务,培养编程兴趣和自信心。

二、教学内容本节课的教学内容主要包括Java编程的基本概念、数据类型、变量、运算符、控制流程和函数定义等。

具体包括以下几个部分:1.Java编程的基本概念:介绍Java编程语言的背景、特点和应用领域。

2.数据类型:讲解Java中的基本数据类型,如整数类型、浮点类型、字符类型等。

3.变量:介绍变量的概念、声明和使用方法。

4.运算符:讲解Java中的算术运算符、关系运算符、逻辑运算符等。

5.控制流程:介绍条件语句、循环语句等控制流程的用法。

6.函数定义:讲解函数的声明、定义和调用。

三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:教师通过讲解Java编程的基本概念、语法和编程技巧,引导学生掌握编程知识。

2.案例分析法:教师通过分析典型的Java程序案例,让学生理解并运用所学知识解决实际问题。

3.实验法:学生通过动手编写Java程序,巩固所学知识,培养编程能力。

四、教学资源本节课的教学资源包括教材、多媒体资料和实验设备。

1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。

2.多媒体资料:制作精美的PPT课件,为学生提供直观、生动的学习资源。

3.实验设备:为学生提供充足的计算机设备,确保每个学生都能动手实践。

五、教学评估本节课的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。

作业主要包括编程练习和小论文,占总评的40%。

考试为闭卷考试,内容涵盖本节课的全部知识点,占总评的30%。

评估方式客观、公正,能全面反映学生的学习成果。

java课程设计实验报告

java课程设计实验报告

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

一、实验目的。

本次实验旨在通过设计一个简单的Java程序,加深对Java语言的理解和应用,同时锻炼学生的编程能力和解决问题的能力。

二、实验内容。

本次实验要求设计一个简单的学生成绩管理系统,实现对学生成绩的录入、查询、修改和删除等功能。

具体要求如下:1. 设计一个学生类,包括学生的基本信息(学号、姓名、性别等)和成绩信息(语文、数学、英语等科目成绩)。

2. 实现学生成绩的录入功能,可以一次性录入多个学生的成绩信息。

3. 实现学生成绩的查询功能,可以根据学号或姓名查询学生的成绩信息。

4. 实现学生成绩的修改功能,可以修改指定学生的成绩信息。

5. 实现学生成绩的删除功能,可以删除指定学生的成绩信息。

三、实验设计。

在本次实验中,我首先设计了一个学生类,包括学号、姓名、性别和成绩等属性,并提供了相应的构造方法和get、set方法。

然后,我设计了一个学生成绩管理系统的主类,其中包括录入、查询、修改和删除等功能的实现。

在录入功能中,我使用Scanner类实现了从控制台输入学生信息的功能,并将学生信息保存到一个ArrayList中。

在查询功能中,我通过学号或姓名遍历ArrayList,找到相应的学生信息并输出。

在修改功能中,我同样通过遍历ArrayList找到指定学生信息,并提供修改选项,用户可以选择要修改的成绩信息进行修改。

在删除功能中,我也是通过遍历ArrayList找到指定学生信息,并进行删除操作。

四、实验结果。

经过一系列的调试和测试,我成功实现了学生成绩管理系统的设计要求。

用户可以通过简单的命令行界面,实现学生成绩的录入、查询、修改和删除等功能。

系统运行稳定,操作简单,符合设计要求。

五、实验总结。

通过本次实验,我对Java语言的面向对象编程有了更深入的理解,掌握了ArrayList的使用方法,提高了编程能力和问题解决能力。

同时,通过设计一个实用的学生成绩管理系统,我也加深了对Java语言的应用和实践,为以后的学习和工作打下了坚实的基础。

《JAVA程序设计》课程设计五篇

《JAVA程序设计》课程设计五篇

《JAVA程序设计》课程设计五篇第一篇:《JAVA程序设计》课程设计JAVA程序设计》课程设计------Chatter即时聊天工具班级:姓名:学号:指导老师:日期:《目录1.引言.....................................................................................3 2.功能简介..............................................................................3 3.开发环境..............................................................................3 4.课程设计目的.......................................................................3 5.使用手册..............................................................................3 6.程序源代码...........................................................................4 4.1 serverJFrame.java (4)4.2 clientJFrame.java...............................................................9 7.程序运行效果图. (14)8.心得体会 (16)1.引言相信大家一想到基于TCP/IP协议的通信,都会想到利用Socket 类对象建立一条可靠的连接,这样就客户机/服务器就在这条连接上可靠地传输数据。

Java专业课程设计方案报告模板

Java专业课程设计方案报告模板

浙江科技学院《Java程序设计》课程设计汇报设计题目:学生信息管理系统姓名:邱焕明学号:所属院系:信息学院专业:软件工程小组组员:邱焕明设计时间: -1-6指导老师:虞建东一、课程设计目标(1)试验目标:结合开发系统,给出学生信息管理系统二、课程设计完成任务三、设计过程(一)需求分析1、基础资料管理基础资料管理包含对院系、班级和学期设置。

该模块可实现以下功效:添加、修改、删除和显示院系代码、院系名称和电话号码。

添加、修改、删除和显示班级代码、班级名称、学生人数和所属院系名。

添加、修改、删除和显示学期代码、学期名称。

2、学生信息管理学生信息管理包含对学生档案和学籍管理。

该模块可实现以下功效:添加、修改、查询和显示学生基础信息、所属班级和院系。

统计学生学籍、学生离校信息和学生调动信息。

3、课程信息管理课程信息管理包含对课程设置和班级选课管理。

该模块可实现以下功效:添加、修改、删除和显示课程代码、课程名称、学分和院系名称。

添加、删除和提交班级所选课程。

4、成绩信息管理成绩信息管理包含对成绩录入和成绩分析管理。

该模块可实现以下功效:录入班级课程成绩,以不一样形式(列表统计、图表分析)显示班级课程成绩。

(二)系统设计概念、步骤初定义1、实体名:院系2、实体名:班级3、实体名:学生4、实体名:课程(三)系统内容计划1、班级信息表表3-1班级信息表2、课程信息表表3-2课程信息表(四)系统总体设计内(五)系统具体设计列名数据类型长度备注班级编号char 5 主键班级名称varchar 50 无所属院系varchar 50 无学生人数smallint 2 无列名数据类型长度备注课程代码char 10 主键课程名称varchar 50 无学分tinyint 1 无所属院系varchar 50 无(六)系统测试四、设计总结(宋体小四粗体)首先,更深入了解了数据库基础操作,在这之前,数据库学习仅仅刚开了个头,我们只是在了解部分概念性东西。

java课程设计报告

java课程设计报告

课程设计报告设计题目:图书管理系统学院、系:电子与信息工程学院专业班级:计算机102班学生姓名:王喜龙指导教师:龙艳彬成绩:2012年-2013年第一学期第10周摘要随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。

文件的加密主要是由加密算法实现,加密算法有多种,常见的有RSA、DES、MD5等。

但是这些算法虽然原理简单,但具体实现起来却非常繁琐复杂,故而本程序设计对文件的加密使用的是最基础方法。

Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。

Java是一门很优秀的编程语言,是目前软件设计中极为健壮的编程语言。

Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。

Java确实具备了“一次写成,处处运行”的特点,所以,Java已经成为网络时代最重要的编程语言之一。

本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。

使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。

关键词:JA VA ;加密;解密;一、设计目的《java程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对java面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

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

与此同时还培养学生在项目开发中团队合作精神、创新意识及能力。

二、设计目的与意义目的:保密性:防止用户的文档或数据被他人随意读取。

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语言编写简单的应用程序。

具体来说,知识目标包括掌握Java语言的基本语法、数据结构、控制流程、面向对象编程等;技能目标包括能够使用Java语言编写简单的应用程序、调试和优化代码;情感态度价值观目标包括培养学生的编程兴趣、创新意识和团队合作精神。

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

具体安排如下:1.第一章:Java语言概述,介绍Java语言的历史、特点和应用领域。

2.第二章:Java基本语法,学习Java语言的基本数据类型、运算符、表达式等。

3.第三章:控制流程,学习条件语句、循环语句、异常处理等。

4.第四章:数据结构,学习数组、链表、栈、队列等基本数据结构。

5.第五章:面向对象编程,学习类、对象、继承、多态、封装等概念。

6.第六章:文件操作,学习文件的读写、目录的操作等。

7.第七章:图形用户界面,学习Swing组件的使用、事件处理等。

8.第八章:数据库操作,学习JDBC连接数据库、执行SQL语句等。

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

具体方法如下:1.讲授法:用于讲解基本概念、原理和方法,帮助学生建立知识体系。

2.讨论法:引导学生就某个问题进行讨论,培养学生的思考和表达能力。

3.案例分析法:通过分析实际案例,让学生了解Java语言在实际应用中的使用。

4.实验法:让学生动手编写代码,培养学生的实际编程能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《Java程序设计》,为学生提供系统、全面的理论知识。

2.参考书:《Java核心技术》,为学生提供深入的实践指导。

java程序设计》课程设计

java程序设计》课程设计

java程序设计》课程设计一、教学目标本课程旨在通过Java程序设计的学习,让学生掌握Java编程的基本语法、概念和编程思想,培养学生运用Java语言解决实际问题的能力。

具体的教学目标如下:1.知识目标:(1)理解Java语言的基本语法和数据结构;(2)掌握Java程序设计的基本流程,包括编码、编译、运行和调试;(3)熟悉Java语言的面向对象编程思想,了解类、对象、封装、继承和多态等概念;(4)学习常用的Java类库和API,能够运用它们解决实际问题。

2.技能目标:(1)能够使用Java语言编写简单的程序,如计算器、文本编辑器等;(2)具备阅读和理解Java程序的能力,能够对现有程序进行修改和优化;(3)掌握Java程序的调试技巧,能够快速定位和解决问题;(4)能够运用Java语言独立解决实际问题,具备一定的编程实践能力。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发学生主动学习和探究的精神;(2)培养学生团队合作意识,学会在团队中相互协作、共同进步;(3)培养学生良好的编程习惯,注重代码的可读性和可维护性;(4)培养学生面对挑战、勇于创新的精神,鼓励学生不断尝试和突破自己。

二、教学内容本课程的教学内容主要包括Java语言的基本语法、数据结构、面向对象编程思想和常用类库。

具体的教学大纲如下:1.第1-2周:Java语言的基本语法和数据结构,包括变量、数据类型、运算符、控制语句、数组、字符串等;2.第3-4周:面向对象编程思想,包括类、对象、封装、继承和多态等概念,以及常用的类库和API;3.第5-6周:Java程序设计的基本流程,包括编码、编译、运行和调试,以及常用的开发工具和环境;4.第7-8周:常用类库和API的学习,包括输入输出、网络编程、集合框架、多线程等;5.第9-10周:综合练习和实战项目,运用所学知识解决实际问题,提高编程实践能力。

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

《Java程序设计》课程设计报告

《Java程序设计》课程设计报告

《Java程序设计》课程设计报告设计题目聊天小程序设计人班级软件0911设计组名称笨鼠设计起止时间:集美大学计算机工程学院软件工程专业2010 年 1 月7 日项目组工作总结暨评价1.功能综述该聊天小工具有服务端和客户端。

服务端能够启动服务,刷新在线用户,能够发系统消息。

客户端通过连接服务端IP地址登录实现多人聊天并且可以进行两人悄悄话的功能选择。

在客户端用户可以进行个人信息的填写,选择心情。

分析与设计说明●ChatClient//聊天客户端的主框架●ClientReceive//聊天客户端消息收发类●ConnectConf//生成连接信息输入的对话框让用户输入连接服务器的IP和端口●Help//客户端帮助类●UserConf//让用户输入自己用户名●ChatServer//聊天服务端的主框架●Help//服务端帮助类●Node//用户链表的结点类●PortConf//生成端口设置类●ServerListen//服务端监听类●ServerReceive//服务器收发消息类●UserLinkList//用户链表●简单说明类之间的相互关系(参照附录的UML图)2.运行结果●运行结果界面截图运行结果分析、说明:运行时只要正确连接服务器ip、端口号以及服务器启动。

基本可以实现聊天室多人聊天以及对某人说悄悄话的功能,并且可以选择当时自己的心情,聊天时当信心超出界面自动回生成滚动条并且置底部滚动,可以查看到最新消息。

3.设计总结聊天小程序的设计是为了实现多人聊天和两人私聊的功能,在设计工程中经过不断的完善和加工基本上实现了最初的构想。

不过还是有一些不完美的地方,表情图片没能做出来,不过相信经过深入的学习能做得更好。

●附录1:完整、可运行代码,代码应包含15%的注释。

●附录2:UML类图。

《Java程序设计》课程设计报告-简易聊天室系统

《Java程序设计》课程设计报告-简易聊天室系统

华北科技学院课程设计说明书班级: 信息与计算科学B091学号:姓名:设计题目: 简易聊天室系统设计时间: 2011.12.26 至2011.12.30 指导教师:评语:________________________________ ________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2.1 功能需求 (1)2.2 系统的开发运行环境 (2)2 总体设计 (2)3.1 系统体系结构设计 (2)3 详细设计与实现 (3)4.1 登录模块 (3)4.2 客户端注册界面模块 (5)4.3 客户端聊天模块 (8)4.4 服务器端模块 (10)4 小结和展望 (13)参考文献 (14)附录 (15)使用说明书 (15)源程序清单 (18)1引言1.1课程设计选题《简易聊天室系统》1.2课程设计的目的使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。

1.3本选题的设计背景聊天是是网络中广泛应用的服务之一,特别是现在信息社会对聊天的依赖也越累越大,我们品是在生活中很多人都在用的QQ就是一种很好的聊天工具,它不仅只是聊天那么简单,其它的功能也非常强大。

基于Java语言在网络编程中的广泛应用与我们基本每时每刻都在接触的聊天系统。

我选择尝试对一简单的聊天系统进行开发。

Java程序设计课程设计报告

Java程序设计课程设计报告

一、设计任务与目标1.用图形界面编写一个计算器,界面美观大方。

2.实现连续的+、-、*、/运算,计算功能符合四则运算法则。

3.实现小数、正负、开方、求幂运算功能。

二、方案设计与论证本课题主要用到图形界面的编程,计算器,首先要用让用户看到一个窗口,也就是与用户的交互界面,所以可在创建计算器这个类(Calculate类)时便继承JFrame类,使其具有窗体的所有特性,可以使用JFrame的所有方法。

然后是将该界面分成四大面板(Jpanel),主面板用于存放其他三个面板,显示面板用于存放文本显示框(也就是计算器的输入输出框),数字面板用来存放数字按钮,操作面板用来存放操作按钮,最后将主面板放在窗体中显示出来,最基本的界面就做出来了。

最后便是对事件的处理,如何实现计算器的功能。

这里可将运算符做个归类,然后分类处理,像小数点、开方、等于号这些符号的处理基本类似。

三、程序系统框图、类图、流程图等,程序清单与调用关系Calculate类JFrame类继承构造方法public Calculate(Stri ng title)内部类classButtonListenerActionListener接口实现创建面板,按钮处理按钮的事件监听主方法public static void main(String[] args),创建Calculate对象程序清单:public class Calculate extends JFrame 创建主类,继承窗体类public Calculate(String title) 构造方法,完成界面的设计,并添加上事件监听class ButtonListener implements ActionListener 内部类,对事件监听的处理,实现ActionListener接口public ButtonListener() 内部类构造方法,做出第一次按下的是否为操作符的判断public void actionPerformed(ActionEvent e) 获取出发事件的按钮上的字符并作相应处理public void calculate(String op) 判断是一元操作符还是二元操作符,根据操作符类型做计算public boolean isUnary(String s) 判断是否一元操作符public void handleUnaryOp(String op) 处理一元操作符public void handleBinaryOp(String op) 处理二元运算符public void handleNumber(String s) 处理数字按钮的事件public void handleDecPoint() 处理小数点所触发的事件public double negate(String s) 处理正负号所触发的事件public double getNumberOnDisplay() 将显示框中的值转换成Double型public void clear() 清除屏幕并设置所有的标识public static void main(String[] args) 主方法四、全部源程序清单package Calculator;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/*** 2013/11/25 星期一* @author*/public class Calculate extends JFrame { //继承JFrame类public static final int WIDTH = 500;//定义计算器的宽度public static final int HEIGHT = 400;//定义计算器的高度private JTextField result; //输入输出文本域private JPanel mainPane; //主面板private JPanel numPane; //数字面板private JPanel operatePane; //操作符面板private JPanel showPane; //显示面板private JButton[] numB; //数字按钮private JButton[] operateB; //操作符面板public Calculate(String title) {setTitle(title); //设置该Frame的名称result = new JTextField("0.0", 22); //创建该文本域,并定义该文本域的列数和初始化数值0.0,result.setEditable(false); //该文本不可编辑mainPane = new JPanel(); //创建主面板numPane = new JPanel(); //创建数字面板operatePane = new JPanel(); //创建操作面板showPane = new JPanel(); //创建显示面板numB = new JButton[12]; //定义一个长度为12的对象数组,并赋值给numB for (int i = 0; i < 9; i++) {numB[i] = new JButton(new Integer(i + 1).toString()); //创建一个带文本的按钮,将数字强转为Integer型后调用toString方法转为字符串型 }numB[9] = new JButton("0"); //创建一个数字0的按钮numB[10] = new JButton("cls"); //创建一个cls(清空文本域)的按钮 numB[11] = new JButton("."); //创建一个.(小数点)的按钮//将数字按钮加到数字面板上numPane.setLayout(new GridLayout(4, 3, 1, 1)); //设置数字面板的布局管理器,网格布局管理器(GridLayout),行数为4,列数为3,上下左右按钮间距为1 for (int i = 0; i < 12; i++) {numPane.add(numB[i]); //在数字面板中添加上面的12个按钮}operateB = new JButton[8]; //定义一个长度为8的对象数组,并赋值给operateBoperateB[0] = new JButton("+"); //以下创建8个按钮,并给按钮附上不同的文字operateB[1] = new JButton("-");operateB[2] = new JButton("*");operateB[3] = new JButton("/");operateB[4] = new JButton("pow");operateB[5] = new JButton("sqrt");operateB[6] = new JButton("+/-");operateB[7] = new JButton("=");//把操作符按钮添加到操作面板上operatePane.setLayout(new GridLayout(4, 2, 1, 1)); //设置操作面板的布局管理器,网格布局管理器(GridLayout),行数为4,列数为2,上下左右按钮间距为1 for (int i = 0; i < 8; i++) {operatePane.add(operateB[i]); //在操作面板中添加上面的8个按钮 }showPane.setLayout(new BorderLayout()); //设置显示面板的布局管理器,边界布局管理器(BorderLayout)showPane.add(result, BorderLayout.NORTH); //将result文本域添加到显示面板的北边,也就是正上方mainPane.setLayout(new BorderLayout()); //设置主面板的布局管理器,边界布局管理器(BorderLayout)mainPane.add(showPane, BorderLayout.NORTH); //将显示面板放在主面板的北边(上方)mainPane.add(numPane, BorderLayout.WEST); //将数字面板放在主面板的西边(左边)mainPane.add(operatePane, BorderLayout.EAST); //将操作面板放在主面板的东边(右边)this.add(mainPane, BorderLayout.CENTER); //将主面板放在Frame窗口的正中央this.setSize(WIDTH, HEIGHT); //设置Frame窗口的宽和高/*try{//将LookAndFeel设置成windows样式UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel") ;}catch(Exception e){e.printStackTrace() ;}*/Toolkit too = Toolkit.getDefaultToolkit(); //定义Toolkit类,获取默认工具包。

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)。

武汉工商学院项目名称:Java手机通讯录系统学生姓名:向栋才学号:1203090132班级:12计科本1指导教师:喻晓陈涛2014年 5月 27日目录1. 选题的背景 (1)1.1国内外选题现状 (1)1.2开发技术概述 (1)1.3系统流程分析 (2)2.功能设计 (3)2.1从技术角度分析实现的功能 (3)2.2从系统角度分析实现的功能 (4)3. 详细设计 (4)3.1界面设计 (4)3.2关键代码说明 (9)4.系统测试 (18)总结 (19)参考文献 (20)1. 选题的背景1.1国内外选题现状随着计算机科学技术的飞速发展,人们的通讯方式也发生了翻天覆地的变化。

以前的烽火台,信鸽,骑马等通信方式完全退出了历史舞台,手机通讯成为了现代人通信的主要方式,因此,设计一个好的手机通讯录软件能够及时更新和管理自己的联系人资料。

目前国内外在这方面外做的比较好的主要有谷歌,360,搜狗。

我选择手机通讯录这个课题主要是为了锻炼自己的实践动手能力,加上自己对手机软件的浓厚兴趣。

我的这个系统可以实现一个简易的手机通讯录功能,优点包括:在编辑状态下含有添加,查询,修改,删除,排序功能;在信息显示的状态下可以按照分组(包括同学,亲人,朋友,同事,全部)显示;但也还有待完善的地方:如果输入两个联系人的姓名相同,在添加第二个联系人时不会弹出“已有该联系人”的提示,而是直接按照两个不一样的联系人处理;在查找、修改、删除联系人的时候只能通过姓名来实现,方式比较单一。

1.2开发技术概述1.本系统使用的技术概述(1)图形用户界面本系统用到了图形用户界面的知识,包括java中AWT包和Swing包中的相关知识:主要用到了窗口,面板,对话框,按钮,标签,菜单,文本框,文本区,密码框,容器,布局管理,事件处理器(监听器)以及颜色字体的设置和系统自带方法等,使得界面比较整齐。

(2)输入输出流简介在该系统中必须要不断管理联系人的资料,因此必定会用到文件中的字符读写(Filewriter和FileReader),文件缓存(BufferReader,BufferedWriter)以及文件的关闭等知识。

(3)其他知识在该系统还用到了以下知识:try-catch异常处理,if条件分支语句,字符串的处理,数组排序等。

2.系统测试环境a.被测试软件系统的名称课程设计项目——Java手机通讯录b.系统任务提出者喻晓、陈涛老师c.系统开发者12801班:向栋才d.系统用户及安装此软件的计算中心3-104机房、1-710机房、1-709机房e.测试环境与实际运行环境之间的差异以及这些差异对测试结果的影响测试环境:Windows XP、Windows 7、Windows 8、Windows 8.1、JDK1.6、JDK1.7。

1.3系统流程分析图1-1 系统流程图该系统流程图包括整个系统总体流程,当用户进入界面后,可以直接选择相应的功能选项进行相应的操作。

2.功能设计2.1从技术角度分析实现的功能(1)图形用户界面设计中的功能表2-1 控件对象表(2)文件操作设计中的功能表2-2文件对象表2.2从系统角度分析实现的功能图2-1系统功能图该图是手机通讯录系统的总体功能图,主要功能有编辑和显示两个模块,其中编辑下拉菜单中包括添加、查找、修改、删除、排序功能,信息显示部分包括分组显示信息。

用户可以直接在“edit”菜单中选择相应的功能编辑,编辑完成可以继续选择其他功能编辑也可以选在“show”菜单中的选项进行信息显示浏览。

3. 详细设计3.1界面设计图3-1用户进入界面首图这是用户进入系统界面的窗口显示图。

图3-2添加联系人界面当用户点击用户界面的添加下拉菜单的时候就会显示该信息框,用户即可填写相应的信息,添加完成,点击按钮“OK”即可保存。

图3-3 查找联系人界面该界面是联系人查找的界面,当选择下拉菜单的“search”选项时就会显示该界面,然后在文本框中输入你要查找的联系人。

图3-4 修改联系人界面该界面是联系人修改的界面,当选择下拉菜单的“revise”选项时就会显示该界面,然后在文本框中输入你要修改的联系人。

图3-5 删除联系人界面该界面是联系人删除的界面,当选择下拉菜单的“delete”选项时就会显示该界面,然后在文本框中输入你要删除的联系人。

图3-6 全体人员信息显示界面该界面是全体人员信息显示的界面,但选择下拉菜单的“all”选项时就会显示该信息显示界面。

图3-7按照同学分组信息显示界面该界面是按照同学分组的信息显示的界面,但选择下拉菜单的“student”选项时就会显示该信息显示界面。

图3-8按照同事分组信息显示界面该界面是按照同事分组的信息显示的界面,但选择下拉菜单的“colleague”选项时就会显示该信息显示界面。

图3-9按照朋友分组信息显示界面该界面是按照朋友组别的信息显示的界面,但选择下拉菜单的“friend”选项时就会显示该信息显示界面。

3.2 关键代码说明//监听同学show1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){new Print("student",1);}});//监听同事show2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){new Print("colleague",1);}});//监听朋友show3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){new Print("friend",1);}});//监听亲戚show4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){new Print("relative",1);}});//监听全体人员show5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){new Print("all",0);}});}//排序if(n==2)try{int i,j,k;String []all;all=new String[1000];BufferedReader read=new BufferedReader(newFileReader("D:\\AddressBook.txt"));area.append("Name"+'\t'+"Group"+'\t'+"Birthday"+'\t'+"Phone"+'\t'+"Email"+'\t'+"Other"+'\n');int z=1,count=0;while(z==1){for(i=0;i<1000;i++){String str=read.readLine();if(str!=null){all[i]=str;count++;}else z=0;}}String[] bll;bll=new String[count];for(i=0;i<count;i++)bll[i]=all[i];getSortOfChinese(bll);for (i = 0; i < count; i++)area.append(bll[i]+'\n');read.close();}catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e2){e2.printStackTrace();}//删除代码if(n==3){certain.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){try {File file=new File("D:\\AddressBook.txt");Scanner find=new Scanner(file);FileWriter file1=new FileWriter("D:\\AddressBook.txt",true);PrintWriter write=new PrintWriter(file1);while(find.hasNext()){String s=find.next();if(!(s.equals(Tname.getText()))){write.print(s+'\t');write.print(find.next()+'\t');write.print(find.next()+' ');write.print(find.next()+' ');write.print(find.next()+'\t');write.print(find.next()+'\t');write.print(find.next()+'\t');write.println(find.next());}else {find.next();find.next();find.next();find.next();find.next();find.next();find.next();}}//file.close();find.close();file.delete();write.close();file1.close();File file2=new File("D:\\AddressBook1.txt");file2.renameTo(newFile( "D:\\AddressBook.txt"));JOptionPane.showMessageDialog(null,"delete success","the result of delete",RMATION_MESSAGE);} catch (FileNotFoundException e1) {// TODO Auto-generated catch block//e1.printStackTrace();JOptionPane.showMessageDialog(null, "The file was not found");} catch (IOException e2) {// TODO Auto-generated catch block//e2.printStackTrace();System.out.print("The people was not found");}}});}//给按钮"OK"设置监听器certain.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) //用匿名内部类实现监听器{if(Tname.getText().equals(""))//姓名录入为空JOptionPane.showMessageDialog(null,"Failure of the input, name must fill out!",//使用一个弹出窗口信息提示框"the results of input",RMATION_MESSAGE);else{try {FileWriter AddressBook=new FileWriter("k:\\MobileAddressBook.txt",true);//写入字符位置PrintWriter add=new PrintWriter(AddressBook);//直接转换为系统默认编码下对应的字符输出String s1,s2,s3,s4;//定义group和birthday的默认显示为“无”if(Tname.getText().equals(""))s1="无";else s1=Tname.getText();if(Tphone.getText().equals(""))s2="无";else s2=Tphone.getText();if(Temail.getText().equals(""))s3="无";else s3=Temail.getText();if(Tother.getText().equals(""))s4="无";else s4=Tother.getText();//添加默认显示“无”add.println(s1+'\t'+Cgroup.getSelectedItem()+'\t'+Cbirthyear.getSelectedIte m()+' '+Cbirthmonth.getSelectedItem()+' '+Cbirthday.getSelectedItem()+'\t'+s2+'\t'+s3+'\t'+s4);add.close();AddressBook.close();//关闭通讯录z=1;//设置以为标志位} catch (IOException e1) {e1.printStackTrace();//输出异常信息}if(y==0){JOptionPane.showMessageDialog(null,"input success","the result of input",RMATION_MESSAGE);}else {JOptionPane.showMessageDialog(null,"revise succes","the result of revise",RMATION_MESSAGE);}//文本框为空Tname.setText("");Tphone.setText("");Temail.setText("");Tother.setText("");}}});//给按钮“cannel”设置监听器cancel.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) //用匿名内部类实现监听器{frame.dispose();z=0;}});//录入class Typein implements ActionListener{public static int z=2;public static int y=0;//设置标签public JLabel Lname,Lgroup,Lbirthday,Lphone,Lemail,Lother,Lnote;public JTextField Tname=new JTextField(10),Tphone=new JTextField(15),Temail=new JTextField(15),Tother=new JTextField(15);public Choice Cgroup=new Choice(),Cbirthyear=new Choice(),Cbirthmonth=new Choice(),Cbirthday=new Choice();public JButton certain,cancel;public JFrame frame=new JFrame("Enter the contact information");public Typein(){//添加组别的下拉选项Cgroup.addItem("none");Cgroup.addItem("student");Cgroup.addItem("colleague");Cgroup.addItem("friend");Cgroup.addItem("relative");//信息录入方法public void typein(){ Container c=frame.getContentPane();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(500,300);frame.setLayout(new GridLayout(5,1,5,5));frame.setVisible(true);//录入面板的信息设置Lname=new JLabel("Name:");Lgroup=new JLabel("Group:");Lbirthday=new JLabel("Birthday:");Lphone=new JLabel(" Phone:");Lemail=new JLabel("Email:");Lother=new JLabel("Other:");Lnote=new JLabel("Tip:”other“Can input information you deem important");certain=new JButton("OK");cancel=new JButton("Cancel");JPanel pane1=new JPanel();JPanel pane2=new JPanel();JPanel pane3=new JPanel();JPanel pane4=new JPanel();JPanel pane5=new JPanel();//添加信息显示面板c.add(pane1);c.add(pane2);c.add(pane3);c.add(pane4);c.add(pane5);//标签和对应的文本框放置pane1.add(Lname);pane1.add(Tname);pane1.add(Lgroup);pane1.add(Cgroup);pane2.add(Lbirthday);pane2.add(Cbirthyear);pane2.add(Cbirthmonth);pane2.add(Cbirthday);pane2.add(Lphone);pane2.add(Tphone);pane3.add(Lemail);pane3.add(Temail);pane3.add(Lother);pane3.add(Tother);pane4.add(Lnote);4.系统测试本系统在每完成一个功能后,都会有一个弹出对话框给出信息提示,如果操作正确会弹出“操作成功”弹出框提示,如果操作不当,系统不会进入下一步,会让你选择重新输入。

相关文档
最新文档