1. 程式人生 > >java學生管理系統(簡易)(一)

java學生管理系統(簡易)(一)

java簡易學生管理系統---登入介面(一)

login部分

// 內容包含簡單的增刪該查以及使用者登入介面
// 技術有限,大佬勿噴---
// 此部分不小心將登入跟註冊寫在一起了。嚶嚶嚶~

中間部分將註冊寫成了內部類,本應該分開寫的,只是練習一下基礎語法

此部分在swing註釋比較詳細,之後就省略了哦

package StudentMajor;

import java.awt.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;

import javax.swing.*;


public class Login {
	
	private JFrame jf;//視窗
	private JPanel jp1,jp2,jp3,jp4;//面板
	private JLabel jlb1,jlb2,jlb3;//標籤
	private JButton jb1,jb2,jb3;//按鈕
	private JTextField jtf;//文字
	private JPasswordField jpf;//密碼
	private JRadioButton jrb1,jrb2;//選項(點)按鈕
	private ButtonGroup bg; //控制點的選擇(按鈕)
	final private File filestu =  new File("e:\\abc\\file\\Student.txt");//學生檔案
	final private File filetea =  new File("e:\\abc\\file\\Teacher.txt");//教師檔案
	
	
	public Login() {
		
	}
	private class RegisterInfo {

	private JFrame jfr;//視窗
	private JPanel jp1,jp2,jp3,jp4;//面板
	private JLabel jlb1,jlb2,jlb3;//標籤
	private JButton jb1,jb2,jb3;//按鈕
	private JTextField jtf;//文字
	private JPasswordField jpf;//密碼
	private JRadioButton jrb1,jrb2;//選項(點)按鈕
	private ButtonGroup bg; //控制點的選擇(按鈕)

	public RegisterInfo() {
		init();
	}

	public void init() {
		if(!filestu.exists())
			try {
				filestu.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		if(!filetea.exists())
			try {
				filetea.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		//<1>設定主頁面
		jfr = new JFrame("學生管理系統");
		jfr.setSize(300, 250);//窗體大小
		jfr.setLocationRelativeTo(null);//居中顯示
		jfr.setLayout(new FlowLayout());//設定佈局
		jfr.setResizable(false); //設定視窗不能改變大小
		//一初始化就有面板
		jp1 = new JPanel();
		jp2 = new JPanel();
		jp3 = new JPanel();
		jp4 = new JPanel();
		//(1)設定標籤
		jlb1 = new JLabel("使用者名稱");
		jlb2 = new JLabel("密   碼");
		jlb3 = new JLabel("身   份");
		//(2)設定按鈕
		jb1 = new JButton("確定");
		jb2 = new JButton("重置");
		jb3 = new JButton("返回");
		
		jrb1 = new JRadioButton("教師");
		jrb2 = new JRadioButton("學生");
		bg = new ButtonGroup();
		bg.add(jrb1);
		bg.add(jrb2);
		jrb2.setSelected(true);//預設學生按鈕
		//(3)建立文字框
		jtf = new JTextField(10);
		//(4)密碼框
		jpf = new JPasswordField(10);
		
		
		//<2>新增部件(新增到面板)
		
		jp1.add(jlb1);
		jp1.add(jtf);
		
		jp2.add(jlb2);
		jp2.add(jpf);
		
		jp3.add(jb1);
		jp3.add(jb2);
		jp3.add(jb3);
		
		
		jp4.add(jlb3);
		jp4.add(jrb1);
		jp4.add(jrb2);
		
		//(1)將元件都新增到窗體上
		
		jfr.add(jp1);
		jfr.add(jp2);
		jfr.add(jp4);
		jfr.add(jp3);
		//<3>新增窗體事件
		myEvent();
		//<4>設定窗體可見
		jfr.setVisible(true);
	}
		
	public void myEvent() {
		
		//(1)窗體關閉
		jfr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//(2)監聽---確定
		jb1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				if(jtf.getText().isEmpty()) {
					JOptionPane.showMessageDialog(null, "請輸入使用者名稱", "提示資訊", JOptionPane.WARNING_MESSAGE);
					return;
				}else if(jpf.getText().isEmpty()) {
					JOptionPane.showMessageDialog(null, "請輸入密碼", "提示資訊", JOptionPane.WARNING_MESSAGE);
					return;
				} 
				boolean flag = false;
				if(jrb1.isSelected()) {
					flag = WriteInFile(1,jtf.getText(),jpf.getText());
				}else {
					flag = WriteInFile(2,jtf.getText(),jpf.getText());
				}
				
				if(flag) {
					JOptionPane.showMessageDialog(null, "註冊成功", "提示資訊", JOptionPane.WARNING_MESSAGE);
					//jfr.setVisible(false);//dispose()
					//jf.setVisible(true);
					jfr.dispose();//關掉當前頁面
					new Login().init();;//開啟新的頁面
					
				}else {
					JOptionPane.showMessageDialog(null, "註冊失敗,請重新註冊!", "提示資訊", JOptionPane.ERROR_MESSAGE);
					jtf.setText("");
					jpf.setText("");
				}
			
			}
	
		});
		//重置按鈕
		jb2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				jtf.setText("");
				jpf.setText("");
			}
			
		});
		//返回
		jb3.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				jfr.setVisible(false);
				jf.setVisible(true);
				
			}
		});
				
		
	}
	
	
}

	public void init() {
		if(!filestu.exists())
			try {
				filestu.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		if(!filetea.exists())
			try {
				filetea.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		//<1>設定主頁面
		jf = new JFrame("學生管理系統");
		jf.setSize(300, 250);//窗體大小
		jf.setLocationRelativeTo(null);//居中顯示
		jf.setLayout(new FlowLayout());//設定佈局
		jf.setResizable(false); //設定視窗不能改變大小
		//一初始化就有面板
		jp1 = new JPanel();
		jp2 = new JPanel();
		jp3 = new JPanel();
		jp4 = new JPanel();
		//(1)設定標籤
		jlb1 = new JLabel("使用者名稱");
		jlb2 = new JLabel("密   碼");
		jlb3 = new JLabel("權   限");
		//(2)設定按鈕
		jb1 = new JButton("登入");
		jb2 = new JButton("重置");
		jb3 = new JButton("註冊");
		
		jrb1 = new JRadioButton("教師");
		jrb2 = new JRadioButton("學生");
		bg = new ButtonGroup();
		bg.add(jrb1);
		bg.add(jrb2);
		jrb2.setSelected(true);//預設學生按鈕
		//(3)建立文字框
		jtf = new JTextField(10);
		//(4)密碼框
		jpf = new JPasswordField(10);
		
		
		//<2>新增部件(新增到面板)
		
		jp1.add(jlb1);
		jp1.add(jtf);
		
		jp2.add(jlb2);
		jp2.add(jpf);
		
		jp3.add(jb1);
		jp3.add(jb2);
		jp3.add(jb3);
		
		
		jp4.add(jlb3);
		jp4.add(jrb1);
		jp4.add(jrb2);
		
		//(1)將元件都新增到窗體上
		
		jf.add(jp1);
		jf.add(jp2);
		jf.add(jp4);
		jf.add(jp3);
		//<3>新增窗體事件
		myEvent();
		
		//<4>設定窗體可見
		jf.setVisible(true);
	}
	
	//窗體事件
	public void myEvent() {
		//(1)窗體關閉
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//(2)監聽---登入按鈕
		jb1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				userChoice();
			}
	
		});
		//重置按鈕
		jb2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				jtf.setText("");
				jpf.setText("");
			}
			
		});
		//註冊按鈕
		jb3.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				
				//jf.setVisible(false);
				jf.dispose();
				new RegisterInfo();
			}
		});
		
		
		
	}
	
	//登入提示資訊
	public void showinfo(int num) {
		boolean flag = false;
		if(jtf.getText().isEmpty()) {
			JOptionPane.showMessageDialog(null, "請輸入使用者名稱", "提示資訊", JOptionPane.WARNING_MESSAGE);
			return;
		}else if(jpf.getText().isEmpty()) {
			JOptionPane.showMessageDialog(null, "請輸入密碼", "提示資訊", JOptionPane.WARNING_MESSAGE);
			return;
		} 
		if(num==1) {
			flag = readFileOfStudent(filetea,jtf.getText(),jpf.getText());
			
		}else if(num==2) {
			flag = readFileOfStudent(filestu,jtf.getText(),jpf.getText());
		}
		if(flag&&num==1) {
			JOptionPane.showMessageDialog(null, "登入成功", "提示資訊", JOptionPane.WARNING_MESSAGE);
			jf.dispose();
			new TeacherUser().init();
			
		}else if(flag&&num==2) {
			JOptionPane.showMessageDialog(null, "登入成功", "提示資訊", JOptionPane.WARNING_MESSAGE);
			jf.dispose();
			new StudentUser().init(jtf.getText());
		}else {
			JOptionPane.showMessageDialog(null, "使用者名稱或密碼錯誤!", "提示資訊", JOptionPane.ERROR_MESSAGE);
			jtf.setText("");
			jpf.setText("");
		}
			
	
	}
	//使用者選擇
	public void userChoice() {
		int num=-1;
		if(jrb2.isSelected()) {
			num=2;
		}else {
			num=1;
		}
		//System.out.println(num);
		showinfo(num);

		
	}
	//將資訊寫入檔案
	public boolean WriteInFile(int num,String user,String pwd) {
		if(user==null || pwd==null)
			return false;
		
		if(num==2) {
			if(WriteToFile(filestu,user,pwd)) {
				return true;
			}
			
			
		}else if(num==1) {
			
			if(WriteToFile(filetea,user,pwd)) {
				return true;
			}
			
		}else {
			//System.out.println("沒有任何學生和老師,請重新註冊!");
			return false;
		}
		
		return false;
	}
	
	public boolean WriteToFile(File file,String user,String pwd)  {
		if(user==null || pwd == null)
			return false;
		if(file==null) {
			System.out.println("沒有檔案");
			return false;
		}
		BufferedWriter bufw = null;
		try {
			 bufw = new BufferedWriter(new FileWriter(file,true));
			 
			if(readFileOfStudent(file,user,pwd)) {
				
				JOptionPane.showMessageDialog(null, "輸入已存在!", "提示資訊", JOptionPane.ERROR_MESSAGE);
				//jtf.setText("");
				//jpf.setText("");
				return false;
			}

			 bufw.write(user+"    "+pwd);
			 
			 bufw.newLine();
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			 try {
				 if(bufw!=null)
					 bufw.close();
			} catch (IOException e) {
				
				System.out.println("檔案關閉失敗");
			}
		}
		return true;
	}
	
	//讀檔案
	public boolean readFileOfStudent(File file,String name,String pwd) {
		BufferedReader bufr = null;
		//System.out.println(name+pwd);
		boolean flag = false;
		try {
			bufr = new BufferedReader(new FileReader(file));
		} catch (FileNotFoundException e) {
			new RuntimeException("該檔案不存在!");
		}
		
		String len = null;
		String infoReg = " +";
		String[]s = null;
		try {
			
			while((len = bufr.readLine())!=null) {
				s = len.split(infoReg);
				if(s[0].equals(name)&&s[1].equals(pwd)) {
					return true;
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return false;
	}
	
	
	public static void main(String[] args) {
		new Login().init();
	}

}


效果展示:


//  註冊介面


相關推薦

java學生管理系統簡易()

java簡易學生管理系統---登入介面(一)login部分// 內容包含簡單的增刪該查以及使用者登入介面// 技術有限,大佬勿噴---// 此部分不小心將登入跟註冊寫在一起了。嚶嚶嚶~中間部分將註冊寫成了內部類,本應該分開寫的,只是練習一下基礎語法此部分在swing註釋比較詳

java學生管理系統IO流和檔案實現

利用IO流和檔案的儲存和讀取來實現學生管理系統,核心在於使用集合ArrayList<E>和IO流讀取和寫入,需要掌握以下知識點: (1)ArrayList<E>介面實現可變陣列的大小,E代表陣列型別,E為什麼,定義的物件即為什麼型別,常用的功能是增刪

從零搭建java後臺管理系統mysql和redis安裝

docker 權限 req 安全性 分享圖片 登錄 red 解析 append 接上篇開始安裝mysql和redis 註意了,如果用阿裏雲服務器,外網訪問的端口必須在安全組開啟,否則外網訪問不通 三、服務器安裝redis和mysql 本次環境搭建將所有第三方服務會安

學生管理系統js

驗證登陸js. //登陸驗證方法 function login(){ var username = document.getElementById("username").value; var password = document.getElementById("password"

學生管理系統測試

登陸的測試類。 package com.wh.test; import org.junit.Test; import com.wh.entity.Student; import com.wh.service.LoginService; import com.wh.service.Lo

學生管理系統---優化

前言:        上一篇是關於屬性和程式碼的優化,這次主要是根據平時的習慣來進行的優化。 內容:       1、新增成績窗體中,通過班號和學號可以確定該生的姓名,所以該生的姓名就不可以輸入

JAVA辦公管理系統OA

辦公系統(OA) 一. 使用者: 1. 登入。 2. 分配使用者和許可權 二. 個人資訊: 1. 個人資訊完善(修改) 2. 登入密碼修改和重置 三. 請假: 1. 請假單錄入 2. 請假單提交(二級審批)    3天以下:一級稽核通過(通過)   

學生管理系統---登入窗體

前言:         一直也沒有對遇到的問題進行總結,現在總結一下,是不是相當於又學習了一遍學生啊! 內容:       1、判斷使用者名稱是否為空 '判斷輸入使用者名稱是否為空 If Trim(txtUserName.Text = "")

java構建學生管理系統

class 管理系統 同時 進步 傳參 databases 什麽 界面 查看 用java搭建學生管理系統,重要還是對數據庫的操作,諸如增刪改查等。 1.基本的功能: 老師完成對學生信息的查看和修改,完成對班級的信息的概覽。 學生可以看自己的成績和對自己信息的修改。 學生和老

從零搭建java後臺管理系統

pac 阿裏 stat 技術 user 日誌 代碼 最小 mbo 框架搭建 一、初步設想,使用springboot,框架打算用到依賴 spring web,devTools,mysql,Aspect,Redis,Lombok,Freemark,Shiro,Rabbitmq

C/S模型-多程序-簡易學生-管理系統帶資料庫

簡介: 【1】資料:   學生資訊:姓名name + 賬號account + 分數score   登入資訊:賬號account + 密碼password(學生、管理員) 【2】C/S模型,使用fork實現多程序互動 【3】Client:   1)登入:學生登入,管理員登陸   2)管理員:修改密

Java——Web開發之MVC設計模式的學生資訊管理系統

為什麼這個標題為“(二)”,其實是對於上一個特別簡單學生資訊管理系統裡功能的完善。 所謂的“(一)”在這:學生資訊管理系統(一) 系統實現的功能: 實現新增學生 顯示查詢到的學生 刪除學生 更新學生資訊 模糊查詢符合相關資訊的學生

Python--學生資訊管理系統簡易

           學完Python基礎,結合前邊所學的知識,做一個小Demo,一來熟悉程式碼,二來鞏固和複習前邊所學的東西。 程式碼如下: #coding=utf-8 #學生管理系統 #用來儲存學生資訊 nameList = []         print("-"

Java專案開發成績管理系統 學生資訊模組—主介面設定

學生資訊模組負責管理學生的個人資訊,包括對學生人數的增加對資訊的修改等, 1.主介面設計: 學生資訊主介面包含選單欄,列表按鈕,等元件,其實現程式碼如下: package student; import grade.GIndex; import java.awt.*;

學生成績管理系統簡易本地版

學生成績管理系統(簡易本地版) 一、概述 平臺:Windows 10 ,Microsoft Visual Studio 2017 語言:C++,面向過程 完成日期:2018/12/27 主要功能: 1. 新增學生的資訊(包括學號,姓名,性別,成績) 2. 顯示學生的資訊 3.查詢學生

學生管理系統SSM簡易總結

之前用 Servlet + JSP 實現了一個簡易版的學生管理系統,在學習了 SSM 框架之後,我們來對之前寫過的專案重構一下! 技術準備 為了完成這個專案,需要掌握如下技術: Java 基礎知識 前端: HTML, CSS, JAVAS

用反射完畢學生管理系統包含數據庫連接

幫我 循環輸出 .net into att reat 類別 學生管理系統 csdn 今天我最終將坑爹的萬能數據庫鏈接做好了第一步了,插入數據。 雖說非常easy。但還是應該總結一些問題。 一路的坎坷僅僅能如今表達了。 以下就是一些問題以及過程: 最重要的問題可能就是sq

學生用戶管理系統

tostring str rust 意思 儲存器 即將 需要 http nec 接著上一條隨筆。 這個用戶管理系統能夠實現從sql server 數據庫中的一張表讀取用戶名和密碼來看是否與用戶輸入的相同,相同則進入另一個頁面,否則跳messagebox. 若用戶沒有註冊

Java實驗--基於Swing的簡單的歌曲信息管理系統

img dbo check clas str http 按鈕 cancel uuid 轉載請註明出處,上一篇《Java實驗--基於Swing的簡單的歌曲信息管理系統(二)》介紹了項目的目錄結構和Dao層,本篇主要講解界面的繪制和業務層Service。 登錄界面   登錄

學生管理系統有一定問題

sel let ets upd jdbc except cte int setname package lianjie; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res