第一篇:學(xué)生管理系統(tǒng)實訓(xùn)報告(java語言)
《Java實訓(xùn)》設(shè)計報告
學(xué)生管理系統(tǒng)一、項目需求
通過與科信學(xué)院教務(wù)人員的詳細交流,目標系統(tǒng)具備以下功能。1.教師客戶端功能 * 可以更改密碼;
* 可以添加學(xué)生,并要求填寫學(xué)生基本信息; * 可以根據(jù)學(xué)號查詢學(xué)生基本信息及其成績;
* 有權(quán)限控制,每個管理員只能管理其所在學(xué)院的信息; * 可以添加新課程、新班級;
* 可以控制選課的課程范圍,并可以控制選課的時間,即:可以控制選課開始和結(jié)束時間;
* 可以錄入成績,緩存成績,檢查無誤后公布成績。2.學(xué)生客戶端功能
* 學(xué)生可以查看自己的基本信息;
* 學(xué)生可以查看自己的成績,已修學(xué)分和不及格成績信息; * 學(xué)生端可以進行遠程選課,并且可以查看課表。根據(jù)以上相關(guān)功能,現(xiàn)規(guī)劃數(shù)據(jù)流圖和數(shù)據(jù)字典如下:
二、項目設(shè)計
在設(shè)計學(xué)生管理系統(tǒng)時,編寫20個Java源文件:ChangePwd.java、ChangePwdTeacher.java、ChoseCourse.java、CourseTable.java、CourseManage.java、GetScore.java、GetStuInfo.java、GradeInDB.java、Login.java、NewClass.java、NewCourse.java、NewStu.java、StuClient.java、StuFailGrade.java、StuGrade.java、StuInfo.java、StuScore.java、TeacherClient.java、TeachSearchInfo.java、Welcome.java學(xué)生管理系統(tǒng)除了上述20個Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要類,如JButton,JTextField,JTextArea,LinkedList等。
下面是20個Java源文件的功能:(1)Login.java(主類)
《Java實訓(xùn)》設(shè)計報告
Login類負責創(chuàng)建學(xué)生管理系統(tǒng)登陸界面的主窗口,該類含有main方法,學(xué)生管理系統(tǒng)從該類開始執(zhí)行。Login類是繼承Jframe類,有一個ActionListener接口,并且加載了Mysql數(shù)據(jù)庫連接。該類中有兩種身份類型:學(xué)生、管理員,在登錄窗口中選擇相應(yīng)的身份類型,輸入信息正確后就會進入相應(yīng)的客戶端。
(2)ChangePwd.java類
該類是學(xué)生客戶端修改密碼的類,在該類中,用戶提供原始密碼(登陸成功的密碼)后并且輸入新密碼和確認新密碼后點擊“確認”按鈕就可以修改密碼。
(3)ChangePwdTeacher.java類
該類是教師客戶端修改密碼的類,在該類中,用戶提供原始密碼(登陸成功的密碼)后并且輸入新密碼和確認新密碼后點擊“確認”按鈕就可以修改密碼。
(4)ChoseCourse.java類
該類主要是控制學(xué)生選課,學(xué)生根據(jù)教師安排的課程信息,由學(xué)生輸入已經(jīng)安排好的“課程號”就可以選課。
(5)CourseTable.java類
該類主要控制學(xué)生的課程安排,就是以課表顯示學(xué)生的選課信息。(6)NewClass.java類
該類主要是有教師操作,教師通過輸入正確的班級號、班級名、專業(yè)信息后就可以添加新的班級。
(7)NewStu.java類
該類作為教師客戶端的一個主要模塊,該模塊是教師添加新學(xué)生。教師通過輸入學(xué)生的基本信息,包括:姓名、出生年月、學(xué)號、籍貫、入學(xué)年份、專業(yè)等等。這樣就可以添加新學(xué)生。
(8)StuClient.java類
該類是基于Login類的,這是學(xué)生客戶端的界面類,該類控制了學(xué)生客戶端要顯示什么內(nèi)容,由什么功能等等。包括:修改密碼、查看自己基本信息和成績、選課等功能界面的顯示。
(9)TeacherClient.java類
該類是教師客戶端界面的類,該類和StuClient類的功能基本相似,主要包括修改密碼、添加新學(xué)生、查看學(xué)生基本信息和成績信息、進行課程安排、添加新課程和班級等功能的顯示。
(10)StuInfo.java類
《Java實訓(xùn)》設(shè)計報告
StuInfo.java類是學(xué)生查詢學(xué)生自己的基本信息。(11)TeachSearchInfo.java類
TeachSearchInfo.java類是教師根據(jù)學(xué)生提供的基本信息建立學(xué)生基本信息電子檔案。即新生報到功能的實現(xiàn)。
(12)Welcome.java類
該類最為簡單,僅僅通過一張xs.jpg圖片顯示在學(xué)生和教師客戶端中。(13)CourseManage.java類
該類是教師管理課程,教師可以對課程安排,包括:周次、任課教師、學(xué)分等信息,為學(xué)生選課做準備。
(14)GetScore.java類
該類是提供學(xué)生的成績各科成績,包括及格成績和不及格成績,以及學(xué)分。(15)GetStuInfo.java類
根據(jù)學(xué)號獲得學(xué)生相應(yīng)基本信息的方法。教師在輸入學(xué)生學(xué)號后點擊“查詢”按鈕查看相應(yīng)學(xué)生的基本信息。
(16)GradeInDB.java類
該類的功能是公布學(xué)生某一科的成績,教師通過點擊“公布該科成績單”就會公布該科的成績,學(xué)生就會在學(xué)生自己客戶端查看自己的成績信息。
(17)NewCourse.java類
該類主要是有教師操作,教師通過輸入正確的課程號、課程名、學(xué)分信息后就可以添加新的課程,這個類與NewClass.Java的功能相似。
(18)StuFailGrade.java類
該類功能是顯示學(xué)生的不及格成績。學(xué)生在查看成績時候,點擊“不及格成績”時顯示的界面。
(19)StuGrade.java類
該類功能是顯示學(xué)生的已修課程成績。學(xué)生在查看成績時候,點擊“已修課程成績”時顯示的界面。
(20)StuScore.java類
該類是教師通過輸入學(xué)生的“學(xué)號”進行查詢學(xué)生的成績信息。
1、Login類(主類)(1)數(shù)據(jù)和方法
Login類是javax.swing包中JFrame的一個字類,并實現(xiàn)了ActionListener接
《Java實訓(xùn)》設(shè)計報告
口。類中有關(guān)數(shù)據(jù)和方法的詳細說明。
1)成員變量
該類中的變量大部分都是私有的,這樣有利于信息的封裝。其中包括:
private Connection conn;//連接數(shù)據(jù)庫用到
private Statement stmt;//執(zhí)行數(shù)據(jù)庫語句 private ResultSet rs;//結(jié)果集
private JPanel jp=new JPanel();//創(chuàng)建用來存放空間的容器 private JLabel jl1=new JLabel(“用戶名”);private JLabel jl2=new JLabel(“密碼”);//創(chuàng)建用戶名和密碼輸入框
private JTextField jtf=new JTextField();private JPasswordField jpwf=new JPasswordField();private JRadioButton[] jrbArray={new JRadioButton(“普通學(xué)生”,true), new JRadioButton(“管理人員”)};//創(chuàng)建單選按鈕數(shù)組
private ButtonGroup bg=new ButtonGroup();//創(chuàng)建組 //創(chuàng)建操作按鈕
private JButton jb1=new JButton(“登陸”);private JButton jb2=new JButton(“重置”);2)方法
main(String args[]);方法是學(xué)生管理系統(tǒng)程序運行的入口方法。Login();是構(gòu)造方法,負責完成窗口的初始化。addListener();添加事件監(jiān)聽器方法。initialFrame();初始化窗體
actionPerformed(ActionEvent e);實現(xiàn)接口方法 initialConnection();自定義的初始化數(shù)據(jù)庫連接的方法 closeConn();關(guān)閉數(shù)據(jù)庫
2、代碼
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;import java.net.*;
《Java實訓(xùn)》設(shè)計報告
import java.io.*;import java.sql.*;import javax.sql.*;public class Login extends JFrame implements ActionListener { private String host;//聲明Connection引用、Statement對象引用與結(jié)果集引用
private Connection conn;private Statement stmt;
private ResultSet rs;private JPanel jp=new JPanel();//創(chuàng)建用來存放空間的容器 private JLabel jl1=new JLabel(“用戶名”);private JLabel jl2=new JLabel(“密碼”);private JLabel jl3=new JLabel(“");//正在登陸提示標簽 //創(chuàng)建用戶名和密碼輸入框
private JTextField jtf=new JTextField();private JPasswordField jpwf=new JPasswordField();private JRadioButton[] jrbArray={new JRadioButton(”普通學(xué)生“,true),new JRadioButton(”管理人員“)};//創(chuàng)建單選按鈕數(shù)組
private ButtonGroup bg=new ButtonGroup();//創(chuàng)建組
//創(chuàng)建操作按鈕
private JButton jb1=new JButton(”登陸“);private JButton jb2=new JButton(”重置“);public Login(){ this.addListener();initialFrame();//初始化界面 } public void addListener(){ this.jb1.addActionListener(this);//為登陸按鈕注冊監(jiān)聽器
this.jb2.addActionListener(this);//為重置按鈕注冊監(jiān)聽器
this.jtf.addActionListener(this);//為用戶名文本框注冊監(jiān)聽器 this.jpwf.addActionListener(this);//為用戶名密碼框注冊監(jiān)聽器 } public void initialFrame(){ jp.setLayout(null);//設(shè)為空布局
//將控件添加到容器相應(yīng)位置
jl1.setBounds(30,100,110,25);jtf.setBounds(120,100,130,25);jl2.setBounds(30,140,110,25);jpwf.setBounds(120,140,130,25);jpwf.setEchoChar('*');bg.add(jrbArray[0]);bg.add(jrbArray[1]);jrbArray[0].setBounds(40,180,100,25);jrbArray[1].setBounds(145,180,100,25);jb1.setBounds(35,210,100,30);jb2.setBounds(150,210,100,30);jl3.setBounds(40,250,150,25);this.add(jp);
jp.add(jl1);jp.add(jtf);jp.add(jl2);jp.add(jpwf);
jp.add(jrbArray[0]);jp.add(jrbArray[1]);jp.add(jb1);jp.add(jb2);jp.add(jl3);
《Java實訓(xùn)》設(shè)計報告
//設(shè)置窗口的標題、大小、位置以及可見性 this.setTitle(”登陸“);this.setResizable(false);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();int centerX=screenSize.width/2;int centerY=screenSize.height/2;int w=300;//本窗體寬度 int h=320;//本窗體高度
this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//設(shè)置窗體出現(xiàn)在屏幕中 this.setVisible(true);} public void actionPerformed(ActionEvent e){ if(e.getSource()==jb1)
{//按下登陸按鈕
String name=this.jtf.getText().trim();if(name.equals(”“)){
JOptionPane.showMessageDialog(this,”請輸入用戶名“,”錯誤“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);return;} String pwd=new String(jpwf.getPassword()).trim();if(pwd.equals(”“)){
JOptionPane.showMessageDialog(this,”請輸入密碼“,”錯誤“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);return;
}
int type=this.jrbArray[0].isSelected()?0:1;//獲取登陸類型
try
{//初始化連接
this.initialConnection();
if(type==0){//普通學(xué)生登陸
String sql=”select * from user_stu where stu_id='“+name+”' and
rs=stmt.executeQuery(sql);if(rs.next())
{ new StuClient(name);//創(chuàng)建學(xué)生客戶短窗口
this.dispose();//關(guān)閉登陸窗口并釋放資源 } else
{//彈出錯誤提示窗口
JOptionPane.showMessageDialog(this,“用戶名或密碼錯誤”,“錯pwd='”+pwd+“'”;
誤“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);
《Java實訓(xùn)》設(shè)計報告
}
this.closeConn();//關(guān)閉連接,語句及結(jié)果集
} else{//教師登陸
String sql=”select coll_id from user_teacher where uid='“+name+”' and pwd='“+pwd+”'“;
rs=stmt.executeQuery(sql);
if(rs.next())
{ String coll_id=rs.getString(1);new TeacherClient(coll_id);//創(chuàng)建教師客戶端窗口
}
this.dispose();//關(guān)閉登陸窗口并釋放資源
else
{//彈出錯誤提示窗口
JOptionPane.showMessageDialog(this,”用戶名或密碼錯誤“,”錯誤“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);
}
}
this.closeConn();
//關(guān)閉連接,語句及結(jié)果集
} catch(SQLException ea){ ea.printStackTrace();}
} } else if(e.getSource()==this.jb2)//按下重置按鈕,清空輸入信息 { this.jtf.setText(”“);this.jpwf.setText(”“);} else if(e.getSource()==jtf)//當輸入用戶名并回車時 {this.jpwf.requestFocus(true);} else if(e.getSource()==jpwf)//當輸入密碼并回車時 {this.jb1.requestFocus(true);} //自定義的初始化數(shù)據(jù)庫連接的方法 public void initialConnection(){ try {//加載驅(qū)動,創(chuàng)建Connection及Statement Class.forName(”org.gjt.mm.mysql.Driver“);
conn=DriverManager.getConnection(”jdbc:mysql://localhost:3306/test“,”root“,”root“);
stmt=conn.createStatement();} catch(SQLException e){
JOptionPane.showMessageDialog(this,”連接失敗,請檢查主機地址是否正確“,”錯誤",JOptionPane.ERROR_MESSAGE);
《Java實訓(xùn)》設(shè)計報告
e.printStackTrace();
} catch(ClassNotFoundException e){ e.printStackTrace();}
} //初始化的關(guān)閉數(shù)據(jù)庫連接的方法 public void closeConn(){ try
{ if(rs!=null){rs.close();} if(stmt!=null){stmt.close();} if(conn!=null){conn.close();} } catch(SQLException e){ e.printStackTrace();}
} public static void main(String args[]){ Login login=new Login();//創(chuàng)建登陸窗體對象} }
3、效果圖
Login創(chuàng)建的窗口效果如圖1所示。
圖1 登錄窗體
《Java實訓(xùn)》設(shè)計報告
學(xué)生管理系統(tǒng)共有三個窗體:登錄窗體、教師客戶端窗體、學(xué)生客戶端窗體。主要操作如下:
(1)如果用戶名或密碼錯誤,則會彈窗錯誤提示對話框,如圖2所示。
圖2 錯誤提示框
(2)當用戶為教師時,登錄成功后的窗體會自動全屏顯示,展開左邊的樹狀列表,如圖3所示,然后通過單擊不同節(jié)點進行相應(yīng)的業(yè)務(wù)操作。
(3)通過單擊“退出”節(jié)點時,系統(tǒng)會彈出對話框確認,如圖4所示,根據(jù)用戶選擇進行相應(yīng)操作。
圖3教師客戶端主窗
《Java實訓(xùn)》設(shè)計報告
圖4退出確認效果
(4)當有新生報到時,用戶可以單擊“新生報到”節(jié)點,進入如圖5所示的添加學(xué)生窗體界面。
圖5 添加學(xué)生窗體
(5)當教師需要查詢某個學(xué)生的基本信息時,可以單擊“基本信息查詢”節(jié)點輸入學(xué)號進行查詢,界面如圖6所示。
《Java實訓(xùn)》設(shè)計報告
圖6 學(xué)生基本信息查詢窗
(6)每學(xué)期開始,各學(xué)院都應(yīng)該為學(xué)生安排可選課程,這時可以通過“開課選項設(shè)置”進入選課設(shè)置界面進行操作,如圖7所示。教師進行課程設(shè)置后效果如圖8所示
圖7
開課選項設(shè)置
《Java實訓(xùn)》設(shè)計報告
圖8 開課選項設(shè)置效果
(7)在每個學(xué)期期末,需要對學(xué)生的成績進行錄入,用戶通過“課程成績錄入”模塊進行錄入操作,如圖9所示。
圖9 成績錄入窗體
(8)教師還可以通過點擊“添加課程”、“添加班級”節(jié)點,進行添加課程和班級操作,如圖10和圖11所示。
《Java實訓(xùn)》設(shè)計報告
圖10添加課程效果圖
圖11添加班級效果圖
(9)教師可以點擊“修改密碼”來修改自己的登錄密碼,如圖12所示。(10)如果用戶是學(xué)生,登錄后的窗體也會自動全屏顯示,展開樹狀列表后的界面如圖13所示。
《Java實訓(xùn)》設(shè)計報告
圖12修改密碼效果
圖13學(xué)生客戶端窗體
(11)當學(xué)生需要選課時,可以通過單擊“選課”節(jié)點進入如圖14所示的選課界面進行選課。
(12)在學(xué)生選課過程中,隨時可以點擊“課表顯示”節(jié)點查看課表,如圖15所示。
(13)學(xué)生點擊“已修課程成績”節(jié)點時,便可進入已修課程查看界面,查看成
《Java實訓(xùn)》設(shè)計報告
績和學(xué)分,如圖16所示。
圖14 學(xué)生選課界面
圖15 學(xué)生課表顯示界面
《Java實訓(xùn)》設(shè)計報告
圖16 已修課程查看窗體
三、項目總結(jié)
學(xué)生管理系統(tǒng)的完成,對學(xué)校的管理帶來了方便,也對教師是一個很好的幫助,方便管理,提高了工作的效率。在本系統(tǒng)開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識、經(jīng)驗方面存在不足。另外在整個開發(fā)過程中,時間也比較倉促,因此,該系統(tǒng)必然存在一些缺陷和不足。因為對學(xué)生的管理整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。另外,由于自身對網(wǎng)絡(luò)的不熟悉,本應(yīng)做到C/S客戶端/服務(wù)器的軟件,結(jié)果不能達到預(yù)期效果,實為遺憾。
雖然該系統(tǒng)存在諸多的不足,但其功能均已經(jīng)實現(xiàn),易于日后程序的更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、安全性好。相信本學(xué)生管理系統(tǒng)是一套學(xué)校在日常管理中必不可少的管理軟件。
四、心得體會
通過開發(fā)這個軟件,我掌握了項目的開發(fā)過程,了解了基本知識,鞏固了我對Java編程語言和軟件工程思想的學(xué)習(xí),掌握了簡單的數(shù)據(jù)庫操作。尤其掌握了樹狀列表作為導(dǎo)航的重要性,并且能夠運用。同時編寫這個程序讓我更好的理解了數(shù)組、類的運用及事件的監(jiān)聽和獲取等功能。我相信我會再在java方面下苦工的,相信自己一定能更好的運用java編程語言的。
第二篇:學(xué)生管理系統(tǒng)實訓(xùn)報告
WinForm實訓(xùn)報告
項目名稱:學(xué)生成績管理系統(tǒng) 1.項目背景:Windows程序設(shè)計實訓(xùn) 2.項目分析:部門信息表部門編號,部門名稱,部門級別,上級部門編號,負責人,備注班級信息表班級編號,部門編號,班級名稱,班級人數(shù),備注學(xué)生信息表學(xué)生學(xué)號,學(xué)生姓名,學(xué)生性別,學(xué)生身份證,所在班級編號,備注課程信息表課程編號,課程名稱,課程介紹教師信息表教師編號,教師姓名,教師性別,教師身份證,所屬部門編號,備注成績信息表成績編號,學(xué)生學(xué)號,課程編號,學(xué)期,課程成績,備注
用戶信息表
用戶編號,用戶名,用戶密碼
3.項目設(shè)計:
數(shù)據(jù)庫名:ScoreSystem 部門信息表(Department)
學(xué)生信息表(Student)
用戶信息表 4.任務(wù)分配李馳:數(shù)據(jù)庫設(shè)計,各模塊銜接曹龍:部門管理
部門管理:1.系部門管理2.專業(yè)信息管理
系部門信息的添加、修改。專業(yè)信息的添加、修改。
登錄模塊、注冊模塊
薛巧云:學(xué)生信息管理,課程信息管理
學(xué)生信息管理:
學(xué)生信息的添加、修改、刪除、查詢。查詢應(yīng)分為:按班級查詢,按學(xué)號查詢,按姓名查詢。查詢內(nèi)容應(yīng)包括學(xué)生學(xué)號、姓名、性別、所在班級、身份證號。課程信息管理:
課程信息的添加、修改、刪除、查詢。查詢應(yīng)分為:按教師查詢(顯示該教師所教授的課程信息)張平平:成績信息管理
成績信息管理:
成績信息的添加、修改、刪除、查詢。查詢應(yīng)分為:按某個學(xué)生查詢(顯示該學(xué)生所有課程的成績),按某一門課程查詢(顯示該門課程最高成績以及最高成績?nèi)耍患案竦娜藛T及其成績和人數(shù),該課程的平均成績,以及該門可的授課教師)、按某個班級查詢(顯示該班級所有的成績信息)適當?shù)氖褂孟吕斜?張玲:教師信息管理
教師信息管理:
教師信息的添加、修改、刪除、查詢。查詢應(yīng)分為:按部門查詢(顯示該部門的所有教師信息)、按課程查詢(顯示該門課程的教師信息)李海鑫:班級信息管理
班級信息的管理:
班級信息的添加、修改、刪除、查詢。查詢應(yīng)分為:按某個專業(yè)查詢(顯示該專業(yè)的所有的班級)
5,每天任務(wù)必須上交,由李馳進行考察記錄 6.項目研發(fā):
計劃5天完成項目研發(fā)技術(shù):C# + VisualStdio2005 運行平臺:windows server 2003 操作系統(tǒng),以及安裝有SQL Server 2005 和 Visual Stdio200
5研發(fā)團隊:
項目組長:李馳
項目成員:曹龍,張平平,薛巧云,張玲,李海鑫
總結(jié):
通過為期四天的winform 實訓(xùn),作為項目組長,我感到數(shù)據(jù)
庫的設(shè)計至關(guān)重要,數(shù)據(jù)庫設(shè)計的好與壞直接影響后期的程序設(shè)計。經(jīng)過短短的四天,我們這個團隊實現(xiàn)了很好的配合,大家共同討論功能的實現(xiàn)以及在不懂的地方互相幫助,體現(xiàn)出了我們的團隊精神。
其中也有很多不足,比如我們整體對數(shù)據(jù)庫操作比較生疏,多虧曹龍龍同學(xué)不辭辛勞的為大家答疑,從而提了高整個團隊的速度。最后,感謝老師在實訓(xùn)過程中的幫助,已經(jīng)曹龍龍、張平平、薛巧蕓、張玲、李海鑫組員對的配合!
第三篇:學(xué)生成績管理系統(tǒng)實訓(xùn)報告
鄭州輕工業(yè)學(xué)院
實 訓(xùn) 報 告
實訓(xùn)名稱:學(xué)生成績管理系統(tǒng)
姓名: 任彬彬
院(系): 軟件學(xué)院
專業(yè)班級: 網(wǎng)路管理12-0
1學(xué)號: 621213550131
指導(dǎo)教師:馬軍霞、范乃梅、徐潔、方娜、李輝、馮柳、甘琤
成績:
時間:2013 年01 月 07 日至 2013 年 01 月11 日
目錄
實訓(xùn)任務(wù)書…………………………………………………2 實訓(xùn)進度日歷………………………………………………
3實訓(xùn)報告……………………………………………………
41.軟件需求分析…
2.系統(tǒng)詳細設(shè)計及實現(xiàn)
實訓(xùn)感想………………………………………………………
5鄭州輕工業(yè)學(xué)院軟件學(xué)院
學(xué)生實訓(xùn)任務(wù)書
一、題目
“學(xué)生成績管理系統(tǒng)”設(shè)計
二、學(xué)生信息
專業(yè) 網(wǎng)絡(luò)管理12-01學(xué)號 621213550131 姓名 任彬彬
三、用戶需求及約束條件
1、用C語言實現(xiàn)基于Dos操作系統(tǒng)的“學(xué)生成績管理系統(tǒng)”。
2、設(shè)計“學(xué)生成績管理系統(tǒng)”的用戶界面,系統(tǒng)啟動進入后,只能通過界面菜單指令才能退出。
3、“學(xué)生成績管理系統(tǒng)”具有以下功能:
1)系統(tǒng)啟動后,彈出一個用戶界面,能實現(xiàn)人機交互的功能。而且只能通過界面菜單命令實現(xiàn)各種功能(包括系統(tǒng)退出功能)。
2)管理班級信息(顯示、增加、刪除、修改)3)管理課程信息(顯示、增加、刪除、修改)
4)管理班級與課程之間的授課關(guān)系(顯示、增加、刪除、修改)5)管理班級中學(xué)生信息(顯示、增加、刪除、修改)6)管理班級學(xué)生成績(顯示、增加、刪除、修改)7)顯示一個學(xué)生的所有成績
8)所有的數(shù)據(jù)以文本方式存儲在文件中
4、已經(jīng)提供已編譯的樣例程序以及數(shù)據(jù)讀寫、軟件界面有關(guān)的源代碼,需在已提供資源的基礎(chǔ)上完成實訓(xùn)。
四、設(shè)計要求、技術(shù)參數(shù)及設(shè)計規(guī)格
1、原始成績由老師統(tǒng)一給出,在 Excel表中;
2、設(shè)計的系統(tǒng)能夠運行,提交源程序、目標文件和可執(zhí)行文件;
3、提交實訓(xùn)報告,實訓(xùn)報告中列寫:1)軟件需求分析或軟件說明;3)對數(shù)據(jù)的管理方案;4)“學(xué)生成績管理系統(tǒng)”設(shè)計的思路和整體框架;5)各功能或者模塊實現(xiàn)的思路(用文字和流程圖予以說明),并交待模塊之間的接口關(guān)系;6)“學(xué)生成績管理系統(tǒng)”設(shè)計的結(jié)果。
實訓(xùn)進度日歷
實訓(xùn)報告
軟件需求分析:管理頁面,如圖1所示
增加課程信息,然后確認后顯示所增加的課程信息
圖
1實訓(xùn)感想
在這個星期里,我們專業(yè)的學(xué)生在專業(yè)老師的帶領(lǐng)下進行了C語言程序?qū)嵱?xùn)的學(xué)習(xí)。在這之前我們已經(jīng)學(xué)習(xí)了一個學(xué)期,對其有一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西感覺還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由于時間的關(guān)系,我們這次實訓(xùn)課程老師給我們簡單的介紹了幾個比較重要的實際操作。上機時間是學(xué)習(xí)程序設(shè)計語言必不可少的實習(xí)環(huán)節(jié),特別是C語言靈活簡介,更需要通過編程的實習(xí)來真正掌握它。對于程序語言的學(xué)習(xí)目的,可以概括為學(xué)習(xí)語法規(guī)定、掌握程序設(shè)計方法、提高程序開發(fā)能力,這些都必須通過充分的實際上機操作才能完成。
學(xué)習(xí)C語言程序設(shè)計除了課堂講授以外,必須保證有不少于課堂講授學(xué)時的上機時間。因為我們可以 有效的利用上機實驗,更快的掌握C語言開發(fā)程序的能力,為今后的繼續(xù)學(xué)習(xí)打下一個良好的基礎(chǔ)。課程上機實驗的目的,不僅僅是驗證教材和講課的內(nèi)容、檢查自己縮編程序是否正確,熟悉程序開發(fā)環(huán)境、學(xué)習(xí)計算機系統(tǒng)的操作方法。一個C語言程序從編輯、編譯、連接到運行。通過上機實驗,熟練的掌握C語言的開發(fā)環(huán)境,為以后真正編寫計算機程序打下基礎(chǔ)。
第四篇:java實訓(xùn)報告
摘要
隨著自動化技術(shù)的不斷發(fā)展,電子產(chǎn)業(yè)對工藝生產(chǎn)的要求越來越高。本次實訓(xùn)主要熟悉手工焊錫的常用工具的使用及其與修理。手工電烙鐵的焊接技術(shù),能夠獨立的簡單電子產(chǎn)品的安裝與焊接。熟悉電子產(chǎn)品的生產(chǎn)流程,印制電路板設(shè)計的和方法,能夠讀懂電路原理圖,熟悉元器件實物,常用電子器件的類別、型號、規(guī)格、性能及其使用范圍,并會簡單的元器件測量,掌握焊接工藝的編排,電路調(diào)試過程。能夠識別和選用常用的電子器件,并且能夠熟練使用普通萬用表和數(shù)字萬用表。培養(yǎng)檢測能力及一絲不茍的科學(xué)作風(fēng)。
第一章JAVA開發(fā)環(huán)境
1.1NetBeans IDE簡介
NetBeans 由Sun公司在2000年創(chuàng)立,它是開放源運動以及開發(fā)人員和客戶社區(qū)的家園,旨在構(gòu)建世界級的Java IDE。NetBeans當前可以在Solaris、Windows、Linux和Macintosh OS X平臺上進行開發(fā),并在SPL(Sun公用許可)范圍內(nèi)使用。
NetBeans包括開源的開發(fā)環(huán)境和應(yīng)用平臺,NetBeans IDE可以使開發(fā)人員利用Java平臺能夠快速創(chuàng)建Web、企業(yè)、桌面以及移動的應(yīng)用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等開發(fā)語言。
由于Java的跨平臺性,在任一平臺中編寫的Java程序可以很好的移植到其他平臺上。為了運行程序,計算機上必須安裝JVM,它包含Java運行時的解釋器與及時編譯器,二者構(gòu)成Java的運行環(huán)境。如圖1.1所示:
=
圖1.1Java的運行環(huán)境
{
JFileChooser fc = new JFileChooser();
int r=fc.showOpenDialog(this);
if(r== JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
try{jTextArea1.read(new FileReader(file),null);}
catch(IOException e){}
}
} void saveFile()//保存文件函數(shù) {
JFileChooser fc=new JFileChooser();
int r=fc.showSaveDialog(this);
if(r== JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
try{jTextArea1.write(new FileWriter(file));}
catch(IOException e){}
}
} 2.2計算器
要求編寫一個模擬計算器Applet,使用面板和網(wǎng)絡(luò)布局,添加一個文本框,10個數(shù)字按鈕(0~9),四個加減乘除按鈕,一個等號,一個清除按鈕。計算器效果如圖2.2:
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt){
show(4);}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt){
show(5);}
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt){
show(6);}
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt){
show(7);}
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt){
show(8);}
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt){
show(9);}
//點擊小數(shù)點按鈕
private void jButton11ActionPerformed(java.awt.event.ActionEvent evt){
String text=jTextField1.getText();
if(text.lastIndexOf(“.”)==-1)//判斷該數(shù)字是否已經(jīng)有小數(shù)點
jTextField1.setText(text+“.”);
}
//點擊運算符
private void jButton12ActionPerformed(java.awt.event.ActionEvent evt){
t1=Double.parseDouble(jTextField1.getText());//將第一個數(shù)轉(zhuǎn)換成Double類型保存在t1中
jTextField1.setText(“ ”);
圖3.1文件打開
圖3.2文件保存
3.2計算器調(diào)試
計算器可以實現(xiàn)加減乘除運算,并可以清零,BACK按鈕還可以一位一位清除,基本完成了計算器的基本功能。
第五篇:Java實訓(xùn)報告
Java實訓(xùn)報告
實訓(xùn)項目:小豬吃豆 班級:
指導(dǎo)老師:
一,游戲介紹:
小豬吃豆是一款簡單而又經(jīng)典的小游戲。游戲的玩法就是通過鍵盤的左右上下按鍵控制小豬,躲避森林動物的追擊,同時把隨機產(chǎn)生的小豆吃掉。游戲有初中高三個級別。游戲通過玩家過關(guān)所需要的時間來確定排名。
二,設(shè)計思路:
1,一開始,在玩家點擊菜單欄的開始按鈕后,界面會隨機出現(xiàn)一定數(shù)量的小豆和一只小豬,同時啟動時間線程,計時開始。
2,界面隨機產(chǎn)生一些森林動物,作為小豬的障礙物。森林動物會移動,并緊跟著小豬。
3,小豬會在玩家的控制下,躲避森林動物,并吃小豆,每吃掉一顆豆,就啟動音樂線程,發(fā)出聲音。
4,游戲過程會隨機出現(xiàn)大力丸,小豬吃掉大力丸后,可以增加功力,與森林動物對抗。大力丸會在一定時間后消失。5,游戲還要有一個暫停和繼續(xù)的功能。
6,游戲設(shè)置有三個級別。障礙物和小豆的個數(shù)都不同,用于體現(xiàn)難度的不同。
三,關(guān)鍵問題解決:
1,游戲當中有幾個核心的問題,比如:小豆,小豬,森林動物等物體的隨機產(chǎn)生;小豬吃掉小豆,也就是他們的重疊;中途大力丸的出現(xiàn)等等。在老師的幫助下,我知道了Java中有個Random類,可以產(chǎn)生隨機數(shù)。而判斷小豬和小豆或者動物的重疊,也就是“被吃掉”也有相應(yīng)的判斷方法。
2,有關(guān)大力丸部分的問題:在游戲中,小豬吃的大力丸個數(shù)不同,對應(yīng)的功力也不同。而小豬吃掉大力丸之后,功力又恢復(fù)。這需要很多的判斷。后來,我就是一步步來,用一個一個的if去實現(xiàn)的。
3,游戲要控制大力丸出現(xiàn)后一定時間后消失。如果使用線程的話,那么游戲的線程太多,會影響到游戲的運行。后來老師建議使用Java的計時器。我參考了Java的幫助文檔和網(wǎng)絡(luò)上的有關(guān)資料,對計時器類timer有了一定認識和了解后,成功的將計時器加進了程序當中。
四,心得體會:
在游戲開發(fā)的整個過程,我感受最深的就是大力丸實現(xiàn)的部分。因為大力丸是老師要求的最后一個拓展部分,我完成前面部分的時候,曾想過不要增加大力丸,就那樣就行了。可后來我覺得還是有時間,可以試試,就自己去試了。才發(fā)現(xiàn),其實大力丸部分的實現(xiàn)也不是很難,還是可以完成的。而且是自己一個人完成的。這讓我覺得:在開發(fā)過程,不應(yīng)該還沒有開始工作,開始嘗試就選擇放棄。有些功能,只要能嘗試著去開發(fā),最后是可以完成的。不要還沒開始就放棄,那樣就絕對沒有機會完成相關(guān)內(nèi)容。
在這個過程,我參考了很多資料,從老師那里來的,網(wǎng)上來的,還有同學(xué)那里。就拿森林動物靠近小豬這個部分來說,我曾嘗試讓動物的坐標與小豬的坐標關(guān)聯(lián),可發(fā)現(xiàn)出了很多問題,比如那樣子動物的移動就不是一步步移動,而是跳動的,那樣不好看。后來我問了一位同學(xué),他說,讓動物的坐標靠近小豬的坐標就行了。其實,企業(yè)中,不是以個人為單位,而是以團隊為單位的。團隊的合作在現(xiàn)代企業(yè)中顯得非常重要。當然,相對應(yīng)的人與人之間的溝通與協(xié)助,也就顯得非常重要了。這是個人軟實力的體現(xiàn)。
在這個過程,我發(fā)現(xiàn)自己對Java的很多知識還很模糊。像游戲中的時間格式問題,對鍵盤事件的處理等,都是從老師那里借鑒來的。自己的知識系統(tǒng)還不穩(wěn)固,在今后的學(xué)習(xí)當中,要有針對性地加以補習(xí)。