Java主题2:java语言基础及程序流程结构作业

基础

package homeWork.themeTwo1;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int x,n;
		x=sc.nextInt();
		fun1(x);
		n=sc.nextInt();
		fun2(n);
		fun3(n);
		sc.close();
	}

	private static void fun1(int x) {
		System.out.println(x+(x%2==0?"为偶数":"为奇数"));
	}
	
	private static void fun2(int n) {
		double sum=0;
		int temp=1;
		for(int i=1;i<=n;i++) {
			temp*=i;
			sum+=(1/(double)temp);
		}
		System.out.println("结果是:"+sum);
	}

	private static void fun3(int n) {
		double sum=0;
		int temp=1;
		int i=1;
		while(i!=n+1){
			temp*=i++;
			sum+=(1/(double)temp);
		}
		System.out.println("结果是:"+sum);
	}
}

提高1

package homeWork.themeTwo2;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入商品单价:");
		double price=scanner.nextDouble();
		System.out.println("请输入购买数量:");
		int num=scanner.nextInt();
		
		double sum=price*num;
		
		if(num>10||sum>1000) {
			sum*=0.85;
		}else if (num>5||sum>600) {
			sum*=0.9;
		}
		double money;
		while(true) {
			System.out.println("请输入收款金额:(大于应收金额"+sum+")");
			money=scanner.nextDouble();
			if(money>sum)break;
		}
		double re=money-sum;
		System.out.println("应收金额:"+sum+",找零:"+re);
		
		scanner.close();
	}
}

提高2

Account类

package homeWork.themeTwo3;

public class Account {
	private double money;
	private String passWord;
	private String payPassword;
	
	public Account() {
		super();
	}
	
	public Account(double money, String passWord,String payPassword) {
		super();
		this.money = money;
		this.passWord = passWord;
		this.payPassword = payPassword;
	}
	
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	public String getPayPassword() {
		return payPassword;
	}

	public void setPayPassword(String payPassword) {
		this.payPassword = payPassword;
	}

	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
}

Atm类

package homeWork.themeTwo3;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Atm {
	private Account account=new Account(0,"123","123");
	private Scanner scanner=new Scanner(System.in);
	
	//初始界面
	public void start() {
		System.out.println("欢迎使用ATM");
		//登录输密码
		for(int i=0;i<3;i++) {
			if(passwordVerify()) {
				break;
			}
			if(i==0) {//第一次错误输入
				System.out.println("密码错误,你还有"+(2-i)+"次机会");
			}else if(i==1) {
				System.out.println("密码错误,你还有"+(2-i)+"次机会");
			}else if(i==2) {
				System.out.println("密码错误,你还有"+(2-i)+"次机会");
				System.out.println("密码错误3次,你的银行卡由银行保管!");
				System.out.println("欢迎下次光临");
				return;
			}
		}
		
		//选择界面
		while(true) {
			System.out.println("请选择操作:1.存款;2.取款;3.查询余额;4.在线支付;0.退出");
			
			String flag;
			flag=scanner.next();
			
			switch(flag) {
			case "1":
				depositMoney();
				break;
			case "2":
				drawMoney();
				break;
			case "3":
				searchMoney();
				break;
			case "4":
				onlinePay();
				break;
			case "0":
				System.out.println(flag);
				System.out.println("欢迎下次光临!");
				return;
			default:
				System.out.println("没有这个选项,请重新选择!");
				break;
			}
		}
	}

	//1.存款
	private void depositMoney() {
		System.out.println("请输入存款金额:");
		double plusMoney=scanner.nextDouble();
		account.setMoney(account.getMoney()+plusMoney);
		System.out.println("存款操作成功,当前账户余额为:"+String.format("%.2f", account.getMoney()));
	}
	
	//2.取款
	private void drawMoney() {
		System.out.println("请输入取款金额:");
		double subMoney=scanner.nextDouble();
		if(subMoney>account.getMoney()) {
			System.out.println("账户余额不足");
			return;
		}
		account.setMoney(account.getMoney()-subMoney);
		System.out.println("取款操作成功,当前账户余额为:"+String.format("%.2f", account.getMoney()));
	}

	//3.查询余额
	private void searchMoney() {
		System.out.println("当前账户余额为:"+String.format("%.2f", account.getMoney()));
	}

	//4.在线支付
	private void onlinePay() {
		System.out.print("本次在线支付金额为:");
		double payMoney=scanner.nextDouble();
		if(payMoney>account.getMoney()) {
			System.out.println("账户余额不足");
			return;
		}
		
		System.out.println("请输入支付密码");
		String pPwd=scanner.next();
		if(!pPwd.equals(account.getPayPassword())?true:false) {
			System.out.println("支付密码错误");
			return;
		}
		
		account.setMoney(account.getMoney()-payMoney);
		System.out.println("在线支付操作成功,当前账户余额为:"+String.format("%.2f", account.getMoney()));
	}
	
	//0.密码验证
	private boolean passwordVerify() {
		System.out.println("请输入密码:");
		String pwd=scanner.next();
		return pwd.equals(account.getPassWord())?true:false ;
	}
}

Main类

package homeWork.themeTwo3;

public class Main {

	public static void main(String[] args) {
		Atm atm=new Atm();
		atm.start();
	}

}

提高3

在控制台打印九九乘法表,效果如图所示

package homeWork.themeTwo4;

//乘法表
public class Test {

	public static void main(String[] args) {
		fun();
	}

	private static void fun() {
		for(int i=1;i<10;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+i*j+"\t");
			}
			System.out.println();
		}
	}

}

挑战

单个菱形 最长横17竖17

package homeWork.themeTwo5;
//实心棱形,空心棱形
public class Diamond {
	public static void main(String[] args) {
		fun1();
		fun2();
	}

	private static void fun1() {
		for(int i=1;i<10;i++) {//上三角9行,最多一行17个*
			for(int j=9-i;j>0;j--)//打印每行的空格,从8个~0个
				System.out.print("  ");
			for(int j=0;j<(2*i-1);j++) {//打印每行的*,从1个~17个
				System.out.print("* ");
			}
			System.out.println();//换行
		}
		for(int i=1;i<9;i++) {//下三角8行,最多一行15个*
			for(int j=0;j<i;j++)//打印每行的空格,从1个~8个
				System.out.print("  ");
			for(int j=0;j<(17-2*i);j++) {//打印每行的*,从15个~1个
				System.out.print("* ");
			}
			System.out.println();//换行
		}
	}

	private static void fun2() {
		for(int i=1;i<10;i++) {//上三角9行,最多一行17个*
			for(int j=9-i;j>0;j--)//打印每行的空格,从8个~0个
				System.out.print("  ");
			for(int j=0;j<(2*i-1);j++) {//打印每行的*,从1个~17个
				if(j==0||j==2*i-2) {
					System.out.print("* ");
				}else {
					System.out.print("  ");
				}
			}
			System.out.println();//换行
		}
		for(int i=1;i<9;i++) {//下三角8行,最多一行15个*
			for(int j=0;j<i;j++)//打印每行的空格,从1个~8个
				System.out.print("  ");
			for(int j=0;j<(17-2*i);j++) {//打印每行的*,从15个~1个
				if(j==0||j==16-2*i) {
					System.out.print("* ");
				}else {
					System.out.print("  ");
				}
				
			}
			System.out.println();//换行
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值