1,个人所得税计算器:编写程序实现个人所得税的计算,要求输入工资总额和三险一金总额,求出本月应纳个税。 全月应纳税所得额=本月工资总额—三险一金—个税起征点(2000.00) 个人所得税率计算表: 级数 全月应纳税所得额 税率(%) 1 不超过500元的 5 2 超过500元至2,000元的部分 10 3 超过2,000元至5,000元的部分 15 4 超过5,000元至20,000元的部分 20 5 超过20,000元至40,000元的部分 25 6 超过40,000元至60,000元的部分 30 7 超过60,000元至80,000元的部分 35 8 超过80,000元至100,000元的部分 40 9 超过100,000元的部分 45 2,编写程序,将一个整数倒排过来,例如:给定整数:4982,得到的结果:2894。 3,在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * *** ***** ******* ********* 4,用二维字符数组保存一首唐诗(五言或七言),每一行代表一句,要求将这首唐诗按照古文的方式输出出来(从右至左,竖行排列)。 5,为某酒店设计一套前台房间管理系统,该系统可以通过在命令行输入命令来为客人办理入住和退房手续。 要求该系统支持通过命令行输入以下命令来进行入住,退房及查询的操作。 search all :查询所有房间的状态 search ST :查询所有标准间的状态 in 1202 tangliang :姓名为tangliang的客人入住1202房间 out 1202:1202房间退房 1.
- /*
- * Homework1.java
- *
- * xapphiron, 08-21-2008
- *
- * --------------------------------------------------------------------------------------------------
- * 08-20-2008 Homework 5
- *
- * 个人所得税计算器:编写程序实现个人所得税的计算,要求输入工资总额和三险一金总额,求出本月应纳个税。
- * 全月应纳税所得额=本月工资总额—三险一金—个税起征点(2000.00)
- *
- * 个人所得税率计算表:
- * 级数 全月应纳税所得额 税率(%)
- * 1 不超过500元的 5
- * 2 超过500元至2,000元的部分 10
- * 3 超过2,000元至5,000元的部分 15
- * 4 超过5,000元至20,000元的部分 20
- * 5 超过20,000元至40,000元的部分 25
- * 6 超过40,000元至60,000元的部分 30
- * 7 超过60,000元至80,000元的部分 35
- * 8 超过80,000元至100,000元的部分 40
- * 9 超过100,000元的部分 45
- * --------------------------------------------------------------------------------------------------
- */
- package d0820.Homework;
- import java.util.Scanner;
- public class Homework1 {
- public static double calcTax(int x) {
- double sum = 0;
- // < 2000
- if (x <= 2000)
- return 0;
- else
- x -= 2000;
- // < 500
- if (x <= 500)
- return x * 0.05;
- else {
- sum += 500 * 0.05;
- x -= 500;
- }
- // 500 - 2000
- if (x <= 1500)
- return sum + x * 0.1;
- else {
- sum += 1500 * 0.1;
- x -= 1500;
- }
- // 2000 - 5000
- if (x <= 3000)
- return sum + x * 0.15;
- else {
- sum += 3000 * 0.15;
- x -= 3000;
- }
- // 5000 - 20000
- if (x <= 15000)
- return sum + x * 0.2;
- else {
- sum += 15000 * 0.2;
- x -= 15000;
- }
- // 20000 - 40000
- if (x <= 20000)
- return sum + x * 0.25;
- else {
- sum += 20000 * 0.25;
- x -= 20000;
- }
- // 40000 - 60000
- if (x <= 20000)
- return sum + x * 0.3;
- else {
- sum += 20000 * 0.3;
- x -= 20000;
- }
- // 60000 - 80000
- if (x <= 20000)
- return sum + x * 0.35;
- else {
- sum += 20000 * 0.35;
- x -= 20000;
- }
- // 80000 - 100000
- if (x <= 20000)
- return sum + x * 0.4;
- else {
- sum += 20000 * 0.4;
- x -= 20000;
- }
- return sum + x * 0.45;
- }
- public static void main(String args[]) {
- Scanner sc = new Scanner(System.in);
- int salary;
- int m;
- System.out.print("Input salary: ");
- salary = sc.nextInt();
- System.out.print("Input m: ");
- m = sc.nextInt();
- System.out.println("Tax: " + calcTax(salary - m));
- }
- }
2.
- /*
- * Homework2.java
- *
- * xapphiron, 08-21-2008
- *
- * --------------------------------------------------------------------------------------------------
- * 编写程序,将一个整数倒排过来,例如:给定整数:4982,得到的结果:2894。
- * --------------------------------------------------------------------------------------------------
- */
- package d0820.Homework;
- import java.util.Scanner;
- public class Homework2 {
- public static void main(String args[]) {
- System.out.print("Input a number: ");
- int x = (new Scanner(System.in)).nextInt();
- int y = 0;;
- while(x > 0) {
- y = y * 10 + x % 10;
- x /= 10;
- }
- System.out.println(y);
- }
- }
3.
- /*
- * Homework3.java
- *
- * xapphiron, 08-21-2008
- *
- * --------------------------------------------------------------------------------------------------
- * 在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:
- * *
- * ***
- * *****
- * *******
- * *********
- * --------------------------------------------------------------------------------------------------
- */
- package d0820.Homework;
- import java.util.Scanner;
- public class Homework3 {
- public static void main(String args[]) {
- System.out.print("Input n: ");
- int n = (new Scanner(System.in)).nextInt();
- for(int i=0; i<n; i++) {
- for(int j=0; j<n-1-i; j++)
- System.out.print(" ");
- for(int j=0; j<2*i+1; j++)
- System.out.print("*");
- System.out.println("");
- }
- }
- }
4.
- /*
- * Homework4.java
- *
- * xapphiron, 08-21-2008
- *
- * --------------------------------------------------------------------------------------------------
- * 用二维字符数组保存一首唐诗(五言或七言),每一行代表一句,要求将这首唐诗按照古文的方式输出出来(从右至左,竖行排列)。
- * --------------------------------------------------------------------------------------------------
- */
- package d0820.Homework;
- public class Homework4 {
- public static void main(String args[]) {
- String c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ12";
- char[][] d = new char[10][10];
- int k=0;
- for (int i=0; i<4; i++)
- for (int j=0; j<7; j++)
- d[i][j] = c.charAt(k++);
- for (int i=0; i<7; i++) {
- for (int j=0; j<4; j++)
- System.out.print(d[3-j][i]);
- System.out.println();
- }
- }
- }
5.
- /*
- * Homework5.java
- *
- * xapphiron, 08-21-2008
- *
- * --------------------------------------------------------------------------------------------------
- * 08-20-2008 Homework 5
- *
- * 为某酒店设计一套前台房间管理系统,该系统可以通过在命令行输入命令来为客人办理入住和退房手续。
- *
- * 要求该系统支持通过命令行输入以下命令来进行入住,退房及查询的操作。
- *
- * search all :查询所有房间的状态
- * search ST :查询所有标准间的状态
- * in 1202 tangliang :姓名为tangliang的客人入住1202房间
- * out 1202:1202房间退房
- * --------------------------------------------------------------------------------------------------
- */
- package d0820.Homework;
- /**
- * The main and only class for Homework 5.
- */
- public class Homework5 {
- /**
- * Room Numbers.
- */
- static String[] roomNums = new String[100];
- /**
- * Room Status. Empty string for empty room. Non empty string for person's name in the room.
- */
- static String[] roomStatus = new String[100];
- /**
- * Whether the room is standard room.
- */
- static boolean[] isST = new boolean[100];
- /**
- * Initialize room numbers, room status and set whether the room is standard room.
- */
- static void initialize() {
- for (int i=0; i<roomNums.length; i++) {
- roomNums[i] = ""+i;
- roomStatus[i] = "";
- isST[i] = (i%2==0);
- }
- }
- /**
- * Get the index of a room with room number specified.
- *
- * @param roomNum
- * Room number.
- */
- static int getRoomIndex(String roomNum) {
- for (int i=0; i<roomNums.length; i++)
- if (roomNums[i].equals(roomNum.toString()))
- return i;
- return -1;
- }
- /**
- * Display all rooms' status.
- */
- static void searchAll() {
- for (int i=0; i<roomNums.length; i++)
- System.out.println("Room " + roomNums[i] + " : " +
- ((roomStatus[i].equals(""))?("Empty"):(roomStatus[i])));
- }
- /**
- * Display all standard rooms' status.
- */
- static void searchST() {
- for (int i=0; i<roomNums.length; i++)
- if (isST[i])
- System.out.println("Room " + roomNums[i] + " : " +
- ((roomStatus[i].equals(""))?("Empty"):(roomStatus[i])));
- }
- /**
- * Set a room's status.
- *
- * @param room
- * Room number.
- * @param name
- * Name of person in specified name.
- */
- static void in(String room, String name) {
- int r = getRoomIndex(room);
- if (r == -1) {
- System.out.println("Room not found.");
- return;
- }
- roomStatus[r] = name;
- }
- /**
- * Set a room's status.
- *
- * @param room
- * Room number.
- */
- static void out(String room) {
- int r = getRoomIndex(room);
- if (r == -1) {
- System.out.println("Room not found.");
- return;
- }
- roomStatus[r] = "";
- }
- /**
- * Main entry of Homework5.
- */
- public static void main(String[] args) {
- // Initialize.
- initialize();
- // Get and process command until the command is "quit".
- String cmd;
- System.out.print("cmd: ");
- while(!(cmd=System.console().readLine().trim()).equalsIgnoreCase("quit")) {
- if (cmd.equalsIgnoreCase("search all")) {
- searchAll();
- }
- else if (cmd.equalsIgnoreCase("search st")) {
- searchST();
- }
- else if (cmd.substring(0,2).equalsIgnoreCase("in")) {
- String[] p = cmd.split(" ");
- in(p[1], p[2]);
- }
- else if (cmd.substring(0,3).equalsIgnoreCase("out")) {
- String[] p = cmd.split(" ");
- out(p[1]);
- }
- else {
- System.out.println("Invalid command");
- }
- System.out.print("cmd: ");
- }
- }
- }