|
目录
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
一、 实训目的 使用Java语言编写一个模拟网上超市购物结算功能的程序,要求程序运行后有一个图形用户界面,可供用户输入购买的各种商品相关信息,最后给出用户的购物清单及价格,并且用户可以根据需要查询自己购买的第几项商品的详细信息。 要求学生按照个体软件过程的规范要求,结合该程序的实际开发过程,来深入理解并运用个体软件过程的基本概念、方法与过程。
二、 实训要求 1. 编写程序要严格按照Java编程规范进行代码编写。 2. 必须按照个体软件的过程,真实地采集数据、填写相关的表格、编写有关的文档。 3. 按照老师的要求,每个人必须独立完成。 4. 按照实训的时间安排进行实训,实训结束后提交有关的表格与文档。 三、 实训环境: JDK1.3.1及以上版本 四、 实训安排 一.准备阶段:实训前准备以下空表格: 1、 项目计划总结表、 2、 代码复查检查表、 3、 时间记录日志、 4、 缺陷记录日志、 5、 程序规模估计表等; 二.计划、设计阶段 1. 分析实训题目要求,获取对该程序功能的描述,完成需求文档; 2. 做计划, 1)估计新程序的规模,填写程序规模估计表; 2)填写项目计划总结表的计划数据部分; 3)将计划阶段所花费的时间记入时间记录日志; 3. 做设计, 1)对程序进行设计,用流程图或伪码表示法完成设计文档; 2)将设计阶段所花费的时间记入时间记录日志。 需求分析: 1.用户可以添加购买一种商品,添加的信息包括商品名称、数量和单价 2.用户可以删除已购买的一种商品 3.用户可以查询已购买的一种商品的详细信息,查询时要指明查询的商品的记录号是多少(商品记录号是按照商品购买次序编的),还可以指定查询第一个或最后一个购买的商品信息。 4.用户可以删除所有已添加到购物车的商品 5.用户可以打印要购买的商品的清单 6.用户可以清空显示信息的窗口 7.用户可以要求结帐,系统会打印出用户购物清单,并给出总价。
做计划: 假设我们已经有了一些程序规模的统计数据,根据以前的数据来对本程序进行规模估计,填写规模估计表,如下:
学生Y的程序规模估计 学生 学生Y 日期 10/7/96 教员 老师Z 课程 CLI
填写项目计划总结表的计划数据部分: PSP项目计划总结表
学生 学生Y 日期 10/18/05 程序 001 程序号# 001 教师 教师Z 程序设计语言 java
总结 计划 实际 累计 Minutes/LOC LOC/Hour Defects/KLOC 过程效益 A/FR 程序规模(LOC) 新开发与更改的 最大规模 最小规模 开发阶段时间/min 计划 实际 累计 累计百分比 计划 设计 编码 代码复查 编译 测试 后置处理 总计 最大时间 最小时间 引入的缺陷 计划 实际 累计 累计百分比 Def/Hour 计划 设计 编码 代码复查 编译 测试 总计 排除的缺陷 计划 实际 累计 累计百分比 Def/Hour 计划 设计 编码 代码复查 编译 测试 总计 程序设计: public class shop extends Applet implements ActionListener{ Vector vect=new Vector();//定义存储商品的向量对象 。。。。。。//定义所有界面上出现的组件对象 public void init(){ 初始化所有的组件对象 把组件对象添加到容器中 为按钮组件添加消息监听者 } public void actionPerformed(ActionEvent e){ 判断事件源是哪个按钮,根据按钮的功能作出相应的处理 } class list{ 定义商品类信息,包括商品名称,数量和单价 }
时间记录日志如下:
三.编码阶段 1)根据设计文档,编码实现程序; 2)将编码阶段所花费的时间记入时间记录日志; 编码指导: 1.使用java系统awt包中的容器和组件编写一个图形用户界面如下图所示:
提示: 该程序是一个applet程序,需要嵌入网页中运行。 该用户图形界面的容器是applet,上面摆放了若干个组件,包括Label, TextField, Button, TextArea等。 按照界面上的内容分别生成组件对象,然后把组件添加到容器上。代码如下所示:
label0=new Label("品名"); t0=new TextField(10); area=new TextArea(10,50); btn1=new Button("添加"); …… add(label0); add(t0); add(area); add(btn1); ……
2.定义一个类,用来表示用户购买的商品,存储商品的名称、数量和单价。 还要定义一个向量类Vector的对象,用来存储用户购买的所有商品对象的列表。 提示: Vector类相当于一个可变长度的数组,可以用来存储若干个对象,它提供了一些方法,可以随时添加和删除对象。
3.为程序添加消息处理机制,没有消息处理的程序相当于聋子和哑巴,只有添加了消息处理,程序才能与用户进行交互。本程序中的事件主要是Action类的事件。 提示:处理Action类的事件的代码如下: Button btn1=new Button("添加"); btn1.addActionListener(this); …… public void actionPerformed(ActionEvent e){ …… } 四.代码复查、 1.代码复查阶段 1)按照代码复查检查表,复查所有的程序代码; 代码复查检查表如下: Java代码复查指南和检查表 程序名和程序号#
2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志;
缺陷记录日志如下:
3)将代码复查阶段所花费的时间记入时间记录日志;
五.编译、测试阶段 1、编译阶段 1)编译程序; 2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志; 3)将编译阶段所花费的时间记入时间记录日志; 2.测试阶段 1)测试程序; 2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志; 3)将测试阶段所花费的时间记入时间记录日志; 六.后置处理阶段 1)将实际数据登入项目计划总结表; 2)总结缺陷数据,更新代码复查检查表; 3)将后置处理阶段所花费的时间记入时间记录日志; 4)完成PSP项目计划总结表 五、 实训结果 实训结束后请提交以下文档或表格: 1)设计文档 2)源程序 3)已经填写完成的代码复查检查表 4)已经填写完成的时间记录日志 5)已经填写完成的缺陷记录日志 6)已经填写完成的项目计划总结表
六、注意事项: n 及时记录时间与缺陷数据! n 各个表格、文档的数据之间保持一致性!
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
实训目的: 综合运用Java编程基础课程和Access数据库应用与开发课程的内容完成一个简单的图书管理系统,并且在整个项目的开发过程中,严格按照个体软件过程的思想方法控制项目开发的时间进度和软件质量,通过这个项目的开发,帮助学生掌握个体软件过程的方法,消化课程内容并培养学生的动手能力和解决实际问题的能力。在开发过程中严格遵循个体软件过程的原则,提高软件质量和开发效率。 实训要求: 完成一个简单的“系部图书管理系统”,要求实现图书的入库、借出和归返功能。用Java实现用户界面和业务逻辑,数据存储在access数据库中。 1. 编写程序要严格按照Java编程规范进行代码编写。 2. 必须按照个体软件的过程,真实地采集数据、填写相关的表格、编写有关的文档。 3. 每个人必须独立完成。 4. 按照实训的时间安排进行,实训结束后提交有关的表格与文档。 实训环境: JDK1.3.1及以上版本 Microsoft Access 实训步骤: 一、 准备阶段 实训前准备以下空表格: 1、 项目计划总结表、 2、 代码复查检查表、 3、 时间记录日志、 4、 缺陷记录日志、 5、 程序规模估计表等; 二、 计划和设计阶段(包括数据库的准备) 1. 分析实训题目要求,获取对该程序功能的描述,完成需求文档; 2. 做计划, 1)估计新程序的规模,填写程序规模估计表; 2)填写项目计划总结表的计划数据部分; 3)将计划阶段所花费的时间记入时间记录日志; 3. 做设计, 1)对程序进行设计,用流程图或伪码表示法完成设计文档; 2)将设计阶段所花费的时间记入时间记录日志。 需求分析: 1,输入书名,点击详细信息查询按钮,下面会显示该书的详细信息 2,输入新书的全部信息,点击添加记录按钮,新书信息会被插入到数据库 3,输入书名,点击删除记录按钮,该书将被从数据库中删除。 4,输入书名,查询详细信息,如果该书没有被借出,可以输入借阅人姓名,然后点击借阅按钮,系统会把借阅信息写入数据库。 5,退出系统 做计划: 假设我们已经有了一些程序规模的统计数据,根据以前的数据来对本程序进行规模估计,填写规模估计表,如下:
学生Y的程序规模估计 学生 学生Y 日期 11/17/96 教员 老师Z 课程 Java
填写项目计划总结表的计划数据部分: PSP项目计划总结表 学生 学生Y 日期 10/18/05 程序 001 程序号# 001 教师 教师Z 程序设计语言 java
总结 计划 实际 累计 Minutes/LOC LOC/Hour Defects/KLOC 过程效益 A/FR 程序规模(LOC) 新开发与更改的 最大规模 最小规模 开发阶段时间/min 计划 实际 累计 累计百分比 计划 设计 编码 代码复查 编译 测试 后置处理 总计 最大时间 最小时间 引入的缺陷 计划 实际 累计 累计百分比 Def/Hour 计划 设计 编码 代码复查 编译 测试 总计 排除的缺陷 计划 实际 累计 累计百分比 Def/Hour 计划 设计 编码 代码复查 编译 测试 总计 程序设计:
时间记录日志如下:
提示: 1、 建立数据库 A、book表存储库中图书的基本信息 包括书名、作者、出版社、价格、是否被借阅、借阅人和借阅时间等信息,开发人员可以根据自己的需要添加字段。 B、person表存储借书人的基本信息 存储借阅人的姓名、工卡号、部门等信息,开发人员可以根据自己的需要添加字段。
2、创建ODBC数据源 连接数据库的常用方法是先建立一个ODBC(Open DataBase Connectivity)数据源。在这之前,我们已经建立了一个book.mdb数据库。打开控制面板,打开“管理工具”,双击“ODBC数据源”,根据提示信息,创建ODBC数据源。
三、 编码阶段 1)根据设计文档,编码实现程序; 2)将编码阶段所花费的时间记入时间记录日志;
编程指导: 1、程序界面设计如下:
2、实现方法:
3、代码提示:
例如:删除按钮binsert的消息处理 binsert.addActionListener(this); ………………………………… public void actionPerformed(ActionEvent e){ if(e.getSource()==binsert){ ……………………………… } }
前面我们已经成功地创建了ODBC数据源,现在用代码实现java程序与数据库的连接。 java程序连接数据库的代码如下: try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立JDBC-ODBC桥 }catch(ClassNotFoundException e){}
try{ //与数据库book建立连接 Connection con=DriverManager.getConnection("jdbc:odbc:book"); //生成Statement对象,它可以执行sql语句。 Statement stmt=con.createStatement(); //组成sql语句字符串 String sql="select publish,athor,price,number,class,lender from book1 where bname='"+name+"'"; // ResultSet对象可以获得sql语句的执行结果 ResultSet rs=stmt.executeQuery(sql); rs.next(); //获取出版社名 String ph=rs.getString("publish"); ……………………………………………………. }catch(Exception e){}
注意:如果不是执行查询的sql语句,就没有返回的结果集ResultSet,只需使用语句stmt.executeUpdate(sql); 实现数据库的操作。
为每个按钮添加点击后返回给用户的提示消息框,如下图:
提示: import javax.swing.*;
JOptionPane.showMessageDialog(null, "信息已存入数据库!", "消息框", JOptionPane.ERROR_MESSAGE); 四、 代码复查阶段 1.代码复查阶段 1)按照代码复查检查表,复查所有的程序代码;
代码复查检查表如下: Java代码复查指南和检查表 程序名和程序号#
2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志; 缺陷记录日志见后图。 3)将代码复查阶段所花费的时间记入时间记录日志; 五、 编译、测试程序阶段 1、编译阶段 1)编译程序; 2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志; 3)将编译阶段所花费的时间记入时间记录日志; 测试程序: 1)测试程序; 2)修复缺陷,并将每一个所发现的缺陷记入缺陷记录日志; 3)将测试阶段所花费的时间记入时间记录日志;
六、后置处理: 1)将实际数据登入项目计划总结表; 2)总结缺陷数据,更新代码复查检查表; 3)将后置处理阶段所花费的时间记入时间记录日志;
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||