第一篇:java學生管理系統代碼
學生成績管理系統 java源代碼
package com.student.enty;
//姓名學號語文數學英語public class Student {
private String name;
private int num;
private double chi;
private double mat;
private double eng;//聲明成員變量 public String getName() {
return name;
}
public void setName(String name) {this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {this.num = num;
}
public double getChi() {
return chi;
}
public void setChi(double chi) {this.chi = chi;
}
public double getMat() {
return mat;
}
public void setMat(double mat) {this.mat = mat;
}
public double getEng() {
return eng;
}
public void setEng(double eng) {this.eng = eng;
}
}
第二篇:個人通訊錄管理系統,java源代碼
package cn.pab.manager;
import java.util.List; import java.util.Scanner;
import cn.pab.dao.PersonDao; import cn.pab.dao.TypeDao; import cn.pab.dao.UserDao; import cn.pab.dao.impl.PersonDaoImpl; import cn.pab.dao.impl.TypeDaoImpl; import cn.pab.dao.impl.UserDaoImpl; import cn.pab.entity.Person; import cn.pab.entity.Type; /** * 業務類
*/ public class PABmanager { /**
* 系統啟動
*/ public static void main(String[] args) {
Scanner input = new Scanner(System.in);
UserDao userDao = new UserDaoImpl();
TypeDao typeDao = new TypeDaoImpl();
PersonDao personDao = new PersonDaoImpl();
System.out.println("***********歡迎使用個人通訊錄管理系統**********");
System.out.print(" 請選擇操作(1.系統登錄
2.密碼修改
3.取消):");
String in = input.next();
if ("1".equals(in)) {
boolean islogin = userDao.login();
if(islogin){
System.out.println("***********成功登錄個人通訊錄管理系統**********");
//System.out.print(" 請選擇操作(1.類別管理
2.聯系人管理
3.退出系統):");
}else{
System.out.println("用戶名或密碼錯誤,不能登錄!");
System.exit(-1);
}
}else if ("2".equals(in)) {
boolean modiFlag = userDao.modify();
if(modiFlag){
System.out.println("密碼修改成功!"); }else{
System.out.println("密碼修改失敗!"); } System.exit(-1); }else{ System.out.println("您已經退出系統!"); System.exit(-1); }
while(true){
System.out.print(" 請選擇操作(1.類別管理
2.聯系人管理
3.退出系統):"); String in2 = input.next(); if ("1".equals(in2)) { while(true){
System.out.print(" 請繼續選擇操作(1.新建類別
2.查詢類別
3.刪除類別
4.返回):");
String num = input.next();
if ("1".equals(num)) {
System.out.print("請輸入類別的名稱:"); String lbmc = input.next();
System.out.print("請輸入類別的說明:"); String lbsm = input.next(); System.out.print("請輸入類別的備注:"); String lbbz = input.next();
Type type = new Type(lbmc,lbsm,lbbz);
typeDao.createType(type); }else if ("2".equals(num)) { List types = typeDao.queryType();
System.out.println(" 類別信息列表");
System.out.println("類別名稱 類別說明 類別備注");
for (int i = 0; i < types.size(); i++) {
Type type =types.get(i);
System.out.print(type.getLbmc()+" ");
System.out.print(type.getLbsm()+ " ");
System.out.println(type.getLbbz());
}
}else if ("3".equals(num)) {
System.out.print("請輸入類別的名稱:");
String lbmc = input.next();
Type type = new Type(lbmc,null,null);
typeDao.deleteType(type); }else if ("4".equals(num)) { break; }else{
System.out.println("您輸入不合法,請重新選擇!");
}
} }else if ("2".equals(in2)) {
while(true){
System.out.print(" 請繼續選擇操作(1.新建聯系人
2.查詢聯系人
3.更新聯系人
4.刪除聯系人
5.返回):");
String num = input.next();
if ("1".equals(num)) {
System.out.print("請輸入聯系人的類別名稱:"); String lb = input.next();
System.out.print("請輸入聯系人的姓名:"); String xm = input.next();
System.out.print("請輸入聯系人的電話:"); String dh = input.next();
System.out.print("請輸入聯系人的手機號:"); String sjh = input.next();
System.out.print("請輸入聯系人的工作單位:"); String gzdw = input.next();
System.out.print("請輸入聯系人的住址:");
String zz = input.next();
System.out.print("請輸入聯系人的郵政編碼:");
String yzbm = input.next();
Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm);
personDao.createPerson(person);
}else if ("2".equals(num)) {
System.out.print("請輸入聯系人的姓名:");
String name = input.next();
Person p = personDao.queryPerson(name);
System.out.println(" 查詢到的聯系人信息");
System.out.println("類別 姓名 電話 手機號 工作單位 住址 郵政編碼");
System.out.print(p.getLb() + " ");
System.out.print(p.getXm() + " ");
System.out.print(p.getDh() + " ");
System.out.print(p.getSjh() + " ");
System.out.print(p.getGzdw() + " ");
System.out.print(p.getZz() + " ");
System.out.println(p.getYzbm());
}
} }
}else if ("3".equals(num)) {
System.out.print("請輸入需更新的聯系人編號:");
int id = input.nextInt();
System.out.print("請輸入需更新的聯系人信息選項:");
String item = input.next();
System.out.print("請輸入聯系人信息選項的值:");
String val = input.next();
personDao.updatePerson(id,item, val);
}else if ("4".equals(num)) {
System.out.print("請輸入要刪除聯系人的姓名:");
String name = input.next();
personDao.deletePerson(name);
}else if ("5".equals(num)) {
break;
}else{
System.out.println("您輸入不合法,請重新選擇!");
} } }else if ("3".equals(in2)) { System.out.println("您已經退出系統!"); System.exit(-1); }else{ System.out.println("您輸入不合法,請重新選擇!"); }
第三篇:java音樂播放器源代碼(ChatClient)
package ChatClient;
import java.awt.*; import java.net.*; import java.awt.event.*; import java.io.*; import java.applet.*; class AudioClipWindow extends Frame implements Runnable,ItemListener,ActionListener { Thread thread;
Choice choice;
URL url;
AudioClip clip;
Button buttonPlay,
buttonLoop,
buttonStop;
String str;
AudioClipWindow(ActionListener chatClient)
{
thread=new Thread(this);
choice=new Choice();
choice.add("陳綺貞-我在那一角落患過傷風.wav");
choice.add("no one wants forever .wma.wav");
choice.add("中島美嘉 - 雪之華(韓雪-飄雪)日文版.wav");
choice.addItemListener(this);
buttonPlay=new Button("播放");
buttonLoop=new Button("循環");
buttonStop=new Button("停止");
buttonPlay.addActionListener(this);
buttonStop.addActionListener(this);
buttonLoop.addActionListener(this);
setLayout(new FlowLayout());
add(choice);
add(buttonPlay);
add(buttonLoop);
add(buttonStop);
setSize(350,120);
setVisible(true);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
validate();
}
public void itemStateChanged(ItemEvent e)
{ str=choice.getSelectedItem();
if(!(thread.isAlive()))
{ thread=new Thread(this);
}
try{ thread.start();
}
catch(Exception ee){}
}
public void run()
{ try{ File file=new File(str);
url=file.toURL();
clip=Applet.newAudioClip(url);
}
catch(Exception e)
{ System.out.println(e);
}
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==buttonPlay)
{ clip.play();
}
else if(e.getSource()==buttonLoop)
{ clip.loop();
}
if(e.getSource()==buttonStop)
{ clip.stop();
}
} }
第四篇:學生信息管理系統源代碼
import java.io.*;
class StuInfo {
public String name;
public int number;
public String sex;
public String age;
public String bir;
public String email;
public String addr;
public String tel;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getBir() {
return bir;
}
public void setBir(String bir) {
this.bir = bir;
}
public String getEmail() {
return email;
} public void setEmail(String email ) {
this.email = email; } public String getAddr() {
return addr; } public void setAddr(String addr) {
this.addr = addr; } public String getTel() {
return tel; } public void setTel(String tel) {
this.tel = tel; } } public class Student { private static PrintStream out = System.out; private static String filename = "Stu.txt"; private static int total = 0; private static int rt = 0;//recyle length private StuInfo[] stuInfos; private StuInfo[] recycle; BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));//創建緩沖流
public Student(){
stuInfos = new StuInfo[11];
}
public void 信息錄入(){
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print(" 請輸入學生信息(以0結束) ");
System.out.print("學號: ");
StuInfo stu = new StuInfo();
stu.setNumber(Integer.parseInt(buf.readLine()));
while(stu.getNumber()!=0) {
System.out.print("姓名: ");
stu.setName(buf.readLine());
System.out.print("性別: ");
stu.setSex(buf.readLine());
System.out.print("年齡: ");
stu.setAge (buf.readLine());
System.out.print("生日: ");
stu.setBir(buf.readLine());
System.out.print("郵箱: ");
stu.setEmail(buf.readLine());
System.out.print("地址: ");
stu.setAddr(buf.readLine());
System.out.print("電話: ");
stu.setTel(buf.readLine());
//添加其他輸入信息
stuInfos[total]=stu;
total++;
stu = new StuInfo();
System.out.print(" 請輸入下一個學生信息(以0結束) ");
System.out.print("姓名: ");
stu.setName(buf.readLine());
}
}catch(Exception e){
out.print(e);
}
} public void 保存數據(){ try{
FileWriter fwr=new FileWriter(filename);
BufferedWriter fw = new BufferedWriter(fwr);
fw.write(total+" ");
for(int k=0;k
fw.write(stuInfos[k].getNumber()+" ");
fw.write(stuInfos[k].getName()+" ");
fw.write(stuInfos[k].getSex()+" ");
fw.write(stuInfos[k].getAge()+" ");
fw.write(stuInfos[k].getBir()+" ");
fw.write(stuInfos[k].getEmail()+" ");
fw.write(stuInfos[k].getAddr()+" ");
fw.write(stuInfos[k].getTel()+" ");
}
fw.write(rt+" ");
for(int k=0;k
fw.write(recycle[k].getNumber()+" ");
fw.write(recycle[k].getName()+" ");
fw.write(recycle[k].getSex()+" ");
} fw.write(recycle[k].getAge()+" "); fw.write(recycle[k].getBir()+" "); fw.write(recycle[k].getEmail()+" "); fw.write(recycle[k].getAddr()+" "); fw.write(recycle[k].getTel()+" ");
}
fw.flush();
fw.close();
fwr.close();
System.out.println(" 已保存數據!"); }catch(Exception e){ out.print(e); } public void 讀取數據(){
try{
FileReader fr = new FileReader(filename);
BufferedReader bfr = new BufferedReader(fr);
String buff = bfr.readLine();
if(buff != null) {
total = Integer.parseInt(buff);
}else{
total = 0;
}
StuInfo stu;
for(int i=0; i
stu = new StuInfo();
stu.setNumber(Integer.parseInt(bfr.readLine()));
stu.setName(bfr.readLine());
stu.setSex(bfr.readLine());
stu.setAge(bfr.readLine());
stu.setBir(bfr.readLine());
stu.setEmail(bfr.readLine());
stu.setAddr(bfr.readLine());
stu.setTel(bfr.readLine());
stuInfos[i]=stu;
}
buff = bfr.readLine();
if(buff!= null) {
rt = Integer.parseInt(buff);
}else{
rt = 0;
}
for(int i=0; i
stu = new StuInfo(); stu.setNumber(Integer.parseInt(bfr.readLine())); stu.setName(bfr.readLine()); stu.setSex(bfr.readLine()); stu.setAge(bfr.readLine()); stu.setBir(bfr.readLine()); stu.setEmail(bfr.readLine()); stu.setAddr(bfr.readLine()); stu.setTel(bfr.readLine());
//補全
} recycle[i]=stu;
}
// bfr.flush();
bfr.close();
fr.close();
System.out.println("讀取成功"); }catch(Exception e){ out.print(e); } public void 顯示學生(StuInfo[] stus,int length){ try{
out.println("----------"); for(int i=0;i
out.println("學號:"+stus[i].getNumber());
out.println("姓名:"+stus[i].getName());
out.println("性別:"+stus[i].getSex());
out.println("年齡:"+stus[i].getAge());
out.println("生日:"+stus[i].getBir());
out.println("郵箱:"+stus[i].getEmail());
out.println("地址:"+stus[i].getAddr());
out.println("電話:"+stus[i].getTel()); //輸出其他內容.....
out.println("----------");
}
System.out.println("請按任意鍵繼續");
buf.read();//
} }catch(Exception e){ out.print(e); }
public void 姓名查詢(String name){ StuInfo[] result = new StuInfo[11]; int r = 0; for(int i=0;i
if(stuInfos[i].getName().equals(name)){
result[r]=stuInfos[i];
r++;
} } if(r==0){
System.out.print("查找不到該學生!"); //提示找不到學生
return; }else{
顯示學生(result, r); } } public void 學號查詢(String number ){ StuInfo[] result = new StuInfo[11]; int r = 0; for(int i=0;i
if(Integer.toString(stuInfos[i].getNumber()).equals(number)){
result[r]=stuInfos[i];
r++;//補全
} } if(r==0){
System.out.print("查找不到該學生!");//提示找不到學生
}else{
顯示學生(result, r); } } public void 查找菜單(){//全字匹配
int choice; try{
do{
System.out.println("查找界面");//
System.out.println("1:按姓名查詢");
System.out.println("2:按學號查詢");
System.out.println("0:返回上級");
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
choice = Integer.parseInt(buf.readLine());
switch(choice){
case 1:
System.out.println("請輸入姓名");//獲得輸入的姓名
String name = buf.readLine();
姓名查詢(name); break; case 2:
System.out.println("請輸入學號"); String number = buf.readLine(); 學號查詢(number);//獲得輸入的學號
break;
default:
System.out.println("對不起,出現異常!");
//異常:7
}
}while(choice!=0);
}catch(Exception e){
out.print(e);
}
}
public boolean 修改學生(int number) {
boolean flag = false;
try{
for(int i=0;i
if(stuInfos[i].getNumber()==number) {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
StuInfo stu = new StuInfo();
System.out.print(" 請輸入學生信息 ");
System.out.print("姓名: ");
stu.setName(buf.readLine());
System.out.print("性別: ");
stu.setSex(buf.readLine());
System.out.print("年齡: ");
stu.setAge (buf.readLine());
System.out.print("生日: ");
stu.setBir(buf.readLine());
System.out.print("郵箱: ");
stu.setEmail(buf.readLine());
break;
}
}
}catch(Exception e){
out.print(e);
}
return flag; }
System.out.print("地址: "); stu.setAddr(buf.readLine());
System.out.print("電話: "); stu.setTel(buf.readLine()); stu.setNumber(number); stuInfos[i]=stu;
System.out.print("修改完成啦!");//提示修改完成
public boolean 刪除學生(int number){ boolean flag = false;
} for(int i=0;i
if(rt==0){
recycle = new StuInfo[101];
}
recycle[rt]=stuInfos[i];
for(;i
stuInfos[i]=stuInfos[i+1];
}
total--;
flag=true;
break; } } return flag;
public
void 刪除頁面(){ System.out.print("刪除頁面");//請輸入要刪除的學號
try{
int choice;
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("1:學生信息修改");
System.out.println("2:學生信息刪除");
System.out.println("請輸入您的選擇(1--2)");
//...
choice = Integer.parseInt(buf.readLine());
switch(choice){
case 1:
System.out.println("請輸入要修改的學號:"); choice = Integer.parseInt(buf.readLine());
修改學生(choice);
break; case 2:
System.out.println("請輸入要刪除的學號:"); choice = Integer.parseInt(buf.readLine());
刪除學生(choice); break; //補充
} /*if(刪除學生(choice)){
System.out.print("刪除成功!");//刪除成功
}else{
System.out.print("刪除失敗!");//刪除失敗
}*/ }catch(Exception e){ out.print(e); } } public void showMenu() { try{
int choice;
do{
System.out.println("學生管理系統主菜單界面");
System.out.println("1:學生信息錄入");
System.out.println("2:學生信息瀏覽");
System.out.println("3:學生信息查詢");
System.out.println("4:學生修改與刪除");
System.out.println("5:學生信息保存");
System.out.println("6:學生信息讀取");
System.out.println("0:退出系統");
System.out.println("請輸入您的選擇(0--6)");
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
choice = Integer.parseInt(buf.readLine());
switch(choice){
case 1:
信息錄入();//
break;
case 2:
//補全方法調用
顯示學生(stuInfos, total);
break;
case 3:
查找菜單();
break;
case 4:
刪除頁面();
break;
case 5:
保存數據();
break;
case 6:
讀取數據();
break;
default:
System.out.print("出現異常!");
}
}while(choice!=0);
}catch(Exception e){
System.out.println(e);
}
// TODO 自動生成的方法存根
}
public static void main(String[] args) {
Student student = new Student();
student.showMenu();
} }
//異常:7
第五篇:大學JAVA課程設計——學生信息管理系統
沈陽理工大學課程設計
沈陽理工大學課程設計
摘要
Java語言是當前最為流行的程序設計語言之一,諸多優秀的的特性使其成為被業界廣泛認可和采用的工具。本設計可以幫助同學掌握和應運所學的面向對象程序設計學生學籍信息管理系統的編程內容,培養同學們建立對象模型,處理對象和對象集關系和對圖形用回界面設計編程以及文件和流的編程問題的能力,訓練同學為解決實際問題而創建較完整的簡單面向對象和管理系統編程應運程序的獨立編程能力.本設計是一個常見的學生學籍管理系統應運程序.
系統實現的功能: 界面操作實現學生學籍信息的添加、刪除、查詢、修改功能,在文本文件中的的信息的動態處理。
關鍵詞:
學生學籍管理系統;圖形用戶界面設計;文件和流;java
I
沈陽理工大學課程設計
目 錄
一、課程設計的目的與意義 .......................................................................................... 1
1.目的 .......................................................... 1 2.意義 .......................................................... 1
二、需求分析 .......................................................................................................................... 1
1. 學生學籍管理系統主界面模塊 ................................ 1 2. 錄入學生基本信息模塊 ...................................... 1 3. 修改學生基本信息模板 ...................................... 1 3. 查詢學生基本信息模板 ...................................... 1 4. 刪除學生基本信息模板 ...................................... 1
三、分案設計 .......................................................................................................................... 3
1. 定義四個Panel面板 ...................................... 3
四、方案的實施 ...................................................................................................... 3
五、心得體會 ......................................................................................................... 15
六、參考文獻 ......................................................................................................... 16
II
沈陽理工大學課程設計
一、課程設計的目的與意義
目的:深入理解java語言的語法規則及其優勢,掌握類與方法的構造方法,掌 握基于java的各種操作的實現方法,訓練對基礎知識和基本方法的綜合運用能力,增強對算法的理解能力,提高軟件設計能力。在實踐中培養獨立分析問題和解決問題的作風和能力。
意義:熟練運用java語言、基本構造方法和算法的基礎知識,獨立編制一個具有中等難度的、解決實際應用問題的應用程序。通過題意分析、選擇類結構、算法設計、編制程序、調試程序、軟件測試、結果分析、撰寫課程設計報告等環節完成軟件設計的全過程,不斷地完善程序以提高程序的性能。
二、需求分析
該學生學籍管理系統的所有功能均在一個Frame窗體中實現。 1.學生學籍管理系統主界面模塊:
采用Frame窗體來設置歡迎界面包括背景圖片及字幕(可以設計成滾動字幕效果),左上方的菜單條設計成下拉式。包括“錄入學生基本信息”、“修改學生基本信息”、“刪除學生基本信息”、“查詢學生基本信息”和“退出系統”五項菜單項。 2.錄入學生基本信息模塊:
采用Panel面板來設置該部分內容信息并采用方位布局(邊緣布局)和Box輕量級組件來設置“學號”、“姓名”、“性別”、“專業”、“年級”、“出生”,并在該面板中添加了“錄入”和“重置”兩個按鈕進行監聽,最后將該面板加入到Frame窗體中去。 3.修改學生基本信息模板:
采用Panel面板來設置該部分內容信息,同樣是采用方位布局及Box組件來設置相關信息,并在學號旁設置了“開始修改”按鈕。在面板南部方位添加了“確定修改”和“重置”兩按鈕進行監聽。 4.查詢學生基本信息模板:
采用Panel面板來設置該部分內容信息,并將該面板加入到主窗體中去,采用邊緣布局進行方位設置,在上方加入“查詢”按鈕進行監聽。
5.刪除學生基本信息模板:
也是采用Panel面板進行設置相關內容,并用邊緣布局進行布局,并在上方添加“確定”按鈕,在下方添加“確定刪除”按鈕實現監聽。
三、模塊設計
定義四個Panel面板
1.定義Reg(錄入學生基本信息)面板
采用BorderLayout(構造一個組件之間沒有間距的新邊界布)和Box輕量級組件進行布局,在面板的Nother方位添加一個“錄入學生基本信息”的標簽,并更改字體,顏色等。接著用JTextField輕量級組件來設置單行文本編輯,并將其加入到用
1
沈陽理工大學課程設計
createHorizontalBox()方法創建具有一個從左到右顯示其組件的Box和用createHorizontalStrut()創建一個不可見的、固定寬度的組件,使其在一個橫向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。然后Box與Box之間用createVerticalBox()創建一個從上到下顯示其組件的 Box,并用createVerticalStrut()方法創建一個不可見的、固定高度的組件,使其在一個縱向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。然后在面板的South方位設置“錄入”與“重置”兩按鈕。最后實現與數據庫的橋接,能夠將從文本框獲得的信息存儲到數據庫中去。
2.定義Search(查詢學生基本信息)面板
該部分同樣采用BorderLayout(構造一個組件之間沒有間距的新邊界布)和Box輕量級組件進行布局,在面板的Nother方位添加一個“查詢學生基本信息”的標簽,并更改字體,顏色等。接著用JTextField輕量級組件來設置單行文本編輯,在學號這一文本框后再添加一個“查詢”按鈕。并將其加入到用createHorizontalBox()方法創建具有一個從左到右顯示其組件的Box和用createHorizontalStrut()創建一個不可見的、固定寬度的組件,使其在一個橫向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。然后Box與Box之間用createVerticalBox()創建一個從上到下顯示其組件的 Box,并用createVerticalStrut()方法創建一個不可見的、固定高度的組件,使其在一個縱向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。最后實現與數據庫的橋接,能夠將從數據庫中獲取信息并顯示到文本框中去。
3.定義Modify(修改學生基本信息)面板
該部分同樣也是采用BorderLayout(構造一個組件之間沒有間距的新邊界布)和Box輕量級組件進行布局,在面板的Nother方位添加一個“修改學生基本信息”的標簽,并更改字體,顏色等。接著用JTextField輕量級組件來設置單行文本編輯,并將其加入到用createHorizontalBox()方法創建具有一個從左到右顯示其組件的Box和用createHorizontalStrut()創建一個不可見的、固定寬度的組件,使其在一個橫向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。并在 “學號”該文本框后添加一個“開始修改”按鈕用來監聽。然后Box與Box之間用createVerticalBox()創建一個從上到下顯示其組件的 Box,并用createVerticalStrut()方法創建一個不可見的、固定高度的組件,使其在一個縱向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量。最后實現與數據庫的橋接,能夠將從數據庫中獲取信息并顯示到文本框中去,并將修改后的信息存儲到數據庫中去。
4.定義Delete(刪除學生基本信息)面板
該部分還是采用BorderLayout(構造一個組件之間沒有間距的新邊界布)和Box輕量級組件進行布局,在面板的Nother方位添加一個“修改學生基本信息”的標簽,并更改字體,顏色等。接著用JTextField輕量級組件來設置單行文本編輯,在學號這一文本框后再添加一“確定”按鈕實現監聽。并將其所有文本框和標簽加入到用createHorizontalBox()方法創建具有一個從左到右顯示其組件的Box和用createHorizontalStrut()創建一個不可見的、固定寬度的組件,使其在一個橫向 box 中,通常使用此方法強行使兩個組件之間
2
沈陽理工大學課程設計
具有某一空間量。并在 “學號”該文本框后添加一個“開始修改”按鈕用來監聽。然后Box與Box之間用createVerticalBox()創建一個從上到下顯示其組件的 Box,并用createVerticalStrut()方法創建一個不可見的、固定高度的組件,使其在一個縱向 box 中,通常使用此方法強行使兩個組件之間具有某一空間量,還在本面板的South方位添加“確定刪除”按鈕。最后實現與數據庫的橋接,能夠將從數據庫中獲取信息并顯示到文本框中去,刪除后同時在數據庫中也刪除該信息并保存該操作。
四、方案的實施
1、學生信息管理系統的登錄
學生信息管理系統可由管理員和學生兩種身份的人使用。管理員和學生身份登錄所能操作的功能有很大的區別。系統初始化一個系統管理員,登錄名:admin 密碼:admin 學生登錄系統的登錄名為學號,密碼也為學號(如:10001),登錄后可以修改密碼。
登錄界面
登錄系統后的界面
3
沈陽理工大學課程設計
注冊學生信息界面
4
沈陽理工大學課程設計
修改學生信息界面
查詢學生信息界面
5
沈陽理工大學課程設計
刪除學生信息界面
6
沈陽理工大學課程設計
1 程序類的設計
DeleteListener.java:刪除監聽 JTMouseListener.java:樹狀視圖 LoginListener.java:登陸監聽 ResetListener.java:重置監聽 SaveListener.java:保存監聽
SearchAllListener.java:搜索所有學生信息 SearchDListener.java:搜索一個學生信息 SearchListener.java:搜索一個學生信息 SearchRListener.java:搜索一個學生信息 SubmitListener.java:提交信息監聽
2 系統的使用說明及環境配置
學生信息管理系統提供了管理員和學生這兩個角色登錄系統,管理員通過用戶名:admin 密碼:admin 登錄系統后可以進行相應的操作。學生通過以自己的學號(如10001)作為用戶名和密碼登錄系統后進行相應的學生權限范圍內的操作。 數據庫:Mysql 連接數據庫的登錄名:root 密碼:zfz 代碼:
DeleteListener.java:刪除監聽 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton; import javax.swing.JOptionPane;
import manager.dao.JdbcIcpCURD; import manager.ui.conponent.DeletePanel;
public class DeleteListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
DeletePanel dp=(DeletePanel) jb.getParent();
String xuehao=dp.xuehaoFd.getText();
String msg= "你確定要刪除學號為"+xuehao+"的學生信息么?";
int i=JOptionPane.showConfirmDialog(dp,msg,"提",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
if(i==0){
JdbcIcpCURD curd=new JdbcIcpCURD();
boolean b=curd.deleteByXuehao(Integer.parseInt(xuehao));
if(b){
dp.errorLb.setText("刪除成功");
}
else{
dp.errorLb.setText("刪除失敗");
}
}
return; }
7
示信息
沈陽理工大學課程設計
} JTMouseListener.java:樹狀視圖 package manager.ui.listener;
import java.awt.CardLayout; import java.awt.Component; import java.awt.event.MouseEvent; import java.awt.event.MouseListener;
import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath;
import manager.ui.conponent.MainFrame; import manager.ui.conponent.PLeft;
public class JTMouseListener implements MouseListener {
@Override public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub JTree jt=(JTree) e.getSource(); PLeft p=(PLeft) jt.getParent(); MainFrame f=(MainFrame) p.getParent().getParent().getParent().getParent(); TreePath path = jt.getPathForLocation(e.getX(), e.getY()); if(path==null){ return; } DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent(); String s=node.toString(); CardLayout cl=f.getPright().getLayout(); if(s.equals("注冊學生")){ cl.show(f.getPright(), "register"); } if(s.equals("修改學生信息")){ cl.show(f.getPright(), "modify"); } if(s.equals("查詢學生信息")){ cl.show(f.getPright(), "search"); } if(s.equals("刪除學生信息")){ cl.show(f.getPright(), "delete"); } if(s.equals("學生信息管理")){ cl.show(f.getPright(), "welcom"); } }
@Override public void mouseEntered(MouseEvent e) {
8
沈陽理工大學課程設計
} } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } // TODO Auto-generated method stub LoginListener.java:登陸監聽
package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton; import javax.swing.JOptionPane;
import manager.ui.conponent.Login; import manager.ui.conponent.MainFrame;
public class LoginListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
JButton bt=(JButton) e.getSource();
Login frame=(Login) bt.getParent().getParent().getParent().getParent();
String username=frame.usernameTa.getText().trim();
String password=frame.passwordTa.getText().trim();
if(username!=null||password!=null){
if("admin".equals(username)&&"123".equals(password)){
new MainFrame().setVisible(true);
frame.dispose();
}
else{
frame.messageLb.setText("用戶名或密碼錯誤");
}
}
9
沈陽理工大學課程設計
else{
frame.messageLb.setText("用戶名或密碼錯誤");
} } } ResetListener.java:重置監聽 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import manager.ui.conponent.RegPanel;
public class ResetListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) { JButton jb=(JButton) e.getSource(); RegPanel jp=(RegPanel) jb.getParent(); jp.xuehaoFd.setText(""); jp.nameFd.setText(""); jp.addressFd.setText(""); } } SaveListener.java:保存監聽 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel;
public class SaveListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
ModifyPanel mp=(ModifyPanel) jb.getParent();
String xuehao=mp.xuehaoTf.getText().trim();
String name=mp.nameTf.getText().trim();
String gender=mp.genderTf.getText().trim();
String address=mp.addressTf.getText().trim();
String oldXuehao=mp.xuehaoFd.getText().trim();
if(oldXuehao==null||xuehao.equals("")){
10
沈陽理工大學課程設計
}
} oldXuehao=xuehao; } if(xuehao==null||xuehao.equals("")){ mp.errorLb.setText("請輸入修改后的學號..."); return; } if(name==null||name.equals("")){ mp.errorLb.setText("請輸入修改后的姓名..."); return; } if(gender==null||gender.equals("")){ mp.errorLb.setText("請輸入修改后的性別..."); return; } if(address==null||address.equals("")){ mp.errorLb.setText("請輸入修改后的地址..."); return; } Student stu=new Student(); stu.setXuehao(Integer.parseInt(xuehao)); stu.setName(name); stu.setGender(gender); stu.setAddress(address); int old=Integer.parseInt(oldXuehao); JdbcIcpCURD curd=new JdbcIcpCURD(); if(curd.modify(stu, old)){ mp.errorLb.setText("修改成功..."); }
SearchAllListener.java:搜索所有學生信息 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector;
import javax.swing.JButton; import javax.swing.JTextArea;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.SearchPanel;
public class SearchAllListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
SearchPanel sp=(SearchPanel) jb.getParent();
11
沈陽理工大學課程設計
}
} JTextArea jt=sp.resultTa; JdbcIcpCURD curd=new JdbcIcpCURD(); Vector students=curd.getAllStudent(); StringBuilder sb=new StringBuilder(); for(Student s:students){ sb.append(" "); sb.append(s.getXuehao()); sb.append(" "); sb.append(s.getName()); sb.append(" "); sb.append(s.getGender()); sb.append(" "); sb.append(s.getAddress()); sb.append(" "); sb.append(s.getRegTime().toString()); sb.append(" "); } jt.setText(sb.toString()); SearchDListener.java:搜索一個學生信息 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.DeletePanel; import manager.ui.conponent.ModifyPanel; import manager.ui.conponent.SearchPanel;
public class SearchDListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
DeletePanel dp=(DeletePanel) jb.getParent();
JdbcIcpCURD curd=new JdbcIcpCURD();
String s=dp.xuehaoFd.getText().trim();
Student stu=curd.searchByXuehao(Integer.parseInt(s));
if(stu==null){
dp.errorLb.setText("沒有查詢到此學生");
return;
}
dp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());
dp.nameTf.setText(stu.getName());
dp.genderTf.setText(stu.getGender());
dp.addressTf.setText(stu.getAddress());
12
沈陽理工大學課程設計
} } SearchListener.java:搜索一個學生信息 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel;
public class SearchListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
JButton jb=(JButton) e.getSource();
ModifyPanel mp=(ModifyPanel) jb.getParent();
String s=mp.xuehaoFd.getText().trim();
if(s==null||s.equals("")){
mp.errorLb.setText("請輸入學號..");
return;
}
JdbcIcpCURD curd=new JdbcIcpCURD();
Student stu=curd.searchByXuehao(Integer.parseInt(s));
mp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());
mp.nameTf.setText(stu.getName());
mp.genderTf.setText(stu.getGender());
mp.addressTf.setText(stu.getAddress()); } } SearchRListener.java:搜索一個學生信息 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import javax.swing.JButton;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel; import manager.ui.conponent.SearchPanel;
public class SearchRListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
13
沈陽理工大學課程設計
}
} JButton jb=(JButton) e.getSource(); SearchPanel sp=(SearchPanel) jb.getParent(); JdbcIcpCURD curd=new JdbcIcpCURD(); String s=sp.xuehaoTf.getText().trim(); Student stu=curd.searchByXuehao(Integer.parseInt(s)); if(stu==null){ return; } StringBuilder sb=new StringBuilder(); sb.append(" "); sb.append(stu.getXuehao()); sb.append(" "); sb.append(stu.getName()); sb.append(" "); sb.append(stu.getGender()); sb.append(" "); sb.append(stu.getAddress()); sb.append(" "); sb.append(stu.getRegTime().toString()); sb.append(" "); sp.resultTa.setText(sb.toString());
SubmitListener.java:提交信息監聽 package manager.ui.listener;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date;
import javax.swing.JButton; import javax.swing.JLabel;
import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.RegPanel;
public class SubmitListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) { JButton jb=(JButton) e.getSource(); RegPanel jp=(RegPanel) jb.getParent(); String xuehao=jp.xuehaoFd.getText(); String name=jp.nameFd.getText(); String address=jp.addressFd.getText(); String gender=""; boolean b1=jp.maleRB.isSelected(); boolean b2=jp.femaleRB.isSelected();
14
沈陽理工大學課程設計
if(b1){ } JLabel errorLabel=jp.errorLabel; if(xuehao==null||xuehao.trim().equals("")){ errorLabel.setText("沒有填寫學號.."); return; } if(name==null||name.trim().equals("")){ errorLabel.setText("沒有填寫姓名.."); return; } if(address==null|address.trim().equals("")){ errorLabel.setText("沒有填寫地址.."); return; } if(!(b1||b2)){ errorLabel.setText("請選擇性別..."); return; } if(b1){ gender="男"; } if(b2){ gender="女"; } Student stu=new Student(Integer.parseInt(xuehao),name,gender,new Date(System.currentTimeMillis()),address); JdbcIcpCURD curd=new JdbcIcpCURD(); boolean b=curd.insert(stu); if(b){ errorLabel.setText("注冊成功!!"); jp.xuehaoFd.setText(""); jp.nameFd.setText(""); jp.addressFd.setText(""); } } }
五、心得體會
我們剛學習java這門課程,對專業的java編程知識并未有深入的學習和探索。但是當我們查找過一些書籍資料后,在不斷努力下我們還是把課程設計題目順利的完成了。通過此次學生學籍管理系統的設計,使我們對java編程語言有了更深層次的了解。不過在編寫的過程中也存在一些問題,例如在選擇適宜的方法實現修改和刪除功能的時候,由于對
15
沈陽理工大學課程設計
數組的理解還不能滿足當前的編程需要,并未選擇更加簡單的數組來處理數據,以至于當刪除指定內容后在文本文件中留有空行,從而導致了在接下來的查詢異常和再次修改和刪除功能無法正常實現,還需人工刪除掉文本文件中的空行以保證程序的正常運行。我們也可以選用其他的更加方便的處理方法使得程序更加優化和簡潔。
“書山有路勤為徑,學海無涯苦作舟”,我們現今所學的知識還遠遠不夠,在今后的學習過程中我們要進一步學習java的更多的知識,此次課程設計不僅鍛煉了我們獨立思考和團隊合作的能力,而且提高了我們動手的能力,我會繼續努力學習此課程的。
六、參考文獻
1 鄭阿奇 編著《Java實用教程(第二版)》電子工業出版社 2 良葛格 編著《Java學習筆記》清華大學出版
16