C#实现学生成绩管理系统

C#实现学生成绩管理系统

介绍

学生成绩管理系统是一种常见的应用,它提供了学生信息录入、成绩查阅等功能,方便教师和学生进行学习管理。C#是一种面向对象的编程语言,非常适合实现这种应用。

本文将介绍如何使用C#实现一个简单的学生成绩管理系统。我们将使用Visual Studio开发环境来快速构建应用。本系统将支持学生信息的录入、成绩的添加、修改和删除,以及成绩的查询和统计等功能。

步骤

步骤一:建立工程

首先,我们需要在Visual Studio中创建一个C#控制台应用程序工程。在菜单中选择“文件”->“新建项目”,然后在模板中选择“控制台应用程序”,输入工程名称,点击“创建”即可。

步骤二:设计学生类

接下来,我们需要设计一个“学生”类,用于存储学生的基本信息和成绩信息。我们可以在“解决方案资源管理器”中右键选择“添加”->“类”,然后输入类名称“Student”,按下回车键即可。

在Student类中,我们需要定义一些公共属性和方法:

public class Student
{
    // 私有字段
    private string name;
    private string id;
    private int chinese;
    private int math;
    private int english;

    // 属性
    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public string Id
    {
        get { return id; }
        set { id = value; }
    }

    public int Chinese
    {
        get { return chinese; }
        set { chinese = value; }
    }

    public int Math
    {
        get { return math; }
        set { math = value; }
    }

    public int English
    {
        get { return english; }
        set { english = value; }
    }

    // 方法
    public int Sum()
    {
        return chinese + math + english;
    }

    public double Avg()
    {
        return Sum() / 3.0;
    }
}

在这个类中,我们定义了私有字段用于存储学生信息和成绩信息,同时定义了公共属性对外提供访问接口。我们还定义了一个Sum()方法用于计算总分,一个Avg()方法用于计算平均分。

步骤三:实现学生信息的录入、添加、修改和删除

接下来,我们需要实现学生信息的录入、添加、修改和删除等功能。我们可以在控制台中使用下面的代码来实现这些功能:

using System;
using System.Collections.Generic;

public class Program
{
    private static List<Student> students = new List<Student>();

    public static void Main(string[] args)
    {
        while (true)
        {
            Console.WriteLine("1. 录入学生信息");
            Console.WriteLine("2. 添加学生成绩");
            Console.WriteLine("3. 修改学生成绩");
            Console.WriteLine("4. 删除学生成绩");
            Console.WriteLine("5. 查询学生成绩");
            Console.WriteLine("6. 统计学生成绩");
            Console.WriteLine("0. 退出系统");

            Console.WriteLine();
            Console.Write("请选择操作:");
            string input = Console.ReadLine();

            switch (input)
            {
                case "1":
                    AddStudent();
                    break;

                case "2":
                    AddScore();
                    break;

                case "3":
                    ModifyScore();
                    break;

                case "4":
                    DeleteScore();
                    break;

                case "5":
                    QueryScore();
                    break;

                case "6":
                    StatisticScore();
                    break;

                case "0":
                    return;

                default:
                    Console.WriteLine("无效操作");
                    break;
            }
        }
    }

    // 录入学生信息
    private static void AddStudent()
    {
        Console.WriteLine("请输入学生姓名:");
        string name = Console.ReadLine();

        Console.WriteLine("请输入学生学号:");
        string id = Console.ReadLine();

        Student student = new Student();
        student.Name = name;
        student.Id = id;
        students.Add(student);

        Console.WriteLine("学生信息录入成功");
        Console.WriteLine();
    }

    // 添加学生成绩
    private static void AddScore()
    {
        Console.WriteLine("请输入学生学号:");
        string id = Console.ReadLine();

        Student student = FindStudentById(id);

        if (student == null)
        {
            Console.WriteLine("没有找到该学生");
            Console.WriteLine();
            return;
        }

        Console.WriteLine("请输入语文成绩:");
        int chinese = int.Parse(Console.ReadLine());

        Console.WriteLine("请输入数学成绩:");
        int math = int.Parse(Console.ReadLine());

        Console.WriteLine("请输入英语成绩:");
        int english = int.Parse(Console.ReadLine());

        student.Chinese = chinese;
        student.Math = math;
        student.English = english;

        Console.WriteLine("成绩添加成功");
        Console.WriteLine();
    }

    // 修改学生成绩
    private static void ModifyScore()
    {
        Console.WriteLine("请输入学生学号:");
        string id = Console.ReadLine();

        Student student = FindStudentById(id);

        if (student == null)
        {
            Console.WriteLine("没有找到该学生");
            Console.WriteLine();
            return;
        }

        Console.WriteLine("请输入要修改的成绩科目(1. 语文,2. 数学,3. 英语):");
        int subject = int.Parse(Console.ReadLine());

        Console.WriteLine("请输入修改后的成绩:");
        int score = int.Parse(Console.ReadLine());

        switch (subject)
        {
            case 1:
                student.Chinese = score;
                break;

            case 2:
                student.Math = score;
                break;

            case 3:
                student.English = score;
                break;

            default:
                Console.WriteLine("无效操作");
                break;
        }

        Console.WriteLine("成绩修改成功");
        Console.WriteLine();
    }

    // 删除学生成绩
    private static void DeleteScore()
    {
        Console.WriteLine("请输入学生学号:");
        string id = Console.ReadLine();

        Student student = FindStudentById(id);

        if (student == null)
        {
            Console.WriteLine("没有找到该学生");
            Console.WriteLine();
            return;
        }

        student.Chinese = 0;
        student.Math = 0;
        student.English = 0;

        Console.WriteLine("成绩删除成功");
        Console.WriteLine();
    }

    // 查询学生成绩
    private static void QueryScore()
    {
        Console.WriteLine("请输入学生学号:");
        string id = Console.ReadLine();

        Student student = FindStudentById(id);

        if (student == null)
        {
            Console.WriteLine("没有找到该学生");
            Console.WriteLine();
            return;
        }

        Console.WriteLine("姓名:{0}", student.Name);
        Console.WriteLine("学号:{0}", student.Id);
        Console.WriteLine("语文成绩:{0}", student.Chinese);
        Console.WriteLine("数学成绩:{0}", student.Math);
        Console.WriteLine("英语成绩:{0}", student.English);
        Console.WriteLine("总分:{0}", student.Sum());
        Console.WriteLine("平均分:{0:F2}", student.Avg());
        Console.WriteLine();
    }

    // 统计学生成绩
    private static void StatisticScore()
    {
        Console.WriteLine("总人数:{0}", students.Count);

        int chineseSum = 0;
        int mathSum = 0;
        int englishSum = 0;
        int totalSum = 0;

        foreach (Student student in students)
        {
            chineseSum += student.Chinese;
            mathSum += student.Math;
            englishSum += student.English;
            totalSum += student.Sum();
        }

        Console.WriteLine("语文总分:{0}", chineseSum);
        Console.WriteLine("数学总分:{0}", mathSum);
        Console.WriteLine("英语总分:{0}", englishSum);
        Console.WriteLine("总分总分:{0}", totalSum);
        Console.WriteLine("语文平均分:{0:F2}", chineseSum / (double)students.Count);
        Console.WriteLine("数学平均分:{0:F2}", mathSum / (double)students.Count);
        Console.WriteLine("英语平均分:{0:F2}", englishSum / (double)students.Count);
        Console.WriteLine("总分平均分:{0:F2}", totalSum / (double)students.Count);
        Console.WriteLine();
    }

    // 根据学号查找学生
    private static Student FindStudentById(string id)
    {
        foreach (Student student in students)
        {
            if (student.Id == id)
            {
                return student;
            }
        }

        return null;
    }
}

步骤四:运行程序

最后,我们可以在Visual Studio中点击“调试”->“启动调试”来运行程序。然后根据提示选择不同的操作,来测试我们实现的功能。

示例说明

示例一:录入学生信息

在控制台中输入“1”选择“录入学生信息”功能。然后输入学生姓名和学号,即可完成学生信息的录入。

1. 录入学生信息
2. 添加学生成绩
3. 修改学生成绩
4. 删除学生成绩
5. 查询学生成绩
6. 统计学生成绩
0. 退出系统

请选择操作:1
请输入学生姓名:
张三
请输入学生学号:
10001
学生信息录入成功

1. 录入学生信息
2. 添加学生成绩
3. 修改学生成绩
4. 删除学生成绩
5. 查询学生成绩
6. 统计学生成绩
0. 退出系统

示例二:添加学生成绩

在控制台中输入“2”选择“添加学生成绩”功能。然后输入学生学号和语文、数学、英语三门成绩,即可完成成绩的添加。

1. 录入学生信息
2. 添加学生成绩
3. 修改学生成绩
4. 删除学生成绩
5. 查询学生成绩
6. 统计学生成绩
0. 退出系统

请选择操作:2
请输入学生学号:
10001
请输入语文成绩:
80
请输入数学成绩:
90
请输入英语成绩:
70
成绩添加成功

1. 录入学生信息
2. 添加学生成绩
3. 修改学生成绩
4. 删除学生成绩
5. 查询学生成绩
6. 统计学生成绩
0. 退出系统

总结

使用C#实现学生成绩管理系统是一项非常基础的任务,但是从中我们可以学习到C#的基本语法和面向对象编程的思想。在实现中,我们使用Visual Studio提供的强大的开发工具,快速实现了一个简单的应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现学生成绩管理系统 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#中new的几种用法详解

    C#中new的几种用法详解 一、定义 new 关键字在 C# 中有多种用法,主要的包括以下几种: 创建新的对象实例。 隐藏从基类继承的成员。 使用缺省值初始化值类型的实例。 在泛型类型参数限制约束中指定特定的构造函数。 二、创建新的对象实例 在 C# 中,new 关键字最常用的用法就是创建新的对象实例。我们需要通过 new 关键字和类名来创建对象实例。 下面…

    C# 2023年5月15日
    00
  • c# 实时曲线图示例代码

    下面是详细的“c# 实时曲线图示例代码”攻略。 简介 实时曲线图常用于数据采集与监控领域,其实现方法主要通过定时器事件或者数据缓存方式进行数据刷新。在c#中可以使用WPF或WinForm两种方式实现绘制实时曲线。 在实现实时曲线之前,我们需要掌握以下知识点: 定时器 数据缓存 绘制曲线 实现方法 使用定时器实现 创建WinForm或WPF项目,并添加图表控件…

    C# 2023年6月7日
    00
  • Android实现横屏切换科学计算器

    Android实现横屏切换科学计算器攻略 介绍 在Android应用中实现横屏切换,能够提升用户体验,特别是在进行科学计算的时候。在横屏模式下,可以修改应用的布局,增加更多的控件和功能。本文将详细讲解如何实现在Android应用中实现横屏切换的科学计算器。 实现步骤 首先需要定义两种不同的布局文件,一种布局用于竖屏模式,另一种用于横屏模式。命名方式应该为: …

    C# 2023年6月7日
    00
  • C#使用Selenium+PhantomJS抓取数据

    我会为您提供一份详细的攻略。 1. 准备工作 如果您需要使用C#编写程序来使用Selenium和PhantomJS抓取网页数据,那么您需要先准备以下几个工具和组件: Visual Studio:C#开发环境 Selenium WebDriver:Selenium C#库 PhantomJS:无头浏览器 2. 安装和设置Selenium和PhantomJS 安…

    C# 2023年5月15日
    00
  • C# File.Exists(string path):判断指定路径的文件是否存在

    File.Exists(string path)方法是C#中的一个文件操作方法,其作用是判断指定路径的文件是否存在。在使用该方法时,需要传入一个字符串参数,表示要检查的文件的完整路径。 若文件存在,则返回true,反之则返回false。 使用该方法可以避免在进行文件操作时不必要的异常抛出,也可用于检查是否需要进行文件的创建或删除操作。 下面给出一些示例说明:…

    C# 2023年4月19日
    00
  • C#实现简易计算器小功能

    下面我来详细讲解一下“C#实现简易计算器小功能”的完整攻略。 编写计算器程序前的准备工作 在开始编写计算器程序之前,我们需要准备好以下几个方面的工作: 编译环境 首先,我们需要安装一款C#编译环境,这里我建议使用Visual Studio。你可以在微软官网下载,也可以在第三方网站下载。我在这里提供一个链接给你:https://visualstudio.mic…

    C# 2023年6月6日
    00
  • 对C# 多态的理解

    对C#多态的理解 什么是多态 多态是定义在父类中的函数被子类继承之后,可以具有不同的实现方式的一种能力。C#中的多态主要有两种实现方式:重载和重写。 重载 重载是通过定义同名的方法,但拥有不同的参数列表,实现多态的一种方式。C#中的重载函数必须拥有不同的参数个数或参数类型,否则编译器无法识别。 下面是一个求两个整数和的函数Add的重载示例: public i…

    C# 2023年5月15日
    00
  • LINQ基础之Join和UNION子句

    LINQ基础之Join和UNION子句 1. Join子句 Join子句用于将两个数据集合并为一个新的数据集。Join子句需要一个内部键和外部键,用于在两个数据集之间建立关联。 1.1 内部键和外部键 内部键和外部键是Join子句建立关联的基础。内部键是第一个数据集中用于建立关联的字段或属性,而外部键是第二个数据集中用于建立关联的字段或属性。这两个键必须具有…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部