C#制作学生管理系统

定义学生类

定义一个简单的类来表示学生,包括学号、姓名、性别、年龄、电话、地址。再给其添加一个方法利于后续添加方法查看学生信息。

//定义学生类
public class student
{public int ID { get; set; }//开放读写权限public string Name { get; set; }public int Age { get; set; }public string Sex { get; set; }public int Phone { get; set; }public string Address { get; set; }public student(int id, string name, int age, string sex, int phone, string address){ID = id;Name = name;Age = age;Sex = sex;Phone = phone;Address = address;}
}

管理学生信息

然后,创建一个管理类来存储学生信息,并提供添加、查看、删除和修改学生信息的方法。

//管理学生类
public class StudentManager
{private List<student> students = new List<student>();
}
添加学生

创建一个添加学生信息的类,控制台输入学号、姓名、性别、年龄、电话、地址,程序将其添加到students中。

//添加学生类
public void AddStudent(int id, string name, int age, string sex, int phone, string address//参数)
{students.Add(new student(id, name, age, sex, phone, address));Console.WriteLine("学生添加成功!");
}
查看学生信息
查看所有学生信息

控制台输出所有已添加的学生的学号、姓名、性别、年龄、电话、地址。

//查看所有学生信息类
public void ViewAllStudent()
{if (students.Count == 0){Console.WriteLine("无成员!");return;}foreach (var vocab in students){Console.WriteLine($"学号: {vocab.ID}\n" +$"姓名: {vocab.Name}\n" +$"年龄: {vocab.Age}\n" +$"姓别: {vocab.Sex}\n" +$"电话: {vocab.Phone}\n" +$"地址: {vocab.Address}\n");}
}
查看特定学号学生信息

用户在控制台输入想要查看的学生的学号,控制台输出特定学号的学生的学号、姓名、性别、年龄、电话、地址。

//查看特定学号学生信息类
public void ViewSingleStudentId(int id)
{int i=1;if (students.Count == 0){Console.WriteLine("无成员!");return;}else{foreach (var vocab in students){if (id==vocab.ID){Console.WriteLine($"学号: {vocab.ID}\n" +$"姓名: {vocab.Name}\n" +$"年龄: {vocab.Age}\n" +$"姓别: {vocab.Sex}\n" +$"电话: {vocab.Phone}\n" +$"地址: {vocab.Address}\n");i= 2;}}if (i==1){Console.WriteLine("未找到该成员!");}}
}
查看特定名字学生信息

用户在控制台输入想要查看的学生的姓名,控制台输出特定名字的学生的学号、姓名、性别、年龄、电话、地址。

//查看特定名字学生信息类
public void ViewSingleStudentName(string name)
{int i = 1;if (students.Count == 0){Console.WriteLine("无成员!");return;}else{foreach (var vocab in students){if (name == vocab.Name){Console.WriteLine($"学号: {vocab.ID}\n" +$"姓名: {vocab.Name}\n" +$"年龄: {vocab.Age}\n" +$"姓别: {vocab.Sex}\n" +$"电话: {vocab.Phone}\n" +$"地址: {vocab.Address}\n");i= 2;}}if (i == 1){Console.WriteLine("未找到该成员!");}}
}
查看特定手机号学生信息

用户在控制台输入想要查看的学生的手机号,控制台输出特定手机号的学生的学号、姓名、性别、年龄、电话、地址。

查看特定手机号学生信息类
public void ViewSingleStudentPhone(int phone)
{int i = 1;if (students.Count == 0){Console.WriteLine("无成员!");return;}else{foreach (var vocab in students){if (phone == vocab.Phone){Console.WriteLine($"学号: {vocab.ID}\n" +$"姓名: {vocab.Name}\n" +$"年龄: {vocab.Age}\n" +$"姓别: {vocab.Sex}\n" +$"电话: {vocab.Phone}\n" +$"地址: {vocab.Address}\n");i= 2;}}if (i==1){Console.WriteLine("未找到该成员!");}}
}
删除学生信息

用户在控制台输入要删除的学生的学号,程序从students中删除该学生。

//删除学生信息类
public void DeleteStudent(int id)
{var vocab = students.FirstOrDefault(v => v.ID == id);if (vocab != null){students.Remove(vocab);Console.WriteLine("人员删除成功!");}else{Console.WriteLine("未找到该人员!");}
}
修改学生信息
修改学号

用户在控制台输入想要修改学号信息的学生的学号,程序查询该学生,用户在控制台输入修改后的学号,用用户在控制台输入的学号替换旧学号。

 //修改学号类
public void ChangeInformationId( int Id,int id){var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.ID = id;}else{Console.WriteLine("未找到该人员!");}}
修改姓名

用户在控制台输入想要修改姓名信息的学生的学号,程序查询该学生,用户在控制台输入修改后的姓名,用用户在控制台输入的姓名替换旧姓名。

//修改姓名类
public void ChangeInformationName(int Id, string name)
{var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.Name = name;}else{Console.WriteLine("未找到该人员!");}
}
修改姓别

用户在控制台输入想要修改性别信息的学生的学号,程序查询该学生,用户在控制台输入修改后的性别,用用户在控制台输入的性别替换旧性别。

 //修改性别类
public void ChangeInformationSex(int Id, string sex){var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.Sex  = sex;}else{Console.WriteLine("未找到该人员!");}}
修改年龄

用户在控制台输入想要修改年龄信息的学生的学号,程序查询该学生,用户在控制台输入修改后的年龄,用用户在控制台输入的年龄替换旧年龄。

//修改年龄类
public void ChangeInformationAge(int Id, int age)
{var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.Age = age;}else{Console.WriteLine("未找到该人员!");}
}
修改地址

用户在控制台输入想要修改地址信息的学生的学号,程序查询该学生,用户在控制台输入修改后的地址,用用户在控制台输入的地址替换旧地址。

//修改地址类
public void ChangeInformationAddress(int Id, string address)
{var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.Address = address;}else{Console.WriteLine("未找到该人员!");}
}
修改电话

用户在控制台输入想要修改电话信息的学生的学号,程序查询该学生,用户在控制台输入修改后的电话,用用户在控制台输入的电话替换旧电话。

//修改电话类
public void ChangeInformationPhone(int Id, int phone)
{var vocab = students.FirstOrDefault(v => v.ID == Id);if (vocab != null){vocab.Phone = phone;}else{Console.WriteLine("未找到该人员!");}
}

主程序

        class Mainprogram{static void Main(string[] args){StudentManager manager = new StudentManager();//int[,] arr = new int[3, 5];//二维数组bool f = true;while (f){Console.WriteLine("*******************************");Console.WriteLine("请选择您想要进行的操作:\n1:新增学生\n2:查看学生\n3:删除学生\n4:修改学生资料\n0:退出操作");Console.WriteLine("*******************************");int operate = int.Parse(Console.ReadLine());if (operate == 1)//新增学生{Console.Write("请输入学号: ");int id = int.Parse(Console.ReadLine());Console.Write("请输入姓名: ");string name = Console.ReadLine();Console.Write("请输入年龄: ");int age = int.Parse(Console.ReadLine());Console.Write("请输入性别: ");string sex = Console.ReadLine();Console.Write("请输入电话: ");int phone = int.Parse(Console.ReadLine());Console.Write("请输入地址: ");string address = Console.ReadLine();manager.AddStudent(id, name, age, sex, phone, address);}else if (operate == 2)//查看学生信息{bool op = true;while (op){Console.WriteLine("*******************************");Console.WriteLine("请选择您想要进行的操作:\n1:查看单个学生\n2:查看所有学生\n3:返回目录");Console.WriteLine("*******************************");int option = int.Parse(Console.ReadLine());if (option == 1){Console.WriteLine("*******************************");Console.WriteLine("请选择您想要进行的操作:\n1:学号查询\n2:姓名查询\n3:电话查询");Console.WriteLine("*******************************");int quest = int.Parse(Console.ReadLine());if (quest == 1){Console.Write("请输入您想要查看的学生的学号: ");int id = int.Parse(Console.ReadLine());manager.ViewSingleStudentId(id);}else if (quest == 2) {Console.Write("请输入您想要查看的学生的名字: ");string name = Console.ReadLine();manager.ViewSingleStudentName(name);}else if(quest == 3) {Console.Write("请输入您想要查看的学生的手机号: ");int phone = int.Parse(Console.ReadLine());manager.ViewSingleStudentPhone(phone);}else {Console.WriteLine("无关操作符");}}else if (option == 2){manager.ViewAllStudent();}else if (option == 3){op = false;}else{Console.WriteLine("无关操作符");}}}else if (operate == 3)//删除学生信息{Console.WriteLine("请输入您想要删除的学生的学号");int id = int.Parse(Console.ReadLine());manager.DeleteStudent(id);}else if (operate == 4) //修改学生信息{Console.WriteLine("请输入您想要修改信息的学生的学号");int Id = int.Parse(Console.ReadLine());Console.WriteLine("*******************************");Console.WriteLine("请选择您想要修改的内容:\n1:学号\n2:姓名\n3:性别\n4:年龄\n5:电话\n6:地址");Console.WriteLine("*******************************");int alter = int.Parse(Console.ReadLine());if (alter == 1){Console.WriteLine("请输入修改后的学号");int id=int.Parse(Console.ReadLine());manager.ChangeInformationId(Id, id);}else if (alter == 2) {Console.WriteLine("请输入修改后的姓名");string name = Console.ReadLine();manager.ChangeInformationName(Id, name);}else if (alter == 3){Console.WriteLine("请输入修改后的性别");string sex = Console.ReadLine();manager.ChangeInformationSex(Id, sex);}else if (alter == 4){Console.WriteLine("请输入修改后的年龄");int age = int.Parse(Console.ReadLine());manager.ChangeInformationAge(Id, age);}else if (alter == 5){Console.WriteLine("请输入修改后的电话");int phone = int.Parse(Console.ReadLine());manager.ChangeInformationPhone(Id, phone);}else if (alter == 6){Console.WriteLine("请输入修改后的地址");string address = Console.ReadLine();manager.ChangeInformationAddress(Id, address);}else{Console.WriteLine("无关操作符");}}else if (operate == 0)//退出程序{f = false;}else{Console.WriteLine("无关操作符");}}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】动态内存开辟

写在前面 C语言中有不少开辟空间的办法&#xff0c;但是在堆上开辟的方法也就只有动态内存开辟&#xff0c;其访问特性与数组相似&#xff0c;但最大区别是数组是开辟在栈上&#xff0c;而动态内存开辟是开辟在堆上的。这篇笔记就让不才娓娓道来。 PS:本篇没有目录实在抱歉CSD…

Excel:vba实现插入图片

实现的效果&#xff1a; 实现的代码&#xff1a; Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Pic As ObjectDim Name As String 防止表格里面有脏数据Cells.Clear 遍历工作表中的每个图…

6.FreeRTOS之任务通知

什么是任务通知&#xff1f; FreeRTOS 从版本 V8.2.0 开始提供任务通知这个功能&#xff0c;每个任务都有一个 32 位的通知值。按照 FreeRTOS 官方的说法&#xff0c;使用消息通知比通过二进制信号量方式解除阻塞任务快 45% &#xff0c; 并且更加 省内存&#xff08;无需创…

前端之html(一)

HTML定义: HTML 超文本标记语言 (1)骨架: HTML:整个网页 head:网页头部 boby:网页主体 title:网页标题 (2)标签关系: 1.嵌套 2.并列 (3)注释 语法:<!-- ... --> 基础: (4) 标签:双标签:<> ... </> 单标签:<> <br> …

书生第四期实训营基础岛——L1G3000浦语提示词工程实践

基础任务 任务要求 背景问题&#xff1a;近期相关研究指出&#xff0c;在处理特定文本分析任务时&#xff0c;语言模型的表现有时会遇到挑战&#xff0c;例如在分析单词内部的具体字母数量时可能会出现错误。任务要求&#xff1a;利用对提示词的精确设计&#xff0c;引导语言…

Android启动流程_SystemServer阶段

前言 上一篇文档我们描述了在 Android 启动流程中 Zygote 部分的内容&#xff0c;从 Zygote 的配置、启动、初始化等内容展开&#xff0c;描述了 Zygote 在 Android 启动中的功能逻辑。本篇文档将会继续 Android 启动流程的描述&#xff0c;从 SystemServer 进程的内容展开&am…

Flutter CustomScrollView 效果-顶栏透明与标签栏吸顶

CustomScrollView 效果 1. 关键组件 CustomScrollView, SliverOverlapAbsorber, SliverPersistentHeader 2. 关键内容 TLDR SliverOverlapAbsorber 包住 pinned为 true 的组件 可以被CustomScrollView 忽略高度。 以下的全部内容的都为了阐述上面这句话。初阶 Flutter 开发知…

Litctf-web

Litctf-web exx xxe&#xff0c; <?xml version"1.0" encoding"utf-8"?> <!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "file:///flag" >]><user><username>&xxe;</username> …

线程模型介绍

线程模型的介绍 线程有三种模型&#xff1a;N:1用户线程模型&#xff0c;1:1核心线程模式&#xff0c;N:M混合线程模型 POSIX: Portable Operating System Interface(可移值操作系统接口) N&#xff1a;1用户线程模型 线程的实现建立在进程控制的机制之上&#xff0c;有用户…

2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作

文章目录 一、使用Cargo第三方库1.直接修改Cargo.toml2.使用cargo-edit插件3.设置国内源4.与windows下面的rust不同点 参考 一、使用Cargo第三方库 1.直接修改Cargo.toml rust语言的库&#xff1a;crate 黏贴至Cargo.toml 保存完毕之后&#xff0c;自动下载依赖 拷贝crat…

ML 系列:第 18 部 - 高级概率论:条件概率、随机变量和概率分布

文章目录 一、说明二、关于条件概率2.1 为什么我们说条件概率&#xff1f;2.2 为什么条件概率在统计学中很重要 三、 随机变量的定义3.1 定义3.2 条件概率中的随机变量 四、概率分布的定义五、结论 一、说明 条件概率是极其重要的概率概念&#xff0c;它是因果关系的数学表述&…

基于springboot的社区团购系统设计与实现

一、项目背景 网络交易&#xff08;Electronic Commerce&#xff09;&#xff1a;是指实现整个贸易过程中各阶段的贸易活动的电子化。网络交易是一种多技术的集合体。其业务可包括&#xff1a;信息交换、售后服务、销售、电子支付、运输、组建虚拟企业、公司和贸易伙伴可以共同…

一文读懂系列:SSL加密流量检测技术详解

SSL加密流量检测功能的主要目的是为了对加密流量做解密处理&#xff0c;并对解密后的流量做内容安全检查&#xff08;比如反病毒、入侵防御、URL远程查询、内容过滤、文件过滤和邮件过滤等&#xff09;和审计&#xff08;防止信息泄露&#xff09;。接下来我们详细介绍SSL加密流…

【C++】关联式容器

1.Set和Map 1.1 set的介绍 set是一个常用的关联式容器&#xff0c;它存储唯一的元素&#xff0c;这些元素默认情况下按照升序排序。其底层是一种自平衡的二叉搜索树(红黑树)。 set元素的键值就是实值&#xff0c;实值就是键值。set的元素允许插入删除但是不允许修改(具有const…

荣誉证书PSD素材(59套免费)

本作品提供荣誉证书PSD素材下载&#xff0c;格式为PSD&#xff1b; 请使用软件Photoshop进行编辑&#xff0c;作品中文字及图均可以通过软件修改和编辑&#xff1b; 点击下载: 荣誉证书PSD素材

第T6周:Tensorflow实现好莱坞明星识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: &#xff08;二&#xff09;具体步骤 1.查询…

Spring6框架搭建(自用)

一、什么是Spring 众所不周知&#xff0c;Spring就是爪哇人的春天&#xff0c;但是在框架程序设计之前都绕不开javaWeb 1.javaWeb框架发展史 1、ServletJSPJavaBean(跳转页面、业务逻辑判断、数据库查询) 2、MVC三层架构(M Model pojo(User)V-view(USP)C-(controller-servl…

linux-UART

参考博客 https://blog.csdn.net/m0_38106923/article/details/126024970?sharetypeblog&shareId126024970&sharereferAPP&sharesourceweixin_40933496&sharefromlink 1.串口 UART的全称是Universal Asynchronous Receiver and Transmitter&#xff0c;即异步…

大数据治理:策略、技术与挑战

随着信息技术的飞速发展&#xff0c;大数据已经成为现代企业运营和决策的重要基础。然而&#xff0c;大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此&#xff0c;大数据治理应运而生&#xff0c;成为确保数据质量、合规性、安全性和可用性的关键手段。本…

vue插件清除 所有console.log()

一、作用 1、提升性能console.log() 语句会消耗一定的性能&#xff0c;尤其是在频繁调用的情况下。在生产环境中移除这些语句可以提高应用的运行效率。 2、减少信息泄露console.log() 可以输出敏感信息&#xff08;如用户数据、API 响应等&#xff09;。在生产环境中&#xf…