• C#宿舍信息管理系统


    中文摘要

    为了提高学生宿舍的管理效率,本课题使用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 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.2主页面设计

    在这里插入图片描述

    5-2主页面窗口

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

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

     private void Exit_Click(object sender, EventArgs e)
     {
         this.Close();
         Login mainForm = new Login();
         mainForm.StartPosition = FormStartPosition.CenterScreen;
         mainForm.Show();
     }
    
     private void Add_Click(object sender, EventArgs e)
     {
         Add mainForm = new Add();
         mainForm.StartPosition = FormStartPosition.CenterScreen;
         mainForm.Show();
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    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添加窗口

    此窗体界面用于宿舍信息的添加,实现对宿舍学生信息的添加,其中对输入数据进行了格式验证,学号、楼号、宿舍号、床位号都是数字形式,性别和是否舍长为选择指定字段,姓名为汉字。

    宿舍信息的添加关键功能代码如下:

    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.IsNumber(box4.Text))
        {
            MessageBox.Show("楼号只能为数字!");
            return;
        }
        if (!ver.IsNumber(box5.Text))
        {
            MessageBox.Show("宿舍号只能为数字!");
            return;
        }
        if (!ver.IsNumber(box6.Text))
        {
            MessageBox.Show("床位只能为数字!");
            return;
        }
        if (!(box7.Text == "是" || 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
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    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修改信息窗口

    此窗体界面用于宿舍信息的修改,实现对学生宿舍信息的修改,其中对输入数据进行了格式验证,学号、楼号、宿舍号、床位号都是数字形式,性别和是否舍长为选择指定字段,姓名为汉字。

    宿舍信息的修改关键功能代码如下:

    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.IsNumber(box4.Text))
         {
             MessageBox.Show("楼号只能为数字!");
             return;
         }
         if (!ver.IsNumber(box5.Text))
         {
             MessageBox.Show("宿舍号只能为数字!");
             return;
         }
         if (!ver.IsNumber(box6.Text))
         {
             MessageBox.Show("床位只能为数字!");
             return;
         }
         if (!(box7.Text == "是" || 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
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    6.测试

    6.1测试计划

    6.2测试用例设计及执行

    6.3测试小结

    7.总结

  • 相关阅读:
    R语言替换字符串中指定字符的子串:sub函数查找字符串中第一个匹配到的子串并替换、如果要删除指定字符串子串则将替换的子符串设置为空字符串
    SA实战 ·《SpringCloud Alibaba实战》专栏开篇
    Packet Tracer - 配置 IPv4 和 IPv6 接口
    Word格式处理控件Aspose.Words for .NET教程——使用超链接和HTML
    通过二级域名解决1台云服务器搭建多个公众号后端服务的问题
    AutoCAD DWG,DXF文件导出高清图片、PDF
    OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击
    阿里云国际版设置DNS托管和智能分流教程详解
    neo4j的Cypher的语法记录
    算法训练营第一天 704 .二分查找、27.移除元素
  • 原文地址:https://blog.csdn.net/qq_44423029/article/details/127479776