版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贺 州 学 院实 验 报 告班级 16物联2班 学号 姓名 黄涛 评分等级 实验名称 保存书店每日交易记录程序设计 日期 2017-11-29 1、 实验要求1、 输入、编辑、调试和运行例4.1;输入图书基本信息要求输出结果如下所示:(数值任意)int id;String name;/ 图书名称double price;/ 图书单价int number;/ 图书数量double money;/ 总价2、 从键盘中创建一个书架将它们输出。要求输出结果如下所示:static ArrayList booksList = new ArrayList();3、 输入、编辑、调试和运行例4.4;二、实验目
2、的1、 学会分析“ 保存书店每日交易记录 ”程序任务实现的逻辑思路。2、 能够独立完成“保存书店每日交易记录 ”程序的源代码编写。编译及运行。3、 了解csv文件的文件格式。3、 实验环境:Eclipse软件编译环境4、 实验设计过程:(1) 将图书信息封装成一个实体类(2) 创建一个书架(3) 将图书信息进行封装写入csv中。5、 实验代码package cn.itcast.chapter07.task01;/* * 图书类 */public class Books int id;String name;/ 图书名称double price;/ 图书单价int number;/ 图书数量do
3、uble money;/ 总价String Publish;/ 出版社public Books(int id, String name, double price, int number, double money,String Publish) this.id = id; = name;this.price = price;this.number = number;this.money = money;this.Publish = Publish;Overridepublic String toString() String message = 图书编号: + id + 图
4、书名称: + name + 出版社: + Publish+ 单价: + price + 库存数量: + number;return message;public void setNumber(int number) this.number = number;import java.util.ArrayList;import java.util.Scanner;public class RecordBooksOrder static ArrayList booksList = new ArrayList();/ 创建书架public static void main(String args) i
5、nit();/ 初始化书架/ 将书架上所有图书信息打印出来for (int i = 0; i booksList.size(); i+) System.out.println(booksList.get(i);while (true) / 获取控制台输入的信息Scanner scan = new Scanner(System.in);System.out.print(请输入图书编号:);int bookId = scan.nextInt();Books stockBooks = getBooksById(bookId);/ 根据输入的图书编号获取图书信息if (stockBooks != nu
6、ll) / 判断是否存在此图书System.out.println(当前图书信息 + stockBooks);System.out.print(请输入购买数量:);int bookNumber = scan.nextInt();if (bookNumber = stockBooks.number) / 判断库存是否足够/ 将输入信息封装成Books对象Books books = new Books(stockBooks.id, stockB,stockBooks.price, bookNumber, stockBooks.price* bookNumber, stockBoo
7、ks.Publish);FileUtil.saveBooks(books);/ 将本条数据保存至本地文件/ 修改库存stockBooks.setNumber(stockBooks.number - bookNumber); else System.out.println(库存不足!); else System.out.println(图书编号输入错误!);/* * 初始化书架上图书的信息 将图书放到书架上 */private static void init() Books goods1 = new Books(101, Java基础入门, 44.50, 100, 4450.00,清华大学出版
8、社);Books goods2 = new Books(102, Java编程思想, 108.00, 50, 5400.00,机械工业出版社);Books goods3 = new Books(103, 疯狂Java讲义, 99.00, 100, 9900.00,电子工业出版社);booksList.add(goods1);booksList.add(goods2);booksList.add(goods3);/* * 根据输入的图书编号查找图书信息 循环遍历书架中图书信息,找到图书编号相等的取出 */private static Books getBooksById(int bookId)
9、for (int i = 0; i booksList.size(); i+) Books thisBooks = booksList.get(i);if (bookId = thisBooks.id) return thisBooks;return null;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import
10、 java.io.InputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;/* * 工具类 */public class FileUtil public static final String SEPARATE_FIELD = ,;/ 字段分隔 英文逗号public static final String SEPARATE_LINE = rn;/ 行分隔/* * 保存图书信息 */public static void saveBooks(Books books
11、) / 判断本地是否存在此文件Date date = new Date();DateFormat format = new SimpleDateFormat(yyyyMMdd);/ 定义日期格式String name = 销售记录 + format.format(date) + .csv;/ 拼接文件名InputStream in = null;try in = new FileInputStream(name);/ 判断本地是否存在此文件if (in != null) in.close();/ 关闭输入流createFile(name, true, books);/ 可获取输入流,则存在文件
12、,采取修改文件方式 catch (FileNotFoundException e) createFile(name, false, books);/ 输入流获取失败,则不存在文件,采取新建新文件方式 catch (IOException e) e.printStackTrace();/* * 将图书的售出信息保存到本地,可通过label标识来判断是修改文件还是新建文件 * param name 文件名 * param label 文件已存在的标识 true:已存在则修改; false:不存在则新建 * param books 图书信息 */public static void createFi
13、le(String name, boolean label, Books books) BufferedOutputStream out = null;StringBuffer sbf = new StringBuffer();/ 拼接内容try if (label) / 当已存在当天的文件,则在文件内容后追加/ 创建输出流,用于追加文件out = new BufferedOutputStream(new FileOutputStream(name, true); else / 不存在当天文件,则新建文件/ 创建输出流,用于保存文件out = new BufferedOutputStream(
14、new FileOutputStream(name);String fieldSort = new String 图书编号, 图书名称, 购买数量,单价, 总价, 出版社 ;/ 创建表头for (String fieldKye : fieldSort) / 新建时,将表头存入本地文件sbf.append(fieldKye).append(SEPARATE_FIELD);sbf.append(SEPARATE_LINE);/ 追加换行符号sbf.append(books.id).append(SEPARATE_FIELD);sbf.append().append(SEPARATE_FIELD);sbf.append(books.number).append(SEPARATE_FIELD);sbf.append(double) books.price).append(SEPARATE_FIELD);sbf.append(double) books.money).append(SEPARATE_FIELD);sbf.append(books.Publish).append(SEPARATE_FIELD);String str = sb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 35472.5-2017湿式自动变速箱摩擦元件试验方法 第5部分:耐久性试验方法》
- 深度解析(2026)《GBT 35418-2017纳米技术 碳纳米管中杂质元素的测定 电感耦合等离子体质谱法》
- 《DLT 1043-2022钢弦式测缝计》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 民事诉讼法题目及分析
- 财务人员工作计划
- 哲学家西方哲学题目及详解
- 元宇宙生态应用题库及答案
- 西班牙语DELEA2试题及解析
- 建筑设计原理试题及分析
- 2024-2025学年江苏盐城五校联考高一下学期4月期中数学试题含答案
- 深信服aES产品技术白皮书-V1.5
- 食堂食材配送合同模板
- 抖音直播运营培训
- 《处理人际关系》课件
- GB/T 44294-2024电主轴电动机通用技术规范
- 天津师范大学与韩国世翰大学入学综合素质题目
- 4.5.2 外墙板生产及质量控制(装配式混凝土建筑构件生产与管理)
- 中国蚕丝绸文化智慧树知到期末考试答案章节答案2024年浙江大学
- 《视听语言》课件-第一章 视听语言概述
- 2024纪检监察干部培训
- 中小学艾滋病防护知识
评论
0/150
提交评论