学生管理系统设计(数据库连接C#版)

目录
一.课程设计说明 1
1.1项目概述 1
1.2设计任务和要求 1
1.3开发环境说明 1
二.需求分析阶段 1
2.1项目介绍 2
2.2数据需求分析 2
三.概念结构设计 3
3.1E-R图 4
3.2数据库设计 5
3.3数据字典 8
四.用户界面设计 11
4.1学生信息管理系统 12
4.2学生信息查询 12
4.3教师查询 12
4.4管理员查询 12
4.5专业负责人查询 13
五.程序设计 14
六.运行结果 28
七.总结

一.课程设计说明

1.1项目概述:
学生管理系统
一所大学希望建立一个数据库以便对学生进行管理。当一个学生进入学校时,他就会选择一个专业。每个学生也会指定一个指导老师。每个专业每年由一些课程组成。组成专业的课程的最小和最大数目分别是6和8。一般情况下给一个学生三次机会来通过这门课程的考试。有些特殊的课程可以在一个或多个专业中存在。大学可以有几个部门,每个部门都有一个部门负责人,每个课程都会分配一定数量的员工(称为课程合作人)来负责课程的教学
1.2设计任务与要求
建立数据库,来完成对学生进行管理的目的,要求要按照题目设定,包括学生、教师、管理员的学生管理系统的设计与开发。

1.3开发环境说明
采用SQL SERVER和Visual Studio 来进行系统开发。
二.功能需求分析阶段
2.1项目介绍
学生管理系统在学生方面,新生在校注册,注册时选择专业,从而学校分配指导教师完成在校学习的课程,学生也可通过学生管理系统查询个人信息,包括个人选修课信息,考试信息等。
在教师方面,教师可以通过学生管理系统查询任教的课程信息,以及对学生的考试成绩的录入。
在管理员方面,管理员可以通过管理员权限查询、增加、删除、修改所有信息。
2.2数据需求分析

这里写图片描述
总结如下:
这里写图片描述
2.3数据处理与任务需求
下面列出的是学生管理数据库应用应该支持的事务。

(1) 数据应该能够支持下述维护事务。
a) 创建和维护学校内学生的详细信息。
b) 创建和维护学校内教师的详细信息。
c) 创建和维护学校内课程的详细信息。
(2) 数据应该能够支持下述查询事务
a) 以报表形式列出学生的姓名,学号及其他详细信息
b) 以报表形式列出专业的名称、专业号及其他详细信息
c) 以报表形式列出课程的名称、课程号及其他详细信息
d) 列出某一给定学生的课程及成绩
e) 列出某一专业的课程信息
三、概念结构设计
3.1E-R图的分析和设计
这里写图片描述

3.2数据库逻辑设计
ER图和关系模式的转化

这里写图片描述

3.3数据字典

实体简介
学生(学号,姓名,性别,出生日期,民族,所在专业编号,指导教师编号,电话号码,家庭地址,信息备注)
课程(课程号,课程名,学分)
专业(专业号,专业名,专业负责人号)
教职工(教师号,姓名,性别,出生日期,民族,所在专业编号,职称,电话,家庭地址,信息备注)

专业课设表(专业号、课程号)
考试(课程号,学号,成绩,考试次数)
用户(用户编号,用户密码,用户类别)
(1) 学生表Student细节
这里写图片描述

(2) 4.2教师个人信息表TEACHER(教师号TNO,姓名TNAME,性别TSEX,出生日期TBIRTHDAY,名族TNATIVE,所在专业编号TDEPTNO,职称TPOSITION,电话STEL,家庭住址SADDRESS,备注信息SNOTE)
这里写图片描述

(3) 4.3专业表MAJOR(专业号MNO,专业名MNAME,专业负责人编号MTEACHER)
这里写图片描述

(4) 4.4课程表 COURSE(课程号CNO,课程名CNAME,学分CGRADE
授课教师CTEACHER)
这里写图片描述

(5) 4.5成绩表SC(学生号SNO,课程号CNO,成绩SCGRADE)
这里写图片描述

(6) 4.6专业课设表MC(专业号MNO,课程号CNO)
属性名 字段类型 长度 主键或外键 说明
这里写图片描述

(7) 4.7用户表YONGHU(用户编号YNO,用户密码YMIMA,用户类别LEIBIE)
这里写图片描述

四、用户界面设计

4.1学生信息管理系统

4.2学生信息查询

4.3教师查询

4.4管理员查询

4.5专业负责人查询

五、程序设计
源代码

FORM1//学生信息管理系统

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace 学生管理系统
{
publicpartialclassForm1 : Form
    {
SqlConnection conn = newSqlConnection("Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True");

staticpublicstring sn, sub;
public Form1()
        {
            InitializeComponent();
        }
Form2 fr2 = newForm2(); Form3 fr3 = newForm3(); Form4 fr4 = newForm4(); Form5 fr5 = newForm5();


privatevoid button1_Click_1(object sender, EventArgs e)
        {
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
            conn.Open();
if (textBox1.Text == "" || textBox2.Text == "")
MessageBox.Show("请不要遗漏信息!");
if (radioButton1.Checked)
            {
string cstr = "select * from YONGHU where LEIBIE='管理员'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
                {
                    sn = textBox1.Text.Trim();
Form4 fm = newForm4();
                    fm.Show();
                    fr4.Show(); this.Visible = false;
                }
else
                {
MessageBox.Show("输入有误,请重新输入!");
                    textBox1.Text = ""; textBox2.Text = "";
                }
            }
if (radioButton2.Checked)
            {
string cstr = "select * from YONGHU where LEIBIE='教师'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
                { sn = textBox1.Text.Trim(); fr3.Show(); this.Visible = false; }
else
                {
MessageBox.Show("输入有误,请重新输入!");
                    textBox1.Text = ""; textBox2.Text = "";
                }
            }
if (radioButton3.Checked)
            {
string cstr = "select * from YONGHU where LEIBIE='学生'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
                { sn = textBox1.Text.Trim(); fr2.Show(); this.Visible = false; }
else
                {
MessageBox.Show("输入有误,请重新输入!");
                    textBox1.Text = ""; textBox2.Text = "";
                }
            }
if (radioButton4.Checked)
            {
string cstr = "select * from YONGHU where LEIBIE='专业负责人'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
                { sn = textBox1.Text.Trim(); fr5.Show(); this.Visible = false; }
else
                {
MessageBox.Show("输入有误,请重新输入!");
                    textBox1.Text = ""; textBox2.Text = "";
                }
            }
            conn.Close(); conn.Dispose();
        }



privatevoid button2_Click_1(object sender, EventArgs e)
        {
Application.Exit();
        }

privatevoid radioButton4_CheckedChanged(object sender, EventArgs e)
        {
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
            conn.Open();
string cstr = "select * from YONGHU where LEIBIE='学生'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
            {
if (dr.Read())
                {
                    sn = textBox1.Text.Trim();
                    fr2.Show();
this.Visible = false;
                }
else
                {
MessageBox.Show("输入有误,请重新输入!");
                    textBox1.Text = ""; textBox2.Text = "";
                }
            }
            conn.Close(); conn.Dispose();
        } 

privatevoid radioButton3_CheckedChanged(object sender, EventArgs e)
        {    
string str = "Data Source=asus;Initial Catalog=xueshengguanli;Integrated Security=True";
SqlConnection conn = newSqlConnection(str);
            conn.Open(); 
string cstr = "select * from YONGHU where LEIBIE='教师'and YNO='" + textBox1.Text.Trim() + "'and YMIMA='" + textBox2.Text.Trim() + "'";
SqlCommand comm = newSqlCommand(cstr, conn);
SqlDataReader dr = comm.ExecuteReader();
            {
if (dr.Read())
                { sn = textBox1.Text.Trim(); 
                    fr3.Show(); 
  • 152
    点赞
  • 818
    收藏
    觉得还不错? 一键收藏
  • 160
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值