Sistema de gestión de información de recursos humanos de C#windows school

resumen chino

Con el fin de mejorar la eficiencia de la gestión de la información de la facultad y el personal, este proyecto utiliza el lenguaje C# y el sistema de base de datos SQL Server para desarrollar un sistema de gestión de recursos humanos escolares tipo WinForm para administrar la información de la facultad y el personal de manera eficiente para mejorar la calidad de la gestión. Este sistema incluye seis módulos: inicio de sesión y registro del administrador, módulo de modificación de la información del administrador, módulo de adición de información de la facultad, módulo de eliminación de la información de la facultad, módulo de búsqueda de la información de la facultad y módulo de modificación de la información de la facultad. El informe de diseño elabora seis aspectos: estudio de viabilidad, plan de desarrollo del proyecto y entorno de desarrollo del sistema; análisis de los requisitos del sistema; diseño del esquema (incluido el diseño de la base de datos) y diseño detallado; implementación de codificación específica de cada módulo funcional; prueba del sistema; resumen del diseño. A través del desarrollo de este sistema, se ha practicado el proceso completo de diseño y desarrollo de proyectos de software.

Palabras clave : sistema de gestión de recursos humanos de la escuela, C#, SQL Server, arquitectura de tres niveles

1 Estudio de viabilidad del software y plan de desarrollo del proyecto

1.1 Definición del problema

1.2 Análisis de factibilidad

1.3 Plan de progreso

2. Análisis de la demanda

2.1 Introducción

2.2 Descripción de la función

2.3 Otros requisitos

Sistema operativo: Windows10

Entorno operativo: VisualStudio

Entorno de base de datos: SQL Server

3. Diseño del esquema

3.1 Diseño del módulo funcional

El sistema de gestión de recursos humanos de la escuela realiza principalmente el inicio de sesión y el registro, la adición de información del personal, la eliminación de la información del personal, la búsqueda de información del personal, la modificación de la información del personal, etc.

El diagrama de bloques de funciones del sistema se muestra en la Figura 3-1.

inserte la descripción de la imagen aquí

Figura 3-1 Diagrama del módulo de funciones del sistema

1) Función de inicio de sesión y registro

A. Iniciar sesión: ingrese el nombre de usuario y la contraseña para iniciar sesión, verifique el nombre de usuario y la contraseña e inicie sesión.

B. Registro: Cree un nuevo usuario y contraseña para iniciar sesión e ingresar información básica.

2) Agregar, eliminar, verificar y modificar funciones

A. Modificación de datos de registro de administrador: Cambio de datos propios del administrador.

B. Agregar información de profesores y personal: Ingrese información de profesores y personal.

C. Eliminación de información del personal: eliminación de información del personal.

D. Buscar información del personal: proporciona la función de consultar la información de los estudiantes para obtener números y nombres del personal.

E. Modificar la información del personal: modificar la información incorrecta del personal.

3.2 Diseño de base de datos

4. Diseño detallado

4.1 Diseño general

(1) Diagrama de caso de uso del sistema

inserte la descripción de la imagen aquí

Figura 4-1 Caso de uso del sistema

(2) Arquitectura del sistema

inserte la descripción de la imagen aquí

(3) diagrama ER

inserte la descripción de la imagen aquí

Figura 4-3 Administrador

inserte la descripción de la imagen aquí

Figura 4-4 Facultad y personal

inserte la descripción de la imagen aquí

Figura 4-5 Relación de entidad
inserte la descripción de la imagen aquí

Figura 4-6 Diagrama ER completo

4.2 Análisis detallado de los módulos funcionales

5. Codificación de software

5.1 Módulo de administrador

(1) Diseño del módulo de inicio de sesión

inserte la descripción de la imagen aquí

5-1.1 Ventana de inicio de sesión

Esta interfaz de formulario se utiliza para el inicio de sesión del administrador y los usuarios sin una cuenta pueden hacer clic para registrarse.

Los códigos de función clave de la ventana de inicio de sesión son los siguientes:

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) Diseño del módulo de registro

inserte la descripción de la imagen aquí

5-1.2 Ventana de registro

Esta interfaz de formulario se utiliza para el registro de administrador, en el que se formatean el número de cuenta, el apodo y la contraseña. El número de cuenta tiene 4 dígitos, el apodo solo puede estar en chino y la contraseña debe ingresarse dos veces para registrarse correctamente.

Los códigos de función clave de la interfaz de registro son los siguientes:

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 Diseño de la página principal

inserte la descripción de la imagen aquí

5-2 Ventana de la página principal

Esta interfaz de formulario se utiliza para mostrar el inicio de sesión exitoso del administrador y sirve como la entrada de cada módulo de subfunción.

Los códigos de función clave de la interfaz principal son los siguientes:

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 El administrador modifica el diseño del módulo de contraseñas

inserte la descripción de la imagen aquí

5-3 Ventana Modificar contraseña

Esta interfaz de formulario se utiliza para modificar la contraseña del administrador

El código de función clave para modificar la contraseña es el siguiente:

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 Añadir diseño de módulo de gestión de información

inserte la descripción de la imagen aquí

5-4 Agregar ventana

Esta interfaz de formulario se utiliza para agregar información de profesores y personal para realizar la adición de información de profesores y personal. El formato de los datos de entrada ha sido verificado. El número de personal está en forma digital, el número de teléfono de contacto está en el formato básico de 11 dígitos, el campo especificado de selección de género y el nombre es un carácter chino. Y tampoco puede estar vacío.

Los códigos de función clave para agregar información del personal son los siguientes:

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 Eliminar el diseño del módulo de información

inserte la descripción de la imagen aquí

5-5 Eliminar ventana de información

Esta interfaz de formulario se utiliza para la eliminación de datos, y los administradores pueden eliminar ingresando el número de empleado del personal que se eliminará.

Elimine el código de función clave de la siguiente manera:

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 Diseño del módulo de información de consulta

inserte la descripción de la imagen aquí

5-6 Ventana de información de consulta

Esta interfaz de formulario se utiliza para consultar datos. La consulta se divide en búsqueda precisa y búsqueda aproximada. La búsqueda precisa es para consultar la información precisa del personal a través del número de personal, y la consulta aproximada es para consultar la palabra clave a través del nombre del personal.

El código de función de la tecla de consulta es el siguiente:

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 el diseño del módulo de información

inserte la descripción de la imagen aquí

5-7 Modificar la ventana de información

Esta interfaz de formulario se utiliza para modificar la información de la facultad y el personal para realizar la modificación de la información de la facultad y el personal. El formato de los datos de entrada ha sido verificado. El número de empleado está en forma digital, el número de teléfono de contacto está en el formato básico de 11 dígitos, el campo especificado para la selección de género y el nombre es un carácter chino. Y tampoco puede estar vacío.

Los códigos de función clave para modificar la información del personal son los siguientes:

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. Prueba

6.1 Plan de prueba

6.2 Diseño y ejecución de casos de prueba

6.3 Resumen de la prueba

7. Resumen

Acceso al código fuente y documentos originales: home of winform

Supongo que te gusta

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