<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C#實現學生成績管理系統的具體程式碼,供大家參考,具體內容如下
使用連結串列寫學生成績管理系統
連結串列可以靈活的展示增刪改查
下面是結果演示
這是登入及部分新增
繼續新增
繼續新增及輸出成績
學生成績查詢
學生資訊修改再輸出
刪除再輸出
0直接退出了
/* Author:馬志勇 date:2020-10-14 */ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //2. 在使用者登入介面提示使用者輸入使用者名稱和密碼,並根據使用者名稱和密碼決定 能否登入系統。 // 3. 合法使用者登陸成功後,在螢幕上顯示如下功能選單: // 1.學生成績輸入 2.學生成績輸出 3.學生成績查詢 4.學生成績修改 0.退出系統 // 提示使用者輸入選擇號,使用者輸入正確的選擇好後執行相應功能。執行完對應功 能後返回功能選單。 Console.WriteLine("歡迎來到成績管理系統!"); while (true) { Console.WriteLine("***請輸入賬號:"); String userName = Console.ReadLine(); Console.WriteLine("***請輸入密碼:"); String userPassword = Console.ReadLine(); if (userName.Equals("123456") && userPassword.Equals("456789")) { Console.WriteLine("***賬號密碼正確請進入"); break; } else { Console.WriteLine("賬號密碼不一致,是否重新進入![1:重新輸入---2:退出]"); int n = int.Parse(Console.ReadLine()); while (true) { if (n == 1 || n == 2) { break; } else { Console.WriteLine("***序號有誤請重新輸入!"); n = int.Parse(Console.ReadLine()); } } if (n==2) { Process.GetCurrentProcess().Kill(); } } } showView(); showChoice(); StudentLinkedList link = new StudentLinkedList(); while (true) { Console.WriteLine("***請選這些序號 "); int n = int.Parse(Console.ReadLine()); switch (n) { //0.退出系統 case 0: { Process.GetCurrentProcess().Kill(); break; } //1.學生成績輸入 case 1: { Console.WriteLine("***請輸入ID賬號:"); int id = int.Parse(Console.ReadLine()); Console.WriteLine("***請輸入姓名:"); String name = Console.ReadLine(); Console.WriteLine("***請輸入成績:"); int score = int.Parse(Console.ReadLine()); link.add(getStudentNode(id, name, score)); break; } //2.學生成績輸出 case 2: { link.show(); break; } // 3.學生成績查詢 case 3: { Console.WriteLine("***請輸入你要查詢的id賬號"); int index = int.Parse(Console.ReadLine()); Student student=link.search(index); Console.WriteLine(student.toString()); break; } //4.學生成績修改 case 4: { Console.WriteLine("***[注]:只能修改成績!"); Console.WriteLine("***請輸入你要修改的id賬號"); int index = int.Parse(Console.ReadLine()); Console.WriteLine("***請輸入你要修改的id分數"); int score = int.Parse(Console.ReadLine()); link.upThis(index, score); break; } case 5: { Console.WriteLine("***請輸入你要刪除的id賬號"); int index = int.Parse(Console.ReadLine()); link.delete(index); break; } default: { break; } } showChoice(); } Console.ReadKey(); } //獲取節點物件 public static StudentNode getStudentNode(int id,String name,int score ) { return new StudentNode(new Student(id,name,score)); } //啟動介面 // 1.學生成績輸入 2.學生成績輸出 3.學生成績查詢 4.學生成績修改 0.退出系統 public static void showView() { Console.WriteLine("|----------------------------程式啟動---------------------------|"); Console.WriteLine("|ttt學生成績管理系統ttt|"); Console.WriteLine("|---------------------------------------------------------------|"); Console.WriteLine("|ttt開發人姓名:馬志勇ttt|"); Console.WriteLine("|ttt開發時間:2020-20-14ttt|"); Console.WriteLine("|ttt按任意鍵進入系統ttt|"); Console.WriteLine("|---------------------------------------------------------------|"); } public static void showChoice() { Console.WriteLine("|---------------------------------------------------------------|"); Console.WriteLine("|ttt0.退出系統tttt|"); Console.WriteLine("|ttt1.學生成績輸入tttt|"); Console.WriteLine("|ttt2.學生成績輸出tttt|"); Console.WriteLine("|ttt3.學生成績查詢tttt|"); Console.WriteLine("|ttt4.學生成績修改tttt|"); Console.WriteLine("|ttt5.刪除這個學生tttt|"); Console.WriteLine("|---------------------------------------------------------------|"); } } class StudentLinkedList { //定義一個頭結點啥都不放 StudentNode head = null; public StudentLinkedList() { head=new StudentNode(null); } //新增 按照學號順序順序進行新增 //如果學號相同則不能新增 public void add(StudentNode node) { if (head.next == null) { head.next = node; return; } //否則定義一個變數臨時變數進行處理; StudentNode temp = head; int id = node.s.getId(); bool flag = false; while (true) { if (temp.next == null) { flag = false; break; } if (temp.next.s.getId() > id) { flag = false; break; } else if (temp.next.s.getId() == id) { //這個情況是有重複的就不能新增進去 flag = true; break; } temp = temp.next; } if (flag) { Console.WriteLine("這個序號已經存在"); } else { node.next=temp.next; temp.next = node; } } //刪除 //只能通過id進行刪除 public bool delete(int id) { if (head.next==null) { return false; } StudentNode temp = head; while (true) { if (temp.next==null) { return false; } if (temp.next.s.getId()==id) { break; } temp = temp.next; } if (temp.next.next != null) { temp.next = temp.next.next; } else { temp.next = null; } return true; } //修改 //只能修改成績 public void upThis(int id,int score) { if (head.next == null) { Console.WriteLine("沒有資料,無法修改!"); return; } StudentNode temp = head.next; while (true) { if (temp==null) { Console.WriteLine("沒有這個ID資料!"); return; } if (temp.s.getId()== id) { temp.s.setScore(score); return; } temp = temp.next; } } //查詢 public Student search(int id) { if (head.next == null) { Console.WriteLine("沒有資料,無法修改!"); return null; } StudentNode temp = head.next; while (true) { if (temp == null) { Console.WriteLine("沒有這個ID資料!"); return null; } if (temp.s.getId() == id) { return new Student(temp.s.getId(), temp.s.getName(), temp.s.getScore()); } temp = temp.next; } } //遍歷 public void show() { Console.WriteLine("IDtt姓名tt分數"); StudentNode temp = head.next; while (true) { if (temp==null) { break; } Console.WriteLine(temp.s.getId()+"tt"+temp.s.getName()+"tt"+temp.s.getScore()); temp = temp.next; } } } //建立一個連結串列進行處理這些資料 class StudentNode { public Student s; public StudentNode next; public StudentNode(Student s) { this.s = s; } } //定義學生類 class Student { private int id; private String name; private int score; public Student(int id, String name, int score) { this.id = id; this.name = name; this.score = score; } public void setId(int id) { this.id = id; } public int getId() { return this.id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getScore() { return this.score; } public void setScore(int score) { this.score = score; } public String toString() { return "ID:"+getId() + "t姓名:" + getName() + "t成績:" + getScore(); } } //這是使用者類 class User { private String userName; private String userParsword; public User(String userName, String userParsword) { this.userName = userName; this.userParsword = userParsword; } public String getUserName() { return this.userName; } public void setName(String userName) { this.userName = userName; } public String getUserParsword() { return this.userParsword; } public void setUserParsword(String userParsword) { this.userParsword = userParsword; } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45