今天為大家分享一個java語言編寫的教室管理系統,目前系統功能已經很全面,后續會進一步完善。整個系統界面漂亮,有完整得源碼,希望大家可以喜歡。喜歡的幫忙點贊和關注。一起編程、一起進步
開發環境
開發語言為Java,開發環境Eclipse或者IDEA都可以,數據為MySQL。運行主程序,或者執行打開JAR文件即可以運行本程序。
系統框架
利用JDK自帶的SWING框架開發。純窗體模式,直接運行Main文件即可以。同時帶有詳細得設計文檔。
系統介紹 3.1 項目背景
教室信息管理系統是一個教育單位不可缺少的部分。一個功能齊全、簡單易用的信息管理系統不但能有效地減輕學校各類工作人員的工作負擔,它的內容對于學校的決策者和管理者來說都至關重要,基于這個目的我們這次課程設計選擇教師管理系統做為我們的題目
3.2 項目目的
教室管理系統是典型的信息管理系統,其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面.對于前者要求建立數據一致性和完整性強,數據安全性好的數據庫.而對于后者則要求應用程序功能完備,易使用等特點。在學校,教室信息管理包括教室信息,顯然如果以人工的方式對其管理將耗費大量的人力、物力,本系統以此作為開發的目標,用以減輕教室管理人員的負擔。
3.3 軟件定義
教師管理系統的分兩種用戶類型:普通老師和系統管理員。其中普老師包括查詢,和修改自己的信息,查看教師排課安排等;系統管理員的操作包括老師的增刪改、教室排課的增刪該查等功能。
系統中需要有4個實體,教室,課程,老師,安排三個實體。
其中教師包括(id,Gonghao,,,,role)
教室實體包括(id,name,device,)
課程的實體包括:(id,,score)
教室安排的實體包括:(id,,,,week,shijian)
系統運行效果 5.1 用戶登錄
登陸模塊是用戶輸入用戶名和密碼,系統對輸入的在數據庫中進行校驗,校驗通過則跳轉到主界面,不通過則提示原因,返回主界面,如圖5.1所示。
5.2 系統主界面
用戶登錄成功后,跳轉到主界面,主界面有4個主要功能:系統退出,老師管理,教室管理,教室安排管理。系統管理員具有所有功能。普通老師只能查看和自己的信息,查看教室,查看安排,不能進行修改。只有管理員才有權利進行修改。
5.3 顯示所有教室
進入主界面后,點擊教室菜單下的顯示所有記錄,可以看到系統所有記錄,記錄顯示在Jtable
5.4 新增教室
5.5 修改教室
5.6 顯示所有老師信息
5.7 新增教室安排信息
進入主界面后,點擊教室安排菜單下的新增教室安排,跳出教室新增安排界面。需要選擇教室,老師,上課日期,開始時間,結束時間。系統會檢測是否有沖突,如有沖突,則提示需要調整時間。
關鍵代碼
public class Login extends JFrame implements ActionListener{
//定義登陸窗口需要的組件
JLabel jl1,jl2,jl3;
JTextField jtf1;
JPasswordField jpf1;
JButton jb1,jb2;
int width,height;
//定義用于連接數據庫的組件,也就是com.SqlConnection類下的SqlConn方法
SqlConn sqlconn;
//定義用于傳送SQL語句的變量
String sql;
//定義一個用于接收登陸驗證返回來的記錄集
ResultSet rs;
//聲明用于驗證登陸用戶的模型
LoginModel loginModel;
int flag;
public static void main(String []args)
{
Login login=new Login();
}
public Login()
{
//創建登陸所需的組件

jl1=new JLabel("賬 號:");
jl1.setFont(MyFont.f1);
jl1.setBounds(50,50,60,25);
jl2=new JLabel("密 碼:");
jl2.setFont(MyFont.f1);
jl2.setBounds(50,90,60,25);
jtf1=new JTextField(20);
jtf1.setBounds(110,50,150,25);
//設置文本框下凹,三維效果
jtf1.setBorder(BorderFactory.createLoweredBevelBorder());
jpf1=new JPasswordField(20);
jpf1.setBorder(BorderFactory.createLoweredBevelBorder());
jpf1.setBounds(110,90,150,25);
jb1=new JButton("登 陸");
jb1.setFont(MyFont.f1);
jb1.addActionListener(this);
jb1.setBounds(95,130,75,25);
jb2=new JButton("取消");
jb2.setFont(MyFont.f1);
jb2.addActionListener(this);
jb2.setBounds(185,130,75,25);
//添加到窗體
//先設置窗體的空布局
this.setLayout(null);
this.add(jl1);
this.add(jtf1);
this.add(jl2);
this.add(jpf1);
this.add(jb1);
this.add(jb2);
//創建一個BackImage對象
BackImage bi=new BackImage();
//設定圖片的位置
bi.setBounds(0,0,350,250);
this.add(bi);
this.setSize(350,250);
this.setTitle("<-教室管理信息系統登陸窗口-->");
//設置窗口在屏幕的初始位置
width=Toolkit.getDefaultToolkit().getScreenSize().width;
height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width/2-180, height/2-180);
//設置窗口不可改變大小
this.setResizable(false);
//注意:************設置窗口的背景顏色,由于是繼承Swing包,所以必須先得到窗口的一個面板,然后再通過這個面板去設置背景色,否則設置不顯示出來
//this.getContentPane().setBackground(Color.gray);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//創建一個內部類,并繼承JPanle,用于畫背景圖片
class BackImage extends JPanel
{
Image im;
public BackImage(){
try
{

im=ImageIO.read(new File("Image/login.gif"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
//要把圖片畫到JPanle,需要重寫一個Paint方法
public void paint(Graphics g) //此處的paint中的p是小寫,
//如果是大寫,則就是重寫paint方法了,而是一個新的方法了,那么后面的圖片是不會輸出的
{
g.drawImage(im,0,0,350,250,this);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//如果說點擊了登陸按鈕
if(e.getSource()==jb1)
{
//獲取輸入的用戶名和密碼
String username=jtf1.getText().trim();
System.out.println("username="+username);
String password=new String(jpf1.getPassword());//此處不能通過getText()來獲取,從安全角度考慮,通過getPassword()來獲取,即可通過new String這便是數組
System.out.println("password="+password);
//調用處理登陸用戶驗證的模型
loginModel=new LoginModel();
flag=loginModel.checkUser(username,password);
//判斷用戶名和密碼是否正確username
if(flag==0)
{
MyFont.usertype="系統管理員";
MyFont.username=username;
new ManageView("系統管理員");
this.dispose();
}
if(flag==1)
{
MyFont.usertype="老師";
MyFont.username=username;
new ManageView("老師");
this.dispose();
}
if(flag==2)
{
System.out.println("slsl");
JOptionPane.showMessageDialog(this, "用戶名或密碼錯誤!");
}
}
else if(e.getSource()==jb2)
{
System.exit(0);
}
}
}
*請認真填寫需求信息,我們會在24小時內與您取得聯系。