Skip to content

Latest commit

 

History

History
154 lines (143 loc) · 6.11 KB

C#:513_案例《设计一个员工信息管理系统》.md

File metadata and controls

154 lines (143 loc) · 6.11 KB

源自:https://www.bilibili.com/video/BV1YmzQYgEHD/?p=55

UP主讲得也非常不错!!!

依据题目要求自己写的结果。

//用户进入系统后,输入1更改信息,输入2可查看所有员工信息输入3退出系统
//公司一共3个工位,有编号分别是0 - 9,用户可以选择查看对应编号工位的员工信息、修改员工信息或退出程序
//用户可以输入员工的姓名、年龄和薪水来更新对应工位员工信息。
//用户可以选择要查看的工位编号,并显示相应员工的信息。
//用户可以选择要修改的员工编号,并输入新的年龄和薪水来修改员工信息。
//整个系统会一直循环运行,直到用户没有想要做的事情后,选择退出程序,程序才会结束运行。

我的答案(略显复杂,无他,我比较笨),仅供参考

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace myanswer
{
    internal class Program
    {
        static void Main(string[] args)
        {

            ExampleStaff();
            Console.ReadKey();
        }
        public static void ExampleStaff()
        {
            //用户进入系统后,输入1更改信息,输入2可查看所有员工信息输入3退出系统
            //公司一共3个工位,有编号分别是0 - 9,用户可以选择查看对应编号工位的员工信息、修改员工信息或退出程序
            //用户可以输入员工的姓名、年龄和薪水来更新对应工位员工信息。
            //用户可以选择要查看的工位编号,并显示相应员工的信息。
            //用户可以选择要修改的员工编号,并输入新的年龄和薪水来修改员工信息。
            //整个系统会一直循环运行,直到用户没有想要做的事情后,选择退出程序,程序才会结束运行。
            STAFF[] staffs = new STAFF[30];
            int count = 0;
            for (int i = 0; i < 3; i++)
            {
                for(int j = 0;j < 10; j++)
                {
                    staffs[count]=new STAFF();//实例化
                    staffs[count].POSITIONNUMBER = i;
                    staffs[count].STAFFNUMBER = j;
                    staffs[count].NAME = count.ToString();
                    staffs[count].AGE = 25;
                    staffs[count].WAGES = 5000;
                    count++;
                }
            }
            
            while (true)
            {
                Console.WriteLine("欢迎进入员工信息系统!输入1更改/查看单个员工信息,输入2可查看所有员工信息,输入3退出系统");
                Console.Write("您的输入:");
                try
                {
                    int input = int.Parse(Console.ReadLine());
                    if (input<1 || input>3)
                    {
                        continue;
                    }
                    if (input==1)
                    {
                        try//可能没有必要
                        {
                            Console.Write("请输入员工工位号:");
                            int pos = int.Parse(Console.ReadLine());
                            Console.Write("请输入员工编号:");
                            int num = int.Parse(Console.ReadLine());
                            changeInfor(pos, num,staffs);
                        }
                        catch
                        {
                            Console.WriteLine("不正确的输入,请检查后重新输入!");
                            continue;
                        }
                    }else if (input==2)
                    {
                        foreach (var item in staffs)
                        {
                            item.showInfor();
                        }
                    }else if (input == 3)
                    {
                        Console.WriteLine("您已退出系统!");
                        break;
                    }
                }
                catch 
                {
                    Console.WriteLine("不正确的输入,请检查后重新输入!");
                    continue;
                }
            }

        }
        public static void changeInfor(int num1, int num2, STAFF[] a)
        {
            foreach (var item in a)
            {
                if (item.POSITIONNUMBER == num1 && item.STAFFNUMBER == num2)
                {
                    item.showInfor();
                    Console.Write("输入要更改的信息,不修改请输入“no”\n姓名:");
                    string name= Console.ReadLine();
                    if (name=="no")
                    {
                        break;
                    }
                    item.NAME=name;

                    try
                    {
                        Console.Write("年龄:");
                        item.AGE= int.Parse(Console.ReadLine());
                        Console.Write("工资:");
                        item.WAGES = float.Parse(Console.ReadLine());
                        Console.WriteLine("已更改!");
                        item.showInfor();
                        break;
                    }
                    catch 
                    { 
                        Console.WriteLine("不正确的输入,请检查后重新输入!"); 
                        break; 
                    }
                }
            }
        }
        public class STAFF
        {
            //不带public无法访问
            public int POSITIONNUMBER;
            public int STAFFNUMBER;
            public string NAME;
            public int AGE;
            public float WAGES;

            public void showInfor()
            {
                Console.WriteLine("工位{0},编号{1},姓名{2},年龄{3},薪水{4}",POSITIONNUMBER, STAFFNUMBER, NAME, AGE, WAGES);
            }
        }

    }
}