c++java.docx

上传人:b****5 文档编号:5751458 上传时间:2022-12-31 格式:DOCX 页数:47 大小:29.08KB
下载 相关 举报
c++java.docx_第1页
第1页 / 共47页
c++java.docx_第2页
第2页 / 共47页
c++java.docx_第3页
第3页 / 共47页
c++java.docx_第4页
第4页 / 共47页
c++java.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

c++java.docx

《c++java.docx》由会员分享,可在线阅读,更多相关《c++java.docx(47页珍藏版)》请在冰豆网上搜索。

c++java.docx

c++java

c++

冒泡排序的模板对字符和数组排序:

#include

#include

template

voidbubble(stype*item,intcount);

voidmain()

{

charstr[]="HUTREADHGKLP";

bubble(str,(int)strlen(str));

cout<<"Thesortedstringis"<

intnums1[]={4,7,2,9,3,7,6,1};

bubble(nums1,8);

cout<<"Thesortednumbersare";

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

cout<

cout<

doublenums2[]={2.3,5.3,6.7,3.9,7.2,1.5};

bubble(nums2,6);

cout<<"Thesortednumbersare";

for(intn=0;n<6;n++)

cout<

cout<

}

template

voidbubble(stype*item,intcount)

{

inti,j;

stypet;

for(i=1;i

for(j=count-1;j>=i;j--)

if(item[j-1]>item[j])

{

t=item[j-1];

item[j-1]=item[j];

item[j]=t;

}

}

冒泡排序只对数组排序:

#include

#include

template

voidsort(T*s,intn){

inti,j;

Tt;

for(i=0;i

for(j=n-1;j>0;j--)

if(s[j-1]>s[j])

{

t=s[j-1];

s[j-1]=s[j];

s[j]=t;

}

}

voidmain(){

inta[]={1,5,2,4,6,3};

sort(a,6);

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

cout<

cout<

}

选择排序:

#include

#include

template

voidsort(T*s,intn){

inti,j,k;

Tt;

for(i=0;i

k=i;

for(j=i+1;j

if(s[k]

k=j;

if(k!

=i){

t=s[k];

s[k]=s[i];

s[i]=t;

}

}

}voidmain(){

inta[]={1,5,2,4,6,3};

sort(a,6);

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

cout<

cout<

}

计算今天是该年的第几天:

#include

intsum_day(int,int),leap(int);

voidmain()

{

intyear,month,day;

cout<<"请输入一个日期(yyymmdd):

";

cin>>year>>month>>day;

intdays=sum_day(month,day);

if(leap(year)&&month>2)

days++;

cout<<"是这一天的第"<

}

intsum_day(intmonth,intday)

{

staticintdays_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

for(inti=1;i

day+=days_month[i];

returnday;

}

intleap(intyear)

{

intleap=year%4==0&&year%100!

=0||year%400==0;

returnleap;

}

输入两个日期计算它们相隔多少天:

#include

classTPoint{

public:

TPoint(inta,intb,intc);

intsum_day();

intleap();

private:

intyear,month,day;

};

TPoint:

:

TPoint(inta,intb,intc){

year=a;

month=b;

day=c;

}

intTPoint:

:

sum_day()

{

staticinta[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

for(inti=1;i

day=a[i]+day;

returnday;

}

intTPoint:

:

leap()

{

intleap=year%4==0&&year%100!

=0||year%400==0;

returnleap;

}

voidmain()

{

inty,m,d;

inty1,m1,d1;

intsum=0,t;

cout<<"请输入一个年份:

"<

cin>>y>>m>>d;

TPointtoday(y,m,d);

intdays=today.sum_day();

if(today.leap()&&m>2)

days+=1;

cout<<"他是这一年的第"<

cout<<"请输入下一个年份:

"<

cin>>y1>>m1>>d1;

TPointtodays(y1,m1,d1);

intdays1=todays.sum_day();

if(todays.leap()&&m1>2)

days1+=1;

cout<<"他是这一年的第"<

for(intn=y;n

{

if(n%4==0&&n%100!

=0||n%400==0)

sum+=366;

else

sum+=365;

}

t=sum+days1-days;

cout<<"它们中间相隔"<

}

输入日期输出当天的星期号:

#include

intsum_day(int,int),leap(int);

voidmain()

{

intyear,month,day,i;

floats;

cout<<"请输入一个日期(yyymmdd):

";

cin>>year>>month>>day;

intdays=sum_day(month,day);

if(leap(year)&&month>2)

days++;

//cout<<"是这一天的第"<

s=float(year-1+(year-1)/4.0-(year-1)/100.0+(year-1)/400.0+days);

i=(int)s%7;

if(true)

{

switch(i)

{

case0:

cout<<"今天是星期天";break;

case1:

cout<<"今天是星期一";break;

case2:

cout<<"今天是星期二";break;

case3:

cout<<"今天是星期三";break;

case4:

cout<<"今天是星期四";break;

case5:

cout<<"今天是星期五";break;

case6:

cout<<"今天是星期六";break;

}

cout<

}

}

intsum_day(intmonth,intday)

{

staticintdays_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

for(inti=1;i

day+=days_month[i];

returnday;

}

intleap(intyear)

{

intleap=year%4==0&&year%100!

=0||year%400==0;

returnleap;

}

二进制转化为十进制:

#include

doublepower(doublex,intn);

voidmain()

{

inti;

intvalue=0;

charch;

cout<<"Enteran8bitbinarynumber:

";

for(i=7;i>=0;i--)

{

cin>>ch;

if(ch=='1')

value+=int(power(2,i));

}

cout<<"Decimalvalueis"<

}

doublepower(doublex,intn)

{

doubleval=1.0;

while(n--)

val*=x;

returnval;

}

十进制转化为二进制:

#include

#include

voidreverse(chars[]);

voidmain()

{

charbin[20];

intn,i=0;

cout<<"输入一个整数:

";

cin>>n;

do{

bin[i++]=n%2+'0';

}while((n/=2)!

=0);

bin[i]='\0';

reverse(bin);

cout<<"对应的二进制:

"<

}

voidreverse(chars[])

{

inttemp,i,j;

for(i=0,j=strlen(s)-1;i

{

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

}

十进制转化为任意进制:

#include

#include

voidreverse(chars[])

{

inttemp,i,j;

for(i=0,j=strlen(s)-1;i

{

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

}

voiditob(intn,chars[],intb)

{

inti=0,sign,t;

if((sign=n)<0)

n=-n;

while(n>0)

{

t=n%b;

if(t>=10)

s[i++]=t-10+'A';

else

s[i++]=t+'0';

n=n/b;

if(sign<0)

s[i--]='-';

s[i]='\0';

}

}

voidmain()

{

charstr[100];intn,base;

cout<<"输入整数和基:

";

cin>>n>>base;

itob(n,str,base);

reverse(str);

cout<<"转换结果:

"<

cout<"<

}

 

Java

(一)this的用法

运行下面的程序,写出实验结果。

程序1:

this作为函数的返回值。

publicclassLeaf{

inti=0;

Leafincrement(){

i++;

returnthis;

}

voidprint(){

System.out.println("i="+i);

}

publicstaticvoidmain(String[]args){

Leafx=newLeaf();

x.increment().increment().increment().increment().increment().print();

}

}

程序2:

this用来区分当前作用域中同名的不同变量。

classThisTest1

{

intx;

publicThisTest1(intx){

this.x=x+1;

}

publicstaticvoidmain(String[]args)

{

ThisTest1t=newThisTest1(5);

System.out.println(t.x);

}

}

程序3:

在一个构造方法中调用另外一个构造方法。

classThisTest2

{

intx,y;

publicThisTest2(intx,inty){

this.x=x;

this.y=y;

}

publicThisTest2(intx){

this(x,3);

}

publicstaticvoidmain(String[]args)

{

ThisTest2t=newThisTest2

(1);

System.out.println("t.x="+t.x);

System.out.println("t.y="+t.y);

}

}

可变参数列表及foreach语法练习

创建一个String类型的数组,并为每个元素赋值一个String,然后用foreach语法输出该数组。

(StringArray.java)

publicclassStringArray{

publicstaticvoidmain(String[]args){

String[]s={"one","two","three","four","five",};

for(Stringa:

s){

System.out.print(a+"");

}

}

}

创建一个类:

InitString,它有一个接受一个String参数的构造器,在构造器中打印该参数。

在InitStringTest类的main函数中创建InitString类型的数组,长度为[0,10]的任意整数,并用for循环为其赋值,然后用foreach语法输出该数组。

(InitStringTest.java)

importjava.util.*;

classInitString{

InitString(Strings){

System.out.println(s);

}

publicStringtoString(){

return"IamInitString";

}

}

publicclassInitStringTest{

publicstaticvoidmain(String[]args){

Randomrand=newRandom(47);

InitString[]it=newInitString[rand.nextInt(11)];

for(inti=0;i

it[i]=newInitString("ok");

for(InitStrings:

it)

System.out.print(s+"");

}

}

创建一个类:

VarargString,在该类中定义一个静态函数,该函数可接受一个可变参数的String数组。

并在main函数中调用该函数,传递一个用逗号分隔的String列表,或者传递一个String类型的数组。

(VarargString.java)

publicclassVarargString{

staticvoidshowStrings(String...args){

for(Strings:

args)

System.out.print(s+"");

System.out.println();

}

publicstaticvoidmain(String[]args){

showStrings("one","TWO","three","four");

showStrings(newString[]{"1","2","3","4"});

}

}

创建一个enum,它包含星期一到星期日等7个值。

通过foreach语法打印每个值及其ordinal()。

(EnumTest.java)

enumWeek{

MONDAY,TUESDAY,WEDNESDAY,TURSDAY,FRIDAY,SATURDAY,SUNDAY

}

publicclassEnumTest{

publicstaticvoidmain(String[]args){

for(Weekw:

Week.values())

System.out.println(w+",ordinal"+w.ordinal());

}

}

创建一个使用可变参数列表的main()。

并在main()中打印args数组中的所有元素,并用各种不同数量的命令行参数进行测试。

(VarargString2.java)

publicclassVarargString2{

publicstaticvoidmain(String...args){

for(Strings:

args)

System.out.print(s+"");

System.out.println();

}

}

为(4)中的enum写一个switch语句,对于每一个case,输出一行字符串。

(EnumTest2.java)

publicclassEnumTest2{

Weekw;

publicstaticvoidmain(String[]args){

for(Weekw:

Week.values()){

switch(w){

caseMONDAY:

System.out.println("Todayismonday");break;

caseTUESDAY:

System.out.println("Todayistuesday");break;

caseWEDNESDAY:

System.out.println("Todayiswednesday");break;

caseTURSDAY:

System.out.println("Todayistursday");break;

caseFRIDAY:

System.out.println("Todayisfriday");break;

caseSATURDAY:

System.out.println("Todayissaturday");break;

caseSUNDAY:

System.out.println("Todayissunday");break;

default:

break;

}

}

}

}

访问权限

(1)完善下列程序,并通过下列程序测试类成员的访问权限,最后完成表格。

程序一:

packagejin;

publicclassAccess{

publicinti=1;

privateintj=2;

protectedintm=3;

intn=4;

}

程序二:

packagejin;

publicclassTestOne{

publicstaticvoidmain(String[]args){

//编写“相同包中的非子类中被访问”的测试代码:

Accessa=newAccess();

System.out.println(a.i);

System.out.println(a.j);

System.out.println(a.m);

System.out.println(a.n);

}

}

程序三:

packagejin;

publicclassTestTwoextendsAccess{

publicstaticvoidmain(String[]args){

/*编写“相同包中的子类中被访问”和“被相同包中的子类继承后直接访问”的测试代码:

*/

//相同包中的子类中被访问

Accessa=newAccess();

System.out.println(a.i);

System.out.println(a.j);

System.out.println(a.m);

System.out.println(a.n);

//被相同包中的子类继承后直接访问

TestTwoa=newTestTwo();

System.out.println(a.i);

System.out.println(a.j);

System.out.println(a.m);

System.out.println(a.n);

}

}

程序四:

packagejzx;

importjin.Access;

publicclassTestThree{

publicstaticvoidmain(String[]args){

//编写“不相同包中的非子类中被访问”的测试代码:

Accessa=newAccess();

System.out.println(a.i);

System.out.println(a.j);

System.out.println(a.m);

System.out.println(a.n);

}

}

程序五:

packagejzx;

importjin.Access;

publicclassTestFourextendsAccess{

publicstaticvoidmain(String

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

当前位置:首页 > 医药卫生 > 基础医学

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

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