本人初学java想找些编程例子,巩固前面所学,最好关于面向对象三大思想方面和多线程、IO等。不要选择题。

本人初学java想找些编程例子,巩固前面所学,最好关于面向对象三大思想方面和多线程、IO等。不要选择题。,第1张

试题1任务一:求阶乘

l 接受一个输入,输出这个数的阶乘

l 用长整型计算

任务二:输出阶梯形式的99口诀表,如图11所示。

11=1

12=2 22=4

13=3 23=6 33=9

14=4 24=8 34=12 44=16

15=5 25=10 35=15 45=20 55=25

16=6 26=12 36=18 46=24 56=30 66=36

17=7 27=14 37=21 47=28 57=35 67=42 77=49

18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64

19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81

图11 阶梯形式的99口诀表

要求:使用循环结构语句实现。

任务三:编程实现判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

要求:用带有一个输入参数的方法或函数实现,返回值类型为布尔类型。

试题2

任务一:已知某个班有M个学生,学习N门课程,已知所有学生的各科成绩,编程:分别求每个学生的平均成绩,并输出。

要求:

l 定义一个二维数组,用于存放M个学生的N门成绩。定义一个一维数组,用于存放每个学生的平均成绩。

l 做二重循环,将每个学生的成绩输入到该二维数组中。

l 做二重循环,对已经存在于二维数组的中的值进行平均分计算,将结果保存到一个一维数组中。

l 做循环输出该一维数组(即平均分)的值。

任务二:编写一个程序找出100~1000之间的所有姐妹素数。

注:姐妹素数是指相邻两个奇数均为素数。

要求:使用循环结构语句实现。

任务三:求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件outtxt中。例如若n为1000时,函数值应为:s=153909064。

试题3

任务一:求2!+3!+4!+5!

任务二:编写一个程序,对用户输入的任意一组数字字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现的次数。例如,上面输入的字符集合中,“1”和“2”都出现了3次,均为最大出现次数,因为“1”先出现,则输出字符“1”和它出现的次数3次。

任务三:中华人民共和国2011年新的个人所得税草案规定,个税的起征点为3000元,分成7级,税率情况见表13, 从键盘上输入月工资,计算应交纳的个人所得税。

表13税率情况表

级数

全月应纳税所得额 

税率 (%)

1

不超过1500元的(即3000-4500之间)

5

2

超过1500元至4500元的部分

10

3

超过4500元至9000元的部分

20

4

超过9000元至35000元的部分

25

5

超过35000元至55000元的部分

30

6

超过55000元至80000元的部分

35

7

超过80000元的部分

45

注意:超出部分按所在税的级数计算,如:一个人的月收入为6000,应交个人所得税为:1500005 +((6000-3000)-1500)01=225

请在键盘上输入一个人的月收入,编程实现该公民所要交的税。

例如:输入“4000”,则输出“你要交的税为:50”。

试题4

任务一:请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。

任务二:孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃园一共有多少个桃子。

要求:用循环语句实现,从键盘随机输入参数n

任务三:输入一个5位正整数,输出它是不是回文数。回文数是这样一种数,它的逆序数和它本身相等。例如,12321的逆序数是12321,和它本身相等,所以它是回文数。又例如25128的逆序数是82152,所以它不是回文数。

要求:使用分支或循环结构语句实现。

试题5

任务一:判断一个年份N闰年;

输入:年份N

任务二:一个球从100m高度自由落下,每次落地后反d回原高度的一半,再落下,再反d。求它在第十次落地时,共经过多少米第十次反d多高

任务三:Redraiment的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。

今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,依次下去,每次都比上一次晚一天。

Redraiment可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗?

要求:从键盘输入放假日期,开学日期,日期限定在7、8月份,且开学日期大于放假日期。

提示:可以用数组标记停电的日期

试题6

任务一:定义一个电脑类,包含电脑的品牌,价格,型号。

任务二:某班同学上体育课,从1开始报数,共38人,老师要求按1,2,3重复报数,报数为1的同学往前走一步,而报数为2的同学往后退一步,试分别将往前走一步和往后退一步的同学的序号打印出来。

要求:用循环语句实现

任务三:一个人很倒霉,不小心打碎了一位妇女的一篮子鸡蛋。为了赔偿便询问篮子里有多少鸡蛋。那妇女说,她也不清楚,只记得每次拿两个则剩一个,每次拿3个则剩2个,每次拿5个则剩4个,若每个鸡蛋1元,请你帮忙编程,计算最少应赔多少钱?

要求:用循环语句实现,直接打印出结果不给分

试题7

任务一:从键盘接收一个整数N,统计出1~N之间能被7整除的整数的个数,以及这些能被7整除的数的和。

屏幕提示样例:

请输入一个整数:20

1~20之间能被7整除的数的个数:2

1~20之间能被7整除的所有数之和:21

任务二:从键盘输入一个整数N,打印出有N2-1行的菱形。

例如输入整数4,则屏幕输出如下菱形。

要求:使用循环结构语句实现。

任务三:编程实现判断一个整数是否为素数。所谓素整是一个大于1的正整数,除了1和它本身,该数不能被其它的正整数整除。

要求:用带有一个输入参数的方法或函数实现,返回值类型为布尔类型。

试题8

任务一:设计一个学生类,包括学号,姓名,班次,系别,联系电话,并包含一个构造方法。

要求:构造方法必须有5个参数,能对学生类中的属性进行赋初值。

任务二:使用冒泡排序法对数组中的整数按升序进行排序,如下所示:

原始数组:a[]={1,9,3,7,4,2,5,0,6,8}

排序后: a[]={0,1,2,3,4,5,6,7,8,9}

要求:使用循环结构语句实现。

任务三:编程实现以下要求。n个人围坐成一卷,从第一个人开始计数,数到m,第m个人出列,接下来继续计数,直到所有人都出列。例如:共有5个人,数到3出列,则顺序为3,1,5,2,4。

要求:用带有两个输入参数(一个总人数n,一个为计数m)的方法或函数实现,返回值类型为数组。

试题9

任务一:输入一行字符,输出其中的数字的个数。例如输入“fwEt2f44F2k8”,输出结果为5。

任务二:用循环打印杨辉三角到N层

输入:自然数N

任务三:删去一维数组中相同的数

输入 2 3 3 3 4 5 2 9 10 9 3 2 4

输出2 3 4 5 9 10

试题10

任务一:定义一个矩形类,包括长,宽两个属性,计算周长方法和计算面积方法。

任务二:编写程序实现:输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:

能同时被3、5、7整除

能同时被3、5整除

能同时被3、7整除

能同时被5、7整除

只能被3、5、7中的一个整除

不能被3、5、7任一个整除

要求:使用分支结构语句实现。

任务三:寻找最大数经常在计算机应用程序中使用。例如:确定销售竞赛优胜者的程序要输入每个销售员的销售量,销量最大的员工为销售竞赛的优胜者,写一个程序:从键盘输入10个数,打印出其中最大的数。

要求:程序应正确使用如下两个变量:number:当前输入程序的数,largest:到目前为止的最大数。

给你30个题 慢慢做吧

1类是面向对象程序设计的核心,其实是一种复杂的数据类型,封装了不同类型的数据和与这些数据相关的方法。

2类是抽象的(相当于现实生活中的模具,图纸),并不是最终的实体,将抽象化的类具体化后(就是按照模具,图纸生产出实际东西),就成了对象,通常将对象称为类的实体。

所以,类是将现实事物抽象化,而对象是将事物具体化。

举例:张三是一个学生,那么张三其实是比较具体的一个人,而学生则是一个抽象事物。此时可以创建一个学生类,包含学号,年龄,班级等。如果指明张三这些属性,则张三是学生类的一个实体。

创建学生类:student

public

class

student{

public

string

studentno;

public

int

age;

public

string

grade;

}

这就是一个类,一个模具。

通过这个模具,可以生产出来很多产品:

student

zhang

=

new

student();

这句代码,即为创建了一个对象:zhang

希望lz能够通过这个实例,搞懂对象、类和实体之间的关系。

public class Vehicle {

private int wheels;

private double weight;

public Vehicle() { }

public Vehicle(int w, double we) {

thisweight = we;

thiswheels = w;

}

public int getWheels() {

return wheels;

}

public void setWheels(int wheels) {

thiswheels = wheels;

}

public double getWeight() {

return weight;

}

public void setWeight(double weight) {

thisweight = weight;

}

public String showMe(){

return wheels +", " + weight;

}

}

class Car extends Vehicle {

private int loader;

public Car() { }

public Car(int wh, double we, int l) {

super(wh, we);

thisloader = l;

}

public int getLoader() {

return loader;

}

public void setLoader(int loader) {

thisloader = loader;

}

public String showMe(){

return supershowMe()+", "+loader;

}

}

class Truck extends Car {

private double payLoader;

public Truck() {}

public Truck(double p){

thispayLoader = p;

}

public double getPayLoader() {

return payLoader;

}

public void setPayLoader(double payLoader) {

thispayLoader = payLoader;

}

public String showMe(){

return supershowMe()+", "+payLoader;

}

}

一共三个类:ScoreArrayjava、StudentScoreArrayjava和Test1java,具体为:

public class ScoreArray {

private int[] scores;

private int scoreCount;

public int[] getScores() {

return scores;

}

public int getScoreCount() {

return scoreCount;

}

//构造函数

public ScoreArray(int[] scores) {

thisscores = scores;

for (int score : scores) {

if (score >= 0 && score <= 100) {

thisscoreCount++;

}

}

}

//求最大值

public int getMax() {

int[] scores = thisscores;

int temp;

for (int i = 0; i < scoreslength; i++) {

for (int j = 0; j < scoreslength - 1 - i; j++) {

if (scores[j] > scores[j + 1]) {

temp = scores[j];

scores[j] = scores[j + 1];

scores[j + 1] = temp;

}

}

}

return scores[scoreslength - 1];

}

//求最小值

public int getMin() {

int[] scores = thisscores;

int temp;

for (int i = 0; i < scoreslength; i++) {

for (int j = 0; j < scoreslength - 1 - i; j++) {

if (scores[j] > scores[j + 1]) {

temp = scores[j];

scores[j] = scores[j + 1];

scores[j + 1] = temp;

}

}

}

return scores[0];

}

//求均值

public double getAvg() {

int sum = 0;

for (int score : thisscores) {

sum += score;

}

return new BigDecimal(sum)divide(

new BigDecimal(thisscoreslength),

2, BigDecimalROUND_HALF_UP)doubleValue();

}

//排序

public void sort() {

int temp;

for (int i = 0; i < thisscoreslength; i++) {

for (int j = 0; j < thisscoreslength - 1 - i; j++) {

if (thisscores[j] > thisscores[j + 1]) {

temp = thisscores[j];

thisscores[j] = thisscores[j + 1];

thisscores[j + 1] = temp;

}

}

}

}

//静态说明类

public static void explain() {

Systemoutprintln("本类[ScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]和排序[sort()]方法");

}

}

public class StudentScoreArray extends ScoreArray {

public StudentScoreArray(int[] scores) {

super(scores);

}

//统计

public void statistic() {

supersort();

Map<Integer, Integer> map = new LinkedHashMap<>();

for (int i : supergetScores()) {

if (mapcontainsKey(i)) {

mapput(i, mapget(i) + 1);

} else {

mapput(i, 1);

}

}

mapforEach((k, v) -> Systemoutprintln("分数为[" + k + "]的人数为:[" + v + "]"));

}

//静态说明类

public static void explain() {

Systemoutprintln("本类[StudentScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]、排序[sort()]和分布统计[statistic()]方法");

}

}

public class Test1 {

public static void main(String[] args) {

int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};

ScoreArray scoreArray = new ScoreArray(scores);

ScoreArrayexplain();

Systemoutprint("数组内容:[");

for (int i : scoreArraygetScores()) {

Systemoutprint(i + " ");

}

Systemoutprintln("]");

Systemoutprintln("有效值个数:" + scoreArraygetScoreCount());

Systemoutprintln("最大值:" + scoreArraygetMax());

Systemoutprintln("最小值:" + scoreArraygetMin());

Systemoutprintln("平均值:" + scoreArraygetAvg());

scoreArraysort();

Systemoutprint("排序后数组内容:[");

for (int i : scoreArraygetScores()) {

Systemoutprint(i + " ");

}

Systemoutprintln("]");

Systemoutprintln("");

Systemoutprintln("========华丽的分割线========");

Systemoutprintln("");

StudentScoreArray studentScoreArray = new StudentScoreArray(scores);

StudentScoreArrayexplain();

Systemoutprint("数组内容:[");

for (int i : studentScoreArraygetScores()) {

Systemoutprint(i + ",");

}

Systemoutprintln("]");

Systemoutprintln("有效值个数:" + studentScoreArraygetScoreCount());

Systemoutprintln("最大值:" + studentScoreArraygetMax());

Systemoutprintln("最小值:" + studentScoreArraygetMin());

Systemoutprintln("平均值:" + studentScoreArraygetAvg());

studentScoreArraysort();

Systemoutprint("排序后数组内容:[");

for (int i : studentScoreArraygetScores()) {

Systemoutprint(i + " ");

}

Systemoutprintln("]");

Systemoutprintln("分数分布统计:");

studentScoreArraystatistic();

}

}

其中对StudentScoreArray类我要特别说明一下:

统计分布情况时,使用了Map,map是一种key-value的数据结构,其有个特点被我所利用:一个map中只能同时存在一个key,所以我以分数为key,以数量为value,遍历分数数组时,如果是第一次遇到这个key(分数),则将其value(数量)置为1;如果已经不是第一次遇见了,则将其value(数量)置为value + 1(数量 + 1)。另外需要遍历这个map实现统计结果的打印,我这里使用了java8以后才支持的Lambda表达式,所以你要运行这个程序必须要使用jdk18以上的版本。如果你觉得这样不妥,可以网上再搜一下map的遍历方式。

运行结果:

啊 代码又一坨的的挤在一起了,百度知道这个真是无语,我把几个关键的地方截个图给你康康:

ScoreArrayjava

成员变量和构造函数

忘了说了,构造的同时还统计了有效分数(0~100)的数量

求最大值

冒泡排序后取最大值

求最小值

冒泡排序后取最小值

求均值

利用java 的BigDecimal类解决除法运算精度的问题,四舍五入并保留了两位小数

排序

就是冒泡排序,从小到大

静态的文本说明

StudentScoreArrayjava:

继承

分数分布统计

注意我说的map那里

静态说明文本

Test1java:

测试用例都使用的数组:int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};

Java的面向对象!打个比如!你现在手里!有一部手机!这个手机就是面向对象!意思就是说!面向对象就是你看到的一切皆是对象!你得分析他有什么!手机!有电池!有内存卡!可以打电话!可以发短信!可以上网!这就是对象!

自定义类MyNumber:

import javautilArrayList;

import javautilList;

public class MyNumber {

public int[] delZero(int[] arr){

int[] newArr = new int[arrlength];

for (int i=0; i<arrlength; i++){

//删除所有含0的元素(0,10,20)

//            if (arr[i] == 0 && arr[i]%10 == 0){

//删除所有为0的元素

if (arr[i] == 0){

arr = delAnyPosition(arr,i);

}

}

return arr;

}

public static int[] delAnyPosition(int[] arr,int position){

//判断是否合法

if(position >= arrlength || position < 0){

return null;

}

int[] res = new int[arrlength - 1];

for(int i = 0;i<reslength;i++){

if(i < position){

res[i] = arr[i];

}else{

res[i] = arr[i + 1];

}

}

return res;

}

}

package com;

import javautil;

public class Student{

private String name;

private String id;

private double sumscore;

public Student(String name,String id,double sumscore){

thisname=name;

thisid=id;

thissumscore=sumscore;

}

public String toString() {

return "name:"+getName()+" id:"+getId()+" sumscore:"+getSumscore();

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

public String getId() {

return id;

}

public void setId(String id) {

thisid = id;

}

public double getSumscore() {

return sumscore;

}

public void setSumscore(double sumscore) {

thissumscore = sumscore;

}

public static void main(String[] args) {

Student []s={new Student("A","1",12),new Student("B","2",22),new Student("C","3",32),

new Student("D","4",142),new Student("E","5",152),new Student("F","6",262),new Student("G","7",72),

new Student("H","8",182),new Student("I","9",92),new Student("J","10",102)

};

s=bubbleSort(s);

Vector<Student> vector = new Vector<Student>();

vectoraddAll(ArraysasList(s));

for (Iterator<Student> iter = vectoriterator(); iterhasNext();)

{

Student student = iternext();

Systemoutprintln(studenttoString());

}

List <Student>list=new ArrayList<Student>();

list=ArraysasList(s);

for(Student str:list){

Systemoutprintln(strtoString());

}

Hashtable <Integer,Student>table =new Hashtable<Integer,Student>();

for(int i=0;i<slength;i++){

tableput(i, s[i]);

}

for(int i=0;i<slength;i++){

Systemoutprintln(tableget(i)toString());

}

}

public  static Student[] bubbleSort(Student[] args){//冒泡排序算法

Student temp;

        for(int i=0;i<argslength-1;i++){

                for(int j=i+1;j<argslength;j++){

                        if (args[i]getSumscore()>args[j]getSumscore()){

                         temp=args[i];

                                args[i]=args[j];

                                args[j]=temp;

                        }

                }

        }

        return args;

}

}

//楼主,说实话你的要求真多,而且分少~~~~

以上就是关于本人初学java想找些编程例子,巩固前面所学,最好关于面向对象三大思想方面和多线程、IO等。不要选择题。全部的内容,包括:本人初学java想找些编程例子,巩固前面所学,最好关于面向对象三大思想方面和多线程、IO等。不要选择题。、java 中类与类之间关系,并举例说明...并说下什么是面向对象.、Java面向对象程序的设计问题(请大家帮忙啊)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10038063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存