知识点

一种类似指针的数据结构?
文件的读取和写入 避免乱码 ansi
字符串读取后分割的bug 可能是因为编码问题导致的 为了解决这个bug 写入的时候直接用\r\n分割了 但是解决乱码问题之后可能就没有这个bug了 以后可以用\t或者space分割试试

完全面向对象用起来不是很习惯,定义全局变量都要放在一个单独的类里
窗体之间的交互也不是很会 尤其是排序那部分 每一种排序方式都是复制粘贴的 除了那个下拉菜单以外(用的switch)有没有可能定义一个全局函数?

效果


其他窗体的图懒得帖了,等完善总分平均分那部分之后一起吧

代码

program.cs

/*                               学生成绩管理系统* 待添加功能:* * 按照姓名查找学生* 添加时学号重复性检查* 一键生成学生、分数,学号重复性检查,自动添加* 排序方式下拉菜单* 注册账户,登录密码(有点鸡肋)*/using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public class LinkList{public Node Head { set; get; } //单链表头public int total { set; get; } //总人数//构造public LinkList(){Head = null;total = 0;}//增加新元素到单链表末尾public static void Append(int id, string name, int classnum, int chinese, int math, int english, int physics, int politics, int sports){Node foot = new Node(id, name, classnum, chinese, math, english, physics, politics, sports);Node A = new Node(id, name, classnum, chinese, math, english, physics, politics, sports);if (PublicValue.Head == null){PublicValue.Head = foot;return;}A = PublicValue.Head;while (A.Next != null){A = A.Next;}A.Next = foot;}}//全局变量public class PublicValue{public static Node Head; //单链表头public static Node Tail; //单链表尾public static int total; //学生总数}static class Program{//应用程序的主入口点[STAThread]static void Main(){LinkList link = new LinkList();Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MainForm());}}
}

mainform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Text;namespace C_sharp学生管理系统
{public partial class MainForm : Form{public MainForm(){InitializeComponent();}//显示学生名单:从head到null遍历private void button1_Click(object sender, EventArgs e){Node B = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值B = PublicValue.Head;textBox1.Text = "";//先清空textBox1.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n";while (B != null){textBox1.Text += B.id + "\t" + B.name + "\t" + B.classnum + "\t" + B.chinese + "\t" + B.math + "\t" + B.english + "\t" + B.physics + "\t" + B.politics + "\t" + B.sports + "\t" + B.total+ "\t" + B.average.ToString("f2") + "\r\n";B = B.Next;}}//添加学生private void add_Click(object sender, EventArgs e){AddStuForm f2 = new AddStuForm();f2.ShowDialog();button1_Click(null, null);}//修改学生private void change_Click(object sender, EventArgs e){ChangeStuForm f3 = new ChangeStuForm();f3.ShowDialog();button1_Click(null, null);}//删除学生private void delete_Click(object sender, EventArgs e){DelStuForm f4 = new DelStuForm();f4.ShowDialog();button1_Click(null, null);}private void button4_Click(object sender, EventArgs e){System.Environment.Exit(0);}private void button1_Click_1(object sender, EventArgs e){SortForm f5 = new SortForm();f5.ShowDialog();button1_Click(null, null);}private void textBox1_TextChanged(object sender, EventArgs e){}private void button2_Click(object sender, EventArgs e){FindForm f6 = new FindForm();f6.ShowDialog();}private void button6_Click(object sender, EventArgs e){//清空txtSystem.IO.File.WriteAllText(@"data.txt", string.Empty);//写入StreamWriter sw = new StreamWriter("data.txt", true, Encoding.Default);Node B = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);B = PublicValue.Head;sw.Write(PublicValue.total + "\r\n");while (B != null){sw.Write(B.id + "\r\n" + B.name + "\r\n" + B.classnum + "\r\n" + B.chinese + "\r\n" + B.math + "\r\n" + B.english + "\r\n" + B.physics + "\r\n" + B.politics + "\r\n" + B.sports + "\r\n");B = B.Next;}//清空缓冲区sw.Flush();//关闭流sw.Close();MessageBox.Show("保存成功");}private void button5_Click(object sender, EventArgs e){int i;FileStream fs = new FileStream("data.txt", FileMode.Open);StreamReader sr = new StreamReader(fs, Encoding.Default);//临时接收int id;string name;int classnum;int chinese;int math;int english;int physics;int politics;int sports;PublicValue.total = int.Parse(sr.ReadLine());for (i = 0; i < PublicValue.total; i++){id = int.Parse(sr.ReadLine());name = sr.ReadLine();classnum = int.Parse(sr.ReadLine());chinese = int.Parse(sr.ReadLine());math = int.Parse(sr.ReadLine());english = int.Parse(sr.ReadLine());physics = int.Parse(sr.ReadLine());politics = int.Parse(sr.ReadLine());sports = int.Parse(sr.ReadLine());LinkList.Append(id, name, classnum, chinese, math, english, physics, politics, sports);}sr.Close();MessageBox.Show("导入成功");button1_Click(null, null);}private void button3_Click(object sender, EventArgs e){textBox1.Text = "";//先清空textBox1.Text += "                          学生成绩管理系统\r\n\r\n";textBox1.Text += " by 寒泉hq\r\n\r\n";textBox1.Text += " 欢迎关注我的CSDN博客\r\n\r\n";textBox1.Text += " https://blog.csdn.net/sinat_42483341\r\n\r\n";textBox1.Text += " 仅供学习使用 保留所有权利\r\n\r\n";textBox1.Text += " 2019.03.10\r\n\r\n";}private void button7_Click(object sender, EventArgs e){button6_Click(null, null);System.Environment.Exit(0);}private void MainForm_Load(object sender, EventArgs e){}}//一个节点public class Node{//数据域,当前结点数据//信息public int id;public string name;public int classnum;//分数public int chinese { set; get; }public int math { set; get; }public int english { set; get; }public int physics { set; get; }public int politics { set; get; }public int sports { set; get; }public double total { set; get; }public double average { set; get; }//指针   public Node Next { set; get; }    //位置域,下一个结点地址//构造函数public Node(int id, string name, int classnum, int chinese, int math, int english, int physics, int politics, int sports){this.id = id;this.name = name;this.classnum = classnum;this.chinese = chinese;this.math = math;this.english = english;this.physics = physics;this.politics = politics;this.sports = sports;this.total = this.chinese + this.math + this.english + this.physics + this.politics + this.sports;this.average = this.total / 6;this.Next = null;}}
}

sortform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public partial class SortForm : Form{public SortForm(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Node temp = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值Node left = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node right = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node rightmin = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);left = PublicValue.Head;right = PublicValue.Head;if (left == null){MessageBox.Show("无法排序,请先存入数据");}else{for (; left != null; left = left.Next)//最大的数放在左边{right = left;for (rightmin = right; right != null; right = right.Next)//从右边找出最小的数,用prightmax记录其位置{if (right.id < rightmin.id){rightmin = right;}}//复制粘贴好几遍,有类似于#define的使用方式吗?temp.id = rightmin.id;temp.name = rightmin.name;temp.classnum = rightmin.classnum;temp.chinese = rightmin.chinese;temp.math = rightmin.math;temp.english = rightmin.english;temp.physics = rightmin.physics;temp.politics = rightmin.politics;temp.sports = rightmin.sports;temp.total = rightmin.total;//补充temp.average = rightmin.average;//补充rightmin.id = left.id;rightmin.name = left.name;rightmin.classnum = left.classnum;rightmin.chinese = left.chinese;rightmin.math = left.math;rightmin.english = left.english;rightmin.physics = left.physics;rightmin.politics = left.politics;rightmin.sports = left.sports;rightmin.total = left.total;//补充rightmin.average = left.average;//补充left.id = temp.id;left.name = temp.name;left.classnum = temp.classnum;left.chinese = temp.chinese;left.math = temp.math;left.english = temp.english;left.physics = temp.physics;left.politics = temp.politics;left.sports = temp.sports;left.total = temp.total;//补充left.average = temp.average;//补充}//输出MessageBox.Show("排序成功");Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值textBox1.Text = "";//先清空textBox1.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n";cur = PublicValue.Head;while (cur != null){textBox1.Text += cur.id + "\t" + cur.name + "\t" + cur.classnum + "\t" + cur.chinese + "\t" + cur.math + "\t" + cur.english + "\t" + cur.physics + "\t" + cur.politics + "\t" + cur.sports+ "\t"+cur.total + "\t" + cur.average.ToString("f2") + "\r\n";cur = cur.Next;}}}//按班级排序private void button2_Click(object sender, EventArgs e){Node temp = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值Node left = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node right = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node rightmin = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);left = PublicValue.Head;right = PublicValue.Head;if (left == null){MessageBox.Show("无法排序,请先存入数据");}else{for (; left != null; left = left.Next)//最大的数放在左边{right = left;for (rightmin = right; right != null; right = right.Next)//从右边找出最小的数,用prightmax记录其位置{if (right.classnum < rightmin.classnum){rightmin = right;}}//复制粘贴好几遍,有类似于#define的使用方式吗?temp.id = rightmin.id;temp.name = rightmin.name;temp.classnum = rightmin.classnum;temp.chinese = rightmin.chinese;temp.math = rightmin.math;temp.english = rightmin.english;temp.physics = rightmin.physics;temp.politics = rightmin.politics;temp.sports = rightmin.sports;temp.total = rightmin.total;//补充temp.average = rightmin.average;//补充rightmin.id = left.id;rightmin.name = left.name;rightmin.classnum = left.classnum;rightmin.chinese = left.chinese;rightmin.math = left.math;rightmin.english = left.english;rightmin.physics = left.physics;rightmin.politics = left.politics;rightmin.sports = left.sports;rightmin.total = left.total;//补充rightmin.average = left.average;//补充left.id = temp.id;left.name = temp.name;left.classnum = temp.classnum;left.chinese = temp.chinese;left.math = temp.math;left.english = temp.english;left.physics = temp.physics;left.politics = temp.politics;left.sports = temp.sports;left.total = temp.total;//补充left.average = temp.average;//补充}//输出MessageBox.Show("排序成功");Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值textBox1.Text = "";//先清空textBox1.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n";cur = PublicValue.Head;while (cur != null){textBox1.Text += cur.id + "\t" + cur.name + "\t" + cur.classnum + "\t" + cur.chinese + "\t" + cur.math + "\t" + cur.english + "\t" + cur.physics + "\t" + cur.politics + "\t" + cur.sports + "\t" + cur.total + "\t" + cur.average.ToString("f2") + "\r\n";cur = cur.Next;}}}private void button4_Click(object sender, EventArgs e){this.Close();}//按总分排序private void button3_Click(object sender, EventArgs e){Node temp = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值Node left = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node right = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node rightmin = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);left = PublicValue.Head;right = PublicValue.Head;if (left == null){MessageBox.Show("无法排序,请先存入数据");}else{for (; left != null; left = left.Next)//最大的数放在左边{right = left;for (rightmin = right; right != null; right = right.Next)//从右边找出最小的数,用prightmax记录其位置{if (right.total > rightmin.total)//从大到小 其他排序方式只改这一行即可{rightmin = right;}}//复制粘贴好几遍,有类似于#define的使用方式吗?temp.id = rightmin.id;temp.name = rightmin.name;temp.classnum = rightmin.classnum;temp.chinese = rightmin.chinese;temp.math = rightmin.math;temp.english = rightmin.english;temp.physics = rightmin.physics;temp.politics = rightmin.politics;temp.sports = rightmin.sports;temp.total = rightmin.total;//补充temp.average = rightmin.average;//补充rightmin.id = left.id;rightmin.name = left.name;rightmin.classnum = left.classnum;rightmin.chinese = left.chinese;rightmin.math = left.math;rightmin.english = left.english;rightmin.physics = left.physics;rightmin.politics = left.politics;rightmin.sports = left.sports;rightmin.total = left.total;//补充rightmin.average = left.average;//补充left.id = temp.id;left.name = temp.name;left.classnum = temp.classnum;left.chinese = temp.chinese;left.math = temp.math;left.english = temp.english;left.physics = temp.physics;left.politics = temp.politics;left.sports = temp.sports;left.total = temp.total;//补充left.average = temp.average;//补充}//输出MessageBox.Show("排序成功");Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值textBox1.Text = "";//先清空textBox1.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n";cur = PublicValue.Head;while (cur != null){textBox1.Text += cur.id + "\t" + cur.name + "\t" + cur.classnum + "\t" + cur.chinese + "\t" + cur.math + "\t" + cur.english + "\t" + cur.physics + "\t" + cur.politics + "\t" + cur.sports + "\t" + cur.total + "\t" + cur.average.ToString("f2") + "\r\n";cur = cur.Next;}}}private void button5_Click(object sender, EventArgs e){int choose=-1;//语文 数学 英语 物理 政治 体育if (comboBox1.Text == "语文") choose = 0;else if (comboBox1.Text == "数学") choose = 1;else if (comboBox1.Text == "英语") choose = 2;else if (comboBox1.Text == "物理") choose = 3;else if (comboBox1.Text == "政治") choose = 4;else if (comboBox1.Text == "体育") choose = 5;//排序Node temp = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值Node left = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node right = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);Node rightmin = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);left = PublicValue.Head;right = PublicValue.Head;if (left == null){MessageBox.Show("无法排序,请先存入数据");}else{for (; left != null; left = left.Next)//最大的数放在左边{right = left;for (rightmin = right; right != null; right = right.Next)//从右边找出最小的数,用prightmax记录其位置{switch(choose){case -1:MessageBox.Show("出错了!choose=-1 没有选择");break;case 0:if (right.chinese > rightmin.chinese)//从大到小{rightmin = right;}break;case 1:if (right.math > rightmin.math)//从大到小{rightmin = right;}break;case 2:if (right.english > rightmin.english)//从大到小{rightmin = right;}break;case 3:if (right.physics > rightmin.physics)//从大到小{rightmin = right;}break;case 4:if (right.politics > rightmin.politics)//从大到小{rightmin = right;}break;case 5:if (right.sports > rightmin.sports)//从大到小{rightmin = right;}break;}}//复制粘贴好几遍,有类似于#define的使用方式吗?temp.id = rightmin.id;temp.name = rightmin.name;temp.classnum = rightmin.classnum;temp.chinese = rightmin.chinese;temp.math = rightmin.math;temp.english = rightmin.english;temp.physics = rightmin.physics;temp.politics = rightmin.politics;temp.sports = rightmin.sports;temp.total = rightmin.total;//补充temp.average = rightmin.average;//补充rightmin.id = left.id;rightmin.name = left.name;rightmin.classnum = left.classnum;rightmin.chinese = left.chinese;rightmin.math = left.math;rightmin.english = left.english;rightmin.physics = left.physics;rightmin.politics = left.politics;rightmin.sports = left.sports;rightmin.total = left.total;//补充rightmin.average = left.average;//补充left.id = temp.id;left.name = temp.name;left.classnum = temp.classnum;left.chinese = temp.chinese;left.math = temp.math;left.english = temp.english;left.physics = temp.physics;left.politics = temp.politics;left.sports = temp.sports;left.total = temp.total;//补充left.average = temp.average;//补充}//输出MessageBox.Show("排序成功");Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值textBox1.Text = "";//先清空textBox1.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n";cur = PublicValue.Head;while (cur != null){textBox1.Text += cur.id + "\t" + cur.name + "\t" + cur.classnum + "\t" + cur.chinese + "\t" + cur.math + "\t" + cur.english + "\t" + cur.physics + "\t" + cur.politics + "\t" + cur.sports + "\t" + cur.total + "\t" + cur.average.ToString("f2") + "\r\n";cur = cur.Next;}}}}
}

findform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public partial class FindForm : Form{public FindForm(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){this.Close();}//查找学生private void button2_Click(object sender, EventArgs e){Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值cur = PublicValue.Head;textBox2.Text = "";//先清空textBox2.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\t总分\t平均分\r\n\r\n";int findId = int.Parse(textBox1.Text);while (cur != null){if (cur.id == findId){textBox2.Text += cur.id + "\t";textBox2.Text += cur.name + "\t";textBox2.Text += cur.classnum + "\t";textBox2.Text += cur.chinese + "\t";textBox2.Text += cur.math + "\t";textBox2.Text += cur.english + "\t";textBox2.Text += cur.physics + "\t";textBox2.Text += cur.politics + "\t";textBox2.Text += cur.sports + "\t";textBox2.Text += cur.total + "\t";textBox2.Text += cur.average.ToString("f2") ;break;}cur = cur.Next;}if (cur == null){MessageBox.Show("你输入的学号不存在!");}}}
}

delstuform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public partial class DelStuForm : Form{public DelStuForm(){InitializeComponent();}private void Form4_Load(object sender, EventArgs e){}//删除 点击查找信息private void button1_Click(object sender, EventArgs e){Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值cur = PublicValue.Head;textBox2.Text = "";//先清空textBox2.Text += "学号\t姓名\t班级\t语文\t数学\t英语\t物理\t政治\t体育\r\n\r\n";int findId = int.Parse(textBox1.Text);while (cur != null){if (cur.id == findId){textBox2.Text += cur.id + "\t";textBox2.Text += cur.name + "\t";textBox2.Text += cur.classnum + "\t";textBox2.Text += cur.chinese + "\t";textBox2.Text += cur.math + "\t";textBox2.Text += cur.english + "\t";textBox2.Text += cur.physics + "\t";textBox2.Text += cur.politics + "\t";textBox2.Text += cur.sports;break;}cur = cur.Next;}if (cur == null){MessageBox.Show("你输入的学号不存在!");}}//删除学生private void button2_Click(object sender, EventArgs e){Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//大哥Node last = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//小弟cur = PublicValue.Head;last = cur;int findId = int.Parse(textBox1.Text);//查找while (cur != null){if (cur.id == findId)//如果找到了{PublicValue.total--;if (cur == PublicValue.Head)//如果删除的是头节点{PublicValue.Head = PublicValue.Head.Next;MessageBox.Show("删除成功");return;}else{last.Next = cur.Next;//垃圾回收机制?不需要自己清理内存?MessageBox.Show("删除成功");return;}}last = cur;//小弟踩大哥脚印cur = cur.Next;//大哥先走一步}if (cur == null){MessageBox.Show("你删除的学号不存在!");}}private void button3_Click(object sender, EventArgs e){this.Close();}}
}

changestuform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public partial class ChangeStuForm : Form{public ChangeStuForm(){InitializeComponent();}private void Form3_Load(object sender, EventArgs e){}//输入学号,点击确定private void button1_Click(object sender, EventArgs e){//遍历查找Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值cur = PublicValue.Head;//从头开始查找int findId = int.Parse(textBox1.Text);while (cur != null){if (cur.id == findId){textBox2.Text = cur.name;textBox3.Text = Convert.ToString(cur.classnum);textBox4.Text = Convert.ToString(cur.chinese);textBox5.Text = Convert.ToString(cur.math);textBox6.Text = Convert.ToString(cur.english);textBox7.Text = Convert.ToString(cur.physics);textBox8.Text = Convert.ToString(cur.politics);textBox9.Text = Convert.ToString(cur.sports);break;}cur = cur.Next;}if (cur == null){MessageBox.Show("你输入的学号不存在!");}}//修改后点击确定private void button2_Click(object sender, EventArgs e){//迷之再次遍历查找Node cur = new Node(0, "0", 0, 0, 0, 0, 0, 0, 0);//毫无意义的赋值cur = PublicValue.Head;//从头开始查找int findId = int.Parse(textBox1.Text);while (cur != null){if (cur.id == findId){cur.name = textBox2.Text;cur.classnum = int.Parse(textBox3.Text);cur.chinese = int.Parse(textBox4.Text);cur.math = int.Parse(textBox5.Text);cur.english = int.Parse(textBox6.Text);cur.physics = int.Parse(textBox7.Text);cur.politics = int.Parse(textBox8.Text);cur.sports = int.Parse(textBox9.Text);cur.total = cur.chinese + cur.math + cur.english + cur.physics + cur.politics + cur.sports;cur.average = cur.total / 6;MessageBox.Show("修改成功");break;}cur = cur.Next;}if (cur == null){MessageBox.Show("修改失败,你输入的学号不存在!请不要改变刚才输入的学号");}}private void button3_Click(object sender, EventArgs e){this.Close();}}
}

addstuform.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C_sharp学生管理系统
{public partial class AddStuForm : Form{public AddStuForm(){InitializeComponent();}/// <summary>/// 点击"添加"按钮/// 增加新元素到单链表末尾/// </summary>public void button1_Click(object sender, EventArgs e){//临时接收int id;string name;int classnum;//分数int chinese;int math;int english;int physics;int politics;int sports;id = int.Parse(idnum.Text);name = textBox2.Text;classnum = int.Parse(textBox3.Text);chinese = int.Parse(textBox4.Text);math = int.Parse(textBox5.Text);english = int.Parse(textBox6.Text);physics = int.Parse(textBox7.Text);politics = int.Parse(textBox8.Text);sports = int.Parse(textBox8.Text);LinkList.Append(id, name, classnum, chinese, math, english, physics, politics, sports);PublicValue.total++;MessageBox.Show("添加成功");}//自动填充表单private void button2_Click(object sender, EventArgs e){Random rd = new Random();if (Convert.ToString(idnum.Text) == ""){idnum.Text = Convert.ToString(1);}else{idnum.Text = Convert.ToString(1 + int.Parse(idnum.Text));//学号自动顺延}textBox2.Text = "自动";textBox3.Text = Convert.ToString(rd.Next(1, 10));textBox4.Text = Convert.ToString(rd.Next(50, 100));textBox5.Text = Convert.ToString(rd.Next(50, 100));textBox6.Text = Convert.ToString(rd.Next(50, 100));textBox7.Text = Convert.ToString(rd.Next(50, 100));textBox8.Text = Convert.ToString(rd.Next(50, 100));textBox9.Text = Convert.ToString(rd.Next(50, 100));}private void button3_Click(object sender, EventArgs e){this.Close();}}
}

C# 学生成绩管理系统 完整版相关推荐

  1. 学生成绩管理系统完整版

    学生成绩管理系统能够实现基本的录入.查找.插入.删除.修改.计算平均成绩.根据平均成绩排名和输出等功能. 学生成绩管理系统可以在VC++.Dev-c++等可视化环境中编译 录入(选择1):录入也是创建 ...

  2. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

  3. C语言学生成绩管理系统文档版,C语言学生信息管理系统(完整版)总结.docx

    电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工程系 授课教师 杜娥 2015年12 ...

  4. 利用Python分析学生成绩(完整版)

    注意:本实验是基于Anconda3.X所进行的 一.题目描述 二.题目分析 三.完整代码展示 四.结果展示 一.题目描述 个人构造一个30名学生的班级,每名学生有三门课程,学生的学号和各门成绩形如: ...

  5. 学生成绩管理系统(完整版)

    说明 一.设计报告的基本内容至少包括封面. 正文. 参考文献三部分. 1. 封面 封面按照模版填写,不得随意更改. 2. 正文 正文是设计报告的主体, 具体由以下几部分组成: (1) 问题描述 描述要 ...

  6. 基于PHP和MySql的学生成绩管理系统(附完整版代码)

    系统开发运行环境 操作系统:win10 软件:AppServ(php+apache+mysql),nginx(代理) 2.2 功能要求 2.2.1 教职工 对学生成绩有一个整体的了解,在今后的教学中能 ...

  7. java计算并显示学生的成绩_Java开学测试-学生成绩管理系统

    题目: 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishiscore,networkscore ...

  8. ASP.NetCore+VUE 实现学生成绩管理系统(一)

    周三 陪伴是最长情的告白 还有两天情人节:「无论是在家里,还是在工作,或者是在自我防护中,多给家人爱人发句平安,是最有心意.最重要的一件事.」 ♥感谢老李???? 近来一段时间一直没有学习新的东西,闲 ...

  9. JSP Servlet Mysql学生成绩管理系统

    一. 开发背景 软件名称:学生成绩管理系统 使用对象:有Java基础的同学 二. 需求分析 系统分析 该学生信息管理系统涉及到学生.教师.系统管理员.班级.学生成绩.课程.设置一个系统管理员对系统进行 ...

最新文章

  1. JavaWeb入门篇(6) 实现字符过滤器 解决全局字符乱码 实现模拟权限拦截
  2. linux的文件搜索命令,Linux文件搜索命令find的用法 | 术与道的分享
  3. h5分线程Worker
  4. mysql 命令类型_mysql 基本命令(3)-数据类型和运算符
  5. Yii 2.0 权威指南 (2) 使用forms
  6. 涂抹oracle源代码,涂抹Oracle:三思笔记之一步一步学ORACLE
  7. 零起点学习Linux系列培训视频 [共61课] (万分感谢寒冰老师分享!)
  8. php怎么做一个音乐播放器,实现一个HTML5音乐播放器的实例
  9. 计算机怎么禁用软件网络访问,Windows10系统下禁止软件联网的两种方法
  10. Linux运维踩过的坑---Temporary failure in name resolution
  11. MML ch 10 主成分分析降维(Dimensionality Reduction with Principal Component Analysis)
  12. 智能合约自动化工具:示例指南
  13. 温控驱动(五)dts参数解析、节点作用
  14. 自适应学习系统_如何建立适应性学习系统
  15. NBA表格_巅峰乔丹的进攻水平,是NBA常规赛历史最佳么?
  16. 一文读懂ADAS系统
  17. Unity3D新手教学,让你十二小时,从入门到掌握!(三 )
  18. 排序(堆排序,快速排序,归并排序)
  19. 2023年,最新最权威的上海Java培训机构排行榜出炉!
  20. 江苏具有计算机博士点的大学排名,不愧为高教强省, 江苏27所大学拥有博士点, 有你母校么...

热门文章

  1. python遍历文件对象_Python文件常见操作实例分析【读写、遍历】
  2. 深度学习-人工神经网络概述
  3. linux修改文件描述符,linux最大允许的文件描述符open files数nofile修改
  4. POJ2352 stars(树状数组)
  5. 28.特性trait.rs
  6. 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
  7. 【玩转cocos2d-x之十五】关卡选择的设计
  8. Chromium Android开发的Eclipse配置
  9. ClickHouse 分布式原理:Distributed引擎
  10. 第21讲:IP代理池的搭建和使用