数据库管理系统(.cs文件)

using System;
namespace student
{
    #region 学生的信息存储

    struct student
    {
        public int studnet_num;//存储学号
        public string student_name;//存储姓名
        public score student_score;//存储成绩
        public int student_sum;//总成绩
        public int Average_score;//平均成绩
    };

    struct score
    {
        public int math_score;//数学成绩
        public int chinese_score;//语文成绩
        public int english_score;//英语成绩
        public dynamic Specialized_course;//专业课成绩
    };

    #endregion

    #region 主界面部分
    class Program
    {
        
        static void  Main()
        {
            int studnet_number;//实际人数

            bool exit;//退出条件

            int number;//最开始时学生的人数

            Console.WriteLine("Welcome to student library management Xi");
            Console.WriteLine("Please count the number of students");

            number = Convert.ToInt32(Console.ReadLine());

            input input_student = new input();

           student[] class_student = new student[100000];

            studnet_number= input_student.input_add(class_student,0,number);//把现在的人数返回
            do
            {
                Console.Clear();
                Console.WriteLine("Before the data is stored, please enter your actions");
                Console.Clear();
                Console.WriteLine("Please enter the action you want to do");
                Console.WriteLine("1\t\taddstudent");
                Console.WriteLine("2\t\tdeletestudent");
                Console.WriteLine("3\t\tupdatastudent");
                Console.WriteLine("4\t\tselectstudent");
                Console.WriteLine("Other arbitrary minus\t\tIt's illegal.");

                 int Operation = Convert.ToInt32(Console.ReadLine());//请输入操作方法
                switch (Operation)
                {
                    #region 增加学生信息
                    case 1:
                        {
                            Console.WriteLine("The number of items you want to insert");

                            int student_addstudent = Convert.ToInt32(Console.ReadLine());//要插入的项数

                            studnet_number = input_student.input_add(class_student, studnet_number, student_addstudent);//插入数据,并把现在的人数返回

                            print_student printf_student = new print_student();//输出

                            printf_student.Print_student(class_student, student_addstudent + number);//输出数据
                        }
                        break;//addstudent

                    #endregion

                    #region 删除学生信息
                    case 2:
                        {
                            Console.WriteLine("Number of items you want to delete");

                            int delete_student = Convert.ToInt32(Console.ReadLine());//要删除的项数

                            delect delect_student_number = new delect();

                            delect_student_number.delect_student(class_student, delete_student, studnet_number);//删除操作

                            studnet_number = studnet_number - 1;

                            print_student printf_student = new print_student();//输出

                            printf_student.Print_student(class_student, studnet_number);//输出数据
                        }
                        break;//deletestudent
                    #endregion

                    #region 修改学生信息
                    case 3:
                        {
                            Console.WriteLine("Modify the student's number of information");

                            int updatastudent_student = Convert.ToInt32(Console.ReadLine());//要更新的学生的学号

                            updatastudent up_data_student = new updatastudent();

                            up_data_student.updata_student(class_student, updatastudent_student, studnet_number);

                            print_student printf_student = new print_student();//输出

                            printf_student.Print_student(class_student, studnet_number);//输出数据
                        }
                        break;//updatestudent
                    #endregion

                    #region 检索学生信息
                    case 4:
                        {
                            Console.Clear();

                            Console.WriteLine("Clear screen complete");

                            selectstduent select_database = new selectstduent();

                            select_database.select_student(class_student, studnet_number);

                        }
                        break;//selectstudent
                    #endregion

                    #region 输出所有信息
                    case 5:
                        {
                            print_student printf_student = new print_student();//输出

                            printf_student.Print_student(class_student, studnet_number);//输出数据

                        }
                        break;//select * form tablename
                    #endregion

                    #region 其他键
                    default:
                        {
                            Console.WriteLine("The input data is not legal, please re-enter");
                        }break; ;//return 0;
                        #endregion
                }
                Console.WriteLine("Whether to exit(true and false)");
                exit = Convert.ToBoolean(Console.ReadLine());
            } while (exit==false);
        }
    }
    #endregion

    #region 功能界面部分
    
    #region 输入数据,插入数据
    class input
    {
        public static int string_len=0;//数据长度
        public int input_add(student[] class_student ,int atring_len,int number)
        {
            number = number + string_len;
            for (int i = string_len; i < number; i++)
            {
                Console.Write("student_num(int):"); 
                class_student[i].studnet_num = Convert.ToInt32(Console.ReadLine());

                Console.Write("student_name(string):");
                class_student[i].student_name = Convert.ToString(Console.ReadLine());

                Console.Write("student_score():");
                class_student[i].student_score.math_score = Convert.ToInt32(Console.ReadLine());
                class_student[i].student_score.chinese_score = Convert.ToInt32(Console.ReadLine());
                class_student[i].student_score.Specialized_course = Convert.ToInt32(Console.ReadLine());
                class_student[i].student_score.english_score = Convert.ToInt32(Console.ReadLine());

                //输入结束后去统计其成绩总和和平均成绩
                class_student[i].student_sum = class_student[i].student_score.chinese_score + class_student[i].student_score.english_score + class_student[i].student_score.math_score + class_student[i].student_score.Specialized_course;
                class_student[i].Average_score = class_student[i].student_sum / 4;

                string_len++;//统计数组的实际长度,及现在学生的总人数
                
            }
            return string_len ;
        }
    }
    #endregion

    #region 输出数据
    class print_student
    {
        public void Print_student(student[]class_student,int number)
        {
            Console.WriteLine("student_num(int)  student_name(string)  student_score(math.score)  student_score(chinese.score)  student_score(english.score)  student_score(Specialized_course.score)  student_score(sun.score)  student_score(avger.score)\n");

            for (int i = 0; i < number; i++)
{
                Console.WriteLine($"{ class_student[i].studnet_num}\t{class_student[i].student_name}\t{class_student[i].student_score.math_score}\t{class_student[i].student_score.chinese_score}\t{class_student[i].student_score.english_score}\t{class_student[i].student_score.Specialized_course}\t{class_student[i].student_sum}\t{class_student[i].Average_score}");
            }
        }
    }
    #endregion

    #region 删除学生信息
    class delect
    {
        public void delect_student(student[]class_student,int student_num,int string_len)
        {
            for (int i = 0; i < string_len; i++)
            {
                if(class_student[i].studnet_num==student_num)
                    for (int j = i; j < string_len-1; j++)
                    {
                        class_student[j] = class_student[j + 1];
                    }
            }
        }
    }
    #endregion

    #region 修改学生信息
    class updatastudent
    { 
        public void updata_student(student[]class_student,int updata_student,int string_len)
        {
            for (int i = 0; i <string_len; i++)
            {
                if(class_student[i].studnet_num==updata_student)
                {
                    Console.Write("student_num(int):");
                    class_student[i].studnet_num = Convert.ToInt32(Console.ReadLine());

                    Console.Write("student_name(string):");
                    class_student[i].student_name = Convert.ToString(Console.ReadLine());

                    Console.Write("student_score():");
                    class_student[i].student_score.math_score = Convert.ToInt32(Console.ReadLine());
                    class_student[i].student_score.chinese_score = Convert.ToInt32(Console.ReadLine());
                    class_student[i].student_score.Specialized_course = Convert.ToInt32(Console.ReadLine());
                    class_student[i].student_score.english_score = Convert.ToInt32(Console.ReadLine());

                    //输入结束后去统计其成绩总和和平均成绩
                    class_student[i].student_sum = class_student[i].student_score.chinese_score + class_student[i].student_score.english_score + class_student[i].student_score.math_score + class_student[i].student_score.Specialized_course;
                    class_student[i].Average_score = class_student[i].student_sum / 4;

                }
            }
        }
    }
    #endregion

    #region 检索学生信息
    class selectstduent
    { 
        public void select_student(student[]class_student,int student_number)
        {
            Console.WriteLine("Please enter the retrieval method");
            Console.WriteLine("1\t\tstudent's num");
            Console.WriteLine("2\t\tstudent's name");
            Console.WriteLine("3\t\tTotal score ranking");//可以升序输出,也可以降序输出
            Console.WriteLine("其他键\t\texit");
            Console.WriteLine("Please enter your selection");

            int selection = Convert.ToInt32(Console.ReadLine());
            
            switch (selection)
            {
                #region 按学号检索
                case 1: {
                        Console.WriteLine("Please enter the student's school number");
            
                        int select_student_num = Convert.ToInt32(Console.ReadLine());//检索的学生学号
                        
                        select_num selectdatabase = new select_num();

                        selectdatabase.select_select(class_student, select_student_num, student_number);

                    } break;
                #endregion

                #region 按姓名检索
                case 2:
                    {
                        Console.WriteLine("Enter the name of the student you want to retrieve");

                        string student_name_select = Convert.ToString(Console.ReadLine());

                        select_name select_name_se = new select_name();

                        select_name_se.select_select_name(class_student, student_name_select, student_number);

                    }
                    break;
                #endregion

                #region 按成绩检索
                case 3:
                    {
                        Console.Clear();

                        Console.WriteLine("Clear screen complete");

                        Score_retrieval new_score_retrieval = new Score_retrieval();

                        new_score_retrieval.score_retrieval_score(class_student, student_number);
                    } break;
                #endregion

                #region exit
                default: return;
                #endregion
            }
        }
    }
    #endregion

    #region 学号检索
    class select_num
    {
        public void select_select(student[]class_student,int selsct_num_num,int string_len)
        {
            for (int i = 0; i < string_len; i++)
            {
                if(class_student[i].studnet_num==selsct_num_num)
                {
                    Console.WriteLine($"{ class_student[i].studnet_num}\t{class_student[i].student_name}\t{class_student[i].student_score.math_score}\t{class_student[i].student_score.chinese_score}\t{class_student[i].student_score.english_score}\t{class_student[i].student_score.Specialized_course}\t{class_student[i].student_sum}\t{class_student[i].Average_score}");
                }
            }
        }
    }
    #endregion

    #region 姓名检索
    class select_name
    {
        public void select_select_name(student[]class_student,string select_string_name,int string_len)
        {
            for (int i = 0; i < string_len; i++)
            {
                if(class_student[i].student_name==select_string_name)
                {
                    Console.WriteLine($"{ class_student[i].studnet_num}\t{class_student[i].student_name}\t{class_student[i].student_score.math_score}\t{class_student[i].student_score.chinese_score}\t{class_student[i].student_score.english_score}\t{class_student[i].student_score.Specialized_course}\t{class_student[i].student_sum}\t{class_student[i].Average_score}");
                }
            }
        }
    }
    #endregion

    #region 成绩检索
    class Score_retrieval
    {
        public void score_retrieval_score(student[] class_student, int string_len)
        {
            Console.WriteLine("1\t\tAscending output");
            Console.WriteLine("2\t\tDescending output");
            Console.WriteLine("Other arbitrary minus\t\texit");
            Console.WriteLine("Please enter a value");
            int num_select = Convert.ToInt32(Console.ReadLine());
            switch (num_select)
            {
                case 1:
                    {
                        min_max(class_student, string_len);   //成绩升序输出

                        print_student printf_student = new print_student();//输出

                        printf_student.Print_student(class_student, string_len);//输出数据
                    }
                    break;

                case 2:
                    {
                        max_min(class_student, string_len);   //成绩降序输出

                        print_student printf_student = new print_student();//输出

                        printf_student.Print_student(class_student, string_len);//输出数据
                    }
                    break;

                default: break;
            }
        }
        public void max_min(student[] class_student, int string_len)
        {
            student temp = new student();

            //排序部分
            for (int i = 0; i < string_len - 1; i++)
            {
                for (int j = i + 1; j < string_len; j++)
                {
                    if (class_student[i].student_sum > class_student[i].student_sum)
                    {
                        temp = class_student[i];
                        temp = class_student[j];
                        class_student[j] = class_student[i];
                    }
                }
            }
        }
        public void min_max(student[] class_student, int string_len)
        {
            student temp = new student();

            //排序部分
            for (int i = 0; i < string_len - 1; i++)
            {
                for (int j = i + 1; j < string_len; j++)
                {
                    if (class_student[i].student_sum < class_student[i].student_sum)
                    {
                        temp = class_student[i];
                        temp = class_student[j];
                        class_student[j] = class_student[i];
                    }
                }
            }
        }
    }

    #endregion

    #endregion
}

发布了27 篇原创文章 · 获赞 1 · 访问量 1040

猜你喜欢

转载自blog.csdn.net/qq_45205390/article/details/104095465