java考试程序设计_今天考试的JAVA编程题

这篇博客分享了三道Java编程考试题目,包括模拟圆圈报数问题的递归解决方案,根据用户输入整数绘制图形的循环实现,以及使用Swing创建具有下拉框和按钮交互的窗口应用。
摘要由CSDN通过智能技术生成

今天早上考了java, 题目感觉还不错, 共四道题,有一道定义类的没啥意思就没列出来. 这三道题目还是不错的,特别是第一道,大一上学期学linux的时候,那时还没学C语言呢,准确的来说,还不知道什么是编程呢~~~去外面试听了几节linux的课, 那天老师直接复习C语言,可我还没见过C语言长啥样,直接傻眼了.最后布置了一道题,就是这里的第一道题了.

1. 有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。

分析:使用递归9310e85a14af99de4811ff4c77f1f911.png

24a924a57ba6b3f2b51fc9edb7ea4186.pngjavapackage test50;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

/**

* @author VellBibi

*有200个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-200,从1号小朋友开始循环1-3报数,

*数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码是多少。

*/

public class Test3Quit {

/**

* @param l 剩下小朋友List

* @param n 第n个开始报数

* @param m 数到m的人退出

* @return 最后一个小朋友的号码

*/

public static int play(List l, int n, int m){

int s = l.size();

if(s <= 1) return l.get(0);

else {

n = n + m - 1;

while(n >= s)

n = n-s;

l.remove(n);

return play(l, n, m);

}

}

public static void main(String[] args) {

System.out.println("输入有多少个小朋友:");

Scanner s = new Scanner(System.in);

int n = s.nextInt();

List l = new ArrayList();

for(int i=1; i<=n; i++){

l.add(i);

}

System.out.println(play(l, 0, 3));

}

}

fe21a7b0e664fbdc8468af2a5428f040.pngc72d7fcab3442ebbbc1f07669ab8c046.png

2. 编写程序根据用户输入的整数来在屏幕上产生图形(必须使用循环):

输入7时:                      输入5时:

9977cfa5375cec52ab6380c4af313bca.png4449bff2f1353eab6e3259f6437054bb.png9310e85a14af99de4811ff4c77f1f911.png

24a924a57ba6b3f2b51fc9edb7ea4186.pngjavaimport java.util.Scanner;

/**

* @author VellBibi

*编写程序根据用户输入的整数来在屏幕上产生图形(必须使用循环):

输入7时:

*

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

*

*/

public class PrintView {

public static void print(int n){

for(int i=0; i

for(int j=0; j

if(j == n-i-1 || j == n+i-1)

System.out.print("*");

else

System.out.print("");

}

System.out.println();

}

for(int i=0; i

for(int j=0; j<2*(n-1)-i; j++){

if(j == i+1 || j == 2*(n-1)-i-1)

System.out.print("*");

else

System.out.print("");

}

System.out.println();

}

}

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

int n = s.nextInt();

print(n);

}

}a4aca063e6be3a85ddd1eab12e574f0e.png

3. 用Swing包来实现一个窗体,要求如下:

l 窗体的初始大小为500*500;

l 窗体中包含一个下拉框,该下拉框包含(按钮1、按钮2、按钮3):位置(60,60),大小(90,30);

l 窗体中包含一个按钮(初始文本为“按钮”):位置(150,60),大小(80,30);

l 用监听事件实现当选择不同下拉框不同的选项时,按钮上的文本显示为对应的文本;

l 用监听事件实现当最小化窗口时,通过消息框显示“您正在最小化窗口”。9310e85a14af99de4811ff4c77f1f911.png

24a924a57ba6b3f2b51fc9edb7ea4186.pngjavaimport java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

/**

* @author VellBibi

*用Swing包来实现一个窗体,要求如下:

*窗体的初始大小为500*500;

*窗体中包含一个下拉框,该下拉框包含(按钮1、按钮2、按钮3):位置(60,60),大小(90,30);

*窗体中包含一个按钮(初始文本为“按钮”):位置(150,60),大小(80,30);

*用监听事件实现当选择不同下拉框不同的选项时,按钮上的文本显示为对应的文本;

*用监听事件实现当最小化窗口时,通过消息框显示“您正在最小化窗口”。

*/

public class TestSwing {

public static void main(String[] args) {

final JFrame f = new JFrame("vell001-VellBibi");

f.setLayout(null);

String[] str = new String[]{"按钮1","按钮2","按钮3"};

JComboBox cb = new JComboBox(str);

cb.setBounds(60, 60, 90, 30);

final JButton bt = new JButton("按钮");

bt.setBounds(150, 60, 80, 30);

final JDialog dl = new JDialog(f,"您正在最小化窗口");

JLabel l = new JLabel("您正在最小化窗口!!!");

dl.add(l);

dl.setSize(200, 100);

cb.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

if(e.getStateChange() == ItemEvent.SELECTED){

String item = (String)e.getItem();

bt.setText(item);

}

}

});

f.addWindowListener(new WindowListener() {

@Override

public void windowOpened(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowIconified(WindowEvent e) {

dl.setVisible(true);//显示dialog

}

@Override

public void windowDeiconified(WindowEvent e) {

}

@Override

public void windowDeactivated(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosing(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowClosed(WindowEvent e) {

// TODO Auto-generated method stub

}

@Override

public void windowActivated(WindowEvent e) {

// TODO Auto-generated method stub

}

});

f.add(cb);

f.add(bt);

f.setSize(500, 500);

f.setVisible(true);

}

}484b153bf00af660580e22c314ad299e.png6e4d333c5db6640b086523c0465eafda.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值