2013年7月16日 星期二

java的2個練習題

1. Please reference : http://www.javaworld.com.tw/jute/post/view?bid=29&id=90143&sty=3


2.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Test0716 {

     public static void main(String args[])
      {
       
            int[][] answer=new int[4][7];
            for (int i=0; i<4; i++)
                for (int j=0; j<7; j++){
                    answer[i][j]=0;
                }
                try {
                    File input = new File("record.txt");
                   
                    Scanner sc = new Scanner(input);   
           
                  
                    while(sc.hasNextLine()) {
                      String s = sc.nextLine();
                      String[] splitarray = s.split("\\|");
           
                         String age = splitarray[0];
                      String sex = splitarray[1];
                      String salary=splitarray[2];                     

                     
                      int ageint, sexint, salaryint;
               ageint=Integer.parseInt(age.trim());
                   
                      sexint=Integer.parseInt(sex.trim());
                      salaryint=Integer.parseInt(salary.trim());
                      if (ageint <20)  ageint=19;
                     
                     if (ageint <20)
                     {
                           answer[0][0]=answer[0][0]+1;
                           if (sexint==0)  answer[0][5]=answer[0][5]+1;
                           else answer[0][6]=answer[0][6]+1;
                           if (salaryint <20)      
                               answer[0][1]=answer[0][1]+1;
                           else if (salaryint<=29)
                               answer[0][2]=answer[0][2]+1;
                           else if (salaryint <= 39)
                               answer[0][3]=answer[0][3]+1;
                           else
                               answer[0][4]=answer[0][4]+1;
                     }
                     else if (ageint <= 39)
                     {
                           answer[1][0]=answer[1][0]+1;
                           if (sexint==0)  answer[1][5]=answer[1][5]+1;
                           else answer[1][6]=answer[1][6]+1;
                           if (salaryint <20)      
                               answer[1][1]=answer[1][1]+1;
                           else if (salaryint<=29)
                               answer[1][2]=answer[1][2]+1;
                           else if (salaryint <= 39)
                               answer[1][3]=answer[1][3]+1;
                           else
                               answer[1][4]=answer[1][4]+1;
                     }
                     else if (ageint <= 59)
                     {
                           answer[2][0]=answer[2][0]+1;
                           if (sexint==0)  answer[2][5]=answer[2][5]+1;
                           else answer[2][6]=answer[2][6]+1;
                           if (salaryint <20)      
                               answer[2][1]=answer[2][1]+1;
                           else if (salaryint<=29)
                               answer[2][2]=answer[2][2]+1;
                           else if (salaryint <= 39)
                               answer[2][3]=answer[2][3]+1;
                           else
                               answer[2][4]=answer[2][4]+1;
                     }
                     else if (ageint > 59)
                     {
                           answer[3][0]=answer[3][0]+1;
                           if (sexint==0)  answer[3][5]=answer[3][5]+1;
                           else answer[3][6]=answer[3][6]+1;
                           if (salaryint <20)      
                               answer[3][1]=answer[3][1]+1;
                           else if (salaryint<=29)
                               answer[3][2]=answer[3][2]+1;
                           else if (salaryint <= 39)
                               answer[3][3]=answer[3][3]+1;
                           else
                               answer[3][4]=answer[3][4]+1;
                     }      
                    
                    }
                    System.out.println("===================================");
                    System.out.println("<20  /20~29/ 30~39/>39//男 /女");
                    System.out.println("*****************************");
                    for (int i=0; i<4; i++) {
                         if (i==0) System.out.print("<20  ");
                         else if (i==1) System.out.print("20~39");
                         else if (i==2) System.out.print("40~59");
                         else  System.out.print(">59  ");
                        for (int j=1; j<7; j++){
                        //'    if (j==6) System.out.print(answer[i][j]);
                   
                             System.out.print("/  "+answer[i][j]);
                        }
                  System.out.println();
                
                    }
                    System.out.println("==================================");
                    System.out.print("合計      ");
                      System.out.print("/  "+(answer[0][1]+answer[1][1]+answer[2][1]+answer[3][1]));
                      System.out.print("/  "+(answer[0][2]+answer[1][2]+answer[2][2]+answer[3][2]));
                      System.out.print("/  " +(answer[0][3]+answer[1][3]+answer[2][3]+answer[3][3]));
                      System.out.print("/  "+(answer[0][4]+answer[1][4]+answer[2][4]+answer[3][4]));
                      System.out.print("/  " +(answer[0][5]+answer[1][5]+answer[2][5]+answer[3][5]));
                      System.out.print("/  "+(answer[0][6]+answer[1][6]+answer[2][6]+answer[3][6]));
                }
                catch(FileNotFoundException e) {
                    System.err.println("File not found. Please scan in new file.");
                }
               
            }
      }

2013年6月23日 星期日

Customer price

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.JTextField;

class   NewFrame extends JFrame implements ActionListener {
    JPanel panel = new JPanel();
      JPanel toppanel=new JPanel();
      JPanel middlepanel=new JPanel();
      JPanel bottompanel=new JPanel();
         private JButton PressResult;
          String sex[]={"Male","Female"};
          String subject[] = {"Standard", "Gold", "Premimum", "Diamond"};
          private double discount;
          private JTextField memnum, listprice;
          private JTextField result;
    NewFrame()
    {
      JLabel label0=new JLabel("Customer List price");
      listprice=new JTextField(5);
      listprice.setText("10000");
      JLabel label1=new JLabel("First name");
       JTextField first=new JTextField(5);
       JLabel label2=new JLabel("Middle name");
       JTextField middle=new JTextField(5);
       JLabel label3=new JLabel("Last name");
       JTextField last=new JTextField(5);
       JLabel label4=new JLabel("Gender");
       JComboBox<String> gender=new JComboBox<String>(sex);
       JLabel label5=new JLabel("Membership");
       final JComboBox<String> membership = new JComboBox<String>(subject);
       membership.addActionListener(this);
       membership.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               System.out.println("The membership is "+ membership.getSelectedItem());
               String choice=(String)membership.getSelectedItem();
               switch(choice) {
               case "Standard":
                   discount=1;
                   break;
               case "Gold":
                   discount=0.9;
                   break;
               case "Premimum":
                   discount=0.85;
                   break;
               case "Diamond":
                   discount=0.75;
                    break;
                    default:
                        break;
               } 
               panel.updateUI();
           }
       });
      
   //    JTextField membership=new JTextField(5);
       JLabel label6=new JLabel("membership number");
 memnum=new JTextField(5);
      
      panel.add(toppanel);
      panel.add(middlepanel);
      panel.add(bottompanel);
     
     
      panel.setLayout(new GridLayout(3,1 ));
        setUndecorated(true);
        getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
        toppanel.add(label0);
       toppanel.add(listprice);      
       toppanel.add(label1);
       toppanel.add(first);
       toppanel.add(label2);
       toppanel.add(middle);
       toppanel.add(label3);
       toppanel.add(last);
       toppanel.add(label4);
       toppanel.add(gender);
       toppanel.add(label5);
       toppanel.add(membership);
       toppanel.add(label6);
       toppanel.add(memnum);     
     
       
       result=new JTextField();
        PressResult=new JButton("Press to get purchase price");
        PressResult.addActionListener(this);
        bottompanel.add(PressResult);
        result=new JTextField(5);
        bottompanel.add(result);       
       
        add(panel);
        setSize(500,400);
        setVisible(true);
        setTitle("Customer price");       
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
  
    }
    public void actionPerformed(ActionEvent e) {
    //    System.out.println("testing99:" +e.getActionCommand());
       if (e.getActionCommand().equals("comboBoxChanged")) comboselect(e);
      if (e.getActionCommand().equals("Press to get purchase price")) gettotal(e);  
    }
    void  comboselect(ActionEvent e){
       
       JLabel label21=new JLabel("membership discount");       
        JTextField memcut=new JTextField(5);
        memcut.setText(Double.toString(discount));
    
        middlepanel.removeAll();
       repaint();      
        middlepanel.add(label21);
        middlepanel.add(memcut);
       
    }
    public void gettotal(ActionEvent e){
        double total=0;
        int num=0, listpricen;
        num=Integer.parseInt(memnum.getText());
        listpricen=Integer.parseInt(listprice.getText());
        total=discount*num*listpricen;  
            result.setText(Double.toString(total));
           result.updateUI();
       
    }
 }

 public class CustomerGUI {
  public static void main(String[] args) {   
   new NewFrame();  
    } 
 }
   

2013年6月18日 星期二

Area calculation via GUI

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.JTextField;

class   NewFrame extends JFrame implements ActionListener {
    JPanel panel = new JPanel();
      JPanel toppanel=new JPanel();
      JPanel middlepanel=new JPanel();
      JPanel bottompanel=new JPanel();
     private JLabel WidthLabel;
     private JLabel HeightLabel;
     private JLabel LengthLabel;
     private JLabel TopLabel;
     private JLabel BottomLabel;
     private JButton PressResult;
       

    JTextField Winput = new JTextField();
    JTextField Hinput = new JTextField();
    JTextField Linput=new JTextField();
    JTextField Tinput=new JTextField();
    JTextField Binput=new JTextField();
    JTextField result=new JTextField();
     int choicenum=1;
 

    String subject[] = {"1.三角形", "2. 矩形", "3. 梯形", "4. 離開"};
    NewFrame()
    {
       
    //  setLayout(new FlowLayout(FlowLayout.LEFT));
      JList list = new JList(subject);
      JComboBox comboBox = new JComboBox<String>(subject);
     
      panel.add(toppanel);
      panel.add(middlepanel);
      panel.add(bottompanel);
     
     
      panel.setLayout(new GridLayout(3,1 ));
        setUndecorated(true);
        getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
       toppanel.add(comboBox);
   
      
       LengthLabel = new JLabel("長度");   
        Linput=new JTextField(5);
           WidthLabel = new JLabel("寬度");
           Winput = new JTextField(5);     

          
               TopLabel = new JLabel("上底");   
                Tinput=new JTextField(5);
          BottomLabel = new JLabel("下底");   
          Binput=new JTextField(5);
          HeightLabel = new JLabel("高度");
           Hinput = new JTextField(5);
   
   
       
        PressResult=new JButton("Press");
        PressResult.addActionListener(this);
        bottompanel.add(PressResult);
        result=new JTextField(5);
        bottompanel.add(result);
   
        add(panel);
        setSize(500,400);
        setVisible(true);
        setTitle("四方形面積");       
        comboBox.addActionListener(this);
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
  
    }
    public void actionPerformed(ActionEvent e) {
        System.out.println("testing99:" +e.getActionCommand());
        if (e.getActionCommand().equals("comboBoxChanged")) comboselect(e);
       if (e.getActionCommand().equals("Press")) getarea(e);
  
    }


void  comboselect(ActionEvent e){

   
    JComboBox comboBox = (JComboBox) e.getSource();
   
 
    Object selected = comboBox.getSelectedItem();
    System.out.println("Selected Item  = " + selected);
    String command = e.getActionCommand();
    System.out.println("Action Command = " + command);
  
   
    String selstr=selected.toString();
    System.out.println("test ="+ selstr);
    System.out.println("width="+Winput.getText());
     choicenum=Integer.parseInt(selstr.substring(0,1));
     switch(choicenum){
        case 1:
           middlepanel.removeAll();
           repaint();
            middlepanel.add(WidthLabel);
         middlepanel.add(Winput);       
         middlepanel.add(HeightLabel);
         middlepanel.add(Hinput);
        
           break;
        case 2:
           middlepanel.removeAll();
           repaint();
           middlepanel.add(WidthLabel);
        middlepanel.add(Winput);       
        middlepanel.add(LengthLabel);
        middlepanel.add(Linput);
       
            break;
        case 3:
          
         middlepanel.removeAll();
         repaint();
           middlepanel.add(TopLabel);
        middlepanel.add(Tinput);
        middlepanel.add(BottomLabel);
        middlepanel.add(Binput);
        middlepanel.add(HeightLabel);
        middlepanel.add(Hinput);
          
        break;
        case 4:
         
             break;           
        default:
        System.out.println("You must enter a valid choice ");
        break;
        }
     add(panel);
           //    setSize(500,400);
               setVisible(true);
  }
   

void getarea(ActionEvent e){
   
    int area;
     System.out.println("Width "+ Winput.getText());
     System.out.println("Height "+ Hinput.getText());


        switch(choicenum){
        case 1:
           area=Integer.parseInt(Winput.getText())*Integer.parseInt(Hinput.getText())/2;
          
           result.setText(Integer.toString(area));
           result.updateUI();
           System.out.println("the result "+  area);
           break;
        case 2:
           area=(Integer.parseInt(Winput.getText()))*(Integer.parseInt(Linput.getText()));
         result.setText(Integer.toString(area));
          result.updateUI();
          System.out.println("the result "+  area);
            break;
        case 3:
            area=(Integer.parseInt(Tinput.getText())+Integer.parseInt(Binput.getText()))*Integer.parseInt(Hinput.getText())/2;
            result.setText(Integer.toString(area));
            result.updateUI();
            System.out.println("the result "+  area);
        break;
        case 4:
           System.out.println("Bye !!! Bye !!! ");
              
             break;           
        default:
        System.out.println("You must enter a valid choice ");
        break;
        }

      
   
}   
}
 public class GUISample {
  public static void main(String[] args) {
   
   new NewFrame();
  
   
    } 
 }

輸入西元年.月份.幾號就能查出這天是星期幾

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

class MyJFrame extends JFrame implements ActionListener{
private JPanel contentPane;
private JTextField txtyear, txtmonth, txtdate,txtresult;
private JLabel lblyear, lblmonth, lbldate,lblresult;
private JButton Pressbutton;

 MyJFrame(){

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setBounds(100, 100, 600, 400);
     contentPane = new JPanel();
     setContentPane(contentPane);
     contentPane.setLayout(null);

    lbldate=new JLabel("Please input date");
    lbldate.setBounds(20,80,150,25);
    contentPane.add(lbldate);
    txtdate = new JTextField();
    txtdate.setColumns(10);
    txtdate.setBounds(20, 100, 150, 25);
     contentPane.add(txtdate);
    
     lblmonth=new JLabel("Please input month");
     lblmonth.setBounds(200,80,150,25);
     contentPane.add(lblmonth);
     txtmonth = new JTextField();
     txtmonth.setColumns(20);
     txtmonth.setBounds(200, 100, 150, 25);
     contentPane.add(txtmonth);
   
   lblyear=new JLabel("Please input year");
   lblyear.setBounds(420,80,150,25);
   contentPane.add(lblyear);
   txtyear = new JTextField();
   txtyear.setColumns(10);
   txtyear.setBounds(420, 100, 150, 25);
   contentPane.add(txtyear);
  
  
   lblresult=new JLabel("The day of result");
   lblresult.setBounds(200,140,150,25);
   contentPane.add(lblresult);
   txtresult = new JTextField();
   txtresult.setColumns(10);
   txtresult.setBounds(200, 160, 150, 25);
   contentPane.add(txtresult);
  
   Pressbutton=new JButton("Please press me");
   Pressbutton.addActionListener(this);
   Pressbutton.setBounds(20,160,150,25);
   contentPane.add(Pressbutton);
  
  
  
   setVisible(true);


}
public void actionPerformed(ActionEvent event) {
     System.out.println("test="+Integer.parseInt(txtdate.getText()));
     print_day(Integer.parseInt(txtdate.getText()), Integer.parseInt(txtmonth.getText()), Integer.parseInt(txtyear.getText()));

     txtresult.updateUI();

}

public void print_day(int d, int m, int y){
       int a =0;
       a = ((y- 1900)*365) + ((y-1900)/4);
       if(y%4 == 0 && (m == 2 || m == 1)){
       a = a-1;
       }
       
       switch(m){
       case 1:
       a = a + d;
       break;
       case 2:
       a = a + 31 + d;
       break;
       case 3:
       a =  a + 31 + 28 +d;
       break;
       case 4:
       a =  a + 31 + 28 + 31 + d;
       break;
       case 5:
       a =  a + 31 + 28 + 31 + 30 + d;
       break;
       case 6:
       a =  a + 31 + 28 + 31 + 30 + 31 + d;
       break;
       case 7:
       a =  a + 31 + 28 + 31 + 30 + 31 + 30 + d;
       break;
       case 8:
       a =  a + 31 + 28 +31 + 30 + 31 + 30 + 31 + d;
       break;
       case 9:
       a =  a + 31 + 28 +31 + 30 + 31 + 30 + 31 + 31 + d;
       break;
       case 10:
       a =  a + 31 + 28 +31 + 30 + 31 + 30 + 31 + 31 + 30 + d;
       break;
       case 11:
       a =  a + 31 + 28 +31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + d;
       break;
       case 12:
       a =  a + 31 + 28 +31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + d;
       break;
       default:
       break;
    }
   
        System.out.println("\n"+ a);
       int odd_days = a % 7;
       switch(odd_days){
       case 0:
           txtresult.setText("Sunday");
       System.out.println("The given date is Sunday");
       break;
       case 1:
           txtresult.setText("Monday");
       System.out.println("The given date is Monday");
       break;
       case 2:
           txtresult.setText("Tuesesday");
       System.out.println("The given date is Tuesday");
       break;
       case 3:
           txtresult.setText("Wednesday");
       System.out.println("The given date is Wednesday");
       break;
       case 4:
           txtresult.setText("Thursday");
       System.out.println("The given date is Thursday");
       break;
       case 5:
           txtresult.setText("Friday");
       System.out.println("The given date is Friday");
       break;
       case 6:
           txtresult.setText("Saturday");
       System.out.println("The given date is Saturday");
       break;
       default:
       break;
    }
}

}
public class Hill {
   
   
public static void main(String[] args){

MyJFrame f= new MyJFrame();


}

 Python install twine on Mac 1. Need to install macports first, https://ports.macports.org/port/twine/  2.  sudo port install twine   Pychar...