JAVA--项目案例

学生投票系统

        案例描述

某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票。
本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示“感谢你的投票”,若重复投票,提示“请勿重复投票”。当投票总数达到100时或者主观结束投票时,同时统计投票学生人数和投票结果

package toupiao;
import java.util.HashSet;
import java.util.Set;
public class Voter {
	//属性的定义
	private static final int MAX_COUNT = 100;//最大投票
	private static int count; //投票数
	//静态变量,存放已经投票的学生
	private static Set<Voter> voters = new HashSet<Voter>();
		private String name;
		private String answer;
		// 构造方法
		public Voter(String name) {
			this.name = name;
		}
		//投票
		public void voterFor(String answer) {
			if(count == MAX_COUNT) {
				System.out.println("投票结束");
				return;
			}
			if(voters.contains(this)) {
				System.out.println(name+"请勿重复投票。");
			}else {
				this.answer= answer;
				count ++;
				voters.add(this);
				System.out.println(name+"感谢你的投票。");
			}
		}
		//打印投票结果
	public static void printlVoterReesult() {
		System.out.println("当前投票数为:"+count);
		System.out.println("参与投票的学生和结果如下:");
		for(Voter voter:voters) {
			System.out.println(voter.name+"意见"+voter.answer);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建参与投票的学生对象
		Voter tom =new Voter("Tom");
		Voter jack =new Voter("Jack");
		Voter mike =new Voter("Mike");
		//学生开始投票
		tom.voterFor("  是");
		tom.voterFor("  否");
		jack.voterFor(" 是");
		mike.voterFor(" 是");
		//打印投票结果
		Voter.printlVoterReesult();

小明可以买什么(switch条件语句)

        案例描述

假如你带了20元,且必须购买一本书,剩余的钱还可以购买哪种商品,可以购买几件,购买完后又能剩余多少钱?

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
	// write your code here
            // TODO Auto-generated method stub
            int book = 12;
            int pencil = 1;
            int rubber = 2;
            int coco = 3;
            int snack = 5;
            System.out.println("书本的价格为12元,您总共有20元");
            System.out.println("1.铅笔的价格为:1元");
            System.out.println("2.橡皮的价格为:2元");
            System.out.println("3.可乐的价格为:3元");
            System.out.println("4.零食的价格为:5元");
            Scanner sc1 = new Scanner(System.in);
            System.out.println("请输入购买商品的序列号:");
            int order = sc1.nextInt();
            int sy= 20-book;
            switch(order) {
                case 1:
                    int pencilcount = sy/pencil;
                    int lq = sy%pencil;
                    System.out.println("您购买铅笔"+pencilcount+"支"+","+"还剩余"+lq+"元");
                    break;
                case 2:
                    int rubbercount = sy/rubber;
                    int lq1 = sy%rubber;
                    System.out.println("您购买橡皮"+rubbercount+"个"+","+"还剩余"+lq1+"元");
                    break;
                case 3:
                    int cococount = sy/coco;
                    int lq2 = sy%coco;
                    System.out.println("您购买可乐"+cococount+"瓶"+","+"还剩余"+lq2+"元");
                    break;
                case 4:
                    int snackcount = sy/snack;
                    int lq3 = sy%snack;
                    System.out.println("您购买零食"+snackcount+"份"+","+"还剩余"+lq3+"元");
                    break;

            }
        }

    }

求10个整数的最大值以及平均值


连续输入10个整数,求出平均值以及最大值

package a1;
import java.util.Scanner;
public class A1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[]nums=new int[10];
		Scanner scanner=new Scanner(System.in);
		int max =Integer.MIN_VALUE;
		
		int sum=0;
		for(int i =0;i<10;i++) {
			System.out.println("请输入"+(i+1)+"个整数");
			nums[i]=scanner.nextInt();
			if(nums[i]>max) {
				max=nums[i];
			}
			
			sum+=nums[i];
		}
		System.out.println("最大值"+max);
		System.out.println("平均值"+(double)sum/10);
		
		
	}

}

银行存取

        案例描述

银行存取款的流程是人们非常熟悉的事情,用户可在银行对自己的资金账户进行存款、取款、查询余额等操作,极大的便利了人民群众对资金的管理。

本任务要求,使用所学知识编写一个银行存取款程序,实现存取款功能。编写一个帐户类实现银行帐户的概念,创建帐户类的对象ba,假设ba的账号为:123456,初始的存款余额为500元。首先向该账户存入1000元,再取出800元。

package Bank;
class BankAccount{
	int account_number;//账号
	double leftmoney;//存款余额
	public double getleftmoney() {
		return leftmoney;//查询余额
	}
	public void savemoney(double money) {
		leftmoney+=money;
	}
	public void getmoney(double money) {
		leftmoney-=money;
	}
	public BankAccount(int number,double money) {
		account_number=number;
		leftmoney=money;
	}
}
public class BankTxst {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		BankAccount ba =new BankAccount(123456,500);
		ba.savemoney(1000);
		System.out.println("存入1000元后,您的余额为:"+ba.getleftmoney());
		ba.getmoney(800);
		System.out.println("取款800元后,您的余额为:"+ba.getleftmoney());
	}

}

经理与员工工资(利用多态实现)

        案例描述

某公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理不同员工的是,经理有自己在公司对应的级别。假设每次给员工涨工资一次能涨10%,经理能涨20%。本案例要求利用多态实现给员工和经理涨工资。

(Employee.java)

package jingliyuyuangongxinzigl;

public abstract class Employee extends Person {
	private String ID="";
	private double wage=0;
	private int age=0;
		
	public Employee(String name,String address,String ID,double wage,int age) {
		super(name,address);
		this.ID=ID;
		this.wage=wage;
		this.age=age;
	}
	public abstract void add(String position);
	public double getWage() {
		return wage;
	}
	public void setwage(double wage) {
		this.wage=wage;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	}

}

(Manager.java)

package jingliyuyuangongxinzigl;

public class Manager extends Employee{
	private String level="";
	public Manager(String name,String address,String ID,double wage,int age,String level) {
		super(name,address,ID,wage,age);
		this.level=level;
	}
	public void add() {
		double wage=super.getWage();
		super.setwage(wage*1.1);
	}
	public void add(String position) {
		double wage =super.getWage();
		super.setwage(wage*1.2);
		
	}
	public String getLevel() {
		return level;
	}
	public void setLevel(String level) {
		this.level=level;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

(Person.java)

package jingliyuyuangongxinzigl;

public class Manager extends Employee{
	private String level="";
	public Manager(String name,String address,String ID,double wage,int age,String level) {
		super(name,address,ID,wage,age);
		this.level=level;
	}
	public void add() {
		double wage=super.getWage();
		super.setwage(wage*1.1);
	}
	public void add(String position) {
		double wage =super.getWage();
		super.setwage(wage*1.2);
		
	}
	public String getLevel() {
		return level;
	}
	public void setLevel(String level) {
		this.level=level;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

(Test)

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Manager normal = new Manager("yyy","ttt","12",1000,2,"1");
		Manager manager = new Manager("lll","sss","123",10000,10,"0");
		normal.add();
		manager.add(manager.getLevel());
		System.out.println("normal wage is :"+normal.getWage());
		System.out.println("manager wage is :"+manager.getWage());
		
	}

}

饲养员喂养动物

        案例描述

饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声。例如,给小狗喂骨头,小狗会汪汪叫;给小猫喂食,小猫会喵喵叫。

本案例要求编写一个程序模拟饲养员喂食动物的过程,案例要求如下:

        饲养员给小狗喂骨头,小狗汪汪叫。

        饲养员给小猫喂小鱼,小猫喵喵叫

        (Animal.java)

package animal;


public abstract class Animal {
	private String name;
	public Animal(String name) {
		this.name=name;
	}
	public abstract void shout();
	public abstract void eat (Food food);
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name=name;
	}
	

	}

         (Cat.java)

package animal;

public class Cat extends Animal {
	public Cat(String name) {
		super(name);
	}
	public void shout() {
		System.out.print("喵喵喵~~~~");
	}
	public void eat(Food food) {
		System.out.println(getName()+"正在吃香喷喷的"+food.getName());
	}

}

         (Dog.java)

package animal;

public class Dog extends Animal {
	public Dog(String name) {
		super(name);
	}
	public void shout() {
		System.out.print("汪汪汪~~~~");
	}
	public void eat(Food food) {
		System.out.println(getName()+"正在吃香喷喷的"+food.getName());
	}

}

         (Bone.java)

package animal;

public class Bone  implements Food{
	public String getName() {
		return "骨头";
	}
}

        (Fish.java)

package animal;

public class Fish extends Animal implements Food {
	public Fish(String name) {
		super(name);
	}
	public void shout() {
		
	}
	public void eat(Food food) {
		
	}

}

        (Food.java)

package animal;

public interface Food {
	public abstract String getName();

}

        (Feeder.java)

package animal;

public class Feeder {
	private String name;
	public Feeder(String name) {
		this.name=name;
	}
	public void speak() {
		System.out.println("欢迎来到动物园");
		System.out.println("我是饲养员:"+getName());
	}
	public void feed(Animal a, Food food) {
		a.eat(food);
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name=name;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

        (FeedAnimal.java)

package animal;

public class FeedAnimal {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Feeder feeder =new Feeder("小花");
		feeder.speak();
		Dog dog =new Dog("小狗");
		dog.shout();
		Food food =new Bone();
		feeder.feed(dog, food);
		Cat cat =new Cat("小猫");
		cat.shout();
		food =new Fish("黄花鱼");
		feeder.feed(cat, food);
	}

}

基于控制台的购书系统

        案例描述

伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的图书。

本任务要求,使用所学知识编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:包括每本书的编号、书名、单价、库存。

顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。

购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额

         (Book.java)

package paybook;
public class Book{
	private int id;//编号
	private String name;//书名
		private double price;//价格
		private int storage;//库存
		//有参构造
		public Book(int id,String name,double price,int storage) {
			this.id=id;
			this.name=name;
			this.price=price;
			this.storage=storage;
		}
		//获取书号
		public int getId() {
			return id;
		}
		//获取书名
		public String getName() {
			return name;
		}
		//获取价格
		public double getPrice() {
			return price;
		}
		//获取库存
		public int getStorage() {
			return storage;
		}



}

         (Order.java)

package paybook;

public class Order {
	private String orderId;
		private OrderItem items[];
		private double total;
		//有参构造
		public Order(String orderId) {
			this.orderId=orderId;
			this.items=new OrderItem[3];
		}
		//获取订单号
		public String getOrderId() {
			return orderId;
		}
		//获取订单列表
		public OrderItem[] getItems() {
			return items;
		}
		//获取订单总额
		public  double getTotal() {
			calTotal();
			return total;
		} 
		public void setItem(OrderItem item,int i) {
			this.items[i] = item;
		}
		//指定一个订单项
		public void calTotal() {
			double total = 0;
			for (int i = 0; i < items.length; i ++) {
				total += items[i].getNum() * items[i].getBook().getPrice();
			}
			this.total = total;
		}

		public static void main(String[] args) {
			

		}

	}


        (OrderItem.java) 

package paybook;

public class OrderItem {
	private Book book;
		private int num;
		//有参构造方法
		public OrderItem(Book book,int num) {
			this.book=book;
			this.num=num;
		}
		//获取图书对象
		public Book getBook() {
			return book;
		}
		//获取订购图书数量
		public int getNum() {
			return num;
		}
	

}

         (PayBooks.java)

package paybook;

import java.util.Scanner;
public class PayBooks {

	public static void main(String[] args) {
		Book books[] = new Book[3];
		//模拟从数据库中读取图书信息并输出
		outBooks(books);
		//顾客购买书
		Order order = purchase(books);
		//输出订单信息
		outOrder(order);
	}
	//顾客购买图书
	public static Order purchase (Book books[]) {
		Order order = new Order("00001");
		OrderItem item = null;
		Scanner in = new Scanner(System.in);
		for ( int i = 0;i < 3; i++) {
			System.out.println("请输入图书编号选择图书:");
			int  cno = in.nextInt();
			System.out.println("请输入购买图书数量:");
			int pnum = in.nextInt();
			item = new OrderItem(books[cno-1],pnum);
			order.setItem(item,i);
			System.out.println("请继续购买图书。");
		}
		in.close();
		return order;
	}
	//输出订单信息
	public static void outOrder(Order order) {
		System.out.println("\n\t图书订单");
		System.out.println("图书订单号:" +order.getOrderId());
		System.out.println("图书名称\t购买数量\t图书单价");
		System.out.println("-----------------------------------------------");
		OrderItem items[] = order.getItems();
		for (int i = 0; i < items.length; i++) {
			System.out.println(items[i].getBook().getName()+"\t"+items[i].getNum()+"\t"+items[i].getBook().getPrice());
			//System.out.println("\n");
		}
		System.out.println("-----------------------------------------------");
		System.out.println("订单总额: \t\t"+order.getTotal());
	}
	//模拟从数据库中读取图书信息并输出
	public static void outBooks(Book books[]) {
		books[0] = new Book(1,"Java教程",          30.6,    30);
		books[1] = new Book(2,"JSP教程",           42.1,    40);
		books[2] = new Book(3,"SSH架构",           47.3,    15);
		System.out.println("\t图书列表");
		System.out.println("图书编号\t图书名称\t\t图书单价\t库存数量");
		System.out.println("-------------------------------------------------");
		for (int i = 0; i < books.length; i ++) {
			System.out.println(i+1+"\t"+books[i].getName()+"\t"+books[i].getPrice()+"\t"+books[i].getStorage());
		}
		System.out.println("--------------------------------------------------");
	}

}

九九乘法表

package jjcfb;

public class Jjcfb {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1,j= 1;i<=9;j++) {
			System.out.print(i+"*"+j+"="+(i*j)+"\t");
			if(i==j) {
				i++;
				j=0;
				System.out.println();
			}
		}
	}
}

整数100以内能被3整除的两位整数的和

package liangweishudehe;

public class LiangWeiShuDeHe {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum=0;
		for(int i=10;i<=99;i++) {
			if(i%3==0) {
				sum+=i;
			}
		}
		System.out.println("所有能被3整除的两位整数的和为:"+sum);
	}

}

水仙花数目

package shuixianhuashu;

public class ShuiXianHuaShu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
 for (int i = 100; i <= 999; i++) {
	 int bai = i / 100;
	 int shi = i / 10 % 10;
	 int ge = i % 10;
	 if (bai * bai * bai + shi * shi * shi + ge * ge * ge == i) {
		 System.out.println(i);
		 }
	 }

}
}

100以内素数

package sushu;
public class Sushu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	int i,j;
	for(i=2;i<=100;i++) {
		for(j =2;j<=i;j++) {
			if(i%j==0)
				break;
		}
		if(j >=i)
			System.out.println(i);
	}
	}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供一个Java-Spring Boot集成银联充值的案例。下面是一个简单的示例代码: 首先,您需要添加银联支付SDK的依赖项到您的项目中。您可以在Maven或Gradle中添加以下依赖项: ```xml <dependency> <groupId>com.unionpay</groupId> <artifactId>acp-sdk</artifactId> <version>1.0.0</version> </dependency> ``` 接下来,您需要创建一个Controller类来处理充值请求和回调通知: ```java @RestController @RequestMapping("/payment") public class PaymentController { @PostMapping("/recharge") public String recharge(@RequestParam("orderId") String orderId, @RequestParam("amount") String amount) { // 构建支付请求参数 Map<String, String> requestData = new HashMap<>(); requestData.put("orderId", orderId); requestData.put("txnAmt", amount); // 其他参数... // 发送支付请求 Map<String, String> responseData = UnionPayUtils.postRequest(requestData); // 处理支付结果 String respCode = responseData.get("respCode"); if ("00".equals(respCode)) { // 支付成功逻辑 return "Payment success"; } else { // 支付失败逻辑 return "Payment failed"; } } @PostMapping("/notify") public void notifyCallback(HttpServletRequest request, HttpServletResponse response) throws IOException { // 解析回调通知参数 Map<String, String> responseData = UnionPayUtils.parseNotifyData(request.getParameterMap()); // 处理回调通知结果 String respCode = responseData.get("respCode"); if ("00".equals(respCode)) { // 回调处理成功逻辑 response.getWriter().write("success"); } else { // 回调处理失败逻辑 response.getWriter().write("fail"); } } } ``` 在上述代码中,`recharge`方法处理充值请求,构建支付请求参数并发送支付请求,然后根据支付结果进行逻辑处理。`notifyCallback`方法处理银联的回调通知,解析通知参数并根据结果进行逻辑处理。 最后,您需要编写工具类`UnionPayUtils`来处理银联支付相关的操作,例如发送请求、解析回调通知等。 这只是一个简单的示例代码,实际的集成可能需要更多的逻辑和安全性处理。希望这个例子对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值