java 的小程序详尽代码.docx
- 文档编号:9006504
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:20.07KB
java 的小程序详尽代码.docx
《java 的小程序详尽代码.docx》由会员分享,可在线阅读,更多相关《java 的小程序详尽代码.docx(19页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 的小程序详尽代码 程序 详尽 代码