本文主要详细介绍了C#学生成绩管理系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享了C#学生成绩管理系统的具体代码,供大家参考。具体内容如下
用链表编写学生成绩管理系统
链表可以灵活显示、添加、删除和检查。
下面是结果演示
这是登录和部分添加。
继续补充
继续添加和输出结果。
学生成绩查询
学生信息修改后输出。
删除并再次输出
0直接退出。
/*
作者:马志勇
日期:2020年10月14日
*/
使用系统;
使用系统。集合。泛型;
使用系统。诊断;
使用系统。Linq
使用系统。文本;
使用系统。线程。任务;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(string[] args)
{
//2.在用户登录界面提示用户输入用户名和密码,并根据用户名和密码决定是否登录系统。
//3.合法用户登录成功后,屏幕上将显示以下功能菜单:
//1.学生成绩输入2。学生成绩输出3。学生成绩查询4。学生成绩修改0。退出系统。
//提示用户输入选择号。用户输入正确选择后,将执行相应的功能。执行相应功能后,返回功能菜单。
控制台。WriteLine('欢迎使用绩效管理系统!');
while (true) {
控制台。WriteLine('***请输入账号:');
字符串用户名=控制台。ReadLine();
控制台。WriteLine('***请输入密码:');
字符串userPassword=Console。ReadLine();
如果(用户名。等于(' 123456 ')用户密码。等于(' 456789 '))
{
控制台。WriteLine(“* * *如果帐户密码正确,请输入”);
打破;
}
否则{
控制台。WriteLine('帐户密码不一致。你想重新进入吗?[1:重新进入-2:退出]');
int n=int。解析(控制台。ReadLine());
while (true) {
if (n==1 || n==2)
{
打破;
}
否则{
控制台。WriteLine('***序列号错误,请重新输入!');
n=int。解析(控制台。ReadLine());
}
}
if (n==2) {
过程。GetCurrentProcess()。kill();
}
}
}
showView();
show choice();
StudentLinkedList link=new StudentLinkedList();
while (true) {
控制台。WriteLine(“* * *请选择这些序列号”);
int n=int。解析(控制台。ReadLine());
开关(n) {
//0.退出系统。
案例0: {
过程。GetCurrentProcess()。kill();
打破;
}
//1.学生成绩输入
案例1: {
控制台。WriteLine('***请输入ID账号:');
int id=int。解析(控制台。ReadLine());
控制台。WriteLine('***请输入您的姓名:');
字符串名称=控制台。ReadLine();
控制台。WriteLine('***请输入一个等级:');
int score=int。解析(控制台。ReadLine());
link.add(getStudentNode(id,name,score));
打破;
}
//2.学生成绩输出
案例2: {
link . show();
打破;
}
//3.查询学生成绩
案例三:
{
控制台。WriteLine('***请输入您要查找的id帐户');
int index=int。解析(控制台。ReadLine());
学生student=link . search(index);
控制台。WriteLine(student . tostring());
打破;
}
//4.学生成绩的修改
案例4:
{
控制台。WriteLine('***[注]:只能修改分数!');
控制台。WriteLine('***请输入您要修改的id帐户');
int index=int。解析(控制台。ReadLine());
控制台WriteLine('***请输入你要修改的身份证明(识别)分数');
int得分=int .解析(控制台. ReadLine());
link.upThis(索引,分数);
打破;
}
案例5:
{
控制台WriteLine('***请输入你要删除的身份证明(识别)账号');
int index=int .解析(控制台. ReadLine());
link.delete(索引);
打破;
}
默认值:{
打破;
}
}
显示选择();
}
控制台read key();
}
//获取节点对象
公共静态学生节点getstudent node(int id,String name,int score ) {
返回新学生节点(新学生(id,姓名,分数));
}
//启动界面
//1.学生成绩输入2.学生成绩输出3.学生成绩查询4.学生成绩修改0.退出系统
公共静态void showView() {
控制台WriteLine('| -程序启动- |');
控制台WriteLine('|\t\t\t学生成绩管理系统\ t \ t \ t | ');
控制台WriteLine(' |-| ');
控制台WriteLine('|\t\t\t开发人姓名:马志勇\ t \ t \ t | ');
控制台WriteLine('|\t\t\t开发时间:2020-20-14 \ t \ t \ t | ');
控制台WriteLine('|\t\t\t按任意键进入系统\ t \ t \ t | ');
控制台WriteLine(' |-| ');
}
公共静态void showChoice() {
控制台WriteLine(' |-| ');
控制台WriteLine('|\t\t\t0 .退出系统\ t \ t \ t \ t | ');
控制台WriteLine('|\t\t\t1 .学生成绩输入\ t \ t \ t \ t | ');
控制台WriteLine('|\t\t\t2 .学生成绩输出\ t \ t \ t \ t | ');
控制台WriteLine('|\t\t\t3 .学生成绩查询\ t \ t \ t \ t | ');
控制台WriteLine('|\t\t\t4 .学生成绩修改\ t \ t \ t \ t | ');
控制台WriteLine('|\t\t\t5 .删除这个学生\ t \ t \ t \ t | ');
控制台WriteLine(' |-| ');
}
}
班级学生链接列表
{
//定义一个头结点啥都不放
StudentNode头=空
public StudentLinkedList() {
head=新生节点(空);
}
//添加按照学号顺序顺序进行添加
//如果学号相同则不能添加
公共void add(StudentNode节点)
{
if (head.next==null)
{
head.next=node
返回;
}
//否则定义一个变量临时变量进行处理;
学生节点温度=头
int id=节点。s . getid();
布尔标志=假
而(真)
{
if (temp.next==null)
{
标志=假
打破;
}
if (temp.next.s.getId() id)
{
标志=假
打破;
}
else if (temp.next.s.getId()==id)
{
//这个情况是有重复的就不能添加进去
标志=真
打破;
}
temp=temp.next
}
如果(标志)
{
控制台WriteLine('这个序号已经存在');
}
否则{
节点。next=温度。接下来;
temp.next=节点
}
}
//删除
//只能通过身份证明(识别)进行删除
public bool delete(int id) {
if (head.next==null) {
返回错误的
}
学生节点温度=头
while (true) {
if (temp.next==null) {
返回错误的
}
if (temp.next.s.getId()==id) {
打破;
}
temp=temp.next
}
if (temp.next.next!=空)
{
在…之时next=温度。下一个。接下来;
}
否则{
temp.next=null
}
返回真实的
}
//修改
//只能修改成绩
public void upThis(int id,int score) {
if (head.next==null)
{
控制台WriteLine('没有数据,无法修改!');
返回;
}
StudentNode temp=head.next
while (true) {
if (temp==null) {
控制台WriteLine('没有这个身份证明数据!');
返回;
}
if (temp.s.getId()==id) {
临时设置分数(分数);
返回;
}
temp=temp.next
}
}
//查询
公共学生搜索(int id)
{
if (head.next==null)
{
控制台WriteLine('没有数据,无法修改!');
返回空
}
StudentNode temp=head.next
而(真)
{
if (temp==null)
{
控制台WriteLine('没有这个身份证明数据!');
返回空
}
if (temp.s.getId()==id)
{
返回新学生(临时获取Id()、临时获取名称()、临时。s . get score());
}
temp=temp.next
}
}
//遍历
公共void show() {
控制台WriteLine('ID\t\t姓名\t\t分数');
StudentNode temp=head.next
while (true) {
if (temp==null) {
打破;
}
控制台WriteLine(temp。s . getid()' \ t \ t ' temp。s . getname()' \ t \ t ' temp。s . get score());
temp=temp.next
}
}
}
//创建一个链表进行处理这些数据
班级学生节点
{
公学生s;
下一个公共学生节点
公共学生节点(学生)
{
这. s=s
}
}
//定义学生类
班级学生
{
私有int id
私有字符串名称;
私有int分数;
公共学生(int id,字符串名称,int分数)
{
this.id=id
this.name=name
得分=分数
}
公共空的集合Id(整数id)
{
this.id=id
}
public int getId()
{
返回this.id
}
公共字符串getName()
{
返回这个名字
}
公共空的集合名(字符串名)
{
this.name=name
}
public int getScore()
{
返回这个.分数
}
public void setScore(int score)
{
得分=分数
}
公共字符串toString() {
return 'ID:' getId() '\t姓名:' getName() '\t成绩:' get score();
}
}
//这是用户类
类别用户
{
私有字符串用户名;
私有字符串用户语法
公共用户(字符串用户名,字符串userParsword)
{
this .用户名=用户名;
这个。用户分析字=用户分析字;
}
公共字符串getUserName()
{
返回这个。用户名;
}
公共空集合名(字符串用户名)
{
this .用户名=用户名;
}
公共字符串getUserParsword()
{
返回这个。用户解析单词;
}
公共void setUserParsword(字符串UserParsword)
{
这个。用户分析字=用户分析字;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。