培训日记003
因为昨天是周六,没有正式的上课,开的有大讲堂,讲的东西都是以后才能用到的,知识也比较深,所以我们只听了部分,然后我又把我记的笔记落在教室的电脑上了,所以我就悲剧了,周一会补上昨天记的笔记的。下面的是我最近练习的一些小程序,如果你也是新手,建议你不要复制粘贴,最好还是自己打。学习了这几天了,还是不知道java和vb的直接区别,或许是我学的少的关系,但是我知道,我喜欢上这门语言了。
因为我是初学者,所以写不出什么高深的东西,只能写这些喝凉水的东西出来,希望看到我文章的人,不要喷我。如果我的笔记当中有什么错误也请各位留言指出。说一下我的日志的更新时间,周一至周五晚上一点之前(最晚第二天早上7点之前),周六周日合并在一起在周日中午十二点之前发布。有初学者看到我的文章之后可以给我留言交流学习心得,共享学习资料。
1.数值交换
package test001;
public class TEst001 {
public static void main(String[] agrs){
int a=100;
int b=200;
int x=0;
System.out.println("a="+a+",b="+b);
x=a;
a=b;
b=x;
System.out.println("a="+a+",b="+b);
a=a+b;
b=a-b;
a=a-b;
System.out.println("a="+a+",b="+b);
}
}
2.物体自由下落
package test001;
import java.util.*;
public class TEst001{
public static void main(String[] agrs){
double g=9.80;
System.out.println("请输入物体下降的时间(秒):");
Scanner sc=new Scanner(System.in);
double t=sc.nextDouble();
sc.close();
double s=0.5*g*t*t;
s=Math.round(s*10)/10;
System.out.println(t+"秒后,物体自由下降了"+s+"米");
}
}
3.等额本息还款
package test001;
import java.util.*;
public class TEst001{
public static void main(String[] agrs){
System.out.println("请输入你的贷款本金(万):");
Scanner sc=new Scanner(System.in);
double p=sc.nextDouble()*10000;
System.out.println("请输入你的贷款年利率(%):");
double r=sc.nextDouble()/1200;
System.out.println("请输入你的还款年数:");
double m=sc.nextDouble()*12;
double pay=p*r*(Math.pow((1+r), m))/(Math.pow((1+r), m)-1);
pay=Math.round(pay*100)/100;
System.out.println("你的每月还款金额是:"+pay+"元");
}
}
4.打字母(未完成版)
package test001;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class TEst001{
public static void main(String[] agrs){
JFrame w=new JFrame();
w.setSize(600,500);
Ese mp=new Ese();
w.add(mp);
Thread t=new Thread(mp);
t.start();
w.addKeyListener(mp);
mp.addKeyListener(mp);
w.setVisible(true);
}
}
class Ese extends JPanel implements Runnable,KeyListener{
int[] x=new int[10];
int[] y=new int[10];
char[] c=new char[10];
int sum=0;
public Ese(){
for(int i=0;i<10;i++){
x[i]=(int)(Math.random()*500);
y[i]=(int)(Math.random()*400);
c[i]=(char)(Math.random()*26+97);
}
}
public void paint(Graphics g){
g.clearRect(0, 0, 600, 500);
for(int i=0;i<10;i++){
g.drawString(c[i]+" ", x[i], y[i]);
}
}
public void run(){
while(true){
for(int i=0;i<10;i++){
y[i]++;
if(y[i]>400){
y[i]=0;
x[i]=(int)(Math.random()*500);
c[i]=(char)(Math.random()*26+97);
}
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
if(c[i]==e.getKeyChar()){
y[i]=0;
x[i]=(int)(Math.random()*500);
c[i]=(char)(Math.random()*26+97);
break;
}
repaint();
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
5.计算圆周率
package test001;
public class TEst001{
public static void main(String[] args){
double fenzi=4.0;
double fenmu=1.0;
double sum=0.0;
for(double i=0;i<1000000000;i++){(1000000000可以自己调,数值越大值越精确)
sum+=(fenzi/fenmu);
fenzi*=-1.0;
fenmu+=2.0;
}
System.out.println(sum);
}
}
6.scanner函数小知识点:此函数返回的值只能被识别一次,如果要多次用到这个数值需要重新定义变量。sc.close();语句如果有多个,则放在一起,放在最后一句的位置上,否则会报错。
7.计算斐波那锲数列
1 1 2 3 5 8 13 21 34
规律:一个数等于前两个数之和
package test001;
import java.util.*;
public class TEst001{
public static void main(String[] agrs){
System.out.println("请输入N的值:");
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
sc.close();
int w=t;
int a[]=new int[w];
a[0]=1;
a[1]=1;
for(int i=2;i<w;i++){
a[i]=a[i-2]+a[i-1];
}
System.out.println(a[w-1]);
for(int i=0;i<w;i++){
System.out.print(a[i]+" ");
}
}
}
8.day02作业
数据交换
计算自由落体运动中物体的位移s=1/2*g*t*t
等额本息还款计算器
每月还款额=贷款本金/贷款期月数+(本金-已归还本金累计额)*月利率
计算牛郎织女星之间的距离
符号函数(三目运算)(求三个数的最大值)
闰年的判断方法
基本类型解析
9.数组排序
package test001;
public class TEst001{
public static void main(String[] agrs){
int[] x=new int[10];
int sum=0;
int equ=0;
for(int i=0;i<10;i++){
x[i]=(int)(Math.random()*1000);
sum+=x[i];
System.out.print(x[i]+" ");
}
equ=sum/10;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
int t=0;
if(x[i]<x[j]){
t=x[i];
x[i]=x[j];
x[j]=t;
}
}
}
System.out.println();
for(int i=0;i<10;i++){
System.out.print(x[i]+" ");
}
int max=x[9];
int min=x[0];
System.out.println();
System.out.println("数组中最大值为"+max);
System.out.println("数组中最小值为"+min);
System.out.println("数组的和值为:"+sum);
System.out.println("数组中数字的平均值为"+equ);
}
}
浙公网安备 33010602011771号