Sistema de gerenciamento de informações de recursos humanos da escola C#windows

resumo chinês

A fim de melhorar a eficiência do gerenciamento de informações de professores e funcionários, este projeto usa linguagem C# e sistema de banco de dados SQL Server para desenvolver um sistema de gerenciamento de recursos humanos escolares do tipo WinForm para gerenciar informações de professores e funcionários de forma eficiente para melhorar a qualidade do gerenciamento. Este sistema inclui seis módulos: login e registro do administrador, módulo de modificação de informações do administrador, módulo de adição de informações do corpo docente, exclusão do módulo de informações do corpo docente, pesquisa do módulo de informações do corpo docente e modificação do módulo de informações do corpo docente. O relatório de design elabora em seis aspectos: estudo de viabilidade, plano de desenvolvimento do projeto e ambiente de desenvolvimento do sistema; análise de requisitos do sistema; design geral (incluindo design de banco de dados) e design detalhado; implementação de codificação específica de cada módulo funcional; teste do sistema; resumo do design. Através do desenvolvimento deste sistema, o processo completo de design e desenvolvimento de projetos de software foi praticado.

Palavras-chave : sistema de gestão de recursos humanos escolares, C#, SQL Server, arquitetura de três camadas

1 Estudo de viabilidade de software e plano de desenvolvimento do projeto

1.1 Definição do Problema

1.2 Análise de viabilidade

1.3 Plano de progresso

2. Análise de demanda

2.1 Introdução

2.2 Descrição da função

2.3 Outros requisitos

Sistema operacional: Windows10

Ambiente operacional: VisualStudio

Ambiente de banco de dados: SQL Server

3. Contorno do projeto

3.1 Projeto do módulo funcional

O sistema de gerenciamento de recursos humanos da escola realiza principalmente login e registro, adicionando informações de funcionários, excluindo informações de funcionários, encontrando informações de funcionários, modificando informações de funcionários, etc.

O diagrama de blocos de função do sistema é mostrado na Figura 3-1.

insira a descrição da imagem aqui

Figura 3-1 Diagrama do módulo de função do sistema

1) Função de login e registro

A. Login: Digite o nome de usuário e a senha para fazer login, verifique o nome de usuário e a senha e faça o login.

B. Registro: Crie um novo usuário e senha para fazer login e inserir informações básicas.

2) Adicionar, excluir, verificar e modificar funções

A. Modificação das informações cadastrais do administrador: Alteração das informações do próprio administrador.

B. Adicionar informações do corpo docente e da equipe: Insira as informações do corpo docente e da equipe.

C. Exclusão de informações da equipe: remoção de informações da equipe.

D. Encontrar informações da equipe: fornecer a função de consultar as informações dos alunos para números e nomes da equipe.

E. Modifique as informações da equipe: modifique as informações incorretas da equipe.

3.2 Projeto de banco de dados

4. Projeto detalhado

4.1 Projeto Geral

(1) Diagrama de caso de uso do sistema

insira a descrição da imagem aqui

Figura 4-1 Caso de uso do sistema

(2) Arquitetura do sistema

insira a descrição da imagem aqui

(3) Diagrama ER

insira a descrição da imagem aqui

Figura 4-3 Administrador

insira a descrição da imagem aqui

Figura 4-4 Docentes e funcionários

insira a descrição da imagem aqui

Figura 4-5 Relacionamento de entidade
insira a descrição da imagem aqui

Figura 4-6 Diagrama ER completo

4.2 Análise detalhada dos módulos funcionais

5. Codificação de software

5.1 Módulo Administrador

(1) Design do módulo de login

insira a descrição da imagem aqui

5-1.1 Janela de login

Essa interface de formulário é usada para login do administrador e os usuários sem conta podem clicar para se registrar.

Os principais códigos de função da janela de login são os seguintes:

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("登录失败!!!");
    }
    
}

(2) Projeto do módulo de registro

insira a descrição da imagem aqui

5-1.2 Janela de registro

Esta interface de formulário é usada para o registro do administrador, na qual a conta, o apelido e a senha são formatados. O número da conta é de 4 dígitos, o apelido pode ser apenas em chinês e a senha precisa ser digitada duas vezes para o registro com sucesso.

Os principais códigos de função da interface de registro são os seguintes:

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("密码输入不一致,请重新输入!!!");
    }
}

5.2 Design da página principal

insira a descrição da imagem aqui

5-2 Janela da página principal

Esta interface de formulário é usada para exibir o login bem-sucedido do administrador e serve como entrada de cada módulo de subfunção.

Os principais códigos de função da interface principal são os seguintes:

private void main_Load(object sender, EventArgs e)
{
    
    
    label3.Text = login.GetUser(SendAccount).DataSet.Tables[0].Rows[0]["昵称"].ToString();
}

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();
}

private void Update_Click(object sender, EventArgs e)
{
    
    
    Update mainForm = new Update();
    mainForm.StartPosition = FormStartPosition.CenterScreen;
    mainForm.Show();
}

private void Select_Click(object sender, EventArgs e)
{
    
    
    Select mainForm = new Select();
    mainForm.StartPosition = FormStartPosition.CenterScreen;
    mainForm.Show();
}

private void Delete_Click(object sender, EventArgs e)
{
    
    
    Delete mainForm = new Delete();
    mainForm.StartPosition = FormStartPosition.CenterScreen;
    mainForm.Show();
}

private void ChangePwd_Click(object sender, EventArgs e)
{
    
    
    ChangePwd mainForm = new ChangePwd(SendAccount);
    mainForm.StartPosition = FormStartPosition.CenterScreen;
}
          

5.3 O administrador modifica o design do módulo de senha

insira a descrição da imagem aqui

5-3 Modificar janela de senha

Esta interface de formulário é usada para modificar a senha do administrador

O código de função chave para modificar a senha é o seguinte:

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("两次密码不一致");
        }
    }
}

5.4 Adicionar design do módulo de gerenciamento de informações

insira a descrição da imagem aqui

5-4 Adicionar janela

Esta interface de formulário é usada para adicionar informações de professores e funcionários para realizar a adição de informações de professores e funcionários. O formato dos dados de entrada foi verificado. O número da equipe está em formato digital, o número de telefone de contato está no formato básico de 11 dígitos, o campo especificado de seleção de gênero e o nome é um caractere chinês. E nenhum deles pode estar vazio.

Os principais códigos de função para adicionar informações de equipe são os seguintes:

private void btnSubmit_Click(object sender, EventArgs e)
{
    
    
    if (!(ver.IsNumber(box1.Text)))
    {
    
    
        MessageBox.Show("职工号只能为数字!");
        return;
    }
    if (!ver.IsChinese(box3.Text))
    {
    
    
        MessageBox.Show("姓名只能为中文");
        return;
    }
    if (!(box4.Text == "男" || box4.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("请输入完整信息");
    }
}

5.5 Excluir design do módulo de informações

insira a descrição da imagem aqui

5-5 Excluir janela de informações

Essa interface de formulário é usada para exclusão de dados e os administradores podem excluir inserindo o número do funcionário a ser excluído.

Exclua o código de função da tecla da seguinte maneira:

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 = "";
     }
 }

5.6 Design do módulo de informações de consulta

insira a descrição da imagem aqui

5-6 Janela de informações da consulta

Esta interface de formulário é usada para consultar dados. A consulta é dividida em pesquisa precisa e pesquisa difusa. A pesquisa precisa é consultar as informações precisas da equipe por meio do número da equipe e a consulta difusa é consultar a palavra-chave por meio do nome da equipe.

O código de função da tecla de consulta é o seguinte:

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);
     }
 }

5.7 Modificar o design do módulo de informações

insira a descrição da imagem aqui

5-7 Modifique a janela de informações

Esta interface de formulário é usada para modificar as informações de professores e funcionários para realizar a modificação das informações de professores e funcionários. O formato dos dados de entrada foi verificado. O número do funcionário está em formato digital, o número de telefone de contato está no formato básico de 11 dígitos, o campo especificado para seleção de gênero e o nome é um caractere chinês. E nenhum deles pode estar vazio.

Os principais códigos de função para modificar as informações da equipe são os seguintes:

private void btnSubmit_Click(object sender, EventArgs e)
{
    
    
     
     if (!(ver.IsNumber(box1.Text)))
     {
    
    
         MessageBox.Show("职工号只能为数字!");
         return;
     }
     if (!ver.IsChinese(box3.Text))
     {
    
    
         MessageBox.Show("姓名只能为中文");
         return;
     }
     if (!(box4.Text == "男" || box4.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("请输入完整信息");
     }
 }

6. Teste

6.1 Plano de teste

6.2 Projeto e execução do caso de teste

6.3 Resumo do teste

7. Resumo

Acesso ao código-fonte e documentos originais: home of winform

Acho que você gosta

Origin blog.csdn.net/qq_44423029/article/details/128898704
Recomendado
Clasificación