上海建桥学院实验报告

课程名称: 面向对象程序设计 实验类型: 设计型

实验项目名称: 类的封装

实验地点: 实验日期: 2022 年 5 月 1 日

成绩:

一、实验目的及要求

掌握软件包的创建和使用,要求能够熟练运用访问控制符对应用程序中的类的成员变量和成员方法进行不同级别的封装,处理程序中的异常,并能够按照实验要求完成实验,输出结果。

二、实验环境及要求

Jdk1.8以上的开发环境,可使用任何编辑器。

三、实验内容及相应程序

实验内容:

设计一个基于控制台的购书系统。该系统主要有以下类完成

(1) 设计一个图书类(Book),该类处于shopping.book包中,该类具有以下成员变量和成员方法。

成员变量:图书编号(bookid),图书名称(bookname),图书单价(bookprice),库存数量(bookstorage);其中图书单价和库存数量均被private修饰

成员方法:计算图书折扣率的方法getBookDiscount(),当库存数量<50本时,原有价格打5折;当100>库存数量=>50本时,原有价格打6折;当200>库存数量=>100本时,原有价格打8折;当库存数量>=200时,不打折。

建议:由于同学们还未接触过数据库和文件存储数据,所以可以在Book类中直接为图书编号、图书名称、库存数量赋初值。如:

public String bookname=“Java程序设计”;

private float bookprice=28.2f;

private int bookstorage=150;

(2) 设计一个图书管理类(BookManger),该类处于shopping.manager包中,该类的主要功能是接受控制台中来自用户的输入信息,并进行相应的处理,同时通过不同功能的成员方法将处理结果返回,如能够返回图书编号、价格、折扣价格和共支付总额的信息。 建议每一个返回信息均通过不同的方法完成,如可在该类中创建getBookId()的方法,返回图书编号信息,其它依此类推。

如当用户在命令行后输入:Java 程序设计 20

BookManger类会将处理结果,图书编号:100123345 ,价格:28.2元,折扣价:20元,共支付:400元,分别通过getBookId()等4个不同的方法返回对应信息。

(3) 编写测试类AllUsers,当用户从命令行后输入书名和数量时,会显示该书图书编号、价格,以及用户需要支付的金额。

四、实验代码及实验结果(包括输入不合法时的,异常处理提示结果)

package shopping.book;public class Book {String bookid;String bookname;private float bookprice;private int bookstorage;public float getBookDiscount(){if(this.bookstorage<50){this.bookprice=(float) (this.bookprice*0.5);}else if(this.bookstorage>=50&&this.bookstorage<100){this.bookprice=(float) (this.bookprice*0.6);}else if(this.bookstorage>=100&&this.bookstorage<200){this.bookprice=(float) (this.bookprice*0.8);}return this.bookprice;}public void setBookDiscount(int shuliang,float price) {this.bookprice=price;this.bookstorage=shuliang;}
}
//copyright by axuan12651
package shopping.manager;import shopping.book.Book;public class BookManger {String bookid;float Bookprice;float Discountprice;int Booknum;float Booksumprice;Book book=new Book();public String getBookId() {this.bookid="9787302456925";return this.bookid;}public float getBookPrice() {this.Bookprice=28.2f;return this.Bookprice;}public float getDiscountprice() {book.setBookDiscount(this.Booknum, this.Bookprice);return book.getBookDiscount();}public float getBooksumprice() {this.Booksumprice=this.getDiscountprice()*this.Booknum;return this.Booksumprice;}public void setBook(float jiage,int num) {this.Bookprice=jiage;this.Booknum=num;}
}//copyright by axuan12651
import java.util.Scanner;
import shopping.manager.BookManger;public class AllUsers {public static void main(String[] args) {BookManger b=new BookManger();Scanner in=new Scanner(System.in);System.out.println("输入书名:");String bookname=in.nextLine();System.out.println("输入数量:");int num=in.nextInt();if(num<0) {System.out.println("数量输入错误!请重新输入:");num=in.nextInt();}in.close();float jiage=0.0f;b.setBook(jiage,num);System.out.println("书名:"+bookname+"\t图书编号:"+b.getBookId()+"\t数量:"+num+" \t价格:"+b.getBookPrice()+"\t折扣价:"+b.getDiscountprice()+"\t共支付:"+b.getBooksumprice());}
}
//@作者:axuan12651

五、分析与讨论(实验过程中发现的重点与难点)

//这仅代表俺自己的观点,每个人的重点与难点不一样
调试过程:

编写代码的整个过程没有太大的问题,只是对JAVA的语法规则不太熟悉,唯一一个小的bug是关于double强制转换float的问题,已经通过(float)(this.bookprice)解决了这个问题,最后就是对部分代码和算法进行了优化。

总结:

初步掌握了Eclipse集成开发环境。  掌握Java 基本数据类型、运算符与表达式的使用方法,语法结构,掌握顺序结构、判断结构语法的程序设计方法。对JAVA程序设计有初步的了解。

其次,初步掌握了包的创建,导入使用,同时也对封装有了更深的认识。

,最后就是对部分代码和算法进行了优化。

总结:

初步掌握了Eclipse集成开发环境。  掌握Java 基本数据类型、运算符与表达式的使用方法,语法结构,掌握顺序结构、判断结构语法的程序设计方法。对JAVA程序设计有初步的了解。

其次,初步掌握了包的创建,导入使用,同时也对封装有了更深的认识。

上海建桥学院java实验报告2相关推荐

  1. 上海建桥学院java实验1

    上海建桥学院实验报告 课程名称: 面向对象程序设计 实验类型: 设计型 实验项目名称: 类的设计与使用 实验地点: 实验日期: 2022 年 4月 10 日 姓名: 学号: 班级: 成绩: 一.实验目 ...

  2. 广东金融学院java实验报告_《大学计算机Ⅰ》实验报告实验三

    广东金融学院实验报告 课程名称:大学计算机Ⅰ 实验编号 及实验名称 姓 名 实验地点 指导教师 蔡文璇 12-204课室 伍春晖博士 实验三 中文Excel 2007实验 系 别 班 级 实验时数 成 ...

  3. Java实验实现一个circle类,java实验报告-类的定义.doc

    java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...

  4. java泛型实验报告,java实验报告异常集合类和泛型

    java实验报告异常集合类和泛型 成绩: 面向对象原理与 Java 实践课程实验报告实验 3:异常.集合类和泛型姓 名 _ ___ 班 级 _ ___ 学 号 _ ___ 实验地点 _ ___ 实验时 ...

  5. java人学生大学生类的继承,java实验报告7.doc

    java实验报告7.doc 实 验 报 告( 2014 / 2015学年 第2学期)课程名称JAVA程序设计实验名称 类的继承实验时间2015年4月30日指导单位计算机学院/软件学院软件工程系指导教师 ...

  6. 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二

    <武汉科技大学 java实验报告 实验二>由会员分享,可在线阅读,更多相关<武汉科技大学 java实验报告 实验二(9页珍藏版)>请在金锄头文库上搜索. 1.注:"实 ...

  7. java实验报告可下载_JAVA实验报告.doc

    JAVA实验报告.doc 学 生 实 验 报 告 册(理工类)课程名称面向对象程序设计 专业班级16计算机科学与技术(专转本) 学生学号 1613203022 学生姓名 张义丹 所属院部 计算机工程 ...

  8. java实验报告二_java实验报告二

    北京电子科技学院(BESTI) 实验报告 课程:java程序设计                        班级:1351             姓名:陈民禾      学号:20135124 ...

  9. 武汉科技大学java题库答案_武汉科技大学java实验报告实验二.doc

    武汉科技大学java实验报告实验二.doc 注"实验记录及个人小结"部分不够可另附页或在背面续写第页信息科学与工程学院JAVA程序设计上机实验报告专业班级姓名学号实验时间指导教师成 ...

最新文章

  1. ndk-build 参数NDK_APPLICATION_MK问题
  2. python装饰设备_Python: 装饰器的小例子
  3. C语言实现聚类K-means cluster算法(附完整源码)
  4. python交互式命令_从python内部运行交互式命令
  5. java 继承示例_Java中的继承类型以及示例
  6. 免费的开源软件那么“香”,为何他们宁愿花钱去买软件?
  7. js捕捉IE窗口失去焦点事件,判断离开页面刷新或关闭的方法
  8. linux之sed使用技巧
  9. 1月第4周安全回顾 移动安全受关注 ***威胁公共设施
  10. thinkphp学习简易教程(一) thinkphp创建项目
  11. MATLAB VMD分解 变分模态分解 信号预处理 特征提取 及其改进算法
  12. 下列c语言表达式正确,C语言试题-10(含答案
  13. Python面向对象加强2.Python 中类的内置属性和内置方法(魔法函数)
  14. python利用有道词典翻译_Python调用有道词典翻译
  15. Mac 下如何用命令行解压和压缩 rar 文件
  16. [项目]PHP图书管理系统(附源码)
  17. aven 项目 pom.xml 第一行报错 Unknow。。。。。。。解决办法
  18. 使用Html.fromHtml()怎么加载Html中的图片
  19. 你知道哪些出身最奇特的程序员?
  20. Unity 3D美术(程序+美术遇到的常见问题)

热门文章

  1. 双系统修改开机默认引导项
  2. 用Python解决海量数据的分类汇总~一键化办公的神器!
  3. 万字长文带你感受Tesla AI Day 2022-特斯拉自动驾驶FSD
  4. MES系统——设备管理篇
  5. android简单实现textview自动缩小文字
  6. C语言之存款问题还不会?我来教你!
  7. false函数matlab,ISNUMBER函数使用表达式说明表 matlab拟合函数表达式
  8. python+django基于爬虫系统的世界历史时间轴历史事件大事记6ouj9
  9. Shader Graph 翅膀
  10. 欢度中秋节!从零开始实现一个月饼检测器