




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称 数据结构课程设计 设计题目 产品进销存储管理系统(java)专业、班级 软件工程1004 一 、引言(简要说明设计题目的目的、意义、内容、主要任务等)一 、设计任务及目的产品进销存管理系统问题描述:针对某一种行业的库房的产品进销存情况进行管理。基本要求目的:采用一定的存储结构对库房的货品及其数量进行分类管理;可以进行产品类的添加、产品的添加、产品数量的添加;能够查询库房每种产品的总量、进货日期、销出数量、销售时间二、功能需求分析意义系统的功能主要有:管理员操作:进入系统后,管理员就可以对产品的进货,销售,存货等方面的信息有个详细的了解。并且可以对产品的类,产品,产品的数量,产品销售信息进行管理,可以添加新的产品信息。同时对库房每种产品的总量、进货日期、销出数量、销售时间等也可以有详细的了解。三 、主要内容及任务 通过java实现这个系统,并用界面的方式展示出来,任务是通过java创建界面JFrame;并添加按钮监听,可以对数据的查询,添加等操作;设计算法对数据进行操作;最终为了数据的不丢失把数据序列化到文件中去,这样也方便数据的添加,查询等操作。二 、正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。)1 . 功能算法设计1.1 各功能函数关系图 2 . 详细算法设计 2 . 1 . java 基本窗口建立; 基本的JFrame窗口的建立。 2 . 2 .建立一个集合,用于存储产品信息;为了数据的不丢失我把数据存储到了文件里。 2 . 3 . 添加一个方法;用于添加产品数据信息;添加产品的相关信息,如产品类、产品、产品数量、进货日期、销出数量、销售时间等。 2 . 4 . 添加一个方法;用于查询产品数据信息;查询产品的相关信息,如产品类、产品、产品数量、进货日期、销出数量、销售时间等。2 . 5 . 添加十多个个监听事件; 当鼠标按下按钮时,得到事件看执行什么任务,如弹出添加窗口,查询窗口; 或是退出系统。 2 . 6. 再添加监听时有四个我写的是内部类实现actionlistener接口,其他的全是 另写一个类实现actionlistener接口然后调用这个类来实现。2 . 7 . 重要方法 构造器传参; 当另一个窗口需要其他窗口数据是,需要写一个构造方法把数据传过去, 还有当一个内部类需要用到外部类的属性,数据时,都需要用构造器传参 来获得属性。 2 . 8 . 把数据集合保存到文件时实现序列化; 把数据序列化到文件方便存储,获取。 重要代码 3. 1 .主窗口建立; import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class ManagerUI extends JFrameprivate JPanel panel;private JPanel panel2;private JLabel label;private JButton button;private JLabel label1;private JButton button2;private JLabel label2;private JButton button3;private JLabel label3;private ActionListener listener;public ManagerUI()this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);setSize(600, 400);listener=new MyActionlistener(this);panel=new JPanel(); label=new JLabel(欢迎进入管理系统); panel.add(label); panel2=new JPanel(); panel2.setLayout(new GridLayout(4,2); button=new JButton(1); label1=new JLabel(查询产品信息); button.addActionListener(listener); button2=new JButton(2); label2=new JLabel(添加产品); button2.addActionListener(listener); button3=new JButton(3); label3=new JLabel(退出系统); button3.addActionListener(listener);panel2.add(button);panel2.add(label1);panel2.add(button2);panel2.add(label2);panel2.add(button3);panel2.add(label3);this.add(panel,BorderLayout.NORTH);this.add(panel2,BorderLayout.SOUTH);this.setVisible(true);public static void main(String args) new ManagerUI(); 3. 2 . 主界面监听;private ManagerUI managerUI;public MyActionlistener(ManagerUI managerUI) / TODO Auto-generated constructor stubthis.managerUI=managerUI;Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getActionCommand().equals(1)new Goodsclass();if(e.getActionCommand().equals(2)new insertGoodsclass();if(e.getActionCommand().equals(3)managerUI.dispose(); 3. 3 .数据的查询; public Goodsclass()setDefaultCloseOperation(DISPOSE_ON_CLOSE);setSize(200,100);panel=new JPanel();panel.setLayout(new GridLayout(4,2); button=new JButton(1); button.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubnew fruitUI();); label1=new JLabel(水果类); button2=new JButton(2); button2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubnew ShucaiUI();); label2=new JLabel(蔬菜类); button3=new JButton(3); button3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubnew OtherUI();); label3=new JLabel(其它类); button4=new JButton(4); button4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubGoodsclass.this.dispose();); label4=new JLabel(关闭此页); 3. 4 .数据的添加; setDefaultCloseOperation(DISPOSE_ON_CLOSE);setSize(200,100);panel=new JPanel();panel.setLayout(new GridLayout(4,2); button=new JButton(1); button.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub new insertFruit();); label1=new JLabel(水果类); button2=new JButton(2); button2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubnew insertShucai();); label2=new JLabel(蔬菜类); button3=new JButton(3); button3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubnew insertOther();); label3=new JLabel(添加其它类); button4=new JButton(4); button4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubinsertGoodsclass.this.dispose();); label4=new JLabel(关闭此页); 3. 5 .重要监听事件; 算法把数据添加到集合;JButton okButton = new JButton(OK);okButton.setActionCommand(OK);okButton.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubOther other=new Other();other.setName(insertOther.this.getTextField().getText();other.setDate(insertOther.this.getTextField_1().getText();other.setNumber(Integer.valueOf(insertOther.this.getTextField_2().getText();IOtherFile file;file=new OtherFile() ;file.addOther(other);JOptionPane.showMessageDialog(contentPanel, 添加成功 ););buttonPane.add(okButton);getRootPane().setDefaultButton(okButton); 查询的显示界面; public fruitUI()setDefaultCloseOperation(DISPOSE_ON_CLOSE);label=new JLabel();IFruitFile file=new FruitFile();List Fruits=file.findallFruit();StringBuilder s=new StringBuilder();s.append();for(Fruit f:Fruits)s.append(f.toString()+);s.append(/html);label.setText(s.toString();this.add(label);this.setSize(500,500);this.setVisible(true); 3 .7 .序列化到文件; 这里只拿一个类其他类似; 定义一个接口,就是定义它有什么方法规则ra然后去实现它就行啦; public interface IFruitFile public void addFruit(Fruit fruit);public List findallFruit(); 这个是实现类的代码;private ObjectOutputStream oos; private static ObjectInputStream ois;static List Fruits;static File file=new File(E:/Fruits.txt);if(file.exists()&file.length()0)try ois=new ObjectInputStream(new FileInputStream(file);tryFruits= (List) ois.readObject(); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();finally try ois.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();else Fruits=new ArrayList();Overridepublic void addFruit(Fruit fruit) / TODO Auto-generated method stubFruits.add(fruit);try oos=new ObjectOutputStream(new FileOutputStream(E:/Fruits.txt);oos.writeObject(Fruits);oos.flush(); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();finallytry oos.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();Overridepublic List findallFruit() / TODO Auto-generated method stubreturn Fruits; 3. 8 .有一个实体类对象进行封装数据; public class Fruit implements Serializableprivate String name;private String date;private int number;public Fruit(String name, String date, int number) super(); = name;this.date = date;this.number = number;public Fruit() super();/ TODO Auto-generated constructor stubpublic String getName() return name;public void setName(String name) = name;public String getDate() return date;public void setDate(String date) this.date = date;public int getNumber() return number;public void setNumber(int number) this.number = number;Overridepublic String toString() return Fruit name= + name + , date= + date + , number= + number+ ;Overridepublic int hashCode() final int prime = 31;int result = 1;result = prime * result + (date = null) ? 0 : date.hashCode();result = prime * result + (name = null) ? 0 : name.hashCode();result = prime * result + number;return result;Overridepublic boolean equals(Object obj) if (this = obj)return true;if (obj = null)return false;if (getClass() != obj.ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件中插入AVI格式视频的方法
- 2025年彩票公司财务经理面试题库及答案
- 2025年航空乘务员专业技能考核试题及答案解析
- 2025年大学生安全常识测试题
- 机电知识培训的目的和意义
- 2025年宠物摄影摄像师高级面试常见问题集锦
- 2025年安全管理C卷模拟测试题解析
- 2025年农村扶贫助理招聘面试题及答案解析
- 学校教学常规检查课件
- 机电服务顾问基础知识培训课件
- 风管安装安全专项施工方案
- 《贵州省情》课程教学大纲
- 小学教育教学工作计划范文(5篇)
- 汽轮机汽封系统
- 《大随求陀罗尼》罗马拼音与汉字对照版
- 中国人健康大数据2023年
- 职工医疗互助保障计划、女职工安康互助保障计划互助金申请表
- 宾馆饭店消防安全排查整治标准
- GB 16869-2005鲜、冻禽产品
- 材料科学基础(全套429张课件)
- 整机部整机出货检验重点标准
评论
0/150
提交评论