搜档网
当前位置:搜档网 › (完整版)学生信息管理系统数据库java

(完整版)学生信息管理系统数据库java

(完整版)学生信息管理系统数据库java
(完整版)学生信息管理系统数据库java

《数据库原理与应用》课程设计报告

选题名称:学生信息管理系统

组长:李盟

指导教师:汤嘉立

设计日期:2016.06.13——2016.06.24

学号姓名小组评分教师评分2014144414 李盟90

2014144415 李玲90

2014144429 徐兰90

2014144431 许媛媛90

6.个人工作报告

除上一步骤要求的完整文档外,每个人需陈述自己所承担的工作、在讨论中的个人见解,提供个人所承担工作的有关文档(可能是不完整的),并对个人的工作情况、收获等进行总结。

(1)承担的工作及贡献

●需求分析阶段

●概念模型设计阶段

局部E-R模型:

整体E-R模型:

●逻辑模型设计阶段

Student(sno,sn,sa,ss,sd)

Course(cno,cn,pcno)

Sc(sno,cno,g)

Unpw(un,pw,qx)

●物理模型设计阶段

s(学生信息表)

字段名称数据类型描述sno char (10) 学号,关键字

sn char (20) 姓名

sa int 年龄

ss char (10) 性别

sd char (10) 院系

c(课程信息表)

字段名称数据类型描述cno char (10) 课程号,关键字

cn char (30) 课程名

pcno char (10) 先行课程号

sc(选课信息表)

字段名称数据类型描述sno char (10) 学号,关键字

cno char (10) 课程号,关键字

g int 成绩

unpw(用户信息表)

字段名称数据类型描述un char (10) 用户名,关键字

pw char (10) 密码

qx int 角色

1.视图:

2.s(学生信息表)

3.c(课程信息表)

4.sc(选课信息表)

5.unpw(用户信息表)

实施和实现阶段

附件1 系统实施

一、登录界面

图片:

代码:

package li;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面JPanel p1 = null;

JPanel p2 = null;

JPanel p3 = null;

JLabel userName = new JLabel("用户:");

JTextField txtUser = new JTextField();

JLabel password = new JLabel("密码:");

JPasswordField txtPwd = new JPasswordField(6);

JLabel role = new JLabel("角色:");

JComboBox cbrole = new JComboBox();

JButton btnLogin = new JButton("登录");

JButton btncz = new JButton("重置");

JButton btnCancel = new JButton("取消");

JLabel imageLabel;

Icon image;

static int OK = 1;

static int CANCEL = 0;

int actionCode = 0;

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

int qxian = 0;

public DLFrame() {// 构造方法

super("登录界面");

p1 = new JPanel();

p2 = new JPanel();

p3 = new JPanel();

cbrole.addItem("管理员");

cbrole.addItem("学生");

image = new ImageIcon("Tulips.jpg");

imageLabel = new JLabel(image);

p1.add(imageLabel);

this.setLayout(new FlowLayout());

this.setBounds(100, 100, 246, 345);

p2.setLayout(new GridLayout(4, 2));

p2.add(userName);

p2.add(txtUser);

p2.add(password);

p2.add(txtPwd);

p2.add(role);

p2.add(cbrole);

p3.add(btnLogin);

p3.add(btncz);

p3.add(btnCancel);

this.add(p1);

this.add(p2);

this.add(p3);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.show();

btnLogin.addActionListener(this);

cbrole.addItemListener(this);

btncz.addActionListener(this);

btnCancel.addActionListener(this);

}

public void connDB() { // 连接数据库

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

con = DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433; DatabaseName=student",

"sa", "123");

stmt = con.createStatement();

} catch (SQLException e) {

e.printStackTrace();

}

}

public void closeDB() // 关闭连接

{

try {

stmt.close();

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

public void itemStateChanged(ItemEvent e) {

if (e.getStateChange() == ItemEvent.SELECTED) {

JComboBox jcb = (JComboBox) e.getSource();

qxian = jcb.getSelectedIndex();

}

}

public void actionPerformed(ActionEvent e) {

Object source = e.getSource();

String un = null;

String pw = null;

boolean success = false;// 用于判断是否登录成功

if (source == btnLogin) {

if (txtUser.getText().equals("") || txtPwd.getText().equals("")) {// 判断是否输入了用户名和密码

JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");

} else {

this.connDB();

try {

rs = stmt.executeQuery("select * from unpw where qx="+ qxian);

while (rs.next()) {

un = rs.getString("un").trim();

pw = rs.getString("pw").trim();

if (txtUser.getText().equals(un)) {

if (txtPwd.getText().equals(pw)) {

actionCode = OK;

this.setVisible(false);

if (qxian == 0) {

new ManagerFrane();// 进入管理员界面

}

if (qxian == 1) {

new StudentFrame();// 进入学生界面

}

success = true;

break;

} else {

JOptionPane.showMessageDialog(null, "密码错误!");

txtPwd.setText("");

success = true;

}

}

}

if (!success) {

JOptionPane.showMessageDialog(null, "登录名错误!");

txtUser.setText("");

txtPwd.setText("");

}

} catch (SQLException e1) {

e1.printStackTrace();

}

}

} else if (source == btncz) {

txtUser.setText("");

txtPwd.setText("");

} else if (source == btnCancel) {

System.exit(0);

}

}

public static void main(String[] args)

{

JPanel mainp=new JPanel();

DLFrame student=new DLFrame();

}

}

二、管理员界面

图片:

代码:

package li;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class ManagerFrane extends JFrame implements ActionListener {// 管理员界面JPanel p1 = new JPanel();

JPanel p2 = new JPanel();

JButton btns = new JButton("学生信息管理");

JButton btnc = new JButton("课程信息管理");

JButton btnsc = new JButton("选课信息管理");

JButton btng = new JButton("成绩信息管理");

JButton btnu = new JButton("用户信息管理");

JButton btnClose = new JButton("退出管理系统");

JLabel l = new JLabel("管理员");

ManagerFrane() {// 构造方法

super("学生信息管理系统");

setSize(350, 200);

add("North", p1);

add("Center", p2);

p1.add(l);

p2.add(btns);

p2.add(btnc);

p2.add(btnsc);

p2.add(btng);

p2.add(btnu);

p2.add(btnClose);

btns.addActionListener(this);

btnc.addActionListener(this);

btnsc.addActionListener(this);

btng.addActionListener(this);

btnu.addActionListener(this);

btnClose.addActionListener(this);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

show();

}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand() == "学生信息管理")

new SM().display();

if (e.getActionCommand() == "课程信息管理") {

new CM("课程信息管理").display();

}

if (e.getActionCommand() == "选课信息管理") {

new SCM("选课信息管理").display();

}

if (e.getActionCommand() == "成绩信息管理") {

new GM("成绩信息管理").display();

}

if (e.getActionCommand() == "用户信息管理") {

new PM("用户信息管理").display();

}

if (e.getActionCommand() == "退出管理系统") {

System.exit(0);

}

}

}

(一)学生信息管理

代码:

class SM extends JFrame implements ActionListener {// 学生信息管理JPanel p = new JPanel();

JButton btnAdd = new JButton("增加");

JButton btnDelete = new JButton("删除");

JButton btnAlter = new JButton("修改");

JButton btnSearch = new JButton("查询");

JButton btnDisplay = new JButton("显示");

JMenuBar mb = new JMenuBar();

JPanel p1 = new JPanel();;

JTable sTable;

JScrollPane scroll;

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

Object[][] playerInfo;

SSelect sst;

String mxh = null;

boolean bstd = false;

SM() {// 构造方法

super("学生信息管理");

add("South", p);

this.add("Center", p1);

mb.add(btnAdd);

mb.add(btnDelete);

mb.add(btnAlter);

mb.add(btnSearch);

mb.add(btnDisplay);

SM(SSelect sst) {// 构造方法

super("学生信息管理");

this.sst = sst;

bstd = true;

add("South", p);

this.add("Center", p1);

mb.add(btnAdd);

mb.add(btnDelete);

mb.add(btnAlter);

mb.add(btnSearch);

mb.add(btnDisplay);

this.connDB();

this.setBounds(200, 200, 400, 260);

btnAdd.addActionListener(this);

btnDelete.addActionListener(this);

btnAlter.addActionListener(this);

btnSearch.addActionListener(this);

btnDisplay.addActionListener(this);

this.setJMenuBar(mb);

// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

show();

}

public void display() {// 显示所有学生的基本信息

int i = 0;

int j = 0;

int k = 0;

List al = new ArrayList();

try {

rs = stmt.executeQuery("select * from s");

while (rs.next()) { // 找出表中的记录数赋给i

al.add(rs.getString("sno"));

al.add(rs.getString("sn"));

al.add(rs.getString("ss"));

al.add(rs.getInt("sa"));

al.add(rs.getString("sd"));

i++;

}

} catch (SQLException e) {

e.printStackTrace();

}

playerInfo = new Object[i][5];

String[] columnNames = { "学号", "姓名", "年龄", "性别", "院系" };

try {

rs = stmt.executeQuery("select * from s order by sno");

while (rs.next()) {

playerInfo[j][0] = rs.getString("sno");

playerInfo[j][1] = rs.getString("sn");

playerInfo[j][2] = rs.getInt("sa");

playerInfo[j][3] = rs.getString("ss");

playerInfo[j][4] = rs.getString("sd");

j++;

}

} catch (SQLException e) {

e.printStackTrace();

}

sTable = new JTable(playerInfo, columnNames);// 创建网格

p1.add(sTable);

scroll = new JScrollPane(sTable);

this.add(scroll);

}

public void delete() {// 删除某个学生的基本信息

String xh = null;

String xm = null;

int nl = 0;

String xb = null;

String yx = null;

int row = -1;

row = sTable.getSelectedRow();

if (row == -1) {// 判断要删除的信息是否被选中

JOptionPane.showMessageDialog(null, "请选择要删除的记录!");

} else {

if (!bstd) {// 判断选择的是不是查询后的结果

int j1 = 0;

try {

rs = stmt.executeQuery("select * from s");

while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应

xh = rs.getString("sno");

xm = rs.getString("sn");

nl = rs.getInt("sa");

xb = rs.getString("ss");

yx = rs.getString("sd");

j1++;

}

} catch (SQLException e) {

e.printStackTrace();

}

int i1 = 0;

try {

int rs1 = stmt.executeUpdate("delete from s where sno='"

+ xh + "'"); // 删除数据库中当前被选中的记录

stmt.executeUpdate("delete from unpw where un='" + xh + "'");// 删除对应的用户表中的记录

JOptionPane.showMessageDialog(null, "记录删除成功!");

this.dispose();

new SM().display();

} catch (SQLException e) {

e.printStackTrace();

}

} else {

try {

int rs1 = stmt.executeUpdate("delete from s where sno='"

+ mxh + "'");

stmt.executeUpdate("delete from unpw where un='" + mxh

+ "'");

JOptionPane.showMessageDialog(null, "记录删除成功!");

this.dispose();

new SM().display();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

学生信息管理系统(Java)+代码

学生信息管理系统设计 1、系统简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。 管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2、功能设计 2.1 需求分析 本系统需要实现的功能: (1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。 (2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2.2 总体设计 学生信息管理系统主要包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体结构如图所示。 总体结构图 2.3 模块详细设计 1、学生信息管理模块 学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。

学生信息管理模块结构图 2、课程信息管理模块 课程信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。 课程信息管理模块结构图 3、选课信息管理模块 选课信息管理模块包括查询、显示全部等。具体的结构图如图所示。 选课信息管理模块结构图 4、成绩信息管理模块 成绩信息管理模块包括修改成绩、查询、显示全部等。具体的结构图如图所示。

成绩信息管理模块结构图 5、用户信息管理模块 用户信息管理模块包括修改、查询、显示全部等。具体的结构图如图所示。 用户信息管理模块结构图 3、数据库设计 在数据库student中共有4张数据表:s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。

java连接mysql数据库

Java连接MySQL 数据库的正确操作流程 时间:2010-05-25 15:41 来源:博客园字体:[大中小] 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT , 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作 好了,创建好了。

C++实现:简单的学生信息管理系统

<< endl << endl; cout << "按下1:进入学生信息管理系统." << endl; cout << "按下0:退出." << endl; cout << "-----------------------------------------------------" << endl<> flagOperateInformation; (); cout << endl; if (flagOperateInformation) EditMenu(); } } << endl; cout << "按下2:修改学生信息." << endl; cout << "按下3:删除学生信息." << endl; cout << "按下4:显示学生信息." << endl; cout << "按下5:按学号升序排序" << endl; cout << "按下6:读入已有信息(暂时没实现)" << endl; cout << "按下7:将信息输出(暂时没实现)" << endl; cout << "按下8:显示系统内所有学生的信息" << endl; cout << "按下0:返回上一级." << endl; cout << "--------------------------------------------" << endl << endl; cin >> flagContinueOperation; (); cout << endl; switch (flagContinueOperation) { case 1:AddStudentPersonalInformation(1); break; case 2:ModifyStudentInformation(); break; case 3:DeleteStudentInformation(); break; case 4:DisplayStudentInformation(); break; case 5:RankByID(); break; case 6:cout << "功能暂未实现" << endl; break; case 7:cout << "功能暂未实现" << endl; break; case 8:DisplayAllStudentInformation(); break; case 0:break; } } } tudent_WritePersonalInformation(iD,name,address,phone); cout << "基本信息输入成功!" << endl << "------------------------------" << endl; } tudent_WriteMaPhEgGrade(mathGrade, physicsGrade, englishGrade); cout << "学习成绩输入成功!" << endl

Java连接MySql数据库,并且实现插入、删除、更新、选择操作

天之火–Qutr的专栏 君子终日乾乾,夕惕若,厉,无咎。 Home Java连接MySql数据库,并且实现插入、删除、更新、选择操作! 这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。一方面在今后的业务中能够用到,另一方面熟悉一下Java。 下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。 1.启动Eclipse3.1。 2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫 DbConnect 吧。 3.右击DbConnect.java文件点import,选择Archive file然后选择你的 mysql-connector-java-3.1.8-bin.jar文件,点Finish。你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:) 4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息 运行一下。OK? 我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。下面看程序,有些地方我写了详细的注释应该能看懂。 这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。多指教,谢谢! /** * 数据库连接、选择、更新、删除演示 */ //import java.sql.*; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.util.*; public class DbConnect {

简单学生信息管理系统设计

——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: : 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组容。 2.设计实现一个简单的信息管理系统。 实验容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有、学号、math、os、java用来存放 对应的成绩,在构造方法中进行、学号、课程成绩的赋值。 Override有Object继承来的tostring方法已便友好格式显 示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方法, 在main中写一段测试代码,运行以保证目前所做工作的 正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新 数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 (判断是否相等使用string类的equalsIgnoreCase方 法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的容,注意要考虑以前未保存容的情况, 可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如下: 1显示所有学生信息2按学号查找 3 按查找 4 按学号删除 5 保存 6 读入7 退出 请输入数字(1-7): 程序代码

学生信息管理系统 java 连接数据库

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; import java.util.Scanner; public class Student { public static final String DRIVER="sun.jdbc.odbc.JdbcOdbcDriver"; public static final String URL="jdbc:odbc:student"; public static final String USERNAME="root";//用户名 public static final String PASSWORD="root";//密码 private static String name;//当前登录管理员的名字 private static int userid;//当前登录管理员的主键 //获得jdbc链接 public Connection connection(){ try { Class.forName(DRIVER); Connection con=DriverManager.getConnection(URL, USERNAME, PASSWORD); return con; } catch (Exception e) { e.printStackTrace(); } return null; } //管理员登陆 public boolean login() throws Exception{ Scanner sc = new Scanner(System.in); System.out.print("输入用户名:"); String username = sc.next(); System.out.print("输入密码:"); String password = sc.next(); //查找该用户 String sql = "select username,id from muser where username='" + username + "' and password='" + password + "'";

Java中连接MySql数据库的几种方法

JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。

第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.sodocs.net/doc/2a435221.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

基于java学生信息管理系统设计与实现

基于java的学生信息管理系统设计与实现

基于java的学生信息管理系统设计与实现 摘要:利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找便、可靠性高、存储量大、保密性好。本设计就是一个为实现信息化管理而开发的信息管理系统,能够进行信息存储、查询、修改等能功。该系统由六个模块构成,包括学生管理系统的主界面模块、学生信息管理模块、课程信息管理模块、成绩信息管理模块、信息查询模块和数据库操作模块。通过这些模块的有机结合,能便的对学生信息进行综合管理,从而实现了信息化管理的目的。由于本人的能力有限,设计过程中难免有不足之处,设计中的存在问题本人将在日后进一步修改,以便让程序的设计更加完善。 关键词:oracle; 异常处理;关系模型

目录 1 引言 0 1.1背景及意义 (3) 1.2 实验技术选择 (4) 1.3 课题实现技术的简要说明 (7) 1.4可行性分析 (8) 2系统需求分析 (9) 3 学生信息管理系统设计 (10) 3.1数据模型分析与设计 (10) 3.2 结构设计与结构功能图 (13) 3.2.1 结构设计 (13) 3.2.2 功能结构图 (13) 4 系统实现 (15) 5 系统调试与测试 (20) 5.1系统功能测试 (20) 5.2系统调试常见错误 (20) 6 实验小结 (22) 参考文献 (22)

1 引言 1.1背景及意义 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的式管理文件档案、统计和查询数据,这种管理式存在着多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查询便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。 本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。通过一个简化的学生信息管理系统,使学生信息管理工作系统化、规化、自动化,从而达到提高学生信息管理效率的目的。本课题就是针对便于学生信息管理的问题而设计的一个管理系统。

Java连接mysql数据库源代码

Java连接mysql数据库源代码 /** *@author mervyn *@Development_time 2011.3.12 *welcome to https://www.sodocs.net/doc/2a435221.html,/mervyn_hb */ package src; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.*; import java.util.*; public class MysqlConnectSystem { /** * @param args * @throws IOException */ public static void main(String[] args) throws SQLException, IOException { String Usename,KeyID,UrlString; //String DriverConnect; char MenuExitValue; String driver="com.mysql.jdbc.Driver"; Scanner EntryValue=new Scanner(System.in); System.out.println("欢迎使用MysqlConnectSystem信息管理系统!"); MysqlConnectSystem mysqlconnect=new MysqlConnectSystem(); MysqlConnectSystem mysqlinsert=new MysqlConnectSystem(); MysqlConnectSystem mysqlupdate=new MysqlConnectSystem(); MysqlConnectSystem mysqldelete=new MysqlConnectSystem(); System.out.println("请输入要登录的用户名:"); Usename=EntryValue.next(); System.out.println("请输入要登录的数据库的密码:"); KeyID=EntryValue.next(); System.out.println("请输入需要登录的数据库:"); UrlString="jdbc:mysql://127.0.0.1:3306/"+EntryValue.next(); do{ try { Class.forName(driver); Connection conn=DriverManager.getConnection(UrlString, Usename,

简单学生信息管理系统

简单学生信息管理系统-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: 姓名: 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组内容。 2.设计实现一个简单的信息管理系统。 实验内容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有姓名、学号、math、os、java用 来存放对应的成绩,在构造方法中进行姓名、学号、课 程成绩的赋值。Override有Object继承来的tostring方法 已便友好格式显示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方 法,在main中写一段测试代码,运行以保证目前所做工 作的正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制 到新数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照姓名来查找,然后显示符合条件的学生信息,查无此人的话显示错误 信息。(判断姓名是否相等使用string类的 equalsIgnoreCase方法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的内容,注意要考虑以前未保存内容的 情况,可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如 下: 1显示所有学生信息 2按学号查找 3 按姓名查找 4 按学号删除 5 保存 6 读入 7 退出 请输入数字(1-7):

基于java的学生信息管理系统设计与实现

基于java的学生信息管理系统设计与实现 基于java的学生信息管理系统设计与实现摘要:利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。本设计就是一个为实现信息化管理而开发的信息管理系统,能够进行信息存储、查询、修改等能功。该系统由六个模块构成,包括学生管理系统的主界面模块、学生信息管理模块、课程信息管理模块、成绩信息管理模块、信息查询模块和数据库操作模块。通过这些模块的有机结合,能方便的对学生信息进行综合管理,从而实现了信息化管理的目的。由于本人的能力有限,设计过程中难免有不足之处,设计中的存在问题本人将在日后进一步修改,以便让程序的设计更加完善。 关键词:oracle;异常处理;关系模型 目录

1 引言 1.1背景及意义 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。 本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。通过一个简化的学生信息管理系统,使学生信息管理工作系统化、规范化、自动化,从而达到提高学生信息管理效率的目的。本课题就是针对便于学生信息管理的问题而设计的一个管理系统。 1.2 实验技术选择 本课题设计主要运用的技术有两个:java项目开发和oracle对数据库的操作。这里主要介绍本课题为什么选用这两个开发技术: ⑴首先了解一下Java语言特点

Java连接MySql数据库入门操作

这是连接后进行一些简单操作后的结果: Succeeded connecting to the Database! 学号姓名 2011001 张三 2011002 李四 2011003 王五 先去下载MySql并安装好。安装MySql的方法在 https://www.sodocs.net/doc/2a435221.html,/view/9cc0fcc76137ee06eff918d5.html 然后下载jdbc驱动。 https://www.sodocs.net/doc/2a435221.html,/downloads/connector/j/ 下载好了解压即可。把那个zip文件也放到解压后的目录中,方便管理使用。 我使用的是eclipse,我要导入包,先进行一些设置。

安装jre。 添加外部jar文件 打开刚才解压得到的jar文件。

打开的效果。 使用mysql创建数据库,进行测试。 mysql> use test; Database changed mysql> create table student ( -> sno char(7) not null, -> sname varchar(8) not null, -> sex char(2) not null -> ); Query OK, 0 rows affected

mysql> insert into student values -> (2011001, '张三', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011002, '李四', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011003 , '王五', '男'); Query OK, 1 row affected mysql> select * from student; +---------+-------+-----+ | sno | sname | sex | +---------+-------+-----+ | 2011001 | 张三| 男| | 2011002 | 李四| 男| | 2011003 | 王五| 男| +---------+-------+-----+ 3 rows in set mysql> 编码测试。 输入下面源代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { public static void main(String[] args){ try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // URL指向要访问的数据库名test String url = "jdbc:mysql://127.0.0.1:3306/test"; // MySQL配置时的用户名 String user = "root";

简单学生信息管理系统

. ——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: : 学号:

实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组内容。 2.设计实现一个简单的信息管理系统。 实验内容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有姓名、学号、math、os、java用来 存放对应的成绩,在构造方法中进行姓名、学号、课程成 绩的赋值。Override有Object继承来的tostring方法已便 友好格式显示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方法, 在main中写一段测试代码,运行以保证目前所做工作的 正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新 数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照姓名来查找,然后显示符合条件的学生信息,查无此人的话显示错误信 息。(判断姓名是否相等使用string类的 equalsIgnoreCase方法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的内容,注意要考虑以前未保存内容的情 况,可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如下: 1显示所有学生信息2按学号查找3 按姓名查找 4 按学号删除 5 保存 6 读入 7 退出 请输入数字(1-7): 程序代码

Java使用JDBC连接MYSQL数据库增删改查示例

Java使用JDBC连接MYSQL数据库增删改查示例JDBC连接MYSQL数据库: import java.sql.Connection; import java.sql.DriverManager; public class Mysql { public static void main(String arg[]) { try { Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL 驱动 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL System.out.print("yes"); } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); } }

} Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL 数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装,可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到。 con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句,返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码) 写入一条数据 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Mysql { /**

简单的学生信息管理系统C语言

#include #include //输入函数getch的头文件,不能用getchar,具体请查看两者的区别 #include //申请空间的函数malloc的头文件 typedef struct { //定义结构体类型,包含四项内容,可以自由添加 int num; char name[10]; int age; char sex[5]; }st; typedef struct node //构造结点(也是结构体变量) { st data; //数据域 struct node *next; //指针域(指向结构体,也就是自身) }list; list *create() //建立一个单链表 { list *p,*r,*head; //定义结构体指针变量 int i,n; head = (list *)malloc(sizeof(list)); //申请头结点 r = head; head->next = NULL; //头结点的指针域先定义为空 printf("请输入学生人数:\n"); scanf("%d",&n); printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n"); for(i=1;i<=n;i++) { p = (list *)malloc(sizeof(list)); //申请一个结点 scanf("%d%s%d%s",&p->data.num,&p->https://www.sodocs.net/doc/2a435221.html,,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息 p->next = NULL; r->next = p; //将头结点指向第一个结点,以此类推。 r = r->next; } return (head); //返回头结点的地址 } void output(list *h) // 输出链表中的学生信息 { list *p; p = h->next; //使p指向第一个结点 if(p == NULL)

基于JAVA学生信息管理系统

基于J A V A学生信息管理 系统 Prepared on 22 November 2020

江西科技师范大学毕业设计(论文) 学生姓名: 题目(中文):基于Java的学生信息管理系统 (外文):Student Information Management System based on Java 院(系):数学与计算机科学学院 专业:计算机科学与技术 年级:学号: 指导教师: 时间:2016 年 4 月 2016年 4月 20日 目录

基于Java的学生信息管理系统摘要:基于Java的学生信息管理系统分为五大模块:登录管理、学生基本信息管理、成绩管理、课程管理和班级管理。本文详细介绍了前台界面的操作及后台数据库的链接,根据模块制定各个功能的所需界面的实现方法。该系统具有十分清晰友好的界面,操作界面简洁,便于使用。 关键字:学生信息管理;MYSQL;JA VA 1.引言 项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解。近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息进行科学管理,因此开发一个简单快速规范的平台。学生的信息管理是教务管理的一个至关重要的部分,传统的方法不仅费人力和时间,而且效率低。如学生发生班级调动,传统的方法需要人工及时更改信息,十分复杂,使得该学生信息不能合理地配置。而使用计算机技术对学生档案信息进行管理的优点具有便于查找、检索快速、统计科学、保密性强、管理规范、节约成本等优点。 国内外的研究现状 学生信息管理工作是各大高校必不可少的管理工作之一,在学校占据重要的地位,它涉及到学生、老师和管理员等多方面。由于各大高校学生人数日益增长,因此研发出一款具有操作灵活且人性化的管理系统成为了迫切需要。 从国外看来许多高校一般是由技术强大稳定的队伍来完成该系统程序的设计与研制,或者是本校的某个院系。在西方电子管理系统的概念早已被学生引入,他们可以通过网络浏览学校的管理系统网站,以及学校的学术信息等。可以查看个人信息、考试成绩和课程,这种方式大大地减轻了人力和时间。

Java连接MySQL数据库

Java与Myql数据库的连接问题 在我痛苦的try了N多次之后我终于明白,一个.java文件如何与mysql数据库连同并且可以在小黑屏里显示数据库里面的内容,数据库的驱动文件的安装实在是件头疼的事,实际上是不需要安转的,按如下步骤即可轻松解决。 1.在网上下载一个数据库驱动程序,例如我下载的是(0002mysqlconnectorjava517(1).rar)大小是7.71MB,解压之,到 0002mysqlconnectorjava517(1)或者到当前文件,在mysql-connector-java-5.1.7文件里有个mysql-connector-java-5.1.7-bin.jar文件,可以将此文件解压也可以不解压, 下面有a、b两种方法(结果是一样),首先我的文件是这样放的: a.我的那个没解压的.jar文件在D:\mysql-connector-java-5.1.7这个文件夹里面(就是那个694kb的压缩包) b.我把这个.jar文件解压后放在的D:\mysql-connector-java-5.1.7这个文件夹里面(就是那个mysql-connector-…)文件夹 2.配置环境变量(这是最要命的)我的电脑-->属性-->高级-->环境变量(N)-->系统变量-->新建classpath

如果是上面的a情况那么是这样配的 变量值是:D:\mysql-connector-java-5.1.7\mysql-connector-java-5.1.7-bin.jar; 请切记变量值后面一定要有一个分号----【;】切记要有这个不然就出现如下异常错误并且在每次设置环境变量之后DOS框是要重新启动的不然没有生效的是。 D:\Java>javac database.java D:\Java>java database Exception in thread "main" https://www.sodocs.net/doc/2a435221.html,ng.NoClassDefFoundError: database Caused by: https://www.sodocs.net/doc/2a435221.html,ng.ClassNotFoundException: database at https://www.sodocs.net/doc/2a435221.html,.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at https://www.sodocs.net/doc/2a435221.html,.URLClassLoader.findClass(URLClassLoader.java:188) at https://www.sodocs.net/doc/2a435221.html,ng.ClassLoader.loadClass(ClassLoader.java:307) at https://www.sodocs.net/doc/2a435221.html,uncher$AppClassLoader.loadClass(Launcher.java:301) at https://www.sodocs.net/doc/2a435221.html,ng.ClassLoader.loadClass(ClassLoader.java:252) at https://www.sodocs.net/doc/2a435221.html,ng.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: database. Program will exit. D:\Java>

一个简单数据管理软件的设计-软件综合设计-学生信息管理系统

《软件综合设计》课程实验报告

4、实验内容 1、实验步骤及流程: 1)新建工程:新建一个单文件类型的MCF工程,在Resource之中新建并利用控件设计对话框。 2)增加控件:一个控件是能够放置在一个对话框中,提供应用程序与用户交互的某种功能。本次 实验需要添加编辑框、下拉列表控件、列表框(ListBox)控件以及按钮键。 3)设置对话框及控件等的属性:一个控件相关的属性设置决定了一个控件可操作行为和显示。修 改控件ID以及名称,对话框名称等。 4)组织和安排各部件的位置大小等:软件为我们提供了各种调整方式,如:左对齐、右对齐、宽 相等、水平居中等等。 5)设置控件的顺序:执行菜单命令Layout->Tab Order可以显示并修改Tab Order,按所想要的 访问顺序依次点击每一个控件,完成后,点击空白处就可以了。 6)为对话框成员添加变量:打开ClassWizard窗口,选择Member Variables标签页,Class name下拉列表中选择CScoreDlg类。则对话框中可以创建成员变量的控件ID出现在下方的 Control IDs列表中。单击Add Variable按钮,则弹出Add Member Variable对话框,设置 变量名即可。 7)对话框类的构造函数:双击各个控件并确定就会弹出编程界面,为各个控件添加函数程序,实 现它们所对应的功能。 8)运行程序,调试程序。 2、源程序代码: 见后:实验结果及分析

3、调试过程记录: 在调试程序的时候,我们必须使程序在某一地点停下来。即是设立断点,其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向,从而调试程序。 逐步完善对话框的内容,加入控件,编写程序:

相关主题