数据库课程设计(下)(学生成绩管理系统)

菜单图形化界面:

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

public class Menu extends JFrame implements ActionListener{
	AddS 增加学生界面;
	UpdateS 修改学生界面;
	DelS 删除学生界面;
	AddC 增加课程界面;
	DelC 删除课程界面;
	UpdateC 修改课程界面;
	AddSC 增加选课界面;
	DelSC 删除选课界面;
	UpdateSC 修改选课界面;
	SelS 学生查询界面;
	JPanel pCenter;
	CardLayout card=null;
	JLabel label=null;
	JMenuBar mb=new JMenuBar();//菜单栏
	JMenu m1=new JMenu("学生管理");
	JMenuItem add1=new JMenuItem("add   ");
	JMenuItem updata1=new JMenuItem("update   ");
	JMenuItem delete1=new JMenuItem("delete   ");
	JMenu m2=new JMenu("课程管理");
	JMenuItem add2=new JMenuItem("add   ");
	JMenuItem updata2=new JMenuItem("update   ");
	JMenuItem delete2=new JMenuItem("delete   ");
	JMenu m3=new JMenu("选课管理");
	JMenuItem add3=new JMenuItem("add   ");
	JMenuItem updata3=new JMenuItem("update   ");
	JMenuItem delete3=new JMenuItem("delete   ");
	JMenu m4=new JMenu("查询管理");
	JMenuItem 学生查询=new JMenuItem("查询信息   ");
	JMenuItem m5=new JMenuItem("系统退出");
	Font t=new Font ("sanerif",Font.PLAIN,12);
	public Menu (){
	this.setTitle("学生选课管理系统");
	try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
	catch(Exception e){System.err.println("不能设置外观:   "+e);}
	//组合菜单
	addMenu1();
	addMenu2();
	addMenu3();
	addMenu4();
	addJMenuBar();
	setJMenuBar(mb);
	
	label=new JLabel("BJTU选课管理系统",JLabel.CENTER);
	label.setFont(new Font("宋体",Font.BOLD,36));
	label.setHorizontalTextPosition(SwingConstants.CENTER);
	label.setForeground(Color.blue);
	//点击事件
	add1.addActionListener(this);
	updata1.addActionListener(this);
	delete1.addActionListener(this);
	m5.addActionListener(this);
	add2.addActionListener(this);
	delete2.addActionListener(this);
	updata2.addActionListener(this);
	add3.addActionListener(this);
	delete3.addActionListener(this);
	updata3.addActionListener(this);
	学生查询.addActionListener(this);
	
	card=new CardLayout();
	pCenter=new JPanel();
	pCenter.setLayout(card);
	
	增加学生界面=new AddS();
	修改学生界面=new UpdateS(); 
	删除学生界面=new DelS();
	增加课程界面=new AddC();
	删除课程界面=new DelC();
	修改课程界面=new UpdateC();
	增加选课界面=new AddSC();
	删除选课界面=new DelSC();
	修改选课界面=new UpdateSC();
	学生查询界面=new SelS();
	
	    pCenter.add("欢迎界面",label);
	pCenter.add("增加学生界面",增加学生界面);
	pCenter.add("修改学生界面",修改学生界面);
	pCenter.add("删除学生界面",删除学生界面);
	pCenter.add("增加课程界面",增加课程界面);
	pCenter.add("删除课程界面",删除课程界面);
	pCenter.add("修改课程界面",修改课程界面);
	pCenter.add("增加选课界面",增加选课界面);
	pCenter.add("删除选课界面",删除选课界面);
	pCenter.add("修改选课界面",修改选课界面);
	pCenter.add("学生查询界面", 学生查询界面);
	
	add(pCenter,BorderLayout.CENTER);
	validate();
	setVisible(true);
	setBounds(400,150,600,380);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    addWindowListener(new WindowAdapter(){//关闭程序时的操作
    	public void windowClosing(WindowEvent e){System.exit(0);}
    });
    validate();
}

private void addJMenuBar() {
	mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);
}
private void addMenu4() {
	m4.add(学生查询);
	m4.setFont(t);
}
private void addMenu3() {
	m3.add(add3);
	m3.add(updata3);
	m3.add(delete3);
	m3.setFont(t);
}
private void addMenu2() {//将菜单加入到菜单栏中
	m2.add(add2);
	m2.add(updata2);
	m2.add(delete2);
	m2.setFont(t);
}
private void addMenu1() {
	m1.add(add1);
	m1.add(updata1);
	m1.add(delete1);
	m1.setFont(t);//字体
}

public void actionPerformed(ActionEvent e){
		Object obj=e.getSource();
	if(obj==m5){System.exit(0);}
	else{if(obj==add1){
	card.show(pCenter,"增加学生界面");
	}
	else{if(obj==updata1){
	card.show(pCenter,"修改学生界面");
	}
	else{if(obj==delete1){
	card.show(pCenter, "删除学生界面");
	}
	else{if(obj==add2){
	card.show(pCenter, "增加课程界面");
	}
	else{if(obj==delete2){
	card.show(pCenter, "删除课程界面");
	}
	else{if(obj==updata2){
	card.show(pCenter, "修改课程界面");
	}
	else{if(obj==add3){
	card.show(pCenter, "增加选课界面");
	}
	else{if(obj==delete3){
	card.show(pCenter, "删除选课界面");
	}
	else{if(obj==updata3){
	card.show(pCenter, "修改选课界面");
	}
	else{if(obj==学生查询){
	card.show(pCenter, "学生查询界面");
	}}
	}}}}}}}}}}
	//public static void main(String[] args) {//如果不需要用户登录就想运行管理系统,可以去掉下方用户类,用此主函数
	//new Menu();
	//}
}

用户类(用于登录管理系统):

package sc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;


public class User extends JFrame{
	private JLabel use,password;
	private JTextField k1;//用户名输入框
	private JPasswordField k2;//密码输入框
	private JButton b1,b2;

//登录窗口
    public User(JFrame f){
		super("系统登录");
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		use=new JLabel("username:");
		use.setFont(new Font("Serif",Font.PLAIN,20));
		password=new JLabel("password:");
		password.setFont(new Font("Serif",Font.PLAIN,20));
		k1=new JTextField(12);
		k2=new JPasswordField(12);
		b1=new JButton("登录");
		b2=new JButton("退出");
	
		//	设置登录方法
		BHandler b=new BHandler();
		EXIT d=new EXIT();
		b1.addActionListener(b);
		b2.addActionListener(d);
		
			//添加控件
		c.add(use);
		c.add(k1);
		c.add(password);
		c.add(k2);
		c.add(b1);
		c.add(b2);
		
		setBounds(600,300,250,150);
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
//主函数
	public static void main(String[] args) {
		User f1=new User(new JFrame());
	}
//登录按钮方法
	private class BHandler implements ActionListener{
		public void actionPerformed(ActionEvent event){
			if(k1.getText().equals("")||k2.getText().equals("")){
				JOptionPane.showMessageDialog(User.this,"用户名密码不能为空!" );
			}
			else{
				Statement stmt=null;
				ResultSet rs=null;
				String sql;
  			    sql="select * from users where username='"+k1.getText()+"'";
			   try{
				   Connection dbConn1=CONN();
					stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
					rs=stmt.executeQuery(sql);					
					if(rs.next()){
						String xm=rs.getString("passwd");
						if(k2.getText().equals(xm.trim())){JOptionPane.showMessageDialog(User.this,"登录成功");
						dispose();
							new Menu();//管理窗口																
							}
						else{JOptionPane.showMessageDialog(User.this,"密码错误");}
					}
					else{JOptionPane.showMessageDialog(User.this,"用户名错误");}
					rs.close();
					stmt.close();
			   }
			   catch(SQLException e){
				   JOptionPane.showMessageDialog(User.this,"SQL Exception occur.Message is:"+e.getMessage());
				   }
			}			
	}
	}
//退出方法结束
	private class EXIT implements ActionListener{
		public void actionPerformed(ActionEvent even){
			System.exit(0);
		}
	}

//连接数据库方法
	public static Connection CONN(){
	   String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";   //加载JDBC驱动
	   String dbURL = "jdbc:sqlserver://主机名:1433; DatabaseName=数据库名";   //连接服务器和数据库test
	   String userName = "sa";   //默认用户名
	   String userPwd = "密码";   //密码
	   Connection dbConn=null;

	   try {
	   Class.forName(driverName);
	   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
	   System.out.println("Connection Successful!");   //如果连接成功 控制台输出Connection Successful!
	   } catch (Exception e) {
	   e.printStackTrace();
	   }
	   return dbConn;
   }

}//父类结束

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
学生成绩管理系统 1 问题描述 1.1 背景 1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。 2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。 3)每门课程有课程号,课程名称、任课教师、学分等信息。 4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行 查询、浏览和修改。 1.2 数据需求 学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓 缩为:学生基本信息表、课程基本信息表和学生成绩信息表。根据学校的情况,可按下 面的步骤来分析: 1) 确定学生所在的院系、所学的专业以及所在的班级。 2) 确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学 号和学期。 3) 分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。 4) 用户信息分析,通常包括用户名和密码。 2 解决方案 ( 或数据库系统设计 ) 2.1 E-R 模型设计 根据E—R图,将其转化为如下数据实体,数据库学生成绩管理系统.dbc,包括如下的表 和视图: 1) 学生登记表——学生表.dbf。 字段名称 字段类型 字段宽度 xh 字符型 10 xm 字符型 6 xb 字符型 2 csrq 日期型 8 bj 字符型 4 2) 课程登记表——课程表.dbf。 字段名称 字段类型 字段宽度 kch 字符型 2 kcm 字符型 10 js 字符型 10 xf 字符型 10 3) 成绩登记表——成绩表.dbf 字段名称 字段类型 字段宽度 xh 字符型 10 kch 字符型 2 cj 数值型 3 4) 借书视图(lyxview)。 为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等 3个表中提取了10个字段的数据: 学生表.xh 学生表.xm 学生表.xb 学生表.csrq 学生表.bj 课程表.kch 课程表.kcm 课程表.js 课程表.xf 成绩表.cj 其视图关系可由以下SQL语句定义: SELECT 学生表.*, 课程表.*, 成绩表.cj; FROM 学生成绩管理系统!学生表, 学生成绩管理系统!课程表,; 学生成绩管理系统!成绩表; WHERE 学生表.xh = 成绩表.xh; AND 课程表.kch = 成绩表.kch 所建数据库如下图所示: 2.2 数据表 本系统需要使用的数据如下: 3 系统实现 3.1 开发环境 本系统由SQL语言编写,在Visual Foxpro 6.0软件环境下可以正常运行 3.2 系统流程图 系统流程图模块主要由刘龙洋同学设计,而系统的功能设计主要由李江滨同学完成, 我主要负责程序主要功能界面的设计,下面是部分流程图: 、 3.3 程序主要功能界面 1、登录界面的设计: 第一步:在表单上单击鼠标右键,并在弹出菜单中选择"数据环境"项,打开数据环境 设计器,添加数据表mm.dbf; 第二步:创建表单并保存为"登录"; 第三步:添加lable1,并设置其caption属性为"欢迎使用学生成绩管理系统!"; 第四步:添加lable2和text1并设置相关属性; 第五步:添加timer控件,并设置其Enabled属性为"真",用于设计窗口动画。 登录界面如下图所示: 2、修改密码表单的设计: 第一步:在表单上单击鼠标右键,并在弹出菜单中选择"数据环境"项,打开数据环境 设计器,添加数据表mm.dbf; 第二步:创建表单并保存为"修改密码"; 第三步:添加label1 、label2、 label3,并设置其caption属性分别为"请输入旧密码"、"请输入新密码"、"请确认新密 码"; 第四步:添加text1、 text2、 text3,并设置相关属性; 第五步:添加command1和command2,并设置其caption属性分别为"确认"和"取消"; 修改密码表单如下图: 3、学生基本信息维护表单的设计: 第一步:创建表单,并保存为学生表.scx; 第二步:添加lable1~lable5,其caption的属性如下图所示 ; 第三步: 添加文本框text1~text5,并设置相关属性; 第四步:添加"院系"、"专业"、"班级"和"学期"列表框; 第五步:添加类,并设置相关属性,用于增添和修改学生基本信息; 第六步:添加文本框text6,并设置相关属性; 第七步:添加command1~command10,并设置相关属性; 第八步:添加"返回"按钮,其功能是关闭此界面; 第九步:执行运行命令,并进行测试。 4、课程信息维护表单的设计: 第一步:创建表单,并保存为课程表.scx; 第二步:添加lable1~lable4,其caption的属性如下图所示 ; 第三步: 添加文本框text1~text4,并设置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值