📄 score.java
字号:
package 对参赛选手的得分进行处理图形界面soft30;
import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.StringTokenizer;
import javax.swing.*;
public class Score extends JFrame {
private JTextArea textArea;
String filepath;
String filepath2;
double fScore[];
final int PingWei=7;
/**
* @param args
*/
public static void main(String[] args)
{
new Score();
}
public Score() {
super("得分统计");
getContentPane().setLayout(null);
this.setSize(500, 400);
final JPanel panel = new JPanel();
panel.setBounds(0, 0, 492, 63);
final FlowLayout flowLayout = new FlowLayout();
flowLayout.setVgap(20);
flowLayout.setHgap(30);
panel.setLayout(flowLayout);
getContentPane().add(panel);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{
FileDialog fd=new FileDialog(Score.this);//添加浏览文件的面板
fd.setVisible(true);//显示面板
filepath=fd.getDirectory()+fd.getFile();
filepath2=fd.getDirectory()+"f2.txt";
if (!filepath.equals("") &&filepath!=null &&filepath.endsWith("f1.txt") )
{
textArea.append(readFile()+"\n");
Runtime rt = Runtime.getRuntime();
try {
rt.exec("notepad.exe "+"f1.txt");
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
else
JOptionPane.showMessageDialog(Score.this, "输入出错 请输入f1.txt文件");
}
});
button.setText("打开文件");
panel.add(button);
final JButton button_1 = new JButton();
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg1)
{
showScore( textArea);
}
});
button_1.setText("统计");
panel.add(button_1);
final JButton button_2 = new JButton();
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg2)
{
write();
Runtime rt = Runtime.getRuntime();
try {
rt.exec("notepad.exe "+"f2.txt");
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
});
button_2.setText("写入f2.txt");
panel.add(button_2);
final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(80, 106, 332, 171);
getContentPane().add(scrollPane);
textArea = new JTextArea();
scrollPane.setViewportView(textArea);
this.setVisible(true);//显示面板
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭按钮
}
String readFile()
{
File file=new File(filepath);
if (file.exists()){
try{
BufferedReader in=new BufferedReader(new FileReader(file));
char buf[]=new char[10000];
in.read(buf);in.close();
return String.valueOf( buf).trim();
//return in.readLine();
}catch(Exception e){}
}
return "sorry";
}
public void showScore( JTextArea jt)
{
double[][]a=new double[5][7];
String[][]b=new String[5][9];
String[]c=new String[5];
c=readFile().split("\n");
for(int i=0;i<5;i++){
b[i]= c[i].split(" ");
}
for(int i=0;i<5;i++)
{
for(int j=0;j<7;j++)
{
a[i][j]=Double.parseDouble(b[i][j+2]) ;
}
}
jt.append("参赛号 姓 名 最高分 最低分 累积分 最后得分\n");
for(int i=0;i<5;i++){
jt.append(" "+b[i][0]+" ");
jt.append(" "+b[i][1]+" ");
jt.append(""+max(a[i])+" "+min(a[i])+" "+sum(a[i])+" "+" "+finalScore(a[i])+" ");
jt.append("\n");
}
}
public static double max(double[] a){
double max=a[0];
for(int i=1;i<a.length;i++){
if(max<a[i])
max=a[i];
}
return max;
} //max方法
public static double min(double[] a){
double min=a[0];
for(int i=1;i<a.length;i++){
if(min>a[i])
min=a[i];
}
return min;
} //min方法
public static double sum(double[] a){
double sum=0;
for(int i=0;i<a.length;i++)
sum=sum+a[i];
sum=sum-max(a)-min(a);
DecimalFormat df=new DecimalFormat("0.00");
sum=Double.parseDouble(df.format(sum));
return sum;
}
public static double finalScore(double[] a){
double score=0;
score=sum(a);
score=score/5;
DecimalFormat df=new DecimalFormat("0.0");
score=Double.parseDouble(df.format(score));
return score;
}
public void write()
{
double[][]a=new double[5][7];
String[][]b=new String[5][9];
String[]c=new String[5];
c=readFile().split("\n");
for(int i=0;i<5;i++){
b[i]= c[i].split(" ");
}
for(int i=0;i<5;i++)
{
for(int j=0;j<7;j++)
{
a[i][j]=Double.parseDouble(b[i][j+2]) ;
}
}
File file2=new File(filepath2);
try{
BufferedWriter out = new BufferedWriter(new FileWriter(file2));
out.write("参赛号 姓 名 最高分 最低分 累积分 最后得分");
out.newLine();
for(int i=0;i<5;i++){
out.write(" "+b[i][0]+" ");
out.write(" "+b[i][1]+" ");
out.write(""+max(a[i])+" "+min(a[i])+" "+sum(a[i])+" "+" "+finalScore(a[i])+" ");
out.newLine();
}
out.close();
}catch(Exception e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -