引例:实现类似C#输入功能的Console类
实现:
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:实现类似C#输入功能的Console类 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 20 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ import java.util.Scanner; public class Console { public static String readLine(){ Scanner sc=new Scanner(System.in); return sc.next(); } public static char readLine_char(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return str.charAt(0); } public static int readInt(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Integer.parseInt(str); } public static double readDouble(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Double.parseDouble(str); } }
1. 使用八种基本数据类型定义八个变量,然后在控制台输出各个变量的值。
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:使用八种基本数据类型定义八个变量,然后在控制台输出各个变量的值。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 09 月 16 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
public class Exercise_01 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean flag = true;
char yeschar = 'y';
byte finbyte = 30;
int intvalue = -70000;
long lonngvalue = 200;
short shortvalue = 20000;
float floatvalue = 9.997f;
double doublevalue = 1.117;
System.out.println("The values are:");
System.out.println("布尔类型变量 flag="+flag);
System.out.println("字符类型变量 yeschar="+yeschar);
System.out.println("字节类型变量 finbyte="+finbyte);
System.out.println("整型变量 intvalue="+intvalue);
System.out.println("长整型变量 lonngvalue="+lonngvalue);
System.out.println("短整型变量 shortvalue="+shortvalue);
System.out.println("浮点型变量 floatvalue="+floatvalue);
System.out.println("双精度浮点型变量 doublevalue"+doublevalue);
}
}
2. 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。2. 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。
/*
* @Copyright:2011 Shandong Strong software co,ltd.
* All right reserved.
* @author:zy
* @date:2012-9-14
* @version:1.0
*/
/*
*comment:一句话概括类完成的功能
*description:详细描述类的功能
*/
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 09 月 16 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
public class Exercise_02
{
/*
*@function:
*@param:
*@return:
*@exception
*/
public static void main(String[] args)
{
System.out.println("请输入学生的学号:");
int stuNo=Console.readInt();
System.out.println("请输入学生的姓名:");
String name=Console.readLine();
System.out.println("请输入学生的性别:");
String sex = Console.readLine();
System.out.println("请输入学生的年龄:");
int age=Console.readInt();
System.out.println("请输入学生的身高:");
int heigh=Console.readInt();
System.out.println("请输入学生的体重:");
int weight=Console.readInt();
System.out.println("学生的基本信息为:");
System.out.println("学号 姓名 性别 年龄 身高 体重");
System.out.println(stuNo+" "+name+" "+sex+" "+age+" "+heigh+" "+weight);
}
}
3. 张三要购买T恤,T恤单价及数量由用户输入,李四要购买网球,网球单价及数量由用户输入; 计算张三及李四各自消费总额并输出.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 张三要购买T恤,T恤单价及数量由用户输入,李四要购买网球,网球单价及数量由用户输入; 计算张三及李四各自消费总额并输出. * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_03 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入张山购买T恤的数量:"); int number01 = Console.readInt(); System.out.println("请输入张山购买T恤的单价:"); int number02 = Console.readInt(); System.out.println("请输入李四购买网球的数量:"); int number03 = Console.readInt(); System.out.println("请输入李四购买网球的单价:"); int number04 = Console.readInt(); int cost01 = number01 * number02; int cost02 = number03 * number04; System.out.println("客户 消费金额"); System.out.println("张山"+" "+cost01); System.out.println("李四"+" "+cost02); } }
4. 从键盘上输入一个整数,计算各个位数之和
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个整数,计算各个位数之和 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_03 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入张山购买T恤的数量:"); int number01 = Console.readInt(); System.out.println("请输入张山购买T恤的单价:"); int number02 = Console.readInt(); System.out.println("请输入李四购买网球的数量:"); int number03 = Console.readInt(); System.out.println("请输入李四购买网球的单价:"); int number04 = Console.readInt(); int cost01 = number01 * number02; int cost02 = number03 * number04; System.out.println("客户 消费金额"); System.out.println("张山"+" "+cost01); System.out.println("李四"+" "+cost02); } }
5. 输入一个数字,使用if语句判断匹配的数字。
如果输入的是:
1>. 打印:您输入的数字是1
2>. 打印:您输入的数字是2
3>. 打印:您输入的数字式3
其他数字 打印:输入了不符合规范的数字
注:使用if-else及switch 两种方式分别实现。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:输入一个数字,使用if语句判断匹配的数字。 如果输入的是: 1>. 打印:您输入的数字是1 2>. 打印:您输入的数字是2 3>. 打印:您输入的数字式3 其他数字 打印:输入了不符合规范的数字 注:使用if-else及switch 两种方式分别实现。 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_05 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入一个整数:"); int number = Console.readInt(); System.out.println("用if-else语句实现"); if (number == 1) { System.out.println("您输入的数字是:" + number); } else if (number == 2) { System.out.println("您输入的数字是:" + number); } else if (number == 3) { System.out.println("您输入的数字是:" + number); } else { System.out.println("您输入了不符合规范的数字!"); } System.out.println("用switch语句实现"); switch (number) { case 1: System.out.println("您输入的数字是:" + number); break; case 2: System.out.println("您输入的数字是:" + number); break; case 3: System.out.println("您输入的数字是:" + number); break; default: System.out.println("您输入了不符合规范的数字!"); } } }
6. 从键盘上输入一个年份,判断该年是平年还是闰年。6. 从键盘上输入一个年份,判断该年是平年还是闰年。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个年份,判断该年是平年还是闰年。 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_06 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请输入一个您想判断的年份:"); int i = Console.readInt(); if (i % 4 == 0 && i % 100 != 0) { System.out.println(i + "年是闰年"); } else { System.out.println(i + "年是平年"); } } }
7. 从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。7. 从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_07 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("您需要输入年份:"); int year = Console.readInt(); System.out.println("您需要输入月份:"); int month = Console.readInt(); if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { System.out.println(year+"年"+month+"月一共"+31+"天"); } else if(month==4||month==6||month==9||month==11) { System.out.println(year+"年"+month+"月一共"+30+"天"); } else { if(year % 4 == 0 && year % 100 != 0) { System.out.println(year+"年"+month+"月一共"+28+"天"); } else { System.out.println(year+"年"+month+"月一共29天"); } } } }
8. 从键盘上输入一个年份,并输入一个月份,计算从当前年份1月1号只当前第month个月共有多少天(如输入年份为2011,月份为3月,则计算,从1月1号到3月1号共多少天。输入年份为2004,月份为10月,则计算,从1月1号到10月1号共多少天即计算从1月n-1月共有多少天)
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:8. 从键盘上输入一个年份,并输入一个月份, 计算从当前年份1月1号只当前第month个月共有多少天 (如输入年份为2011,月份为3月,则计算,从1月1号到3月1号共多少天。输入年份为2004,月份为10月, 则计算,从1月1号到10月1号共多少天即计算从1月n-1月共有多少天) * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_08 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("您需要输入年份:"); int year = Console.readInt(); System.out.println("您需要输入月份:"); int month = Console.readInt(); boolean b = Leap_Common_year(year);//判断平年还是闰年 System.out.print(year+"年1月1日到"+year+"年"+month+"月1日一共"); switch(month) //判断月份 { case 1:month_1(1);break;//根据日期计算出是哪一天 case 2:month_2(1);break; case 3:month_3(1,b);break; case 4:month_4(1,b);break; case 5:month_5(1,b);break; case 6:month_6(1,b);break; case 7:month_7(1,b);break; case 8:month_8(1,b);break; case 9:month_9(1,b);break; case 10:month_10(1,b);break; case 11:month_11(1,b);break; case 12:month_12(1,b);break; default: System.out.println("您输入的月份有误..."); break; } } static boolean Leap_Common_year(int year)//判断平年还是闰年 { boolean b; if (year % 4 == 0 && year % 100 != 0) { b = false; } else { b = true; } return b; } static void month_1(int date) { System.out.println(1+"天"); } static void month_2(int date) { int d; d = 31 + date; System.out.println(d+"天"); } static void month_3(int date, boolean b) { int d; if (b) { d = 31 + 28 + date; } else { d = 31 + 29 + date; } System.out.println(d+"天"); } static void month_4(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + date; } else { d = 31 + 29 + 31 + date; } System.out.println(d+"天"); } static void month_5(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_6(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_7(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_8(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_9(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + date; } System.out.println(d+"天"); } static void month_10(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_11(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_12(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date; } System.out.println(d+"天"); } }
9. 设有int n,设计一个Java程序,打印出1+3+5+…n之和,变量n的初始值在程序中指定。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:设有int n,设计一个Java程序,打印出1+3+5+…n之和,变量n的初始值在程序中指定。 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_09 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int n = 5,sum =0; for(int i = 1;i<=n;i=i+2) { sum = sum + i; } System.out.println("和为"+sum); } }
10. 实现如下程序:
1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入,如图1所示:
2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图2所示:
3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图3所示:
10. 实现如下程序:
1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入,如图1所示:
2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图2所示:
3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图3所示:
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:10. 实现如下程序: 1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入: 2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入: 3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入: * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_10 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("打印正三角:"); System.out.print("请您输入打印三角形的行数:"); int i = Console.readInt(), k = 1, l = i; for (int j = 1; j <= l; ++j) { int m = 1; while (m <= i - 1) { System.out.print(' '); ++m; } m = 1; while (m <= 2 * j - 1) { System.out.print('*'); ++m; } System.out.println(); --i; } System.out.println("打印倒三角:"); System.out.print("请您输入打印三角形的行数:"); i = Console.readInt(); k = 1; l = i; for (int j = 1; j <= l; ++j) { int m = 1; while (m < j) { System.out.print(' '); ++m; } m = 1; while (m <= 2 * i - 1) { System.out.print('*'); ++m; } System.out.println(); --i; } System.out.println("打印菱形:"); System.out.print("请您输入打印菱形的行数:"); i = (Console.readInt()+1)/2; k = 1; l = i; for (int j = 1; j <= l; ++j) { int m = 1; while (m <= i - 1) { System.out.print(' '); ++m; } m = 1; while (m <= 2 * j - 1) { System.out.print('*'); ++m; } System.out.println(); --i; } i = l; k = 1; --i; for (int j = 2; j <= l; ++j) { int m = 1; while (m < j) { System.out.print(' '); ++m; } m = 1; while (m <= 2 * i - 1) { System.out.print('*'); ++m; } System.out.println(); --i; } } }
11. 求1000之内的所有水仙花数
本程序是Application程序.所谓水仙花数,是指一个三位整数,
它的各位数字的立方和等于这个数本身.
例如:371就是一个水仙花数,因为371=3*3*3+7*7*7+1*1*1.
(int i
bw = i/100;
shw = i%100/10或i/10%10;
gw = i%10
12. 求1000之内的所有完全数
本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和.
例如:
6的因子为1,2,3,而6=1+2+3,因此6就是完全数.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1000之内的所有完全数 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_11 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int bw,shw ,gw,sum ; System.out.println("1000之内的所有水仙花数为:"); for (int i=100;i<1000;++i) { bw = i/100; shw = i%100/10; gw = i%10; sum = bw*bw*bw+shw*shw*shw+gw*gw*gw; if(sum==i) { System.out.println(i); } } } }
12. 求1000之内的所有完全数
本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和.
例如:
6的因子为1,2,3,而6=1+2+3,因此6就是完全数.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1000之内的所有完全数 本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和. 例如: 6的因子为1,2,3,而6=1+2+3,因此6就是完全数. * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_12 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i=1,j=1,m=1,k=0; System.out.println("1000之内的所有完全数为:"); for (i=1;i<1000;++i) { for(j = 1,k =0;i>j;++j) { if (i%j==0) k=k+j; } if (i==k) System.out.println(i); } } }
13. 求1~5的阶乘之和
本程序是一个Application程序,求1~20的阶乘之和,
也就是求表达式1+2!+...+5!的值
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1~5的阶乘之和 本程序是一个Application程序,求1~20的阶乘之和, 也就是求表达式1+2!+...+5!的值 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_13 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum = 0,i = 1,factorial =1; for(i = 1;i <= 20;++i) { factorial = factorial * i; sum = sum + factorial; } System.out.println("1到20的阶乘为:"+sum); } }
14. 实现一个计算器,用户从键盘输入两个操作数和一个运算符(+、-、*、/、%),系统自动完成计算。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 实现一个计算器,用户从键盘输入两个操作数和一个运算符(+、-、*、/、%),系统自动完成计算。 * * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ public class Exercise_14 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请您输入第一个操作数:"); int first = Console.readInt(); System.out.print("请您输入一个运算符:"); char operator = Console.readLine_char(); System.out.print("请您输入第二个操作数:"); int second = Console.readInt(); switch(operator) { case '+':System.out.println("first + second = "+(first + second));break; case '-':System.out.println("first - second = "+(first - second));break; case '*':System.out.println("first * second = "+(first * second));break; case '/':System.out.println("first / second = "+((double)first / second));break; default:System.out.println("您输入的运算符有误!");break; } } }
下面是Console类:
import java.util.Scanner; /* * @Copyright:2011 Shandong Strong software co,ltd. * All right reserved. * @author:zy * @date:2012-9-14 * @version:1.0 */ /* *comment:一句话概括类完成的功能 *description:详细描述类的功能 */ public class Console { public static String readLine(){ Scanner sc=new Scanner(System.in); return sc.next(); } public static char readLine_char(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return str.charAt(0); } public static int readInt(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Integer.parseInt(str); } public static double readDouble(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Double.parseDouble(str); } }