目录

 

 

Java项目实训:模拟网上超市购物结算功能 

一、        实训目的

使用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               

程序

代码行

以前的功能

估计的功能

最小

平均

最大

Loops

 

 

 

 

 

 

4

           

5

           

 

           

Case

           

2

           

3

           

 

           

Data

           

6

           

 

           

Calc.

           

1

           

 

 

 

       

估计

 

 

       

 

 

填写项目计划总结表的计划数据部分:

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{

    定义商品类信息,包括商品名称,数量和单价

  }

 

时间记录日志如下:

 

时间记录日志

学生

   学生Y      

日期

   10/19/05        

教员

   教师Z      

课程

   Java           

开始时间

结束时间

中断时间

净时间

活 动

备  注

C

U

                 
                 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三.编码阶段

         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代码复查指南和检查表

程序名和程序号#

目的

指导你进行有效的代码复查

#

#

#

#

累计

累计%

一般性说明 在完成每个复查步骤之后,将发现的某个类型的缺陷的个数记录在右面的栏目中。如果该步骤没有发现缺陷,就在右面的栏目中打个表示检查无误的交叉符号()。在开始复查下一个程序单元之前,要按照检查表完成对程序,,对象或方法的检查

完整性

验证设计的所有功能都已经编码

 

 

 

 

 

 

Import

验证import语句是完全的

 

 

 

 

 

 

初始化

检查变量和参数的初始化:

l         在程序的开始;

l         在每个循环的开始;

l         在方法的入口