系统设计的内容

本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改、增加、删除,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管理系统。

本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等部分。其功能主要有:
(1)学生信息的添加,包括输入学生基本信息和成绩。
(2)学生信息的查询,包括查询学生基本信息和成绩。
(3)学生信息的修改,包括修改学生基本信息和成绩。
(4)学生信息的删除,包括修改学生基本信息和成绩。
(5)登录用户密码修改,用户登录到系统可进行相应的用户密码修改。
(6)管理员用户对用户名的管理,包括添加新用户、删除用户。

功能分析

该学生成绩管理系统是用Visual Studio 2019和SQL Server2014数据库,在系统中分为两类用户,即系统管理员和辅导员。
系统管理员进入学生成绩管理系统的主要功能是:实现管理员对所有用户的增删改查等基本功能,并且参与开设课程、选择课程的管理,安排教师的任课工作,管理员为每门课程设置是必修或则选修。实现对学生成绩的修改管理。
辅导员进入学生成绩管理系统的主要功能是:查询所管理班级成绩,打印不及格学生名单,录入学生信息,修改自己的帐号密码等。

数据项

数据项名:账号 含义:用户唯一的标示 数据类型:char长度:10 数据项之间的关 系:账号→密码
数据项名:密码 含义:登录时对应账号唯一的标示 数据类型:char长度:10数据 项之间的关系:
数据项名:学号 含义:学生的唯一标示 数据类型:char长度:10 数据项之间的 关系:
数据项名:学生姓名 含义:学生姓名 数据类型:char长度:10数据项之间的关系:
数据项名:性别 含义:学生性别 数据类型:char 长度:2 数据项之间的关系: 学号→性别
数据项名:系别 含义:学生所在系 数据类型:char 长度:20 数据项之间的关系: (学号,学生姓名)→系别
数据项名:专业 含义:学生所在专业 数据类型:char 长度:20 数据项之间的关 系:(学号,学生姓名)→专业
数据项名:年级 含义:学生年级 数据类型:char 长度:10 数据项之间的关系:
数据项名:课程名称 含义:学生所学课的名称 数据类型:char 长度:10 数据项 之间的关系:课程号→课程名称
数据项名:授课教师 含义:该课程授课教师姓名 数据类型:char 长度:10 数据 项之间的关系:(课程号,课程名)→授课教师
数据项名:开设院系 含义:该课程开设的院系名称 数据类型:char 长度:10 数 据项之间的关系:(课程号,课程名)→开设院系
数据项名:课程号 含义:课程唯一的标识 数据类型:char 长度:4 数据项之间 的关系:
数据项名:成绩 含义:成绩 数据类型:int 长度:4 数据项之间的关系:(课程 号,学号)→成绩

数据结构

数据结构名:学生信息表 含义说明:学生的各项基本信息 组成:学生的各项基本 信息
数据结构名:课程信息表 含义说明:课程的各项基本信息 组成:课程号+课程名 +授课教师+开设院系
数据结构名:学生成绩信息表 含义说明:选课的成绩信息 组成:课程号+学号+成 绩
数据结构名:登录信息表 含义说明:登录时需要输入的信息 组成:账号+密码

数据流

数据流名:学生 说明:用于查询学生的基本信息 数据流来源:学生数据流 数据流 去向:学生模块 组成:学号、姓名、年级、院系、专业、性别
数据流名:成绩 说明:用于查询学生的各科考试分数 数据流来源:成绩数据流 数 据流去向:成绩模块 组成:课程号、学号、成绩
数据流名:选修课程 说明:用于查询每门课程的基本信息 数据流来源:选修课程数 据流 数据流去向:选修课程模块 组成:课程号、课程名称、授课教师、 开设院系
数据流名:登录 说明:用于登入课程管理系统 数据流来源:登录数据流 数据流去 向:登录信息模块 组成:账号、密码

数据存储

编号:1 数据存储名:学生信息存储 说明:用于存储学生的各项信息 输入的数据流: 输出的数据流:学生信息表 组成:学号+学生姓名+性别+院系+年级+专业
编号:2 数据存储名:课程信息存储 说明:用于存储课程的各项信息 输入的数据流:课程信息 输出的数据流:课程基本信息表 组成:课程号+课程名授课教师+开设院系
编号:3 数据存储名:成绩信息存储 说明:用于存储成绩的各项信息输入的数据流:学生成绩信息 输出的数据流:选课成绩信息表 组成:课程号+学号+成绩
编号:4 数据存储名:登录信息存储 说明:用于存储学生登录的各项信息输入的数据流:登录的基本信息 输出的数据流:登录信息表 组成:账号+密码

处理过程

处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
处理过程名:登陆界面 说明:用户登录时候的界面 输入数据流:输入账号和登录密码 输出数据流:进入操作选择界面 处理:登录成功,进入操作选择界面;登 录失败,则退出系统
处理过程名:查询统计界面 说明:查询学生信息、课程信息、学生成绩信息时候的界面 输 入数据流:学号、课程号 输出数据流:进入学查询统计界面 处理:查看 学生、课程、学生成绩各项基本信息
处理过程名:添加信息界面 说明:添加学生、课程、学生成绩信息时候的界面 输入数 据流:学号、姓名、专业、院系、年级、课程号、课程名、成绩、授课教师、 开设院系 输出数据流:进入添加信息界面 处理:添加学生、课程、学 生成绩的各项基本信息
处理过程名:删除信息界面 说明:删除信息时候的界面 输入数据流:课程号、学号 输 出数据流:删除信息界面 处理:删除学生、课程、学生成绩的 各项基本信息
处理过程名:修改信息界面 说明:修改学生、课程、学生成绩信息时候的界面 输入数 据流:学号、姓名、专业、院系、年级、课程号、课程名、成绩、授课教师、 开设院系 输出数据流:进入添加信息界面 处理:修改学生、课程、学生 成绩的各项基本信息
处理过程名:密码修改界面 说明:修登录信息时候的界面 输入数据流:账号、密码 输 出数据流:进入修改登录信息界面 处理:修改登录信息的账号密码
处理过程名:用户管理界面 说明:数据库管理员管理用户信息时候的界面 输入数据流: 账号、密码 输出数据流:进入用户管理界面 处理:管理用户的账号和密码

操作界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登录界面源代码

private void Button4_Click(object sender, EventArgs e)
        {
            this.Close();
        }
private void Button3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" || textBox2.Text == "")
MessageBox.Show("提示:请输入用户名和密码!", "警告");
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from 登陆信息表 where 账号='" + textBox1.Text.Trim() + "' and 密码='" + textBox2.Text.Trim() + "'", conn);
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
 if (sdr.HasRows)
{
               		 MessageBox.Show("登录成功!", "提示");
                		 Form2 frm = new Form2();
               		 frm.Owner = this;
                		frm.ShowDialog();
            		}
 else
  MessageBox.Show("提示:账号或密码错误!", "警告");
  conn.Close();
            	  sdr.Close();
       	}

添加信息界面源代码

private void Button1_Click(object sender, EventArgs e)
        {
            string StuNo = sno.Text.Trim();
            string StuName = name.Text.Trim();
            string StuSex = sex.Text.Trim();
            string StuMajor = major.Text.Trim();
            string StuGrade = grade.Text.Trim();
            string StuDept = depart.Text.Trim();
            if (String.IsNullOrEmpty(StuNo))
            {
                MessageBox.Show("学号不能为空!");
            }
            if (String.IsNullOrEmpty(StuName))
            {
                MessageBox.Show("姓名不能为空!");
            }
            if (String.IsNullOrEmpty(StuMajor))
            {
                MessageBox.Show("专业不能为空!");
            }
            if (String.IsNullOrEmpty(StuGrade))
           {
               MessageBox.Show("年级不能为空!");
            }
            string mystr, mysql;
            SqlConnection myconn = new SqlConnection();
            SqlCommand mycmd = new SqlCommand();
            mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
            myconn.ConnectionString = mystr;
            myconn.Open();
            mysql = string.Format ( " insert into 学生信息 values('{0}','{1}','{2}','{3}','{4}','{5}')", StuNo, StuName, StuSex, StuMajor, StuGrade, StuDept);  
            mycmd.CommandText = mysql;
            mycmd.Connection = myconn;
            int count = mycmd.ExecuteNonQuery();
             if (count > 0)
             {
                MessageBox.Show("添加成功!");
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
            sno.Clear(); name.Clear(); sex.Clear();
            major.Clear(); grade.Clear(); depart.Clear();
            cno.Clear(); score.Clear();
            myconn.Close();
        }
        private void Button3_Click(object sender, EventArgs e)
        {
            string StuNo = sno.Text.Trim();
            string StuCno = cno.Text.Trim();
            string StuScore = score.Text.Trim();
            string StuMajor = major.Text.Trim();
            if (String.IsNullOrEmpty(StuNo))
            {
                MessageBox.Show("学号不能为空!");
            }
            if (String.IsNullOrEmpty(StuCno))
            {
                MessageBox.Show("课程号不能为空!");
            }          
            string mystr, mysql;
            SqlConnection myconn = new SqlConnection();
            SqlCommand mycmd = new SqlCommand();
            mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
            myconn.ConnectionString = mystr;
            myconn.Open();
            mysql = string.Format(" insert into 学生成绩信息 values('{0}','{1}','{2}')", StuNo, StuCno, StuScore);
            mycmd.CommandText = mysql;
            mycmd.Connection = myconn;
            int count = mycmd.ExecuteNonQuery();
            if (count > 0)
            {
                MessageBox.Show("添加成功!");
            }
           else
            {
                MessageBox.Show("添加失败!");
            }
            sno.Clear(); name.Clear(); sex.Clear();
            major.Clear(); grade.Clear(); depart.Clear();
            cno.Clear(); score.Clear();
            myconn.Close();
        }
        private void Button4_Click(object sender, EventArgs e)
        {
            string CouCno = cno.Text.Trim();
            string CouSname = cname.Text.Trim();
            string TeaTname = name.Text.Trim();
            string TeaDept = depart.Text.Trim();
            if (String.IsNullOrEmpty(CouCno))
            {
                MessageBox.Show("课程号不能为空!");
            }
            if (String.IsNullOrEmpty(CouSname))
            {
                MessageBox.Show("课程名不能为空!");
            }
           if (String.IsNullOrEmpty(TeaTname))
           {
                MessageBox.Show("任课老师不能为空!");
            }
            if (String.IsNullOrEmpty(TeaDept))
            {
                MessageBox.Show("开设院系不能为空!");
            }            
            string mystr, mysql;
            SqlConnection myconn = new SqlConnection();
            SqlCommand mycmd = new SqlCommand();
            mystr = "Data Source=.;Initial Catalog=Sperformance;Integrated Security=True;MultipleActiveResultSets=true";
            myconn.ConnectionString = mystr;
            myconn.Open();
            mysql = string.Format(" insert into 课程信息 values('{0}','{1}','{2}','{3}')", CouCno, CouSname, TeaTname, TeaDept);
            mycmd.CommandText = mysql;
            mycmd.Connection = myconn;
            int count = mycmd.ExecuteNonQuery();
            if (count > 0)
            {
                MessageBox.Show("添加成功!");
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
            sno.Clear(); name.Clear(); sex.Clear();
            major.Clear(); grade.Clear(); depart.Clear();
            cno.Clear(); score.Clear(); cname.Clear();
            myconn.Close();
        }

后续代码大致相同,c#与sql语句结合使用。项目在这

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐