for(i=1;i<=days[month-1];i++)
{
if(i<10)
System.out.print("");
System.out.print(""+i);
System.out.print("");
if(first++%7==0)
System.out.println("");
}
System.out.println("\n");
}
StringgetDay(intmonth,intdate)
{
Calendarc=Calendar.getInstance();
intyear=c.get(Calendar.YEAR);
c=newGregorianCalendar(year,month-1,date);
intday=c.get(Calendar.DAY_OF_WEEK);
Stringreday="";
switch(day)
{
case1:
reday="Sunday";break;
case2:
reday="Monday";break;
case3:
reday="Tuesday";break;
case4:
reday="Wednesday";break;
case5:
reday="Thursday";break;
case6:
reday="Friday";break;
default:
reday="Saturday";
}
returnreday;
}
intdiffDate(java.util.Datedate1,java.util.Datedate2)
{
returnMath.abs((int)((date1.getTime()-date2.getTime())/(24*3600*1000)));
}
intinputNum()
{
intpm=0;
try
{
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
pm=Integer.parseInt(input.readLine());
}catch(NumberFormatExceptionne)
{System.out.println("invaliddataformat...");
}catch(IOExceptione)
{
System.out.println("exceptionoccur...");
}
returnpm;
}
StringinputDate()
{
Stringpm="";
try
{
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
pm=input.readLine();
}catch(IOExceptione)
{
System.out.println("exceptionoccur...");
}
returnpm;
}
publicstaticvoidmain(String[]args)
{
MyCalendarmc=newMyCalendar();
intcount=1;
intmon,date2;
booleanflag=true;
while(count!
=0)
{
System.out.print("whichoffollowingdoyouwanttodo:
(1,2,3,0)\n");
System.out.print("1.showcalender.\n");
System.out.print("2.getthedayofthedate.\n");
System.out.print("3.countthedaysbetweentwodates.\n");
System.out.print("0.exit.\n");
count=mc.inputNum();
switch(count)
{
case1:
System.out.print("inputthemonth(1-12):
");
mon=mc.inputNum();
if(mon<=12&&mon>0)
{
System.out.print("\n");
mc.showCalendar(mon);
}
break;
case2:
System.out.print("inputthemonth:
");
mon=mc.inputNum();
System.out.print("inputthedate:
");
date2=mc.inputNum();
System.out.println("thedayoftheinputdateis"+mc.getDay(mon,date2));
System.out.print("\n");
break;
case3:
java.util.Datemydate1=newjava.util.Date();
java.util.Datemydate2=newjava.util.Date();
java.text.DateFormatmyFormatter=newjava.text.SimpleDateFormat("yyyy-MM-dd");
try
{
System.out.print("pleaseinputdateone(format:
year-mon-day):
");
Stringd1=mc.inputDate();
System.out.print("pleaseinputdatetwo(format:
year-mon-day):
");
Stringd2=mc.inputDate();
mydate1=myFormatter.parse(d1);
mydate2=myFormatter.parse(d2);
}catch(ParseExceptionpe)
{
System.out.println(pe);
}
System.out.println("thedaysbetweenaboveare:
"+mc.diffDate(mydate1,mydate2));
break;
case0:
System.exit(0);
default:
break;
}
}
}
}
三、执行结果
实验二
——计算器设计
一、设计思路
1、设计内容
(1)编写简单的java程序,并掌握java程序的基本格式与规范。
(2)理解java程序结构的特点。
(3)练习使用类
2、设计内容
用户通过键盘分别将两个操作数输入,然后通过选择所需进行的数学运算的标号来实现数学函数的运算,最后系统将返回用户所进行的数学运算的结果。
3、设计步骤
(1)用户分别输入两个操作数。
(2)系统显示该程序所包含的所有的数学函数,并提醒用户选择所需数学函数。
(3)根据用户所提供的操作数以及数学函数,系统将运算结果输出。
二、代码实现
通过本次程序的设计,我进一步学习了java中所包含的基本的类以及其所对应的方法,巩固了所学的内容,受益匪浅。
同时,我也意识到自身还存在一些不足,在后续的学习中我一定会认真的去更正。
附加文档:
importjava.util.Scanner;
importjava.util.Random;
publicclassMathNumber1
{publicstaticvoidmain(String[]args)
{Randomgenerator=newRandom();
Scannerscan=newScanner(System.in);
doublenum1,num2;
intn;
System.out.print("请输入第一个操作数:
");
num1=scan.nextDouble();
System.out.println();
System.out.print("请输入第二个操作数:
");
num2=scan.nextDouble();
System.out.println("---------------------------------------------------------------");
System.out.println("|1、加法运算|");
System.out.println("|2、减法运算|");
System.out.println("|3、乘法运算|");
System.out.println("|4、除法运算|");
System.out.println("|5、正弦运算|");
System.out.println("|6、余弦运算|");
System.out.println("|7、正切运算|");
System.out.println("|8、以e为底"+(int)num1+"、"+(int)num2+"为指数的幂值运算|”);
System.out.println("|9、以"+(int)num1+"为底"+(int)num2+"为指数的幂值运算|”);
System.out.println("|10、平方根运算|");
System.out.println("|0、退出程序|");
System.out.println("---------------------------------------------------------------");
System.out.println("请选择你需要的数学函数:
");
n=scan.nextInt();
for(;n>=0&&n<=10;)
{
switch(n)
{case1:
System.out.println((int)num1+"+"+(int)num2+"="+(int)(num1+num2));
break;
case2:
System.out.println((int)num1+"-"+(int)num2+"="+(int)(num1-num2));
break;
case3:
System.out.println((int)num1+"*"+(int)num2+"="+(int)(num1*num2));
break;
case4:
System.out.println((int)num1+"/"+(int)num2+"="+(int)(num1/num2));
break;
case5:
System.out.println("sin("+(int)num1+")"+"="+Math.sin(num1));
System.out.println("sin("+(int)num2+")"+"="+Math.sin(num2));
break;
case6:
System.out.println("cos("+(int)num1+")"+"="+Math.cos(num1));
System.out.println("cos("+(int)num2+")"+"="+Math.cos(num2));
break;
case7:
System.out.println("tan("+(int)num1+")"+"="+Math.tan(num1));
System.out.println("tan("+(int)num2+")"+"="+Math.tan(num2));
break;
case8:
System.out.println("e^"+(int)num1+"="+Math.exp(num1));
System.out.println("e^"+(int)num2+"="+Math.exp(num2));
break;
case9:
System.out.println((int)num1+"^"+(int)num2+"="+(int)Math.pow(num1,num2));
break;
case10:
if(num1>=0)
System.out.println((int)num1+"的平方根为:
"+(int)Math.sqrt(num1));
elseSystem.out.println((int)num1+"为负值,无平方根");
if(num2>=0)
System.out.println((int)num2+"的平方根为:
"+(int)Math.sqrt(num2));
elseSystem.out.println((int)num2+"为负值,无平方根");
break;
default:
System.exit(-1);
}
System.out.print("请输入第一个操作数:
");
num1=scan.nextDouble();
System.out.println();
System.out.print("请输入第二个操作数:
");
num2=scan.nextDouble();
System.out.println("请选择你需要的数学函数:
");
n=scan.nextInt();
}
}
}
三、执行结果
首先,系统通过程序中Scanner类的使用来实现两个操作数的输入,然后系统通过输出函数将程序中所包含的所有数学运算及其标号输出,并提醒用户选择所需数学函数,最后,系统通过调用程序中Math类中所包含的方法将数学运算的结果输出。