C#學生管理系統/學習


題目:

實現一個菜單,針對Student.txt與Class.txt文件進行操作

描述:

I 輸入學生信息:輸入學生學號、姓名、性別、出生日期、班級名稱、聯系電話,跟已經存在的學生信息同樣格式保存在文件中。如果學號重復,則提示“學號重復,無法插入”
L 顯示所有學生:每個學生的信息占一行;每個學生的信息項包括學號、姓名、性別、出生日期、班級名稱、聯系電話,各項以Tab分隔
C 按班級查詢:輸入班級名稱,顯示學生詳細信息,包括學號、姓名、性別、聯系電話,各項以Tab分隔。多人分行顯示。
N 按姓名查詢:輸入學生姓名,顯示學生詳細信息,包括學號、姓名、性別、出生日期、班級名稱、聯系電話,各項以Tab分隔。多人分行顯示。
X 退出系統:程序退出

總結:

主要是對文件進行操作。沒什么好說的。

  1 using System;
  2 using System.Collections;
  3 using System.Collections.Generic;
  4 using System.IO;
  5 using System.Text;
  6 
  7 namespace NET第二次作業
  8 {
  9     public class Student
 10     {
 11         public String num;
 12         public String name;
 13         public String sex;
 14         public String date_of_birth;
 15         public String classId;
 16         public String className;
 17         public String telephone;
 18     }
 19     public class myClass
 20     {
 21         public String id;
 22         public String classname;
 23     }
 24     class MyFourTest
 25     {
 26         static List<Student> students = new List<Student>();
 27         static List<myClass> myClasss = new List<myClass>();  
 28         public static void Init()
 29         {
 30 
 31             List<String> student_p = new List<string>();
 32             StreamReader student = new StreamReader("C:\\Users\\a1191\\Desktop\\student.txt", Encoding.Default);
 33            
 34             while (!student.EndOfStream)
 35             {
 36                 student_p.Add(student.ReadLine());
 37                // Console.WriteLine(student_p[i++]+"a");
 38             }
 39             for(int j=0; j<student_p.Count; j++)
 40             {
 41                 string[] arr = student_p[j].Split(',');
 42                 if(arr[0]!="")
 43                 {
 44                     Student student1 = new Student();
 45                     student1.num = arr[0];
 46                     student1.name = arr[1];
 47                     student1.sex = arr[2];
 48                     student1.date_of_birth = arr[3];
 49                     student1.classId = arr[4];
 50                     student1.telephone = arr[5];
 51                     students.Add(student1);
 52                 }
 53 
 54             }
 55             student.Close();
 56             
 57             StreamReader streamReader = new StreamReader("C:\\Users\\a1191\\Desktop\\class.txt", Encoding.Default);
 58             while (!streamReader.EndOfStream)
 59             {
 60                 String class_ = streamReader.ReadLine();
 61                 string[] arr = class_.Split(',');
 62                 myClass t = new myClass();
 63                 t.classname = arr[1];
 64                 t.id = arr[0];
 65                 myClasss.Add(t);
 66                 for(int i=0; i<students.Count; i++)
 67                 {
 68                     if(students[i].classId.Equals(arr[0]))
 69                     {
 70                             students[i].className = arr[1];
 71                         //Console.WriteLine(arr[0]);
 72                     }
 73                 }
 74             }
 75             streamReader.Close();
 76         }
 77 
 78         public static void saveInfo(Student t)
 79         {
 80             StreamWriter student = new StreamWriter("C:\\Users\\a1191\\Desktop\\student.txt", true);
 81             //StreamWriter streamReader = new StreamWriter("C:\\Users\\a1191\\Desktop\\class.txt", true);
 82             String s = t.num + ',' + t.name + ',' + t.sex + ',' + t.date_of_birth + ',' + t.classId + ',' + t.telephone;
 83             student.WriteLine(s);
 84             //String c = t.classId + ',' + t.className + ",2005";
 85             //streamReader.WriteLine(c);
 86             student.Close();
 87             //streamReader.Close();
 88         }
 89         public static void InputStudentInfo()
 90         {
 91             Student t = new Student();
 92             Console.WriteLine("請輸入學號:");
 93             t.num = Console.ReadLine();
 94             for(int i=0; i<students.Count; i++)
 95             {
 96                 if(t.num.Equals(students[i].num))
 97                 {
 98                     Console.WriteLine("學號重復,無法插入");
 99                     return;
100                 }
101             }
102             Console.WriteLine("請輸入姓名:");
103             t.name = Console.ReadLine();
104             Console.WriteLine("請輸入性別:");
105             t.sex = Console.ReadLine();
106             Console.WriteLine("請輸入出生日期:");
107             t.date_of_birth = Console.ReadLine();
108             Console.WriteLine("請輸入班級名稱:");
109             t.className = Console.ReadLine();
110             Console.WriteLine("請輸入聯系電話:");
111             t.telephone = Console.ReadLine();
112             for(int i=0; i<myClasss.Count; i++)
113             {
114                 if(t.className.Equals(myClasss[i].classname))
115                 {
116                     t.classId = myClasss[i].id;
117                 }
118             }
119             students.Add(t);
120             //for(int i=0; i<students.Count; i++)
121             //{
122             //    Console.WriteLine(students[i].className);
123             //}
124 
125             saveInfo(t);
126         }
127         public static void ShowAllStudent()
128         {
129             Console.WriteLine("學號\t姓名\t性別\t出生日期\t班級名稱\t\t聯系電話");
130             for(int i=0; i<students.Count; i++)
131             {
132                 Console.WriteLine(students[i].num + "\t"+ students[i].name + "\t"+ students[i].sex + 
133                     "\t"+ students[i].date_of_birth + "\t"+ students[i].className + "\t" +students[i].telephone);
134             }
135         }
136         public static void GetStudentByClass()
137         {
138             Console.WriteLine("請輸入要查詢的班級名稱:");
139             String name = Console.ReadLine();
140             Console.WriteLine("學號\t姓名\t性別\t聯系電話");
141             for (int i = 0; i < students.Count; i++)
142             {
143                 if(students[i].className.Equals(name))
144                 {
145                     Console.WriteLine(students[i].num + "\t" + students[i].name + "\t" + students[i].sex +
146                         "\t"   + students[i].telephone);
147                 }
148             }
149         }
150         public static void GetStudentByName()
151         {
152             Console.WriteLine("請輸入要查詢的學生姓名:");
153             String name = Console.ReadLine();
154             Console.WriteLine("學號\t姓名\t性別\t出生日期\t班級名稱\t\t聯系電話");
155             for (int i = 0; i < students.Count; i++)
156             {
157                 if (students[i].name.Equals(name))
158                 {
159                     Console.WriteLine(students[i].num + "\t" + students[i].name + "\t" + students[i].sex +
160                         "\t" + students[i].date_of_birth + "\t" + students[i].className + "\t" + students[i].telephone);
161                 }
162             }
163         }
164 
165         public static void StudentTest()
166         {
167             
168             Init();
169             while (true)
170             {
171                 ConsoleKeyInfo cmd;
172                 Console.WriteLine("歡迎使用學生管理系統\n");
173                 Console.WriteLine("I  輸入學生信息\n");
174                 Console.WriteLine("L  顯示所有學生\n");
175                 Console.WriteLine("C  按班級查詢\n");
176                 Console.WriteLine("N  按姓名查詢\n");
177                 Console.WriteLine("X  退出系統\n");
178                 cmd =  Console.ReadKey();
179                 Console.WriteLine("");
180                 switch (cmd.KeyChar)
181                 {
182                     case 'I':
183                         InputStudentInfo();
184                         break;
185                     case 'L':
186                         ShowAllStudent();
187                         break;
188                     case 'C':
189                         GetStudentByClass();
190                         break;
191                     case 'N':
192                         GetStudentByName();
193                         break;
194                     case 'X':
195                         System.Environment.Exit(0);
196                         break;
197                     default:
198                         Console.WriteLine("\n請輸入指定字符(區分大小寫)\n");
199                         break;
200                 }
201                 Console.ReadKey();
202                 Console.Clear();
203             }
204 
205 
206         }
207 
208     }
209 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM