• C#学生信息管理系统,数据库sqlserver


    中文摘要

    为了提高学生信息的管理效率,本课题使用C#语言和SQL Server数据库系统开发了一个WinForm类型的学生信息管理系统对学校学生信息进行高效管理,以提升教学质量。本系统包含管理员登录注册、管理员信息修改模块、添加学生信息模块、删除学生信息模块、查找学生信息模块、修改学生信息模块六个模块。设计报告从可行性研究与项目开发计划及系统开发环境;系统需求分析;概要设计(含数据库设计)和详细设计;各功能模块的具体编码实现;系统测试;设计总结六个方面进行了阐述。通过该系统的开发,对软件项目设计与开发工作的完整流程进行了实践。

    关键词:学生信息管理系统,C#,SQL Server
    更多源码和原文档获取:winform之家

    1软件可行性研究与项目开发计划

    1.1问题定义

    1.2可行性分析

    1.3进度计划

    2.需求分析

    2.1引言

    2.2功能说明

    2.3其他要求

    操作系统:Windows10

    运行环境:VisualStudio

    数据库环境:SQL Server

    3.概要设计

    3.1功能模块设计

    本学生信息管理系统主要为登录注册、添加学生信息、删除学生信息、查找学生信息、修改学生信息等。

    系统功能模块图如图3-1所示。

    在这里插入图片描述

    图3-1系统功能模块图

    1)登录注册功能

    A.登录:输入用户名和密码登录,验证用户名和密码,进行登录。

    B.注册:新建用户和密码,用来实现登陆,并有基本信息录入。

    2)增删查改功能

    A.管理员注册信息修改:管理员自身信息更改。

    B.添加学生信息:对学生学生信息的录入。

    C.删除学生信息:对毕业学生信息的移除。

    D.查找学生信息:对学号和姓名提供查询学生信息功能。

    E.修改学生信息:对学生的错误信息进行修改。

    3.2数据库设计

    4.详细设计

    4.1总体设计

    (1)系统用例图

    (2)系统体系结构

    (3)E-R图

    4.2功能模块详细分析

    5.软件编码

    5.1管理员模块

    (1)登录模块设计

    在这里插入图片描述

    5-1.1登录窗口

    此窗体界面用于管理员的登录,无账号的用户可点击注册。

    登录窗口关键功能代码如下:

     private void btnLogin_Click(object sender, EventArgs e)
     {
         try
         {
             if (textBox1.Text == "" || textBox2.Text == "")
             {
                 MessageBox.Show("请输入完整信息!!!");
                 return;
             }
             string count = textBox1.Text;
             string pwd = ToMD5(textBox2.Text);
             Models.Login user = new Models.Login { account = count,password=pwd };
             bool result = ma.Login(user);
             if (result)
             {
                 this.Hide();
                 main mainForm = new main(textBox1.Text);
                 mainForm.StartPosition = FormStartPosition.CenterScreen;
                 mainForm.Show();
             }
             else
             {
                 MessageBox.Show("账号或密码错误!!!");
             }
         }
         catch
         {
             MessageBox.Show("登录失败!!!");
         }
         
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    (2)注册模块设计

    在这里插入图片描述

    5-1.2注册窗口

    此窗体界面用于管理员的注册,其中对账号、昵称、密码进行了格式验证,账号为4位数字,昵称只能为中文,密码需要两次输入一致方可成功注册。

    注册界面关键功能代码如下:

     private void btnSubmit_Click(object sender, EventArgs e)
     {
         string count = txt_count.Text;
         string pwd =ToMD5(txt_pwd.Text);
         string nc = txt_name.Text;
         string rePwd = ToMD5(txt_submit.Text);
         if (count == "" || pwd == "" || nc == "" || rePwd == "")
         {
             MessageBox.Show("请输入完整信息!!!");
             return;
         }
         if (!ver.IsCode(txt_count.Text))    //验证账号格式是否正确4-16位数字
         {
             MessageBox.Show("格式不正确,请输入非0开头的4-16位数字");
             return;
         }
    
         if (pwd == rePwd)
         {
             Models.Login user = new Models.Login { account = count, password = pwd, name = nc };
             bool result = ma.Register(user);
    
             if (result)
             {
                 MessageBox.Show("注册成功!!!");
                 txt_count.Text = "";
                 txt_pwd.Text="";
                 txt_name.Text="";
                 txt_submit.Text="";
             }
             else
             {
                 MessageBox.Show("注册失败!!!");
             }
         }
         else
         {
             MessageBox.Show("密码输入不一致,请重新输入!!!");
         }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    5.2主页面设计

    在这里插入图片描述

    5-2主页面窗口

    此窗体界面用于管理员登录成功的展示,作为各个子功能模块的入口。

    主界面关键功能代码如下:

     private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
     {
         Add mainForm = new Add();
         mainForm.StartPosition = FormStartPosition.CenterScreen;
         mainForm.Show();
     }
    
     private void upin(object sender, LinkLabelLinkClickedEventArgs e)
     {
         Update mainForm = new Update();
         mainForm.StartPosition = FormStartPosition.CenterScreen;
         mainForm.Show();
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5.3管理员修改密码模块设计

    在这里插入图片描述

    5-3修改密码窗口

    此窗体界面用于管理员密码修改

    修改密码关键功能代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
         if (box2.Text == "" || box3.Text == "")
         {
             MessageBox.Show("请输入完整");
         }
         else
         {
             if (box2.Text.Equals(box3.Text))
             {
                 string no = SendAccount;
                 string pwd = ToMD5(box2.Text);
                 Models.Login u = new Models.Login
                 {
                     account = no,
                     password = pwd
                 };
                 bool result = lm.UpdatePwd(u);
                 if (result)
                 {
                     MessageBox.Show("修改成功");
                 }
                 else
                 {
                     MessageBox.Show("修改失败");
                 }
             }
             else
             {
                 MessageBox.Show("两次密码不一致");
             }
         }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    5.4添加信息管理模块设计

    在这里插入图片描述

    5-4添加窗口

    此窗体界面用于学生信息的添加,实现对学生信息的添加,其中对输入数据进行了格式验证,学号是数字形式,联系电话为11位基本格式,性别选择指定字段,姓名为汉字。

    学生信息的添加关键功能代码如下:

    private void btnSubmit_Click(object sender, EventArgs e)
    {
        if (!(ver.IsNumber(box1.Text)))
        {
            MessageBox.Show("学号只能为数字!");
            return;
        }
        if (!ver.IsChinese(box2.Text))
        {
            MessageBox.Show("姓名只能为中文");
            return;
        }
        if (!(box3.Text == "男" || box3.Text == "女"))
        {
            MessageBox.Show("性别只能是男/女");
            return;
        }
        if (!ver.IsHandset(box7.Text))
        {
            MessageBox.Show("联系电话格式错误,请重新输入!!!");
            return;
        }
    
        if (checkNull())
        {
            string b1 = box1.Text, b2 = box2.Text, b3 = box3.Text, b4 = box4.Text, b5 = box5.Text, b6 = box6.Text, b7 = box7.Text;
            Tab items = new Tab { box1 = b1, box2 = b2, box3 = b3, box4 = b4, box5 = b5, box6 = b6, box7 = b7 };
            bool result = tabm.Add(items);
            if (result)
            {
                MessageBox.Show("添加成功");
                getAll();
                ClearAll();
            }
            else
            {
                MessageBox.Show("学号重复,添加失败");
            }
        }
        else
        {
            MessageBox.Show("请输入完整信息");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    5.5删除信息模块设计

    在这里插入图片描述

    5-5删除信息窗口

    此窗体界面用于数据的删除,管理员可以通过输入要删除的学生学号进行删除操作。

    删除关键功能代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
        string dels = box1.Text;
        if (tabm.GetOneEqual(dels).Rows.Count == 0)         //数据库是否有需要删除的数据
        {
            MessageBox.Show("没有检索到要删除的数据");
            return;
        }
        if (box1.Text.Equals(""))
        {
            MessageBox.Show("请输入要删除的数据");
        }
        else
        {
            string a = box1.Text;
            Tab del = new Tab { box1 = a };
            bool result = tabm.Delete(del);
            if (result)
            {
                MessageBox.Show("删除成功");
            }
            else
            {
                MessageBox.Show("删除失败");
            }
            getAll();
            box1.Text = "";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    5.6查询信息模块设计

    在这里插入图片描述

    5-6查询信息窗口

    此窗体界面用于查询数据,查询分为了精确查找和模糊查找,精确查找是通过学生学号进行精确的学生信息查询,模糊查询是通过学生姓名进行关键字查询。

    查询关键功能代码如下:

    private void select_equal_Click(object sender, EventArgs e)
    {
        if (textBox1.Text.Equals(""))
        {
            MessageBox.Show("未检索到你的输入信息!");
        }
        else
        {
            dataGridView1.DataSource = tabm.GetOneEqual(textBox1.Text);
        }
    }
    private void getAll()
    {
        dataGridView1.DataSource = tabm.GetAllData();
    }
    
    private void Select_Load(object sender, EventArgs e)
    {
        getAll();
    }
    
    private void select_like_Click(object sender, EventArgs e)
    {
        if (textBox2.Text.Equals(""))
        {
            MessageBox.Show("未检索到你的输入信息!");
        }
        else
        {
            dataGridView1.DataSource = tabm.GetOneLike(textBox2.Text);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    5.7修改信息模块设计

    在这里插入图片描述

    5-7修改信息窗口

    此窗体界面用于学生信息的修改,实现对学生信息的添加,其中对输入数据进行了格式验证,学号是数字形式,联系电话为11位基本格式,性别选择指定字段,姓名为汉字。

    学生信息的修改关键功能代码如下:

    private void btnSubmit_Click(object sender, EventArgs e)
    {
        if (!(ver.IsNumber(box1.Text)))
        {
            MessageBox.Show("学号只能为数字!");
            return;
        }
        if (!ver.IsChinese(box2.Text))
        {
            MessageBox.Show("姓名只能为中文");
            return;
        }
        if (!(box3.Text == "男" || box3.Text == "女"))
        {
            MessageBox.Show("性别只能是男/女");
            return;
        }
        if (!ver.IsHandset(box7.Text))
        {
            MessageBox.Show("联系电话格式错误,请重新输入!!!");
            return;
        }
        if (checkNull())
        {
            string b1 = box1.Text, b2 = box2.Text, b3 = box3.Text, b4 = box4.Text, b5 = box5.Text, b6 = box6.Text, b7 = box7.Text;
            Tab items = new Tab { box1 = b1, box2 = b2, box3 = b3, box4 = b4, box5 = b5, box6 = b6, box7 = b7 };
    
            bool result = tabm.Update(items);
            if (result)
            {
                MessageBox.Show("修改成功");
                getAll();
                ClearAll();
            }
            else
            {
                MessageBox.Show("修改失败");
            }
        }
        else
        {
            MessageBox.Show("请输入完整信息");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    6.测试

    6.1测试计划

    6.2测试用例设计及执行

    6.3测试小结

    7.总结

  • 相关阅读:
    后端 | 如何卸载 setup.py 安装 python 包 | Python
    Docker中安装并配置redis
    关系型数据库语言基础整理
    linux
    探索Kubernetes的高可用性:单master集群和多master节点集群方案
    【手写数据库toadb】表relation访问实现概述,分层设计再实践,表访问层与表操作层简化代码复杂度
    SpringSecurity Oauth2实战 - 02 搭建资源服务器
    勒索病毒最新变种.faust勒索病毒来袭,如何恢复受感染的数据?
    SUSE linux的软件管理工具-zypper
    组件的使用
  • 原文地址:https://blog.csdn.net/qq_44423029/article/details/127479258