单元一公式计算
课题一 三角形面积
按公式s=1/2ah求三角形面积.
public static void Text1(){
Scanner in = new Scanner(System.in);
System.out.print("请输入三角形的底边长a:");
double a = in.nextDouble();
System.out.print("请输入三角形的高h:");
double h = in.nextDouble();
double s = 0.5*a*h;
System.out.print("三角形的面积为:"+s);
}
课题二 平行四边形周长
按公式c=2(a+b)求平行四边形周长.
public static void Text2(){
Scanner in = new Scanner(System.in);
System.out.print("请输入平行四边形a:");
double a = in.nextDouble();
System.out.print("请输入平行四边形b:");
double b = in.nextDouble();
double c = 2*(a+b);
System.out.print("平行四边形的周长为:"+c);
}
课题三 长方体体积
按公式v=abh求长方体体积.
public static void Text3(){
Scanner in = new Scanner(System.in);
System.out.print("请输入长方体的a:");
double a = in.nextDouble();
System.out.print("请输入长方体的b:");
double b = in.nextDouble();
System.out.print("请输入长方体的h:");
double h = in.nextDouble();
double v = a*b*h;
System.out.print("长方体的体积为:"+v);
}
课题四 圆柱体体积
按公式v=Πr^2h求圆柱体体积.
public static void Text4(){
Scanner in = new Scanner(System.in);
System.out.print("圆柱体的r:");
double r = in.nextDouble();
System.out.print("圆柱体的h:");
double h = in.nextDouble();
double v = 3.14*r*r*2*h;
System.out.print("圆柱体体积为:"+String.format("%.2f",v));//保留小数点后两位
}
课题五 圆锥体体积
按公式v=1/3∏r^2h求圆锥体体积.
public static void Text5(){
Scanner in = new Scanner(System.in);
System.out.print("圆锥体vvv的r:");
double r = in.nextDouble();
System.out.print("圆锥体的h:");
double h = in.nextDouble();
double v = (3.14*r*r*2*h)/3;
System.out.print("圆锥体体积为:"+String.format("%.2f",v));//保留小数点后两位
}
课题六 电路功率
按公式W=U^2/R求电路功率.
public static void Text6(){
Scanner in = new Scanner(System.in);
System.out.print("电路U:");
double U = in.nextDouble();
System.out.print("电路R:");
double R = in.nextDouble();
double W = U*U/R;
System.out.print("电路功率为:"+String.format("%.2f",W));//保留小数点后两位
}
课题七 电路功率
按公式W=I^2R求电路功率.
public static void Text7(){
Scanner in = new Scanner(System.in);
System.out.print("电路I:");
double I = in.nextDouble();
System.out.print("电路R:");
double R = in.nextDouble();
double W = I*I*R;
System.out.print("电路功率为:"+String.format("%.2f",W));//保留小数点后两位
}
单元二多路分支
课题一 利润提成
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
public static void Text1(){
Scanner in = new Scanner(System.in);
System.out.println("请输入当月利润I:");
double I = in.nextDouble();
if(I > 0){
if(I <= 100000){
double money = I + I * 0.1;
System.out.println("应发奖金数为:"+money);
}else if(I > 100000 && I <= 200000){
double money = I + (I-100000) * 0.075 + 10000;
System.out.println("应发奖金数为:"+money);
}else if(I > 200000 && I <= 400000){
double money = I + (I-200000) * 0.05 + 17500;
System.out.println("应发奖金数为:"+money);
}else if(I > 400000 && I <= 600000){
double money = I + (I-400000) * 0.03 + 27500;
System.out.println("应发奖金数为:"+money);
}else if(I > 600000 && I <= 1000000){
double money = I + (I-600000) * 0.015 + 33500;
System.out.println("应发奖金数为:"+money);
}else if(I > 1000000){
double money = I + (I-1000000) * 0.01 + 39500;
System.out.println("应发奖金数为:"+money);
}
}
}
课题二 电费收取
供电公司对每月电费在100度以下的普通客户每度电收0.5元;超过100度低于300度超过部分每度收0.8元;超过300度低于1000度超过部分每度收1.2元;超过1000度超过部分每度收2元.输入客户的用电度数,求应收电费的金额.
public static void Text2(){
Scanner in = new Scanner(System.in);
System.out.println("请输入客户用电度数:");
double KWH = in.nextDouble();
if(KWH > 0){
if(KWH <= 100){
double money = KWH * 0.5;
System.out.println("应收电费为:"+money);
}else if(KWH <= 300 && KWH > 100){
double money = (KWH-100) * 0.8 + 50;
System.out.println("应收电费为:"+money);
}else if(KWH <= 1000 && KWH > 300){
double money = (KWH-300) * 1.2 + 210;
System.out.println("应收电费为:"+money);
}else if(KWH > 1000){
double money = (KWH-1000) * 2 + 1050;
System.out.println("应收电费为:"+money);
}
}
}
课题三 星期输出
输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
public static void Text3(){
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个字母:");
char c = in.next().charAt(0);
switch (c){
case 'm':
System.out.println("星期一:monday");
break;
case 't':
System.out.println("第一个字母一样请输入第二个字母:");
char c2 = in.next().charAt(0);
if(c2 == 'u'){
System.out.println("星期二:tuesday");
}else{
System.out.println("星期四:thursday");
}
break;
case 'w':
System.out.println("星期三:wednesday");
break;
case 'f':
System.out.println("星期五:friday");
break;
case 's':
System.out.println("第一个字母一样请输入第二个字母:");
char c3 = in.next().charAt(0);
if(c3 == 'a'){
System.out.println("星期六:saturday");
}else{
System.out.println("星期日:sunday");
}
break;
default:
System.out.println("没有这个星期");
}
}
课题四 个税征收
假设个人所得税的征收办法是:月收入低于2000元者,不计税;高于2000元低于3500元者,高出部分征收5%;高于3500元低于5000元者,高出部分征收10%;高于5000元低于10000元者,高出部分征收15%;高于10000元者,高出部分征收20%。输入一个月的收入,求出其应征收的个人所得税。
public static void Text4(){
Scanner in = new Scanner(System.in);
System.out.println("请输入一个月的收入:");
double sal = in.nextDouble();
if(sal > 0){
if(sal <= 2000){
System.out.println("征收的所得税为: 0");
}else if(sal > 2000 && sal <= 3500){
double sal2 = (sal-2000)*0.05;
System.out.println("征收的所得税为: "+sal2);
}else if(sal > 3500 && sal <= 5000){
double sal2 = (sal-3500) * 0.1 + 75;
System.out.println("征收的所得税为: "+sal2);
}else if(sal > 5000 && sal <= 10000){
double sal2 = (sal-5000) * 0.15 + 225;
System.out.println("征收的所得税为: "+sal2);
}else if(sal > 10000){
double sal2 = (sal-10000) * 0.15 + 975;
System.out.println("征收的所得税为: "+sal2);
}
}else{
System.out.println("一个月收入不能为负数");
}
}
课题五 幼儿园编班
对幼儿园小朋友编班,1~2岁的编入小班,3~4岁的编入中班,5~6岁的编入大班.输入小朋友的年龄,输出应上哪个班.
public static void Text5(){
Scanner in = new Scanner(System.in);
System.out.println("请输入小朋友的年龄:");
int age = in.nextInt();
if(age > 0){
if(age >= 1 && age <= 2){
System.out.println("编入小班");
}else if(age >= 3 && age <= 4){
System.out.println("编入中班");
}else if(age >= 5 && age <= 6){
System.out.println("编入大班");
}else{
System.out.println("年龄不符合");
}
}
}
课题六 快递收费
快递公司对重量在1公斤以下的快递收费10元;超过1公斤低于10公斤的快递超过部分每公斤加收0.5元;超过10公斤低于50公斤的快递超过部分每公斤加收0.3元;超过50公斤的快递超过部分每公斤加收0.1元.输入某位客户快递的重量w,求收费f
public static void Text6(){
Scanner in = new Scanner(System.in);
System.out.println("输入快递的重量公斤w:");
double w = in.nextDouble();
if(w > 0){
if(w <= 1){
System.out.println("收费f:"+10);
}else if(w > 1 && w <= 10){
double f = (w-1)*0.5+10;
System.out.println("收费f:"+f);
}else if(w > 10 && w <= 50){
double f = (w-10)*0.3+14.5;
System.out.println("收费f:"+f);
}else if(w > 50){
double f = (w-50)*0.1+26.5;
System.out.println("收费f:"+f);
}
}else{
System.out.println("输入无效重量");
}
}
课题七 成绩评定
输入一个分数x(0--100)按下列情况输出其属于那个级别.
x≥90 优秀
80≤x<90 良好
70≤x<80 中等
60≤x<70 及格
x<60 不及格
public static void Text7(){
Scanner in = new Scanner(System.in);
System.out.println("输入一个分数(0--100):");
float score = in.nextFloat();
if(score >= 0 && score <= 100){
if(score >= 90 && score <= 100){
System.out.println("优秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}else{
System.out.println("输入成绩无效");
}
}
单元三基本循环(要求用while语句设计)
课题一 统计及格不及格人数
输入一个班某门课的成绩,统计及格不及格的人数.
/**统计及格不及格人数**/
public static void Text1(){
Scanner in = new Scanner(System.in);
int i = 1;
int S_true = 0;
int S_false = 0;
while(true){
System.out.println("请输入第"+i+"个同学的成绩(0--100) 大于100退出");
double score = in.nextDouble();
if(score >= 0 && score <= 100){
if(score >= 60){
S_true++;
}else{
S_false++;
}
System.out.println("及格的有"+S_true+"" +
"个 不及格的有"+S_false+"个"+"\n");
}else{
System.out.println("输入错误");
return;
}
i++;
}
}
课题二 最高分和最低分
输入一个班某门课的成绩,输出最高分和最低分.
/**最高分和最低分**/
public static void Text2(){
double Min = 101;
double Max = 0;
int i = 1;
Scanner in = new Scanner(System.in);
while(true){
System.out.println("请输入第"+(i++)+"个同学的成绩(0--100) 大于100退出");
double score = in.nextDouble();
if(score >= 0 && score <= 100){
if(Max < score){
Max = score;
}
if(Min > score){
Min = score;
}
}else{
break;
}
System.out.println("班级最大分数="+Max+" 班级最小分数="+Min+"\n");
}
}
课题三统计字母和非字母个数
输入一句英文,统计字母和非字母的个数.
/**统计字母和非字母个数**/
public static void Text3(){
Scanner in = new Scanner(System.in);
System.out.println("输入一句英文,统计字母和非字母的个数");
String str = in.next();
int i = 0;
int num1 = 0;
int num2 = 0;
while (true){
if((str.charAt(i) >= 65 && str.charAt(i) <= 90) || (str.charAt(i) >= 97 && str.charAt(i) <= 122)){
num1++;
}else{
num2++;
}
if(++i >= str.length()){
break;
}
}
System.out.println("字母个数="+num1+"非字母个数="+num2);
}
课题四 选票统计
张同学和王同学竞选班长,编写统计选票的程序.
/**选票统计**/
public static void Text4(){
Scanner in = new Scanner(System.in);
int Zhang = 0;
int Wang = 0;
while(true){
System.out.println("张同学和王同学竞选班长(输入1选张同学," +
"2选王同学,否者退出):)");
int i = in.nextInt();
if (i == 1){
Zhang++;
}else if(i == 2){
Wang++;
}else{
break;
}
System.out.println();
}
System.out.println("张同学票数为:"+Zhang+" 王同学票数为:"+Wang);
}
课题五 评委打分
歌手大奖赛有10位评委打分,10位评委分数的平均分就是每个歌手的最后得分,编写计算歌手最后得分的程序.
/**评委打分**/
public static void Text5(){
Scanner in = new Scanner(System.in);
int i = 1;
double sum = 0;
while(i <= 3){
System.out.println("第"+i+"个评委打分:");
double score = in.nextDouble();
sum += score;
i++;
}
System.out.println("歌手最后得分为:"+sum/(i-1));
}
课题六 统计个数
编写程序统计100以内能被3整除的偶数有多少个.
/**统计个数**/
public static void Text6(){
int i = 0;
int num = 0;
while(i <= 100){
i++;
if(i%3 == 0 && i%2 == 0){
System.out.print(i+" ");
num++;
}
}
System.out.println("\n100以内能被3整除的偶数有"+num+"个");
}
课题七 闰年个数
编写程序统计2000年--3000年有多少个闰年.
/**闰年个数**/
public static void Text7(){
int year = 2000;
int i = 0;
while (year <= 3000){
if(year%4 == 0 || year%400 == 0 ){
i++;
}
year++;
}
System.out.print("闰年个数为"+i);
}
单元四循环累和
课题一 累和
求s=a+aa+aaa+aaaa+…的值,其中a是一个数字。例如2+22+222+2222+22222 (此时a=2,共有5个数相加,几个数相加和a的值由键盘输入控制)
/**累和**/
public void Text01(int ge,int num){
int sum = 0;
for(int i = 1;i <= ge;i++){
for(int j = 0;j < i;j++){
sum += (int) (num*Math.pow(10,j));
}
}
System.out.println(sum);
}
课题二 阶乘累和
求1!+2!+3!+...+20!的和
/**阶乘累和**/
public void Text02(int num){
long sum = 0;
long sum2;
for(int i = 1;i <= num;i++){
sum2 = 1;
for(int j = 1;j <= num;j++){
sum2 *= j;
System.out.print(sum2+" ");
}
sum += sum2;
}
System.out.println("阶乘和为"+sum);
}
课题三 计算问题
计算 1-1/2+1/3-1/4+…+1/19-1/20。
/**计算问题**/
public void Text03(int num){
double sum = 0;
for(int i = 1;i <= num;i++){
if(i%2 != 0){
sum += (double)(1.0/i);
}else{
sum -= (double)(1.0/i);
}
}
System.out.println(sum);
}
课题四 计算问题
计算12-22+32-42+…+192-202。
/**计算问题**/
public void Text04(int num){
int sum = 0;
for(int i = 1;i <= num;i++){
if(i%2 != 0){
sum += 2+(10*i);
}else{
sum -= 2+(10*i);
}
}
System.out.println(sum);
}
课题五 分式累和
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
/**分式累和**/
public void Text05(int num){
double sum = 0;
int x = 2;
int y = 1;
int j = 0;
for(int i = 1;i <= num;i++){
sum += (double) x/y;
j = x;
x = x+y;
y = j;
}
System.out.println(sum);
}
课题六 分式累和
当输入n为偶数时,求1/2+1/4+1/6+...+1/n;当输入n为奇数时,求1/1+1/3+1/5+...+1/n。
/**分式累和**/
public void Text06(int num){
double sum = 0;
int j = 0;
int x = 0;
int y = 0;
int temp = 0;
if(num%2 != 0){//奇数
x = 1;
y = 1;
for(int i = 1;i <= num;i++){
sum += (double) x/y;
y += 2;
}
}else{
x = 1;
y = 2;
for(int i = 1;i <= num;i++){
sum += (double) x/y;
y += 2;
}
}
System.out.println(sum);
}
课题七 第几天
输入某年某月某日,判断这一天是这一年的第几天?
public void Text07(int year,int mth,int d){
int day = 0;
int [] month = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if((year%4 != 0 && year%100 != 0) || year % 400 != 0){//平年28
for(int i = 0;i < mth;i++){
day += month[i];
}
day += d;
}else{//闰年29
month[2] +=1;
for(int i = 0;i < mth;i++){
day += month[i];
}
day += d;
}
System.out.println(day);
}
单元五循环递推
课题一 猴子吃桃
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
课题二 古典兔子问题
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问二十个月中每个月的兔子总数为多少?
课题三 年龄问题
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?
课题四 猴子分桃
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
课题五 反弹高度
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
课题六 递增的牛群
若一头小母牛,从第四年开始每年生一头母牛,按此规律,第二十年时,有多少头母牛?
课题七求正弦值
有公式sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-x^11/11!+...(注:x^n表示x的n次方),从键盘输入x,输出相应正弦值,精确到0.000001.
单元六循环穷举
课题一 排列组合
有1—4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
课题二 算式推导
下列乘法算式中:每个汉字代表1个数字(0~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。
赛软件 *比赛=软件比拼
试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。参考结果: 465 *14=6510
课题三 最小五位数
找出由1,2,3,4,5五个数字组成的能被7整除的最小五位数.
课题四 比赛名单
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
课题五 钞票兑换
要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少一张,编程输出所有可能的换法。
课题六 搬砖问题
36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次搬完,问需要男、女、小孩各多少?
课题七 水仙花数
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
单元七循环综合
课题一 打印年历
任意输入某一年,象挂历一样在屏幕上输出该年十二个月份的年历.
课题二 分解质因数
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
课题三 误差计算
某次测量得到10个测量数据,计算这次测量的平均误差.计算方法是先求出10个测量数据的平均值也就是这次测量的准确值,每个测量数据与准确值的差的绝对值就是这个数据的误差,10个测量数据误差的平均值就是这次测量的平均误差.
课题四 评委打分
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个计算选手最后得分的程序.
课题五 打印菱形
打印出以下菱形图案
* 1
*** 3
***** 5
******* 7
********* 9
*********** 11
********* 9
******* 7
***** 5
*** 3
* 1
#include <stdio.h>
int main()
{
int i, j, k;//i是行数,j是空白,k是*
for (i = 1; i <= 6; i++) {
for (j = 1; j <= 6 - i; j++) {
printf(" ");
}
for (k = 1; k <= i * 2 - 1; k++) {
printf("*");
}
printf("\n");
}
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
printf(" ");
}
for (k = 1; k <= 11 - i*2; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
课题六 数制转换
输入一个十六进制数,输出相应十进制数.
课题七 提取奇位数
任意输入一个长整数,此数的个位、十位、百位、千位、…分别为第1位、2位、3位、4位、…,将所有奇位数字提取出来合成一个新的数并输出.例如:输入98765432,输出8642.
单元八数组基本应用
课题一 最高分和最低分
输入一个班级某门课程的成绩存入数组,求最高分和最低分.
课题二 统计人数
输入一个班级某门课程的成绩存入数组,统计优、良、中、及、不及的人数.
课题三 分数处理
输入一个班级某门课程的成绩存入数组,将不及格的同学改为及格,其它同学每人加10分后输出全班成绩.
课题四 高于平均分人数
输入一个班级某门课程的成绩存入数组,统计高于平均分的人数.
课题五 对应数组
输入一个班级某门课程的成绩存入数组a,建立另一个字符型数组b,如果数组a中元素分数及格则b数组中对应元素赋值为't',否则赋值为'f',最后将a和b二个数组对应输出.
课题六 字符个数
输入一句英文,统计字母、数字、其它符号的个数.
课题七 变换大写
输入一句英文,将所有字母变成大写后输出.