public?class?RandomUtils?{
為海寧等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及海寧網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、海寧網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
public?static?String?randomId(){
Random?random?=?new?Random();
StringBuilder?sb?=?new?StringBuilder();
for?(int?i?=?0;?i??6;?i++)?{
sb.append(random.nextInt(10));
}
return?sb.toString();
}
public?static?int?randomIntId(){
Random?random?=?new?Random();
StringBuilder?sb?=?new?StringBuilder();
for?(int?i?=?0;?i??6;?i++)?{
sb.append(random.nextInt(10));
}
return?Integer.parseInt(sb.toString());
}
public?static?String?randomName(){
String[]?name1?=?{"趙","錢","孫","李","周","吳","鄭","王","張","劉"};
String[]?name2?=?{"一","二","三","四","五","六","七","八","九","十"};
Random?random?=?new?Random();
StringBuilder?sb?=?new?StringBuilder();
sb.append(name1[random.nextInt(10)]);
sb.append(name2[random.nextInt(10)]);
sb.append(name2[random.nextInt(10)]);
return?sb.toString();
}
public?static?String?randomSex(){
Random?random?=?new?Random();
return?random.nextInt(4)/2==0?"男":"女";
}
public?static?int?randomAge(int?min,?int?max){
Random?random?=?new?Random();
return?random.nextInt(min)?+?max-min;
}
public?static?int?randomScore(){
Random?random?=?new?Random();
return?(int)(random.nextDouble()*100%100);
}
public?static?String?randomAddress(){
String[]?address1?=?{"商業(yè)","紅葉","安康","河南","長海","黃河","桐柏","科學(xué)","瑞達(dá)","花園"};
String[]?address2?=?{"東","南","西","北","中"};
String[]?address3?=?{"街","路","大道","巷"};
Random?random?=?new?Random();
StringBuilder?sb?=?new?StringBuilder();
sb.append(address1[random.nextInt(10)]);
sb.append(address2[random.nextInt(5)]);
sb.append(address3[random.nextInt(4)]);
sb.append(random.nextInt(1000)+1);
sb.append("號(hào)");
return?sb.toString();
}
}
import?javax.swing.*;
import?javax.swing.event.TreeSelectionEvent;
import?javax.swing.event.TreeSelectionListener;
import?javax.swing.table.DefaultTableModel;
import?javax.swing.tree.DefaultMutableTreeNode;
import?java.awt.*;
import?java.util.*;
import?java.util.List;
public?class?StudentManage?extends?JFrame{
public?final?static?String[]?CH_NUM?=?{"一","二","三","四","五","六","七","八","九","十"};
public?final?static?String?ROOT?=?"班級(jí)管理";
public?final?static?int?GRADE_NUM?=?3;
public?final?static?int?CLASS_NUM?=?3;
private?MapString,?ListStudent?classes;
public?StudentManage()?{
setTitle("學(xué)生管理系統(tǒng)");
setSize(300,?300);
setLayout(new?BorderLayout());
if(classes?==?null)?classes?=?new?HashMap();
DefaultMutableTreeNode?top?=?new?DefaultMutableTreeNode(ROOT);
DefaultMutableTreeNode[]?gradeNodes?=?new?DefaultMutableTreeNode[GRADE_NUM];
for?(int?i?=?0;?i??GRADE_NUM;?i++)?{
gradeNodes[i]?=?new?DefaultMutableTreeNode(CH_NUM[i]?+?"年級(jí)");
for?(int?j?=?0;?j??CLASS_NUM;?j++)?{
gradeNodes[i].add(new?DefaultMutableTreeNode(CH_NUM[j]?+?"班"));
}
top.add(gradeNodes[i]);
}
final?JTree?tree?=?new?JTree(top);
String?title[]?=?{"ID","姓名","性別","年齡","地址"};
final?DefaultTableModel?model?=?new?DefaultTableModel(title,?0);
JTable?table=new?JTable(model);
tree.addTreeSelectionListener(new?TreeSelectionListener()?{
@Override
public?void?valueChanged(TreeSelectionEvent?e)?{
DefaultMutableTreeNode?node?=?(DefaultMutableTreeNode)?tree?.getLastSelectedPathComponent();
if?(node?==?null)?return;
Object?object?=?node.getUserObject();
if?(node.isLeaf())?{
ListStudent?stdList?=?classes.get(getFullPath(node));
Object[][]?data?=?new?Object[stdList.size()][5];
for?(int?i?=?0;?i??stdList.size();?i++)?{
data[i][0]?=?stdList.get(i).getId();
data[i][1]?=?stdList.get(i).getName();
data[i][2]?=?stdList.get(i).getSex();
data[i][3]?=?stdList.get(i).getAge();
data[i][4]?=?stdList.get(i).getAddress();
}
while(model.getRowCount()0){
model.removeRow(model.getRowCount()-1);
}
for?(int?i?=?0;?i??stdList.size();?i++)?{
model.addRow(data[i]);
}
model.fireTableDataChanged();
}
}
});
add(tree,?BorderLayout.WEST);
add(new?JScrollPane(table),?BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private?String?getFullPath(DefaultMutableTreeNode?defaultMutableTreeNode){
StringBuilder?sb?=?new?StringBuilder();
Object[]?objs?=?defaultMutableTreeNode.getUserObjectPath();
for?(int?i?=?0;?i??objs.length;?i++)?{
sb.append(objs[i]);
}
return?sb.toString().replace(ROOT,"");
}
public?void?init(){
for?(int?i?=?0;?i??GRADE_NUM;?i++)?{
for?(int?j?=?0;?j??CLASS_NUM;?j++)?{
int?n?=?new?Random().nextInt(30)+1;
ListStudent?stdList?=?new?ArrayList(n);
for?(int?k?=?0;?k??n;?k++)?{
stdList.add(new?Student(RandomUtils.randomIntId(),RandomUtils.randomName(),RandomUtils.randomSex(),
RandomUtils.randomAge(6,12),RandomUtils.randomAddress()));
}
classes.put(CH_NUM[i]?+?"年級(jí)"+?CH_NUM[j]?+"班",?stdList);
}
}
}
public?static?void?main(String[]?args)?{
StudentManage?studentManage?=?new?StudentManage();
studentManage.init();
}
}
class?Student?{
private?int?id;
private?String?name;
private?String?sex;
private?int?age;
private?String?address;
public?Student(int?id,?String?name,?String?sex,?int?age,?String?address)?{
this.id?=?id;
this.name?=?name;
this.sex?=?sex;
this.age?=?age;
this.address?=?address;
}
public?Student()?{
}
public?int?getId()?{
return?id;
}
public?String?getName()?{
return?name;
}
public?String?getSex()?{
return?sex;
}
public?int?getAge()?{
return?age;
}
public?String?getAddress()?{
return?address;
}
@Override
public?String?toString()?{
return?"Student{"?+
"id="?+?id?+
",?name='"?+?name?+?'\''?+
",?sex='"?+?sex?+?'\''?+
",?age="?+?age?+
",?address='"?+?address?+?'\''?+
'}';
}
}
/**
* GenericLinkedStack.java
*/
package fix;
import java.util.EmptyStackException;
/**
*泛型的鏈?zhǔn)綏?shù)據(jù)結(jié)構(gòu)
*/
public class GenericLinkedStackE {
// 棧頂元素
private Item top = null;
// 返回棧頂元素,并彈出
public E pop() throws EmptyStackException {
if (isEmpty()) {
throw new EmptyStackException();
}
E e = top.value;
top = top.next;
return e;
}
/**
* 棧頂壓入一個(gè)元素
* @param e 被壓入的元素
*/
public void push(E e) {
Item curr = new Item(e);
curr.next = top;
top = curr;
}
/**
* 返回棧頂元素,但不出棧
* @return 棧頂元素
*/
public E peek() {
if (isEmpty()) {
throw new EmptyStackException();
}
return top.value;
}
/**
* 判斷棧是否為空
* @return 判斷結(jié)果
*/
public boolean isEmpty() {
return top == null;
}
/**
* 棧中元素
* @author jilen
*
*/
class Item {
//元素
private E value;
//下一個(gè)
private Item next;
public Item(E e) {
this.value = e;
}
public E getValue() {
return value;
}
public void setValue(E value) {
this.value = value;
}
public Item getNext() {
return next;
}
public void setNext(Item next) {
this.next = next;
}
}
}
/**
* InfixToPostfixConverter.java
*/
package fix;
import java.util.Hashtable;
/**
* @author jilen
*
*/
public class InfixToPostfixConverter {
// 操作符及其優(yōu)先級(jí)組成的鍵值對(duì)
private static final HashtableCharacter, Integer operators;
private StringBuffer infix;
private StringBuffer postfix;
GenericLinkedStackCharacter stack = new GenericLinkedStackCharacter();
// 初始化操作符列表,static語句塊會(huì)在加載類時(shí)自動(dòng)執(zhí)行
static {
operators = new HashtableCharacter, Integer();
operators.put('^', 4);
operators.put('*', 3);
operators.put('/', 3);
operators.put('%', 3);
operators.put('+', 2);
operators.put('-', 2);
operators.put('(', -1);
operators.put(')', 5);
}
/**
*
*/
public InfixToPostfixConverter(StringBuffer infix, StringBuffer postfix) {
this.infix = infix;
this.postfix = postfix;
}
/**
* 轉(zhuǎn)換函數(shù)
*/
public void convertToPostfix() {
// 對(duì)輸入字符串中字符遍歷
for (int i = 0, n = infix.length(); i n; i++) {
char c = infix.charAt(i);
// 是數(shù)字之間添加到轉(zhuǎn)換后字符串
if (isNumber(c)) {
postfix.append(c);
} else if (isOperator(c)) {
switch (c) {
// '(' 直接入棧
case '(':
stack.push(c);
break;
// ')' 彈出元素直到碰到'('
case ')':
while (!stack.isEmpty() stack.peek() != '(') {
postfix.append(stack.pop());
}
stack.pop();
break;
// 其他操作符
default:
// 當(dāng)前操作符比棧頂操作符優(yōu)先級(jí)高,直接入棧
if (stack.isEmpty() || precedence(c, stack.peek())) {
stack.push(c);
}
// 當(dāng)前操作符比棧頂操作符優(yōu)先級(jí)低,出棧直到為空或棧頂優(yōu)先級(jí)低于當(dāng)前操作符
else if (!precedence(c, stack.peek())) {
while (!stack.isEmpty() !precedence(c, stack.peek())) {
postfix.append(stack.pop());
}
stack.push(c);
}
break;
}
}
}
// 若棧中還有操作符,所以元素出棧
while (!stack.isEmpty()) {
postfix.append(stack.pop());
}
}
/**
* 判斷是否為操作符
* @param c
* @return
*/
public static boolean isOperator(char c) {
return operators.containsKey(c);
}
/**
* 優(yōu)先級(jí)大小關(guān)系operator1 operator2 則返回true,否則false
* @param operator1
* @param operator2
* @return 判斷結(jié)果
*/
public static boolean precedence(char operator1, char operator2) {
return operators.get(operator1) operators.get(operator2);
}
/**
* 是否數(shù)字
* @param c 要判斷的字符
* @return 判斷結(jié)果
*/
public static boolean isNumber(char c) {
return c = '0' c = '9';
}
}
/**
*Main.java測試類
*/
package fix;
/**
* @author Administrator
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
StringBuffer infix = new StringBuffer("(1+2)*3/4");
StringBuffer postfix = new StringBuffer();
InfixToPostfixConverter converter = new InfixToPostfixConverter(infix,
postfix);
converter.convertToPostfix();
System.out.println(postfix.toString());
}
}
中綴轉(zhuǎn)后綴的程序,有GenericLinkedStack.java,InfixToPostfix.java,Main.java三個(gè)源文件需要放在fix包下
public?static?void?main(String...?args)?{
//?姓名列表
String[]?names?=?new?String[]{"張1",?"張2",?"張3",?"張4",?"張5",?"張6",?"張7",?"張8",?"張9",?"張10",?"張11",?"張12",?"張13",?"張14",
"張15",?"張16",?"張17",?"張18",?"張19",?"張20",?"張21",?"張22",?"張23"};
MapString,?ListJSONObject?result?=?new?HashMap();
String?classIndex?=?"class%s";
for?(int?i?=?0;?i??names.length;?i++)?{
String?classKey?=?String.format(classIndex,?Integer.parseInt(String.valueOf(i?/?10))?+?1);
JSONObject?person?=?new?JSONObject();
person.put("id",?StringUtils.leftPad(String.valueOf(i?+?1),?5,?"0"));
person.put("name",?names[i]);
person.put("class",?classKey);
ListJSONObject?classValues?=?result.get(classKey);
if?(null?==?classValues)?{
classValues?=?new?ArrayList();
classValues.add(person);
result.put(classKey,?classValues);
}?else?{
classValues.add(person);
}
}
System.out.println(JSONObject.toJSONString(result));
}
分享名稱:班級(jí)管理JAVA代碼 基于java的班級(jí)管理系統(tǒng)
轉(zhuǎn)載來于:http://vcdvsql.cn/article18/doiscdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、App開發(fā)、網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站營銷、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)