java经典的小程序详尽代码.docx

上传人:b****7 文档编号:25327994 上传时间:2023-06-07 格式:DOCX 页数:19 大小:19.51KB
下载 相关 举报
java经典的小程序详尽代码.docx_第1页
第1页 / 共19页
java经典的小程序详尽代码.docx_第2页
第2页 / 共19页
java经典的小程序详尽代码.docx_第3页
第3页 / 共19页
java经典的小程序详尽代码.docx_第4页
第4页 / 共19页
java经典的小程序详尽代码.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java经典的小程序详尽代码.docx

《java经典的小程序详尽代码.docx》由会员分享,可在线阅读,更多相关《java经典的小程序详尽代码.docx(19页珍藏版)》请在冰豆网上搜索。

java经典的小程序详尽代码.docx

java经典的小程序详尽代码

1,编写程序,判断给定的某个年份是否是闰年。

闰年的判断规则如下:

(1)若某个年份能被4整除但不能被100整除,则是闰年。

(2)若某个年份能被400整除,则也是闰年。

importBissextile{

publicstaticvoidmain(String[]arge){

"请输入年份");

intyear;.....+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定。

importMultinomial{

publicstaticvoidmain(String[]args){

inta;...前20项之和?

classSum{

publicstaticvoidmain(Sting[]args){

doublesum=0;

doublefenZi=,fenMu=;.....

打印出第一个大于小于的值

classPi{

publicstaticvoidmain(String[]args){

doublepi=0;..

fenMu+=;..每项递加2

}

}

}

输出结果为pi=,应该不精确

12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值

112358132134

规律:

一个数等于前两个数之和

....的值。

a,求出前50项和值。

b,求出最后一项绝对值小于1e-5的和值。

15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:

*

***

*****

*******

*********

定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,

最小值,平均值,和值,并输出出来。

classArrayNumber{

publicstaticvoidmain(String[]args){

int[]arrayNumber;

arrayNumber=newint[10];

"以下是随机的10个整数:

");

义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置,

即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。

3.定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数,

将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。

4.(选做)承上题,将这40个成绩按照从高到低的顺序输出出来。

5,(选做)编写程序,将一个数组中的元素倒排过来。

例如原数组为1,2,3,4,5;则倒排后数组中的值

为5,4,3,2,1。

6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。

再定义一个

int型数组b,包含10个元素。

统计a数组中的元素对10求余等于0的个数,保存

到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。

classRemain{

publicstaticvoidmain(String[]args){

int[]a=newint[100];

约梭芬杀人法

把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。

11_2、用数组实现约瑟夫出圈问题。

n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。

对于给定的n,m,求出所有人的出圈顺序。

12.判断随机整数是否是素数

产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?

publicclassPrimeTest{

publicstaticvoidmain(Stringargs[]){

for(inti=0;i<100;i++){

intnum=(int)()*1000);

PrimeTestt=newPrimeTest();

if(num)){

"是素数!

");

}else{

"不是素数!

");

}

}

}

publicbooleanisPrime(intnum){

for(inti=2;i<=num/2;i++){

if(num%i==0){

"第一个被"+i+"整除!

");

returnfalse;

}

}

returntrue;

}

}

冒泡排序法:

etSalary(month));

}

}

}

classEmployee{

privateStringname;

privateintbirth;

publicStringgetName(){

returnname;

}

publicEmployee(Stringname,intbirth){

=name;

=birth;

}

publicdoublegetSalary(intmonth){

if(month==birth){

return100;

}

return0;

}

}

classSalariedEmployeeextendsEmployee{

privatedoublesalary;

publicSalariedEmployee(Stringname,intbirth,doublesalary){

super(name,birth);

=salary;

}

publicdoublegetSalary(intmonth){

returnsalary+(month);

}

}

classHourlyEmployeeextendsEmployee{

privatedoublehourSalary;

privateinthour;

publicHourlyEmployee(Stringname,intbirth,doublehourSalary,inthour){

super(name,birth);

=hourSalary;

=hour;

}

publicdoublegetSalary(intmonth){

if(hour<=160){

returnhourSalary*hour+(month);

}else{

return160*hourSalary+(hour-160)*hourSalary*+(month);

}

}

}

classSalesEmployeeextendsEmployee{

privatedoublesales;

privatedoublepre;

publicSalesEmployee(Stringname,intbirth,doublesales,doublepre){

super(name,birth);

=sales;

=pre;

}

publicdoublegetSalary(intmonth){

returnsales*pre+(month);

}

}

classBaseSalarySalesEmployeeextendsSalesEmployee{

privatedoublebaseSalary;

publicBaseSalarySalesEmployee(Stringname,intbirth,doublesales,doublepre,doublebaseSalary){

super(name,birth,sales,pre);

=baseSalary;

}

publicdoublegetSalary(intmonth){

returnbaseSalary+(month);

}

}

/**

*在原有的雇员练习上修改代码

*公司会给SalaryEmployee每月另外发放2000元加班费,给

*BasePlusSalesEmployee发放1000元加班费

*改写原有代码,加入以上的逻辑

*并写一个方法,打印出本月公司总共发放了多少加班费

*@authorAdministrator

*

*/

publicclassEmployeeTest{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Employeee[]=newEmployee[4];

e[0]=newSalariedEmployee("魏威",10,5000);

e[1]=newHourlyEmployee("段利峰",8,80,242);

e[2]=newSalesEmployee("林龙",11,300000,;

e[3]=newBasedPlusSalesEmployee("华溪",1,100000,,1500);

for(inti=0;i<;i++){

":

"+e[i].getSalary(11));

}

etAddtionalSalary();

}

"加班费:

"+result);

}

}

interfaceAddtionalSalary{

intgetAddtionalSalary();

}

classEmployeeimplementsAddtionalSalary{

privateStringname;某学校为学生分配宿舍,每6个人一间房(不考虑性别差异),问需要多少房?

答案:

(x+5)/6

注意理解int类型数值。

2.让数值在0~9之间循环。

publicclasstest{

publicstaticvoidmain(String[]args){

inti=0;

while(true){

i=(i+1)%10;

}

}

}

作业:

1.写一个数组类(放对象):

功能包括:

添加(添加不限制多少项)、修改、插入、删除、查询

classMyArray{

privateObject[]os=newObject[10];

publicvoidadd(Objecto);

publicvoidset(intindex,Objecto);

publicvoidinsert(intindex,Objecto);

publicvoidremove(intindex);

publicvoidremove(Objecto);

publicObjectget(intindex);

}

publicclassTestMyArray{

publicstaticvoidmain(String[]args){

MyArrayma=newMyArray();

("aaa");

("bbb");

("ccc");

Objecto=

(1);

Iteratorit=();

while()){

Objecto1=();

}

}

}

作业10-08

1.随机产生20个整数(10以内的),放入一个ArrayList中,用迭代器遍历这个ArrayList

2.并删除其中为5的数

3.再产生3个整数,插入到位置4处

4.把所有值为1的数都变成10

importArrayList{

privateObject[]os=newObject[20];

}

publicclassTestArray{

publicstaticvoidmain(String[]args){

ArrayLista=newArrayList();

("aaa");

("bbb");

("ccc");

Objecto=

(1);

Iteratorit=();

while()){

Objecto1=();

}

}

}

1.产生3000个10以内的数,放入hashSet

2.遍历它,打印每一个值

importclassTestHashSet{

publicstaticvoidmain(String[]args){

Randomr=newRandom();

HashSeths1=newHashSet();

for(inti=0;i<3000;i++){

(10));

}

Iteratorit1=();

while()){

"");

}

}

}

;

classTeacher{

intid;

Stringname;

intage;

publicTeacher(){}

publicTeacher(intid,Stringname,intage){

=id;

=name;

=age;

}

publicintgetId(){returnid;}

publicvoidsetId(intid){=id;}

publicStringgetName(){returnname;}

publicvoidsetName(Stringname){=name;}

publicintgetAge(){returnage;}

publicvoidsetAge(intage){=age;}

publicintTeacherComparator(Objecto){

Teachert1=(Teacher)o;

if()>id){return1;}

elseif()

return0;

}

}

classTreeSet{

}

classTest{

publicstaticvoidmain(String[]args){

Strings1=newString("aaa");

Strings2=newString("bbb");

Strings3=newString("aaa");

HashSeths=newHashSet();

(s1);

(s2);

(s3);

Iteratorit=();

while()){

}

"%x\n",());

"%x\n",());

"%x\n",());

}

}

1.在Map中,以name作Key,以Student类作Velue,写一个HashMap

import.*;

classStudent{

intid;

Stringname;

intage;

publicStudent(){}

publicStudent(intid,Stringname,intage){

=id;

=name;

=age;

}

publicintgetId(){returnid;}

publicvoidsetId(intid){=id;}

publicStringgetName(){returnname;}

publicvoidsetName(Stringname){=name;}

publicintgetAge(){returnage;}

publicvoidsetAge(intage){=age;}

}

classTestHashMap{

publicstaticvoidmain(String[]args){

HashMaphm=newHashMap();

Students1=newStudent(1,"jacky",19);

("jacky",s1);

("tom",newStudent(2,"tom",21));

("kitty",newStudent(3,"kitty",17));

Iteratorit=().iterator();

while()){

Objectkey=();

Studentvalue=(Student)(key);

":

id="++",age="+;

}

"=============================");

terator();();)

{me=();

Students=(Student)();

":

id="++"age="+;

}

}

}

day13homework

1.

/**********************************************************************************

自己写一个栈:

(先进后出)

建议底层用LinkedList实现

参照方法:

booleanempty()测试堆栈是否为空。

Epeek()查看栈顶对象而不移除它。

Epop()移除栈顶对象并作为此函数的值返回该对象。

Epush(Eitem)把项压入栈顶。

intsearch(Objecto)返回对象在栈中的位置,以1为基数。

***************************************************************************************/

/***************************************************************************************

定义以下类,完成后面的问题,并验证。

Exam类考试类

属性:

若干学生一张考卷

提示:

学生采用HashSet存放

Paper类考卷类

属性:

若干试题

提示:

试题采用HashMap存放,key为String,表示题号,value为试题对象

Student类学生类

属性:

姓名一张答卷一张考卷考试成绩

Question类试题类

属性:

题号题目描述若干选项正确答案

提示:

若干选项用ArrayList

AnswerSheet类答卷类

属性:

每道题的答案

提示:

答卷中每道题的答案用HashMap存放,key为String,表示题号,value为学生的答案

问题:

为Exam类添加一个方法,用来为所有学生判卷,并打印成绩排名(名次、姓名、成绩)

***************************************************************************************/

3.

/***************************************************************************************

项目:

商品管理系统

功能:

增删改查(可按各种属性查)

商品属性:

名称、价格(两位小数)、种类

***************************************************************************************/

day17图形界面

1.计算器

/*****************例题画出计算器的界面*****************************

界面如下:

123+

456-

789*

0.=/

*******************/

import.*;

import.*;

classCalculator{

publicstaticvoidmain(String[]args){

JTextFieldtext=newJTextField();

JFramef=newJFrame("计算器");

Fontfont=newFont("宋体",,25);/";

GridLayoutgridlayout=newGridLayout(4,4,10,10);

(gridlayout);扫雷游戏

3.俄罗斯方块

day19多线程

写两个线程,一个线程打印1~52,另一个线程打印字母A-Z。

打印顺序为12A34B56C……5152Z。

要求用线程间的通信。

注:

分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行()。

在()之前不要忘了写()。

classTest{

publicstaticvoidmain(String[]args){

Printerp=newPrinter();

Threadt1=newNumberPrinter(p);

Threadt2=newLetterPrinter(p);

();

();

}

}

classPrinter{

privateintindex=1;//设为1,方便计算3的倍数

//打印数字的构造方法,每打印两个数字,等待打印一个字母

publicsynchronizedvoidprint(inti){

while(index%3==0){try{wait();}catch(Exceptione){}}

""+i);

index++;

notifyAll();

}

//打印字母,每打印一个字母,等待打印两个数字

publicsynchronizedvoidprint(charc){

while(index%3!

=0){try{wait();}catch(Exceptione){}}

""+c);

index++;

notifyAll();

}

}

//打印数字的线程

classNumberPrinterextendsThread{

privatePrinterp;

publicNumberPrinter(Printerp){=p;}

publicvoidrun(){

for(inti=1;i<=52;i++){

(i);

}

}

}

//打印字母的线程

classLette

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1