JAVA期末复习编程题

@Java期末复习编程题


一、请编写一个 Java 程序,随机生成 20 个不重复的[1, 100]之间的整数,将这 20 个整数排序(按 从小到大的顺序)以后,以文本文件的格式写入文件”data.txt”中,数字之间用空格间隔

代码如下(示例):

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.*;
import java.io.IOException;
import java.util.Iterator;
import java.util.Random;
import java.util.TreeSet;

public class Demo2 {

	public static void main(String[] args) throws IOException {
		
		TreeSet ts = new TreeSet();
		Random r = new Random();
		while(ts.size()<20) {
			int sum = r.nextInt(100)+1;
			ts.add(sum);
		}
		FileWriter fos = new FileWriter("data.txt");
		StringBuffer sb=new StringBuffer();
		Iterator it=ts.iterator();
		while(it.hasNext()){
			sb.append(it.next()+" ");
		}
		fos.write(sb.toString());
		fos.close();
	}

}

二、使用 Java 语言编程,完成从键盘接收两个整数 left,right,计算[left, right] 之间的所有不 能被 3 或 5 整除的数之和,最后输出这些数的和。

比如,如果输入为 left 和 right 分别为 1 和 20,则输出结果为:112。因为满足条件的数有:
1,2,4, 7, 8, 11, 13, 14, 16, 17, 19,其和为 112。

代码如下(示例):

import java.util.Scanner;

public class Demo4 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int left = sc.nextInt();
		int right = sc.nextInt();
		int sum = 0;
		for(int i = left;i<=right;i++) {
			if(i%3!=0&&i%5!=0) {
				sum+=i;
			}
		}
		System.out.println(sum);

	}

}

三、. 请编写一个如下图所示的 GUI 程序,放入两个文本域,在其中输入两个整数,单点等号按钮,

将两个整数相加的结果显示于标签中。
在这里插入图片描述

代码如下(示例):

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import javax.swing.*;

public class demo1 {

	public static void main(String[] args) {
		JFrame frame = new JFrame("加法器");
		frame.setLayout(new BorderLayout());
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(300,100);
		frame.setLocation(400, 400);
		
		JPanel jp = new JPanel();
		JTextField tf1 = new JTextField (5);
		JTextField tf2 = new JTextField (5);
		JTextArea ja = new JTextArea(1,5);
		ja.setEditable(false);//不可编辑
		JButton jb = new JButton("=");
		JLabel jl=new JLabel("+");
		jb.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				int num1 = Integer.parseInt(tf1.getText());
				int num2 = Integer.parseInt(tf2.getText());
				int sum = num1+num2;
				ja.setText(String.valueOf(sum));
				
			}
			
			
		});
		
		jp.add(tf1);
		jp.add(jl);
		jp.add(tf2);
		jp.add(jb);
		jp.add(ja);
		frame.add(jp,BorderLayout.CENTER);
		frame.setVisible(true);
	}


}

#四、键盘输入五个数据并排序

代码如下(示例):

import java.util.Scanner;

public class paixuDemo {

	public static void main(String[] args) {
		int arr[] = new int[5];
		Scanner sc = new Scanner(System.in);
		for(int i =0;i<5;i++) {
			arr[i]=sc.nextInt();
		}
		System.out.println();
		for(int i =1;i<arr.length;i++) {
			for(int j = 0;j<arr.length-i;j++) {
				if(arr[j]>arr[j+1]) {
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
		}

	}

}

#五、请编写一个 Java 程序,模拟福利彩票“31 选 7”的抽奖方式(即从 1,2,3……,31

中随机选取不重复的 7 个数字),并按从小到大的顺序,以文本文件的方式写入文
件“data.txt”中,每个数之间用空格分开。注意,小于 10 的数字写入时请在前
面补“0”,比如,“1”,则以“01”写入文件。
代码如下(示例):

import java.io.FileWriter;
import java.io.IOException;
import java.util.*;


public class demo3 {

	public static void main(String[] args) throws Exception {
		Random r = new Random();
		TreeSet ts = new TreeSet();
		while(ts.size()<7) {
			ts.add(1+r.nextInt(31-1+1));
			
		}
		FileWriter fw = new FileWriter("data.txt");
		Iterator it = ts.iterator();
		while(it.hasNext()){
			StringBuilder sb = new StringBuilder();
 			sb.append(it.next());
 			String s = sb.toString();
 			int num = Integer.parseInt(s);
 			if(num<10) {
 				fw.write("0");
 			
 			}
			
		
			fw.write(s);
				fw.write(" ");
		
			
		}
          fw.close();
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值