一个基于控制台的购书系统_Java

问题描述:

使用Java编写一个基于控制台的购书系统!1系统输出在售的所有书籍的信息,书籍信息包括编号、书名、单价、库存;2用户输入想要购买的书籍的编号及数量,系统将用户的订单信息,即订单号、订单明细、订单总额打印,返回给用户

问题分析:

       定义一个书籍类,将书籍信息作为成员变量并定义相关方法,每本书是作为一个实例化的对象,系统的操作围绕书籍的属性展开。1通过定义一个输出所有属性的方法即可解决。2问题在于让系统将用户输入的编号(即对象的某个属性)认定成对应对象的编号,可以写若干个判断语句,当用户输入编号与书籍对应编号相等,围绕该对象进行一些输出。

代码示例:

package 购书系统;

//购书系统
//系统输出所有可购书籍的详细信息,内容包括编号、书名、单价、库存;用户输入所购书籍的编号跟数量,系统再输出用户的订单信息,包括订单号、订单明细、订单总额

import java.util.Scanner;

class Pur {
	int code;
	String title;
	double price;
	int stock;
	// 输出所有可购书籍的详细信息
	void bookshow() {
		System.out.println("书籍编号:"+code);
		System.out.println("书名:"+title);
		System.out.println("售价:"+price+"元");
		System.out.println("库存量:"+stock);
	}
	// 输出用户的订单信息


}
public class Purchase {

	public static void main(String[] args) {
		Pur book1=new Pur();
		book1.code=1;
		book1.title="Java基础案例教程(第二版)";
		book1.price=7.59;
		book1.stock=6;
		Pur book2=new Pur();
		book2.code=2;
		book2.title="高等数学 上册(第七版)";
		book2.price=5.21;
		book2.stock=9;
		System.out.println("本书店在售书目:");
		book1.bookshow();
		book2.bookshow();

		Scanner s = new Scanner(System.in);
		System.out.println("请输入您要购买的书籍编号:");
		int code0 = s.nextInt();
		System.out.println("请输入您要购买的书籍数量:");
		int number = s.nextInt();
		double price0 =0;
		System.out.print("您已经购买成功!!!\n订单信息:\n");
		if(code0==book1.code) {
			price0=book1.price;
			book1.bookshow();
		}else if(code0==book2.code) {
			price0=book2.price;
			book2.bookshow();
		}
		System.out.println("数量:"+number);
		System.out.println("金额:"+ (price0*number));

	}

}

// 需要系统理解用户输入的编号,并以对应编号的对象访问类的各个属性
// 在类里定义一个翻译函数,根据用户输入的编号确定是需要的是哪一个对象,再把它的属性输出。





运行结果:

      

问题反思:

       这个问题并不困难,只是简单的有关类与对象的关系的知识,但我却思考了很久。我一开始一直想将code0(记作用户输入的编号)跟book的某个对象联系起来,但想要从外整体攻破,但显然跟code0有关系的就是code这个属性,而其他的信息其实压根就不参与关键的计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值