51,412
社区成员
发帖
与我相关
我的任务
分享
package exam_distribution.main;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.apache.commons.lang.StringUtils;
import exam_distribution.model.Examinee;
public class DoMain {
/**
* 考生个数
*/
private static int examineeCount=0;
/**
* 基础考生数
*/
private static final int BASE_EXAMINEE_COUNT=50000;
/**
* 教室个数
*/
@SuppressWarnings("unused")
private static int classroomCount=0;
/**
* 准考证号容器
*/
private static List<String> licenceNumberList=new ArrayList<String>();
/**
* 考生名容器
*/
private static List<String> examineeNameList=new ArrayList<String>();
/**
* 考生对象容器
*/
private static List<Examinee> examineeList=new ArrayList<Examinee>();
/**
* 字母a
*/
private static char A='a';
/**
* 字母表元素个数
*/
private static final int ALPHABET_COUNT=26;
private static Random random=new Random();
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化数据
init();
//打印考生信息
print();
}
/**
* 随机生成考生数
* @return
*/
public static int createExamineeCount(){
return random.nextInt(10000)+BASE_EXAMINEE_COUNT;
}
/**
* 根据考生个数生成需要的教室数
* @return
*/
public static int createClassroomCount(){
return (int) Math.ceil(examineeCount/30f);
}
/**
* 生成准考证号
*/
public static void createLicenceNumber(){
for(int i=1;i<=examineeCount;i++){
licenceNumberList.add(StringUtils.leftPad(i+"", 5, '0'));
}
}
/**
* 生成考生名
*/
public static void createExamineeName(){
//生成字母表,并根据字母表生成名字
char[] alphabet=new char[ALPHABET_COUNT];
for(int k=0;k<ALPHABET_COUNT;k++){
alphabet[k]=A++;
}
int index=0;
StringBuilder name=null;
for(int j=1;j<=examineeCount;j++){
name=new StringBuilder();
for(int n=0;n<6;n++){
index=random.nextInt(ALPHABET_COUNT);
name.append((random.nextInt(2)==0)?alphabet[index]:(alphabet[index]+"").toUpperCase());
}
examineeNameList.add(name.toString());
}
}
/**
* 创建考生
*/
public static void createExaminee(){
int classRoomNum=0;//考室号
int seatNumber=1;//座位号
Examinee examiee=null;//考生对象
for(int i=0;i<examineeCount;i++){
examiee=new Examinee();
examiee.setExamineeName(examineeNameList.get(i));//考生名
if(i%30==0){
classRoomNum++;
seatNumber=1;
}
examiee.setClassroomNo(classRoomNum+"");//教室编号
examiee.setSeatNumber((seatNumber++)+"");//座位号
examiee.setLicenceNumber(licenceNumberList.get(i));//准考证号
examineeList.add(examiee);
}
}
/**
* 打印考生信息
*/
public static void print(){
StringBuilder sb=new StringBuilder(100000);
for(Examinee ele:examineeList){
sb.append(ele.toString()).append("\r\n");
}
System.out.println(sb);
writeText(sb.toString(), "E:\\examineeInfo.txt");
}
/**
* 记录信息到txt文件
* @param text
* @param path
*/
public static void writeText(String text, String path) {
System.out.println("保存地址:"+path);
FileWriter fileWrite = null;
try {
fileWrite = new FileWriter(path);
fileWrite.write(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileWrite.flush();
fileWrite.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void init(){
//随机生成考生数
examineeCount=createExamineeCount();
//生成教室数
classroomCount=createClassroomCount();
//生成准考证号
createLicenceNumber();
//生成考生名
createExamineeName();
//创建考生
createExaminee();
}
}
model
package exam_distribution.model;
public class Examinee {
private String examineeName;//考生名
private String classroomNo;//教室编号
private String seatNumber;//座位号
private String licenceNumber;//准考证号
public String getExamineeName() {
return examineeName;
}
public void setExamineeName(String examineeName) {
this.examineeName = examineeName;
}
public String getClassroomNo() {
return classroomNo;
}
public void setClassroomNo(String classroomNo) {
this.classroomNo = classroomNo;
}
public String getSeatNumber() {
return seatNumber;
}
public void setSeatNumber(String seatNumber) {
this.seatNumber = seatNumber;
}
public String getLicenceNumber() {
return licenceNumber;
}
public void setLicenceNumber(String licenceNumber) {
this.licenceNumber = licenceNumber;
}
@Override
public String toString() {
String info="考生名:"+examineeName+"\t考室号:"+classroomNo+"\t座位号:"+seatNumber+"\t准考证号:"+licenceNumber+"\n";
return info;
}
}