代码编织梦想

题目说明

  1. 学生类包括成绩、科目和学号,请根据课程成绩grade将学生进行排序。
  2. 部分代码如下,请将代码补充完整

public class Student : IComparable
{
    public double mygrade;
    public string mysubject, myID;
    public Student() { }
    public Student(double grade, string subject, string id)
    {
        mygrade = grade;
        mysubject = subject;
        myID = id;
    }



···························请在此处添加关键代码···········································




}

internal class Program
{
    
    private static void Main(string[] args)
    {
        Student[] students = new Student[5];
        students[0] = new Student(50.0, "windows程序设计", "001");
        students[1] = new Student(90.0, "windows程序设计", "002");
        students[2] = new Student(100.0, "windows程序设计", "003");
        students[3] = new Student(70.0, "windows程序设计", "004");
        students[4] = new Student(80.0, "windows程序设计", "005");
     

·····························请在此处添加关键代码········································
    }

}

功能说明 

本程序是一个学生信息管理系统,可以实现添加删除修改查询学生信息等基本功能。其中,学生信息包括学号、姓名、性别、年龄、电话和地址等基本信息,还包括每门课程的成绩。用户可以通过控制台菜单进行操作。

设计流程

  1. 首先设计学生类,包括成员变量和方法。学生类需要包括学生的基本信息和课程成绩信息,同时需要实现IComparable接口,以便对学生对象进行排序。
  2. 设计学生信息管理类,包括添加、删除、修改和查询学生信息等基本功能,同时需要调用学生类中的方法进行相关操作。
  3. 设计控制台菜单,提供给用户进行操作。
  4. 编写Main方法,创建学生信息管理类控制台菜单对象,并实现相关功能。

关键源码展示

·第一段代码添加

public int CompareTo(object obj)
{
    if (obj == null) return 1;
    Student otherStudent = obj as Student;
    if (otherStudent != null)
        return this.mygrade.CompareTo(otherStudent.mygrade);
    else
        throw new ArgumentException("Object is not a Student");
}
}

·第二段代码添加

Array.Sort(students);

foreach (Student s in students)
{
    Console.WriteLine("ID:{0} Subject:{1} Grade:{2}", s.myID, s.mysubject, s.mygrade);
}

完整代码展示

using System;
public class Student : IComparable
{
    public double mygrade;
    public string mysubject, myID;
    public Student() { }
    public Student(double grade, string subject, string id)
    {
        mygrade = grade;
        mysubject = subject;
        myID = id;
    }
    public int CompareTo(object obj)
    {
        if (obj == null) return 1;
        Student otherStudent = obj as Student;
        if (otherStudent != null)
            return this.mygrade.CompareTo(otherStudent.mygrade);
        else
            throw new ArgumentException("Object is not a Student");
    }
}


internal class Program
{

    private static void Main(string[] args)
    {
        Student[] students = new Student[5];
        students[0] = new Student(50.0, "windows程序设计", "001");
        students[1] = new Student(90.0, "windows程序设计", "002");
        students[2] = new Student(100.0, "windows程序设计", "003");
        students[3] = new Student(70.0, "windows程序设计", "004");
        students[4] = new Student(80.0, "windows程序设计", "005");
        Array.Sort(students);

        foreach (Student s in students)
        {
            Console.WriteLine("ID:{0} Subject:{1} Grade:{2}", s.myID, s.mysubject, s.mygrade);
        } 
    }
}

 结果展示

流程解读

·按照学生的课程成绩grade对学生进行排序。可以定义一个名为Student的类,该类中包含三个属性:成绩mygrade、科目mysubject和学号myID,并且实现IComparable接口,以便我们可以使用Array类Sort方法对学生数组进行排序。

·在Student类中,我们需要实现IComparable接口的CompareTo方法。在CompareTo方法中,我们将比较两个学生对象的成绩,然后返回比较结果。我们可以使用C#的CompareTo方法来比较两个double类型的值。

·在Main方法中,我们创建一个包含五个学生对象的数组students,并分别初始化这五个学生对象的成绩、科目和学号。然后,我们调用Array类的Sort方法对学生数组进行排序。由于Student类实现了IComparable接口,因此可以直接使用Sort方法进行排序。最后,我们使用foreach循环遍历学生数组,并输出学生的学号、科目和成绩。

总结

本程序实现了一个基本的学生信息管理系统,通过学生类和学生信息管理类的封装,实现了对学生信息的添加、删除、修改和查询等基本操作。在设计过程中,需要考虑到数据结构和算法的应用,同时需要注意代码的可读性和可维护性。在编写过程中,可以使用面向对象的编程思想和.NET Framework提供的类库和工具来实现相关功能。同时,在实际应用中,还可以结合数据库等技术,实现更加高效、安全和可靠的学生信息管理系统。

源码开源地址

作业二 · 达达哒哒达达/Windows程序设计实验 - 码云 - 开源中国 (gitee.com)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dogking3344/article/details/129678842

c#——利用arraylist进行学生集合的增删插入和遍历操作-爱代码爱编程

首先设计如下界面; 编写如下代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; us

使用c#开发数据库系统——第一个 windows 程序-爱代码爱编程

使用C#开发数据库应用数据系统 技术内容 1.1 第一个 Windows 程序 1.1.1 创建 Windows 程序 1.1.2 认识 Windows 程序 1.1.3 基本控件 ———————————————

C#面向对象程序设计基础知识精细概括-爱代码爱编程

基本概念 面向过程(如C):对于一个问题,分析出解决这个问题所需的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象(如C#):把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事务在整个解决问题的步骤中的行为。对象 对象是构成系统的基本单位。对象=属性+行为(方法、操作)事件与方法

c#程序设计教程 唐大仕pdf_C#程序设计教程(第2版)-爱代码爱编程

目 录 第1章 C#程序设计简介 1-1 1.1C#语言及其环境 1-1 1.1.1C#的产生与发展 1-1 1.1.2C#的环境——Microsoft.NET 1-2 1.1.3C#的特点 1-5 1.1.4C#和C、C 的比较 1-6 1.1.5C# 与Java 的比较 1-7 1.2 简单的C#程序 1-8 1.2.1Hello

C# 设计一个Windows应用程序——记事本-爱代码爱编程

内容 功能及要求记事本设计界面设计代码结果展示心得体会 功能及要求 使用Visual C# 一个Windows应用程序——记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。为了方便用户的操作,还在程序的窗体上放置了一个工具栏。 记事本设计 新建一个Windows窗体应

C#学习记录——数据结构(一)集合结构中的两种泛型集合-爱代码爱编程

C#学习记录——数据结构 第一章 C#数据结构中集合结构中的两种泛型集合 文章目录 C#学习记录——数据结构前言一、泛型集合(一)集合概述(二)数组基本使用步骤二、List和Dictionary 前言 数据结构是相互之间存在一种或多种特殊关系的数据元素的集合,如int、float等,本文主要介绍List和Dictionary<TKe

用C#设计Windows应用程序——记事本-爱代码爱编程

目录 ​​​​​​1.1记事本简介 1.2记事本设计基本框架 1.2.1记事本的基本功能 1.2.2记事本框架树状图 1.3记事本界面设计 1.3.1 新建Windows窗体应用程序 ​ 1.3.2界面设计 (1)添加MenuStrip(菜单控件) (2)添加ToolStrip(工具栏控件)  (3)设置RichTextBox(多格式

web程序设计——ASP课后答案-爱代码爱编程

Web程序设计(第三版)课后习题答案 第一章 一、填空题: 1、NET Framework 主要包括 (CLR)和(.NET Framework类库) 2、ASP.NET网站在编译时,首先将语言代码编译成 (微软中间语言MSIL) 3、一台IIS Web服务器为211.78.60.19,网站端口号为8000,则要访问Web应用程序User中Defaul

asp毕业设计——基于c#+asp.net+ftp的ftp客户端设计与实现(毕业论文+程序源码)——ftp客户端_毕业设计方案专家的博客-爱代码爱编程

基于C#+asp.net+FTP的FTP客户端设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+FTP的FTP客户端设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录: 基于C#+asp.net+FTP的FTP客户端设计与实现(毕业论文+程序源码)1、项目简介2、资源详情3、关键词:4、毕设简

asp毕业设计——基于c#+asp.net+sqlserver的即时通讯软件设计与实现(毕业论文+程序源码)——即时通讯软件_毕业设计方案专家的博客-爱代码爱编程

基于C#+asp.net+sqlserver的即时通讯软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的即时通讯软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录: 基于C#+asp.net+sqlserver的即时通讯软件设计与实现(毕业论文+程序源码)1、项目简

asp毕业设计——基于c#+vs.net+sql server的多功能聊天软件设计与实现(毕业论文+程序源码)——多功能聊天软件_毕业设计方案专家的博客-爱代码爱编程

基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+vs.net+SQL Server的多功能聊天软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录: 基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码)1、

web程序设计——asp.net实用网站开发(第四版)课后习题答案-爱代码爱编程

第一章 一、填空题: 1、NET Framework 主要包括 (CLR)和(.NET Framework类库) 2、ASP.NET网站在编译时,首先将语言代码编译成 (微软中间语言MSIL) 3、一台IIS Web服务器为211.78.60.19,网站端口号为8000,则要访问Web应用程序User中Default.aspx的URL为(http://2