java课程设计 教材购销.docx
- 文档编号:7980692
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:19
- 大小:106.40KB
java课程设计 教材购销.docx
《java课程设计 教材购销.docx》由会员分享,可在线阅读,更多相关《java课程设计 教材购销.docx(19页珍藏版)》请在冰豆网上搜索。
java课程设计教材购销
软件学院
课程设计报告书
课程名称面向对象课程设计
设计题目超市收银系统
专业班级软件09-8
学号0920010828
姓名赵蕊
指导教师肖振久
2011年6月10
目录
1设计时间2
2设计目的2
3设计任务2
4设计内容2
4.1概要设计2
4.2功能模块设计3
4.3程序运行与调试5
4.4程序源码7
5总结与展望12
参考文献14
成绩评定15
1设计时间
2011.06.06-2011.06.10
2设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
3设计任务
在教师的启发和引导下,学生能自主地进行科技文献检索,进行方案设计、编写代码、调试程序,对方案进行综合分析与评述等。
8、超市收银程序。
要求如下:
(1)使用图形用户界面实现。
(2)由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。
从数据库中取出相关商品的价格信息,再把这些信息返回给收银台,计算出该顾客所购商品的总价格。
(3)每天营业结束把该收银台的销售总额进行统计汇总(要求包括商品种类、数量、销售总额、结账人次等信息,其余可自行丰富)并存储在数据库中。
(4)所有持卡顾客的消费商品情况存储到文件以供查询。
(5)对没有卡的消费情况不记录该顾客的消费情况等个人信息。
如果一个未持卡顾客一次购物满200元,结完账后系统提示可为其发放一张会员卡。
4设计内容
4.1概要设计
4.1.1体系结构设计
4.2功能模块设计
4.2.1超市收银系统
4.2.1.1功能说明
4.2.1.1.1消费者消费
普通消费者消费在超市收银的首界面显示,输入消费者购买商品的编号,算出消费总金额,如果消费者单次消费的金额达到了200元,系统提示此消费者可以成为会员。
4.2.1.1.2账目结算
在本窗口中点击总汇按钮将显示超市在该结账机上的当天的销售总额(包括会员消费总额以及非会员消费总额)。
4.2.1.1.3会员管理
如果消费者单次消费的金额达到了200元,系统提示此消费者可以成为会员。
4.2.1.1.4商品管理
录入商品的编号,名称,价格等信息。
4.2.1.2结构分析
组件在程序中一共分为5个部分:
Jframe是创建无标题窗口,窗口的特性:
最小化/最大化、改变大小、移动。
JTextfiled使用Swing的JTextField,添加验证功能,比如只允许数字输入(或者粘贴进去等等)。
Jbutton共有4个构造函数:
JButton():
建立一个按钮。
JButton(Iconicon):
建立一个有图像的按钮。
JButton(Stringicon):
建立一个有文字的按钮。
JButton(Stringtext,Iconicon):
建立一个有图像与文字的按钮。
JPanel是java中时常用到的容器之一,Panel除了可以让组件加入外,有效的利用Panel可以使版面管理更为容易。
JlabeJLable是Lable的高级形式前者是后者的高级实现。
4.2.1.3类、方法设计
(1)chaoshi类
成员变量:
key,key1,key2;
sum1,sum2;
huiyuansum;
spinsum1,Spinsum2,Spinsum3,Spinsum4,Spinsum5,
panel,panel1,part1,part11,part12,part2,part21,part22,
part23,part24,part25,part26,part27part3,part8,part9;
text1,text2;
button1,button2,button3,button4,button5;
JLabel00,JLabel0,JLabel1,JLabel2,JLabel01;
str,str1,str21,str22,str23,str24,str25,str26,str27;
duox;
成员方法:
staticJPanelpan()//构造方法
publicvoidactionPerformed(ActionEvente)//各个按钮监听事件
publicstaticvoidmain(String[]agrs)//主函数
功能:
设计超市收银系统的界面,并对各个按钮加监听事件
(2)shangpin类
成员变量:
SId,Sname,jiage;
成员方法:
publicshangpin(Stringa,Stringb,intc)//构造方法
(3)huiyuan类
成员变量:
HId,Hname;
成员方法:
publichuiyuan(Stringa,Stringb)
4.3程序运行与调试
4.3.1运行界面
如果输入0001就是会员甲,会在卡号后面予以提示(如图1)。
如果没有添加卡号,而是仅在商品代号上填写,就是非会员(如图2)。
输入商品代号,会显示商品名及商品价格,点击确定购买,每点击一次则确定购买该商品一件,若要购买商品1六件,则需点击确定按钮六次(如图2)。
点击结账按钮显示消费总额(如图3),若消费总额达200元,则发放会员卡一张(如图4)。
点击总汇显示总销售额各种商品销售量和消费人次(如图5)。
图1会员
图2非会员
图3结账图4发放会员卡图5总汇
4.3.2错误调试
(1)在class类staticJPanelpan()方法中出现显示错误
原因:
没有setVisiable(true);
如何解决:
添加setVisiable(true);
(2)在class类staticJPanelpan()方法中出现未定义错误
原因:
在语句中丢失参数
如何解决:
补全参数
(3)在class类staticJPanelpan()方法中出现错误
原因:
没有实现接口ActionListener
如何解决:
button2.addActionListener(newActionListener();
(4)在class类staticJPanelpan()方法中出现未定义错误
原因:
JLabel0大小写出现错误
如何解决:
把Jlabel0改为JLabel0
(5)在class类staticJPanelpan()方法中出现未定义错误
原因:
sum1没增加
如何解决:
sum1=sum1+shangpin1.jiage;
sum2=sum2+shangpin1.jiage;
(6)在class类staticJPanelpan()方法中出现不可关闭错误
原因:
没设置
如何解决:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(7)在class类staticJPanelpan()方法中出现显示错误
原因:
没添加
如何解决:
Containerc=frame.getContentPane();
c.add(pan());
(8)在huiyuan类publichuiyuan(Stringa,Stringb)方法中出现未定义错误
原因:
HId大小写出错
如何解决:
Hid改为HId
4.4程序源码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classshangpin{
StringSId;
StringSmane;
intjiage;
publicshangpin(Stringa,Stringb,intc){
SId=a;
Smane=b;
jiage=c;
}
}
classhuiyuan{
StringHId;
StringHname;
publichuiyuan(Stringa,Stringb){
HId=a;
Hname=b;
}
}
publicclasschaoshiextendsJFrame{
staticintkey=0;//会员
staticintsum1=0;//总消费
staticintsum2=0;//当天合计
staticinthuiyuansum=0;//会员人数
staticintSpinsum1=0;//商品1合计
staticintSpinsum2=0;//商品2合计
staticintSpinsum3=0;//商品3合计
staticintSpinsum4=0;//商品4合计
staticintSpinsum5=0;//商品5合计
publicstaticvoidmain(String[]agrs){
JFrameframe=newJFrame("超市");
frame.setSize(400,250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Containerc=frame.getContentPane();
c.add(pan());
frame.setVisible(true);
}
staticJPanelpan(){
JPanelpanel=newJPanel();
JPanelpart1=newJPanel();
part1.add(newJLabel("会员卡号:
"));
finalJTextFieldtext1=newJTextField();
text1.setHorizontalAlignment(JTextField.RIGHT);
text1.setColumns(11);
JButtonbutton1=newJButton("确定");
part1.add(text1);part1.add(button1);
part1.setVisible(true);
finalJLabelJLabel00=newJLabel("非会员");
part1.add(JLabel00);panel.add(part1);
JPanelpart2=newJPanel();
part2.add(newJLabel("商品代号:
"));
finalJTextFieldtext2=newJTextField();
text2.setHorizontalAlignment(JTextField.RIGHT);
text2.setColumns(15);
JButtonbutton2=newJButton("确定");
part2.add(text2);part2.add(button2);
panel.add(part2);
JPanelpart3=newJPanel();
finalJLabelJLabel0=newJLabel("");
finalJLabelJLabel1=newJLabel("000");
finalJLabelJLabel2=newJLabel("0000");
part3.add(newJLabel("商品名"));part3.add(JLabel0);
part3.add(newJLabel("商品价格"));part3.add(JLabel1);
part3.add(newJLabel("元"));
part3.add(newJLabel("总价格"));part3.add(JLabel2);
part3.add(newJLabel("元"));
part3.add(newJLabel(""));panel.add(part3);
JPanelpart4=newJPanel();
JButtonbutton3=newJButton("结账");
JButtonbutton4=newJButton("总汇");part4.add(button3);
part4.add(newJLabel(""));
part4.add(button4);panel.add(part4);
button1.addActionListener(newActionListener(){
huiyuanhuiyuan1=newhuiyuan("00001","会员甲");
huiyuanhuiyuan2=newhuiyuan("00002","会员乙");
huiyuanhuiyuan3=newhuiyuan("00003","会员丙");
publicvoidactionPerformed(ActionEvente){
Stringkahao=text1.getText();
if(kahao.equals(huiyuan1.HId)){JLabel00.setText(huiyuan1.Hname);key=1;};
if(kahao.equals(huiyuan2.HId)){JLabel00.setText(huiyuan2.Hname);key=1;};
if(kahao.equals(huiyuan3.HId)){JLabel00.setText(huiyuan3.Hname);key=1;};
}
});
button2.addActionListener(newActionListener(){
shangpinshangpin1=newshangpin("001","商品1",10);
shangpinshangpin2=newshangpin("002","商品2",11);
shangpinshangpin3=newshangpin("003","商品3",12);
shangpinshangpin4=newshangpin("004","商品4",13);
shangpinshangpin5=newshangpin("005","商品5",14);
publicvoidactionPerformed(ActionEvente){
Stringshangpinhao=text2.getText();
if(shangpinhao.equals(shangpin1.SId)){
JLabel0.setText(""+shangpin1.Smane);
Stringstr=String.format("%04d",shangpin1.jiage);
JLabel1.setText(str);
sum1=sum1+shangpin1.jiage;
sum2=sum2+shangpin1.jiage;
Stringstr1=String.format("%04d",sum1);
JLabel2.setText(str1);Spinsum1++;
};
if(shangpinhao.equals(shangpin2.SId)){
JLabel0.setText(""+shangpin2.Smane);
Stringstr=String.format("%04d",shangpin2.jiage);
JLabel1.setText(str);
sum1=sum1+shangpin2.jiage;
sum2=sum2+shangpin2.jiage;
Stringstr1=String.format("%04d",sum1);
JLabel2.setText(str1);Spinsum2++;
};
if(shangpinhao.equals(shangpin3.SId)){
JLabel0.setText(""+shangpin3.Smane);
Stringstr=String.format("%04d",shangpin3.jiage);
JLabel1.setText(str);
sum1=sum1+shangpin3.jiage;
sum2=sum2+shangpin3.jiage;
Stringstr1=String.format("%04d",sum1);
JLabel2.setText(str1);Spinsum3++;
};
if(shangpinhao.equals(shangpin4.SId)){
JLabel0.setText(""+shangpin4.Smane);
Stringstr=String.format("%04d",shangpin4.jiage);
JLabel1.setText(str);
sum1=sum1+shangpin4.jiage;
sum2=sum2+shangpin4.jiage;
Stringstr1=String.format("%04d",sum1);
JLabel2.setText(str1);Spinsum4++;
};
if(shangpinhao.equals(shangpin5.SId)){
JLabel0.setText(""+shangpin5.Smane);
Stringstr=String.format("%04d",shangpin5.jiage);
JLabel1.setText(str);
sum1=sum1+shangpin5.jiage;
sum2=sum2+shangpin5.jiage;
Stringstr1=String.format("%04d",sum1);
JLabel2.setText(str1);Spinsum5++;
};
}
});
button3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(sum1!
=0)huiyuansum++;
JDialogduox=newJDialog();JPanelduoxP=newJPanel();
duox.getContentPane().add(duoxP);
duox.setTitle("消费总额");duoxP.setVisible(true);
duoxP.setLayout(newGridLayout(4,1,0,0));
duox.setSize(200,300);duox.setVisible(true);
JPanelpanel1=newJPanel();JPanelpart11=newJPanel();
JPanelpart12=newJPanel();
Stringstr1=String.format("%04d",sum1);
JLabelLabel11=newJLabel(str1);Label11.setText(str1);
part11.add(newJLabel("消费总额:
"));
part11.add(Label11);
if((key!
=1)&&sum1>=200){
part12.add(newJLabel("消费达200元发放一张会员卡"));
panel1.add(part12);
}
panel1.add(part11);duoxP.add(panel1);
key=0;sum1=0;
JLabel0.setText("");JLabel1.setText("000");
JLabel2.setText("0000");JLabel00.setText("非会员");
text1.setText("");text2.setText("");
}
});
button4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
JDialogduox=newJDialog();JPanelduoxP=newJPanel();
duox.getContentPane().add(duoxP);duox.setTitle("消费总额");
duoxP.setVisible(true);
duoxP.setLayout(newGridLayout(8,1,0,0));
duox.setSize(200,400);duox.setVisible(true);
JPanelpart21=newJPanel();JPanelpart22=newJPanel();
JPanelpart23=newJPanel();JPanelpart24=newJPanel();
JPanelpart25=newJPanel();JPanelpart26=newJPanel();
JPanelpart27=newJPanel();
JButtonbutton5=newJButton("全部清零");
finalJLabellabel21=newJLabel();
part21.add(newJLabel("总消费额"));
Stringstr21=String.format("%04d",sum2);
label21.setText(str21);part21.add(label21);
finalJLabellabel22=newJLabel();
part22.add(newJLabel("商品1消费量"));
Stringstr22=String.format("%04d",Spinsum1);
label22.setText(str22);part22.add(label22);
finalJLabellabel23=newJLabel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java课程设计 教材购销 java 课程设计 教材 购销