第三周作业-实现随机点名的签到程序 第五需求,头像版

本文介绍了如何根据老师的第五需求,修改一个Java GUI程序,使其能够显示头像并进行随机点名。作者提供了源代码,并分享了头像文件和班级花名册的下载链接。程序要求用户选择包含头像的文件夹和花名册文件,输入班级名称,然后可以开始按1/3比例随机点名。
摘要由CSDN通过智能技术生成

前言

老师的作业需求http://blog.csdn.net/dyz1982/article/details/21413679

基于前面的第四需求修改http://blog.csdn.net/cp_wl/article/details/21545589

按照丁老师的第五需求,加入了图片,同时,为了适应这个需求,修改了一下名字列表这个数组,同时也对整个界面做出一些调整。

另外,由于老师所收集的网络13班的头像并不齐全,并为了保护他们的一个隐私,就在网上找了一些动漫头像代替,当然,这个头像男女不分,点击这里下载头像文件。下载后解压文件。

点击这里下载可执行的JAR文件点击这里下载网络131班级花名册

另外,在写程序过程中也写了一段代码用于批量修改文件,会附上。


程序使用方法,打开后点击选择照片文件夹,选择刚才所解压的头像文件夹。PS:如需替换,只需将照片名字改成对应的学号.jPG文件,暂时只支持JPG格式,同时照片请将分辨率修改为200*200,否则会超出面板的大小。


然后点击选择文件选择花名册。

然后输入班级名称作为输出的文件名,也就是在CLASSNAME那个文本框修改。

然后就可以开始点名了,另外,随机点名人数还是总人数的1/3


下面开始上代码,总共有两个公共类,请确保在同一个包下

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

import javax.imageio.ImageIO;
import javax.swing.*;

public class RegisterApp2 extends JFrame implements ActionListener {

	static int count2 = 0;// 读取到的行数
	static JButton but1 = new JButton("到");// 两个按钮
	static JButton but2 = new JButton("缺席");
	static JLabel textfield = new JLabel("嗯哼", JLabel.CENTER);// 标签 用于显示名字和号数。
	static JLabel textarea = new JLabel();// 文本域,用于最后的输入
	static String namel[][];// 字符组 将花名册读入数组
	static int count = 0;// 
好的,让我们来一起编写一个随机点名的小程序,使用到泛型和集合框架。 首先,我们需要定义一个学生类,包含学生的姓名和学号: ```java public class Student { private String name; private String id; public Student(String name, String id) { this.name = name; this.id = id; } public String getName() { return name; } public String getId() { return id; } } ``` 接下来,我们可以使用一个泛型类来表示班级,其中包含了所有的学生对象: ```java import java.util.ArrayList; import java.util.List; import java.util.Random; public class Class<T extends Student> { private List<T> students; public Class() { students = new ArrayList<>(); } public void addStudent(T student) { students.add(student); } public T getRandomStudent() { Random random = new Random(); int index = random.nextInt(students.size()); return students.get(index); } } ``` 在这个泛型类中,我们使用了一个 ArrayList 来保存所有的学生对象,然后通过 getRandomStudent 方法随机返回一个学生对象。 最后,我们可以编写一个测试类来模拟随机点名的过程: ```java public class Test { public static void main(String[] args) { Class<Student> class1 = new Class<>(); class1.addStudent(new Student("张三", "001")); class1.addStudent(new Student("李四", "002")); class1.addStudent(new Student("王五", "003")); System.out.println("随机点名结果:"); Student student = class1.getRandomStudent(); System.out.println(student.getName() + " " + student.getId()); } } ``` 在这个测试类中,我们创建了一个班级对象 class1,并添加了三个学生对象。然后通过调用 getRandomStudent 方法随机返回一个学生对象,并输出其姓名和学号。 这就是一个简单的随机点名程序,使用了泛型和集合框架来实现
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值