国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)

這篇具有很好參考價值的文章主要介紹了Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

?

一、實(shí)驗?zāi)康募耙?/p>

二、實(shí)驗內(nèi)容

三、結(jié)果展示

四、源代碼


一、實(shí)驗?zāi)康募耙?/h3>

1.?實(shí)驗要求:管理系統(tǒng)采用MVC結(jié)構(gòu),實(shí)驗前對可能出現(xiàn)的數(shù)據(jù)庫連接、事件響應(yīng)等問題預(yù)先分析,確定調(diào)試步驟和測試方法,編寫源程序,實(shí)現(xiàn)可行的應(yīng)用程序,盡可能考慮程序的健壯性,對實(shí)驗中出現(xiàn)的問題進(jìn)行分析、總結(jié)。?

2.?實(shí)驗?zāi)康模赫莆認(rèn)ava Swing窗口、常用組件和布局,熟悉MVC結(jié)構(gòu)的概念和特點(diǎn),掌握事件處理機(jī)制,通過事件處理程序?qū)UI與后臺數(shù)據(jù)庫連接,完成學(xué)生成績的查詢、修改、插入、刪除等功能。

3. 實(shí)驗內(nèi)容:實(shí)驗中,設(shè)計一個UI功能操作界面,通過界面輸入功能輸入n條學(xué)生的成績,每條記錄由學(xué)號、姓名和分?jǐn)?shù)組成,然后編寫事件處理程序完成下列操作:查詢功能:實(shí)現(xiàn)學(xué)生成績查詢功能;修改功能:實(shí)現(xiàn)學(xué)生成績修改功能;刪除功能:實(shí)現(xiàn)學(xué)生成績刪除功能;退出功能等,完成實(shí)驗報告。

二、實(shí)驗內(nèi)容

1. 實(shí)驗方案:使用MVC結(jié)構(gòu),首先建立Student模型,其次根據(jù)需求,增刪改查,建立四個視圖,以及對應(yīng)的控制程序,通過窗口來返回數(shù)據(jù)。

2. 實(shí)驗步驟:創(chuàng)建MVC結(jié)構(gòu),設(shè)置Student模型,建立相應(yīng)的窗口模型,將對學(xué)生成績的增刪改查的改變的情況反映到視圖中,每一個操作都設(shè)置對應(yīng)的控制器,用來控制數(shù)據(jù)的走向,使對應(yīng)的操作可以成功反映到視圖中。

3. 設(shè)計思路:

Student模型:創(chuàng)建一個student類,里面存放著Student的基本數(shù)據(jù),學(xué)號,姓名,成績。

視圖模型:創(chuàng)建四個視圖,分別對應(yīng)著增刪改查,用戶可以根據(jù)視圖中的提示信息進(jìn)行操作。將增刪改查四個視圖添加到一個JTabbedPane窗格中,方便用戶調(diào)用程序。

控制器模型:創(chuàng)建四個控制器類,對應(yīng)著增刪改查操作。先連接到數(shù)據(jù)庫中,通過預(yù)處理語句將視圖中傳入的數(shù)據(jù)與sql語句相連接,實(shí)現(xiàn)對數(shù)據(jù)庫的增刪改查,同時將結(jié)果返回到視圖中,并且要反映到數(shù)據(jù)庫中。

三、結(jié)果展示

1.查看數(shù)據(jù)庫中的student數(shù)據(jù)表的初始信息。選擇窗口中的增加,向數(shù)據(jù)庫中增加一條學(xué)生信息。添加學(xué)生信息后會彈出對話框,顯示添加學(xué)生信息成功。添加數(shù)據(jù)后查看數(shù)據(jù)庫信息是否發(fā)生變化,發(fā)現(xiàn)數(shù)據(jù)庫中已添加了剛剛插入的信息.

Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)

2. 刪除某學(xué)生的信息,輸入該學(xué)生的學(xué)號,刪除成功后會彈出對話框,提醒刪除成功。檢查數(shù)據(jù)庫信息是否發(fā)生變化,刪除的同學(xué)數(shù)據(jù)庫信息中已經(jīng)沒有該同學(xué)信息。

Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)

3. 更新學(xué)生的成績,輸入學(xué)生的學(xué)號以及更新后的成績。更新成績成功會彈出對話框,說明成績更新成功.檢查數(shù)據(jù)庫對應(yīng)的信息是否發(fā)生變化,該學(xué)號對應(yīng)的學(xué)生成績發(fā)生變化,更新成功.

Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)

4. 查詢學(xué)生信息,輸入要查詢學(xué)生信息的學(xué)號,點(diǎn)擊查詢按鈕,會在下方文本區(qū)中顯示查詢到的學(xué)生的成績的信息.同時會彈出對話框,將本次查詢的學(xué)生信息返回到對話框中。

Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)

四、源代碼

UpdateDate.java

package student_system;

import java.sql.*;
import javax.swing.JOptionPane;

public class UpdateData {
	Connection con;
	PreparedStatement presql;
	public UpdateData() {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		} catch (Exception e) {
			// TODO: handle exception
		}
		String urlString="jdbc:mysql://localhost:3306/students?useSSL=false&serverTimezone=UTC";
		String userString="root";
		String passwordString="";//根據(jù)自己數(shù)據(jù)庫的密碼填寫
		try {
			con = DriverManager.getConnection(urlString, userString, passwordString);
		} catch (SQLException e) {
			// TODO: handle exception
			System.out.println(e);
		}
	}
	
	public void UpdateModel(Student student) {
		String sqlUpdate = "update student set 成績=(?) where 學(xué)號=(?)";
		int ok = 0;
		try {
			presql = con.prepareStatement(sqlUpdate);
			presql.setDouble(1, student.getScore());
			presql.setInt(2, student.getNum());
			ok = presql.executeUpdate();
			con.close();
		} catch (SQLException e) {
			// TODO: handle exception
			JOptionPane.showMessageDialog(null, "找不到此學(xué)號的學(xué)生","警告",JOptionPane.WARNING_MESSAGE);
		}
		if(ok!=0) {
			JOptionPane.showMessageDialog(null, "更新學(xué)生成績成功!","恭喜",JOptionPane.WARNING_MESSAGE);
		}
	}
}

UpdateView.java

package student_system;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class UpdateView extends JPanel implements ActionListener{
	Student student;
	JTextField inputNum,inputScore;
	JButton button;
	public UpdateView() {
		student = new Student();
		inputNum = new JTextField(10);
		inputScore = new JTextField(5);
		button = new JButton("更新成績");
		add(new JLabel("要修改的學(xué)生學(xué)號:"));
		add(inputNum);
		add(new JLabel("新的成績:"));
		add(inputScore);
		add(button);
		button.addActionListener(this);
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int num = Integer.parseInt(inputNum.getText());
		double score = Double.parseDouble(inputScore.getText());
		student.setNum(num);
		student.setScore(score);
		UpdateData updateData = new UpdateData();
		updateData.UpdateModel(student);
	}
	
}

DeleteDate.java

package student_system;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class DeleteData {
	Connection con;
	PreparedStatement presql;
	public DeleteData() {
		//代碼連接數(shù)據(jù)庫
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		} catch (Exception e) {
			// TODO: handle exception
		}
		String urlString="jdbc:mysql://localhost:3306/students?useSSL=false&serverTimezone=UTC";
		String userString="root";
		String passwordString="";//根據(jù)自己數(shù)據(jù)庫的密碼填寫
		try {
			con = DriverManager.getConnection(urlString, userString, passwordString);
		} catch (SQLException e) {
			// TODO: handle exception
			System.out.println(e);
		}
	}
	public void DeleteModel(Student stu) {
		int ok = 0;
		String sqlDelete = "delete from student where 學(xué)號=(?) ";
		try {
			presql = con.prepareStatement(sqlDelete);
			presql.setInt(1, stu.getNum());
//			presql.setString(2, stu.getName());
//			presql.setDouble(3, stu.getScore());
			ok = presql.executeUpdate();
			con.close();
		} catch (SQLException e) {
			// TODO: handle exception
			JOptionPane.showMessageDialog(null, "沒有找到對應(yīng)的人!!","警告",JOptionPane.WARNING_MESSAGE);
		}
		if(ok!=0) {
			JOptionPane.showMessageDialog(null, "刪除學(xué)生信息成功!","恭喜",JOptionPane.WARNING_MESSAGE);
		}
	}
}

DeleteView.java

package student_system;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DeleteView extends JPanel implements ActionListener{
	Student student;
	JTextField inputNum;
	JButton button;
	public DeleteView() {
		student = new Student();
		inputNum = new JTextField(10);
		button = new JButton("刪除");
		add(new JLabel("要刪除的學(xué)生的學(xué)號:"));
		add(inputNum);
		add(button);
		button.addActionListener(this);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int num = Integer.parseInt(inputNum.getText());
		student.setNum(num);
		DeleteData deleteData = new DeleteData();
		deleteData.DeleteModel(student);
	}
	
}

InsertDate.java

package student_system;

import java.sql.*;
import javax.swing.JOptionPane;

public class InsertData {
	Connection con;
	PreparedStatement presql;
	public InsertData() {
		//代碼連接數(shù)據(jù)庫
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		} catch (Exception e) {
			// TODO: handle exception
		}
		String urlString="jdbc:mysql://localhost:3306/students?useSSL=false&serverTimezone=UTC";
		String userString="root";
		String passwordString="";//根據(jù)自己的數(shù)據(jù)庫密碼填寫
		try {
			con = DriverManager.getConnection(urlString, userString, passwordString);
		} catch (SQLException e) {
			// TODO: handle exception
			System.out.println(e);
		}
	}
	
	public void InsertModel(Student stu) {
		String sqlInsert = "insert into student values(?,?,?)";
		int ok = 0;
		try {
			presql = con.prepareStatement(sqlInsert);
			presql.setInt(1, stu.getNum());
			presql.setString(2, stu.getName());
			presql.setDouble(3, stu.getScore());
			ok = presql.executeUpdate();
			con.close();
		} catch (SQLException e) {
			// TODO: handle exception
			JOptionPane.showMessageDialog(null, "學(xué)號不能重復(fù)!!","警告",JOptionPane.WARNING_MESSAGE);
		}
		if(ok!=0) {
			JOptionPane.showMessageDialog(null, "增加學(xué)生信息成功!","恭喜",JOptionPane.WARNING_MESSAGE);
		}
	}
}

InsertView.java

package student_system;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class InsertView extends JPanel implements ActionListener{
	Student student;
	JTextField inputNum,inputName,inputScore;
	JButton button;
	public InsertView() {
		student = new Student();
		inputNum = new JTextField(10);
		inputName = new JTextField(10);
		inputScore = new JTextField(5);
		button = new JButton("插入");
		add(new JLabel("學(xué)號:"));
		add(inputNum);
		add(new JLabel("姓名:"));
		add(inputName);
		add(new JLabel("成績:"));
		add(inputScore);
		add(button);
		button.addActionListener(this);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int num = Integer.parseInt(inputNum.getText());
		double score = Double.parseDouble(inputScore.getText());
		String name = inputName.getText();
		student.setNum(num);
		student.setName(name);
		student.setScore(score);
		InsertData insertData = new InsertData();
		insertData.InsertModel(student);
		
	}
	
}

SelectView.java

package student_system;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SelectView extends JPanel implements ActionListener{
	Student student;
	JTextField inputNum;
	JButton button;
	JTextArea showArea;
	public SelectView() {
		student = new Student();
		inputNum = new JTextField(10);
		button = new JButton("查詢");
		showArea = new JTextArea();
//		JPanel pNorthJPanel = new JPanel();
		add(new JLabel("請輸入要查詢成績的學(xué)生學(xué)號:"));
		add(inputNum);
		add(button);
		button.addActionListener(this);
		add(new JScrollPane(showArea),BorderLayout.CENTER);
		validate();
		
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int num = Integer.parseInt(inputNum.getText());
//		student.setScore(score);
		student.setNum(num);
		SelectData selectData = new SelectData();
		selectData.SelectModel(student);
		showArea.append("學(xué)號:"+selectData.result[0]+"姓名:"+selectData.result[1]+"成績:"+selectData.result[2]);
		JOptionPane.showMessageDialog(null, "學(xué)號:"+selectData.result[0]+" 姓名:"+selectData.result[1]+" 成績:"+selectData.result[2],"查詢成功",JOptionPane.WARNING_MESSAGE);
	}
}

AllView.java

package student_system;

import javax.swing.*;
import java.awt.*;

public class AllView extends JPanel{
	JTabbedPane pane;
	InsertView insertView;
	DeleteView deleteView;
	UpdateView updateView;
	SelectView selectView;
	public AllView() {
		insertView = new InsertView();
		deleteView = new DeleteView();
		updateView = new UpdateView();
		selectView = new SelectView();
		setLayout(new BorderLayout());
		pane = new JTabbedPane();
		pane.add("增加",insertView);
		pane.add("刪除",deleteView);
		pane.add("更新",updateView);
		pane.add("查詢",selectView);
		pane.validate();
		add(pane,BorderLayout.CENTER);
	}
}

MainWindow.java

package student_system;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainWindow extends JFrame{
	AllView view;
	public MainWindow() {
		view = new AllView();
		setBounds(500,300,500,300);
		add(view,BorderLayout.CENTER);
		setVisible(true);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}
}

run.java文章來源地址http://www.zghlxwxcb.cn/news/detail-464496.html

package student_system;

public class run {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MainWindow window = new MainWindow();
		window.setTitle("學(xué)生成績管理系統(tǒng)");
	}

}

到了這里,關(guān)于Java基于MVC的學(xué)生成績管理系統(tǒng)(mysql+GUI)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫實(shí)戰(zhàn):基于Tkinter+MySQL的學(xué)生成績管理系統(tǒng)

    數(shù)據(jù)庫實(shí)戰(zhàn):基于Tkinter+MySQL的學(xué)生成績管理系統(tǒng)

    用Python和數(shù)據(jù)庫一起實(shí)現(xiàn)了一個簡單的學(xué)生成績管理系統(tǒng),一起來看看吧! 本篇博客主要分為兩大部分,數(shù)據(jù)庫部分和Python程序設(shè)計部分,先將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中,隨后通過python程序設(shè)計連接到數(shù)據(jù)庫,實(shí)現(xiàn)一系列的操作。 代碼下載地址:https://download.csdn.net/download/m0_68

    2024年02月03日
    瀏覽(28)
  • JSP 學(xué)生成績查詢管理系統(tǒng)eclipse開發(fā)sql數(shù)據(jù)庫serlvet框架bs模式j(luò)ava編程MVC結(jié)構(gòu)

    JSP 學(xué)生成績查詢管理系統(tǒng)eclipse開發(fā)sql數(shù)據(jù)庫serlvet框架bs模式j(luò)ava編程MVC結(jié)構(gòu)

    一、源碼特點(diǎn) ? JSP 學(xué)生成績查詢管理系統(tǒng) 是一套完善的web設(shè)計系統(tǒng),對理解JSP java編程開發(fā)語言有幫助,比較流行的servlet框架系統(tǒng)具有完整的源代碼和數(shù)據(jù)庫,eclipse開發(fā)系統(tǒng)主要采用B/S模式 開發(fā)。 java 學(xué)生成績查詢管理系統(tǒng) 代碼下載鏈接 https://download.csdn.net/download/qq_412

    2024年02月05日
    瀏覽(31)
  • 基于PHP和MySql的學(xué)生成績管理系統(tǒng)(附完整版代碼)

    操作系統(tǒng) :win10 軟件 :AppServ(php+apache+mysql),nginx(代理) 2.2.1 教職工 對學(xué)生成績有一個整體的了解,在今后的教學(xué)中能有所改進(jìn)。同時可 以對自己教授的課程進(jìn)行修改,進(jìn)一步了解學(xué)生的個人情況,便于因材施教。 當(dāng)學(xué)生的個人信息發(fā)生改變時,老師能夠及時進(jìn)行修改。例

    2024年02月09日
    瀏覽(22)
  • Java項目:18 基于SpringBoot的學(xué)生成績管理系統(tǒng)

    Java項目:18 基于SpringBoot的學(xué)生成績管理系統(tǒng)

    作者主頁:舒克日記 簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、Java項目、學(xué)習(xí)資料、技術(shù)互助 文中獲取源碼 基于springboot的學(xué)生成績管理系統(tǒng)主要功能 分為兩個端,教師和學(xué)生 教師的主要功能:學(xué)生信息、成績信息的增刪改查 學(xué)生的主要功能:我的成績、我的總成績的查看 1.運(yùn)行環(huán)境:

    2024年02月21日
    瀏覽(32)
  • (附源碼)python+mysql+基于python的學(xué)生成績管理系統(tǒng)  畢業(yè)設(shè)計071143

    (附源碼)python+mysql+基于python的學(xué)生成績管理系統(tǒng) 畢業(yè)設(shè)計071143

    Django學(xué)生成績管理 摘 要 在國家重視教育影響下,教育部門的密確配合下,對教育進(jìn)行改革、多樣性、質(zhì)量等等的要求,使教育系統(tǒng)的管理和運(yùn)營比過去十年前更加理性化。依照這一現(xiàn)實(shí)為基礎(chǔ),設(shè)計一個快捷而又方便的線上學(xué)生成績管理系統(tǒng)是一項十分重要并且有價值的事

    2024年02月04日
    瀏覽(29)
  • 基于Java高校校園學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)(Springboot框架) 參考文獻(xiàn)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費(fèi) 項目配有對應(yīng)開發(fā)文檔、開題報告、任務(wù)書、

    2024年01月17日
    瀏覽(95)
  • JAVA學(xué)生成績管理系統(tǒng)

    只寫了最基本的增刪改查,其中可能會有一些沒考慮到的地方。結(jié)尾有完整代碼 首先是main方法 然后是菜單和歡迎頁面 1:添加學(xué)生信息 2:刪除學(xué)生信息 3:修改學(xué)生信息 4:查詢單個學(xué)生信息 5:列出所有學(xué)生信息 用到的其他方法: 完整發(fā)一下代碼: 學(xué)生類: StudentSystem類

    2024年02月12日
    瀏覽(59)
  • Java——學(xué)生成績管理系統(tǒng)

    Java——學(xué)生成績管理系統(tǒng)

    一、項目簡介 學(xué)生管理系統(tǒng)是一種基于計算機(jī)技術(shù)實(shí)現(xiàn)的學(xué)生信息管理工具,能夠方便地對學(xué)生信息進(jìn)行錄入、查詢、修改和刪除。該項目采用 Java 語言編寫,使用 Spring MVC 框架和 MySQL 數(shù)據(jù)庫,實(shí)現(xiàn)了以上所述的主要功能,該學(xué)生管理系統(tǒng)可以應(yīng)用于學(xué)校、培訓(xùn)機(jī)構(gòu)、教育

    2024年02月08日
    瀏覽(31)
  • java學(xué)生成績管理信息系統(tǒng)

    java學(xué)生成績管理信息系統(tǒng)

    學(xué)生成績管理信息系統(tǒng)是一個基于Java Swing的桌面應(yīng)用程序,旨在方便學(xué)校、老師和學(xué)生對學(xué)生成績進(jìn)行管理和查詢。本文檔將提供系統(tǒng)的詳細(xì)說明,包括系統(tǒng)特性、使用方法和技術(shù)實(shí)現(xiàn)。 添加學(xué)生信息:錄入學(xué)生基本信息,包括學(xué)號、姓名、班級等。 編輯學(xué)生信息:修改學(xué)

    2024年01月18日
    瀏覽(21)
  • 基于Python的學(xué)生成績管理系統(tǒng)

    基于Python的學(xué)生成績管理系統(tǒng)

    末尾獲取源碼 開發(fā)語言:python 后端框架:django 數(shù)據(jù)庫:MySQL5.7 開發(fā)軟件:Pycharm 是否Maven項目:是 目錄 一、項目簡介 二、系統(tǒng)功能 三、系統(tǒng)項目截圖 四、核心代碼 4.1登錄相關(guān) 4.2文件上傳 4.3封裝 網(wǎng)絡(luò)技術(shù)的快速發(fā)展給各行各業(yè)帶來了很大的突破,也給各行各業(yè)提供了一種

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包