java 的小程序详尽代码.docx
《java 的小程序详尽代码.docx》由会员分享,可在线阅读,更多相关《java 的小程序详尽代码.docx(16页珍藏版)》请在冰豆网上搜索。
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);
}
}
}
//打印字母的线程
classLetterP