通用學(xué)生信息管理系統(tǒng)_第1頁
通用學(xué)生信息管理系統(tǒng)_第2頁
通用學(xué)生信息管理系統(tǒng)_第3頁
通用學(xué)生信息管理系統(tǒng)_第4頁
通用學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、C#程序設(shè)計期末作業(yè)通用學(xué)生信息管理系統(tǒng)計算機科學(xué)與工程學(xué)院班級:123456姓名:張三兒學(xué)號:123456782014年5月一、題目分析1、基本功能要求:(1)創(chuàng)建相應(yīng)的成員變量保存學(xué)生基本信息;(2)創(chuàng)建相應(yīng)屬性和索引以實現(xiàn)對成員變量訪問的封裝;(3)創(chuàng)建相應(yīng)的方法以實現(xiàn)對學(xué)生基本信息的管理;(4)創(chuàng)建相應(yīng)的方法以實現(xiàn)對學(xué)生成績的管理;(5)構(gòu)造函數(shù)和析構(gòu)函數(shù);(6)由學(xué)生類派生出小學(xué)生、中學(xué)生以及大學(xué)生;(7)盡量用上繼承、多態(tài)、重載、覆蓋、接口、抽象類、代理、事件等知識。2、設(shè)計思路:本題目要求學(xué)生設(shè)計一個通用學(xué)生信息管理系統(tǒng),能夠分別實現(xiàn)對小學(xué)生、中學(xué)生以及大學(xué)生信息及成績的管理。定

2、義學(xué)生類Student,在學(xué)生類中定義學(xué)生的公共屬性,比如學(xué)號、姓名以及平均分等。由學(xué)生類Student派生出三個子類,即小學(xué)生類xiaoxue、中學(xué)生類zhongxue和大學(xué)生類daxue。再分別在各個子類中定義其獨有屬性,編寫函數(shù)進(jìn)行各種操作, 主要包括對學(xué)生信息的增、刪、改、查及顯示全部等操作,以及對學(xué)生的成績進(jìn)行管理,主要是求平均分操作并按從高到低降序排列輸出。本系統(tǒng)采用文件存儲數(shù)據(jù),代碼中有對應(yīng)的文件操作,能夠?qū)崿F(xiàn)對輸入的數(shù)據(jù)的保存。二、系統(tǒng)設(shè)計小學(xué)生管理界面大學(xué)生管理界面中學(xué)生管理界面登錄主界面增加信息修改信息 刪除信息 查找信息 增加信息 修改信息 刪除信息 查找信息 增加信息

3、修改信息 刪除信息 查找信息 排 序 排 序 排 序 退出系統(tǒng)2、界面設(shè)計:(1)用戶選擇界面:(2子類界面:(3)增加學(xué)生信息:(4)修改學(xué)生信息:(5)刪除學(xué)生信息:(6)查找學(xué)生信息:(7)顯示全部信息:(8)按平均分排序:三、知識清單1、定義了相應(yīng)的成員變量來保存學(xué)生的基本信息,如學(xué)號、姓名、科目成績等;2、定義了相應(yīng)屬性以來獲取學(xué)生基本信息;3、定義了相應(yīng)的方法實現(xiàn)了對學(xué)生基本信息的管理,如Add()、Order()、Delete()等方法實現(xiàn)對學(xué)生信息的增刪改查;4、定義了相應(yīng)的方法Order()對學(xué)生成績信息進(jìn)行管理;5、定義了構(gòu)造函數(shù)進(jìn)行初始化并且有默認(rèn)的析構(gòu)函數(shù);6、定義學(xué)生

4、類Student,由Student類派生出三個子類分別對小學(xué)生、中學(xué)生、大學(xué)生信息進(jìn)行管理;7、本實驗程序沒有連接數(shù)據(jù)庫,所用數(shù)據(jù)都存在相應(yīng)的文件操作中,有相應(yīng)的方法實現(xiàn)文件相關(guān)操作;8、重載了操作符小于和大于號五、實驗程序代碼using System;using System.IO;using ConsoleApplication1;public class Student public string no; public string name; public int average; public static bool operator (Student s1, Student s2)

5、 /重載 if (s1.average s2.average) return true; else return false; public static bool operator (Student s1, Student s2) if (s1.average s2.average) return true; else return false; ;class StudentManageSystem static ConsoleApplication1.xiaoxue sd; public static void show() int cases = 0; bool flag = true;

6、 while (flag) Console.Clear(); Console.WriteLine(tt* 歡迎進(jìn)入學(xué)生信息管理系統(tǒng)!*); Console.WriteLine(tt 1. 小學(xué)生界面); Console.WriteLine(tt 2. 中學(xué)生界面); Console.WriteLine(tt 3. 大學(xué)生界面); Console.WriteLine(tt*); Console.Write(tt請輸入選擇(數(shù)字1-3):); cases = Convert.ToInt32(Console.ReadLine(); if (cases = 1) flag = false; switc

7、h (cases) case 1: Menu1(); break; case 2: Menu2(); break; case 3: Menu3(); break; public static void Menu1() /小學(xué)主菜單 xiaoxue s = new xiaoxue(); bool Flag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.WriteLine(tt* 歡迎進(jìn)入小學(xué)生信息管理系統(tǒng)!*); Console.WriteLine(tt 1. 增加數(shù)據(jù)); Console.WriteLine(t

8、t 2. 修改數(shù)據(jù)); Console.WriteLine(tt 3. 刪除數(shù)據(jù)); Console.WriteLine(tt 4. 按姓名查找); Console.WriteLine(tt 5. 顯示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系統(tǒng)); Console.WriteLine(tt*); try Console.Write(tt請輸入選擇(數(shù)字1-7):); selnumber = Convert.ToInt32(Console.ReadLine(); catch (FormatException

9、) Console.WriteLine(你輸入的數(shù)據(jù)格式有誤!); if (selnumber = 1) Flag = false; switch (selnumber) case 1: s.Add(); break; case 2: s.Modify(); break; case 3: s.DeleteData(); break; case 4: s.Search(); break; case 5: s.Browse(); break; case 6: s.Order(); break; case 7: Environment.Exit(0); break; public static vo

10、id Menu2() /中學(xué)主菜單 zhongxue s = new zhongxue(); bool Flag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.WriteLine(tt* 歡迎進(jìn)入中學(xué)生信息管理系統(tǒng)!*); Console.WriteLine(tt 1. 增加數(shù)據(jù)); Console.WriteLine(tt 2. 修改數(shù)據(jù)); Console.WriteLine(tt 3. 刪除數(shù)據(jù)); Console.WriteLine(tt 4. 按姓名查找); Console.WriteLine(tt

11、5. 顯示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系統(tǒng)); Console.WriteLine(tt*); Console.Write(tt請輸入選擇(數(shù)字1-7):); selnumber = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(你輸入的數(shù)據(jù)格式有誤!); if (selnumber = 1) Flag = false; switch (selnumber) case 1: s.Add2(); break; case 2: s.Mod

12、ify2(); break; case 3: s.DeleteData2(); break; case 4: s.Search2(); break; case 5: s.Browse2(); break; case 6: s.Order2(); break; case 7: Environment.Exit(0); break; public static void Menu3() /大學(xué)主菜單 daxue s = new daxue(); bool Flag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.Wr

13、iteLine(tt* 歡迎進(jìn)入大學(xué)生信息管理系統(tǒng)!*); Console.WriteLine(tt 1. 增加數(shù)據(jù)); Console.WriteLine(tt 2. 修改數(shù)據(jù)); Console.WriteLine(tt 3. 刪除數(shù)據(jù)); Console.WriteLine(tt 4. 按姓名查找); Console.WriteLine(tt 5. 顯示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系統(tǒng)); Console.WriteLine(tt*); Console.Write(tt請輸入選擇(數(shù)字1-

14、7):); selnumber = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(你輸入的數(shù)據(jù)格式有誤!); if (selnumber = 1) Flag = false; switch (selnumber) case 1: s.Add3(); break; case 2: s.Modify3(); break; case 3: s.DeleteData3(); break; case 4: s.Search3(); break; case 5: s.Browse3(); break; case 6: s.Order3(); b

15、reak; case 7: Environment.Exit(0); break; public static void Save(int n) /保存N個學(xué)生信息 FileStream fs = null; BinaryWriter bw = null; FileInfo fi = null; DirectoryInfo di = new DirectoryInfo(.); try string s = di.Root.ToString(); /獲取當(dāng)前文件的根目錄 s = s + 1.dat; fi = new FileInfo(s); if (fi.Exists) /判斷文件是否存在,存

16、在則追加,不存在則創(chuàng)建 fs = new FileStream(s, FileMode.Append, FileAccess.Write); bw = new BinaryWriter(fs); else fs = new FileStream(s, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fs); catch (IOException) Console.WriteLine(操作文件失??!); return; try for (int i = 0; i n; i+) bw.Write(sdi.no); bw.Write

17、(); bw.Write(sdi.english); bw.Write(sdi.chinese); bw.Write(sdi.math); bw.Write(sdi.average); catch (IOException) Console.WriteLine(寫文件失??!); return; finally bw.Close(); fs.Close(); Console.WriteLine(數(shù)據(jù)已保存!請按任意鍵繼續(xù)); Console.ReadKey(true); Menu1(); public static void SaveToArray(ref int len) /將

18、數(shù)據(jù)保存至數(shù)組中 sd = new xiaoxuelen; for (int j = 0; j len; j+) sdj = new xiaoxue(); try FileStream fs = null; BinaryReader br = null; DirectoryInfo di = new DirectoryInfo(.); String s = di.Root.ToString(); /獲取當(dāng)前文件的根目錄 s = s + 1.dat; fs = new FileStream(s, FileMode.Open, FileAccess.Read); br = new BinaryRe

19、ader(fs); int i = 0; try for (i = 0; i len; i+) sdi.no = br.ReadString(); = br.ReadString(); sdi.english = br.ReadInt32(); sdi.chinese = br.ReadInt32(); sdi.math = br.ReadInt32(); sdi.average = br.ReadInt32(); catch (EndOfStreamException) len = i - 1; finally br.Close(); fs.Close(); catch r

20、eturn; public static void SaveToFile(int len) /將數(shù)據(jù)保存至文件中 FileStream fs1 = null; BinaryWriter bw = null; DirectoryInfo di; string s; try di = new DirectoryInfo(.); s = di.Root.ToString(); /獲取當(dāng)前文件的根目錄 s = s + 1.dat; fs1 = new FileStream(s, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fs1)

21、; for (int i = 0; i len; i+) if (sdi.no != ) bw.Write(sdi.no); bw.Write(); bw.Write(sdi.english); bw.Write(sdi.chinese); bw.Write(sdi.math); bw.Write(sdi.average); catch (IOException) Console.WriteLine(寫入數(shù)據(jù)錯誤!); Console.ReadKey(true); return; finally bw.Close(); fs1.Close(); Console.WriteLin

22、e(修改數(shù)據(jù)成功!); Console.WriteLine(請按任意鍵繼續(xù)!); Console.ReadKey(true); Menu1(); public static void Main() /主函數(shù) show(); Menu1(); using System;using System.Collections.Generic;using System.Linq;using System.IO;using System.Text;namespace ConsoleApplication1 class xiaoxue:Student static ConsoleApplication1.xi

23、aoxue sd; public int chinese; public int english; public int math; public int getchinese get return chinese; set chinese = value; public int getenglish get return english; set english = value; public int getmath get return math; set math = value; public void Input(int i) /輸入某一學(xué)生信息 Console.WriteLine(

24、n請輸入第0學(xué)生的信息:, i + 1); while (true) /這個循環(huán)用來控制學(xué)號不能相同 Console.Write(n 學(xué)號); sdi.no = Console.ReadLine(); int j = 0; for (j = 0; j i; j+) if (sdi.no != sdj.no) break; if (i = 0 | j != i) break; Console.WriteLine(您輸入的學(xué)號重復(fù),請重輸!); Console.Write( 姓名); = Console.ReadLine(); try Console.Write( 語文成績);

25、sdi.english = Convert.ToInt32(Console.ReadLine(); Console.Write( 英語成績); sdi.chinese = Convert.ToInt32(Console.ReadLine(); Console.Write( 數(shù)學(xué)成績); sdi.math = Convert.ToInt32(Console.ReadLine(); sdi.average = (sdi.english + sdi.chinese + sdi.math) / 3; catch (FormatException e) Console.WriteLine(您輸入的數(shù)據(jù)有

26、誤! + e.Message); public static void SaveToArray(ref int len) ./將數(shù)據(jù)保存至數(shù)組中 public static void Save(int n) . /保存N個學(xué)生信息 public static void SaveToFile(int len) Menu1(); /將數(shù)據(jù)保存至文件中 private static void Menu1() public void Add() /添加模塊 int n = 0; try Console.WriteLine(n請輸入您需添加的學(xué)生記錄的個數(shù):); n = Convert.ToInt32(

27、Console.ReadLine(); catch (FormatException) Console.WriteLine(您輸入的數(shù)據(jù)格式有誤!); sd = new xiaoxuen; for (int i = 0; i n; i+) sdi = new xiaoxue(); for (int i = 0; i n; i+) Input(i); if (n != 0) Save(n); else Menu1(); public void Modify() /修改模塊 int len = 0; BrowseAll(ref len); SaveToArray(ref len); xiaoxue

28、 temp = new xiaoxue(); try Console.WriteLine(請輸入要修改學(xué)生的學(xué)號(學(xué)號不可改):); temp.no = Console.ReadLine(); Console.Write(n姓名:); = Console.ReadLine(); Console.Write(n語文:); temp.english = Convert.ToInt32(Console.ReadLine(); Console.Write(n英語:); temp.chinese = Convert.ToInt32(Console.ReadLine(); Consol

29、e.Write(n數(shù)學(xué):); temp.math = Convert.ToInt32(Console.ReadLine(); temp.average = (temp.chinese + temp.math + temp.english) / 3; catch (FormatException) Console.WriteLine(輸入數(shù)據(jù)格式有誤!); return; bool Flag = false; for (int i = 0; i len; i+) if (sdi.no = temp.no) sdi = temp; Flag = true; if (Flag) SaveToFile

30、(len); else Console.WriteLine(未能查到信息!請重試!); Console.WriteLine(請按任意鍵繼續(xù)!); Console.ReadKey(true); Menu1(); public void DeleteData() /刪除信息 int len = 0; BrowseAll(ref len); SaveToArray(ref len); Console.Write(請輸入您要刪除的學(xué)生的學(xué)號:); String s = Console.ReadLine(); bool flag = false; for (int i = 0; i len; i+) i

31、f (sdi.no = s) flag = true; sdi.no = ; = ; sdi.english = 0; sdi.chinese = 0; sdi.math = 0; sdi.average = 0; SaveToFile(len); if (!flag) Console.WriteLine(沒有此人信息!無法刪除!); Console.WriteLine(請按任意鍵繼續(xù)!); Console.ReadKey(true); Menu1(); public void Search() /查找模塊 Console.Write(請輸入您要查詢的學(xué)生的姓名:); String s = Console.ReadLine(); int len = 80; SaveToArray(ref len); Console.WriteLine(n學(xué)號 姓名 語文 英語 數(shù)學(xué) 平均分); bool flag = false

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論