《java課程設計 學生學籍管理系統(tǒng)》由會員分享,可在線閱讀,更多相關《java課程設計 學生學籍管理系統(tǒng)(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
一、課設任務及要求
課設任務:
設計基于數(shù)據(jù)庫的學籍管理系統(tǒng)
設計要求:
1管理員錄入學生基本信息的功能
2管理員修改學生基本信息的功能
3按不同類別查詢學生基本信息的功能
4管理員刪除學生基本信息的功能
5利用不同的用戶名登陸實現(xiàn)權限操作的功能
6 實現(xiàn)登陸用戶的注冊
7 學生個人修改自己的基本信息的功能
8 學生通過SQL語句查詢基本信息的功能
9 打印
10退出
二、需求分析
在開發(fā)學生學籍管理系統(tǒng)之前,首先要知道所要開發(fā)的系統(tǒng)要實現(xiàn)那些功能,是針對學生的系統(tǒng)還是針對管理員的系統(tǒng),并且要清楚不同級別的用戶具有什么樣的功能,實現(xiàn)
2、什么樣的界面。當明確了這些,項目開發(fā)的思路就清晰了,然后再對網(wǎng)絡上別的學生學籍管理系統(tǒng)進行考察、分析,從中吸取經(jīng)驗,并結合本系統(tǒng)的要求以及實際的管理情況,設計出一個合理的學生學籍管理系統(tǒng)。本系統(tǒng)需要如下:
? 系統(tǒng)設計界面要求整潔,美觀大方,能夠展現(xiàn)各個功能。
? 系統(tǒng)首頁具有banner界面,起到耳目一新的印象。
? 設計主要是面向管理員和學生,為他們解決查詢,修改,刪除等操作問題。
? 系統(tǒng)運行穩(wěn)定,安全可靠。
? 要求對學生基本信息進行嚴格管理。
2.1開發(fā)環(huán)境
在開發(fā)學生學籍管理系統(tǒng)時,該項目使用的軟件開發(fā)環(huán)境如下:
? 操作系統(tǒng):Windown XP
? 數(shù)據(jù)庫:S
3、QL Server2005
? 開發(fā)工具:Myeclipse
三、系統(tǒng)功能結構
學生學籍管理系統(tǒng)功能結構:
學生學籍管理系統(tǒng)
管理員
學生
查詢基本信息
詢
基
本
信
息
修改基本信息
刪除基本信息
打印
錄入基本信息
退出
SQL語句查詢
查詢個人信息
注冊
四、設計思路
為了能夠清晰的學習,下面給出學生學籍管理系統(tǒng)的系統(tǒng)流程圖:
五、詳細設計
本系統(tǒng)主要是按不同的功能而設計的類,每個類都實現(xiàn)不同的功能,也存在著不同類之間的調用,不要調用如下:
if(e.getSou
4、rce()==query){
Find find=new Find();
find.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==exit){
System.exit(0);
}
if(e.getSource()==insert){
Insert insert = new Insert();
insert.setVisible(true);
this.setVisible(false);
}
5、
if(e.getSource()==insertcource){
Insertcource insertcource = new Insertcource();
insertcource.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==delete){
Delete delete = new Delete();
delete.setVisible(true);
this.setVisible(false);
}
if(e.getSource(
6、)==deletecource){
Deletecource deletecource = new Deletecource();
deletecource.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==update){
Update update = new Update();
update.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==print){
p=g
7、etToolkit().getPrintJob(this, "OK", null);
g=p.getGraphics();
g.translate(120, 200);
jt.paintAll(g);
g.dispose();
p.end();
}
if(e.getSource()==hp){
JOptionPane.showMessageDialog(this,"月上飛鳶制作,謝謝!","幫助",JOptionPane.PLAIN_MESSAGE);
}
}
數(shù)據(jù)庫的連接主要是通過JDBC來連接的,如下所示:
8、
String sql ="select * from Student ";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:selection");
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMeta
9、Data();
int numberOfColumns=rsmd.getColumnCount();
while(rs.next()) {
Vector newRow=new Vector();
int n=1;
while(n<=numberOfColumns) {
newRow.addElement(rs.getString(n));
n++;
}
model.addRow(newRow);
}
rs.close();
stmt.close();
}
catch(Exception e) {
10、
e.printStackTrace();
}
查詢學生基本信息功能的代碼如下:
public class Find extends JFrame implements ActionListener{
private JLabel jl;
private JTextField jtf;
private JButton jb1;
private DefaultTableModel model;
private JTable jt;
private JComboBox jcb;
private String[] columnName
11、s = {"學號","姓名","性別","專業(yè)","年級","年齡","宿舍","電話"};
private int row ;
private String[] boxstr = {"學號","姓名","性別","專業(yè)","年級","年齡","宿舍"};
Adminmain parents1 = new Adminmain();
public Find(){
super("查詢學生信息");
this.setSize(460,400);
this.setLocation(350,250);
Container
12、c = this.getContentPane();
c.setLayout(new FlowLayout());
jl = new JLabel("請輸入關鍵詞及選擇類型");
this.add(jl);
jtf = new JTextField(15);
this.add(jtf);
jcb = new JComboBox(boxstr);
this.add(jcb);
jb1 = new JButton("查詢");
jb1.addActionLi
13、stener(this);
this.add(jb1);
model = new DefaultTableModel(columnNames,row);
jt = new JTable(model);
this.add(jt);
JScrollPane tablePane = new JScrollPane(jt);
c.add(tablePane);
jt.setEnabled(false);
this.setVisible(true);
parents1.setVi
14、sible(false);
this.setResizable(false);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
shutdown();
}
});
public static void main(String[] args) {
new Find();
}
public void shutdown(){
pa
15、rents1.setVisible(true);
this.dispose();
}
public void actionPerformed(ActionEvent arg0) {
String sql =" select * from Student where "+ jcb.getSelectedItem()+ "= '"+ jtf.getText() +"' ";
try
{
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFou
16、ndException ce)
{
System.out.println("SOLException:"+ ce.getMessage());
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:selection");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sq
17、l);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns=rsmd.getColumnCount();
while (rs.next())
{
Vector newRow=new Vector();
int c=1;
while(c<=numberOfColumns)
{
18、 newRow.addElement(rs.getString(c));
c++;
}
model.addRow(newRow);
}
this.repaint();
jtf.setText("");
rs.close();
stmt.close();
}
catch(SQLException e)
19、
{
System.out.println("SQLException:" + e.getMessage());
}
}
}
其他的各個不同功能的實現(xiàn)這就不一一列舉,基本上原理都是差不多的。只是SQL語句不同罷了。六、運行調試與分析討論
? 首先進入登陸窗口,用用戶名為admin,密碼為admin登陸進入管理員頁面如下:
? 從菜單欄中選擇查詢學生信息,進入查詢頁面,你可以從下拉選項中選擇查詢類別,然后點擊查詢,如下所示:
? 從菜單欄中選擇修改學生信息,進入修改頁面,首先根據(jù)
20、你修改的學號而進入此學生的詳細信息頁面中,你可以直接修改此人的信息,然后點擊確定,修改后的信息制動保存在數(shù)據(jù)庫中,如下所示:
? 從菜單欄中選擇刪除學生信息,進入刪除頁面,從下拉選項中你按什么類型刪除學生,輸入正確則返回刪除成功!如下所示:
? 從菜單欄中選擇添加學生信息,進入添加頁面,按著要求認真填寫學生信息,如果填寫錯誤將會返回錯誤提示,之后按下添加,則自動添加到數(shù)據(jù)庫中去,如下所示:
? 從菜單欄中選擇打印學生信息,進入打印頁面,如下所示:
2 在登陸窗口中單擊注冊,進入注冊頁面,在這里注冊你登陸的用戶名和密碼,但是用戶名必須是學號,而且在學生信息數(shù)據(jù)庫中才可
21、以注冊,否則返回失敗,如下所示:
2 在登陸窗口中,用你注冊的用戶名和密碼登陸,將會進入學生頁面,學生可以完善自己的基本信息,還可以瀏覽自己的信息,以及在SQL里面輸入語句,可以實現(xiàn)各種操作,如下所示:
2 到此學生學籍管理系統(tǒng)的基本功能都是說明,具體的功能有你自己來操作!
七、設計體會與小結
這次JAVA課程設計是我親自獨立做出來的,中間遇到很多的問題,我就通過書籍和從網(wǎng)上收集資料,一開始是看別人做的程序,然后自己試著寫寫,結果就是一點一點的寫完了,雖然功能不是很齊全,但是我已經(jīng)盡里去寫了,把我這學期學到的全部都用了上去!
在開發(fā)的過
22、程當中遇到函數(shù)的調用,感覺自己對這方面很陌生,不知道調用的過程和原理,所以就大量的看別人的程序,為此,我買了JAVA項目開發(fā)全稱實錄來學習別人的思想和具體的過程!
通過此次課程設計,將我本學期所學的JAVA知識得到鞏固和應用,在設計的過程中我遇到了很到問題,不過在老師和同學們的幫助和自己的思考下還是很好的完成了。這此課程設計還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學會了在網(wǎng)上查閱那些無限的資料。
八、參考文獻
(1)耿祥文 .張躍平 《JAVA2教程》 清華大學出版社
(2)張仿彥 .《JAVA項目開發(fā)全程實錄》清華大學出版社
(4)Harvey M.Deitel 和 Paul J.Deitel 《java 2程序設計教程》機械工業(yè)出版社