




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#程序設(shè)計(jì)期末作業(yè)通用學(xué)生信息管理系統(tǒng)計(jì)算機(jī)科學(xué)與工程學(xué)院班級(jí):123456姓名:張三兒學(xué)號(hào):123456782014年5月一、題目分析1、基本功能要求:(1)創(chuàng)建相應(yīng)的成員變量保存學(xué)生基本信息;(2)創(chuàng)建相應(yīng)屬性和索引以實(shí)現(xiàn)對(duì)成員變量訪問的封裝;(3)創(chuàng)建相應(yīng)的方法以實(shí)現(xiàn)對(duì)學(xué)生基本信息的管理;(4)創(chuàng)建相應(yīng)的方法以實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的管理;(5)構(gòu)造函數(shù)和析構(gòu)函數(shù);(6)由學(xué)生類派生出小學(xué)生、中學(xué)生以及大學(xué)生;(7)盡量用上繼承、多態(tài)、重載、覆蓋、接口、抽象類、代理、事件等知識(shí)。2、設(shè)計(jì)思路:本題目要求學(xué)生設(shè)計(jì)一個(gè)通用學(xué)生信息管理系統(tǒng),能夠分別實(shí)現(xiàn)對(duì)小學(xué)生、中學(xué)生以及大學(xué)生信息及成績(jī)的管理。定義學(xué)生類Student,在學(xué)生類中定義學(xué)生的公共屬性,比如學(xué)號(hào)、姓名以及平均分等。由學(xué)生類Student派生出三個(gè)子類,即小學(xué)生類xiaoxue、中學(xué)生類zhongxue和大學(xué)生類daxue。再分別在各個(gè)子類中定義其獨(dú)有屬性,編寫函數(shù)進(jìn)行各種操作, 主要包括對(duì)學(xué)生信息的增、刪、改、查及顯示全部等操作,以及對(duì)學(xué)生的成績(jī)進(jìn)行管理,主要是求平均分操作并按從高到低降序排列輸出。本系統(tǒng)采用文件存儲(chǔ)數(shù)據(jù),代碼中有對(duì)應(yīng)的文件操作,能夠?qū)崿F(xiàn)對(duì)輸入的數(shù)據(jù)的保存。二、系統(tǒng)設(shè)計(jì)小學(xué)生管理界面大學(xué)生管理界面中學(xué)生管理界面登錄主界面增加信息修改信息 刪除信息 查找信息 增加信息 修改信息 刪除信息 查找信息 增加信息 修改信息 刪除信息 查找信息 排 序 排 序 排 序 退出系統(tǒng)2、界面設(shè)計(jì):(1)用戶選擇界面:(2子類界面:(3)增加學(xué)生信息:(4)修改學(xué)生信息:(5)刪除學(xué)生信息:(6)查找學(xué)生信息:(7)顯示全部信息:(8)按平均分排序:三、知識(shí)清單1、定義了相應(yīng)的成員變量來保存學(xué)生的基本信息,如學(xué)號(hào)、姓名、科目成績(jī)等;2、定義了相應(yīng)屬性以來獲取學(xué)生基本信息;3、定義了相應(yīng)的方法實(shí)現(xiàn)了對(duì)學(xué)生基本信息的管理,如Add()、Order()、Delete()等方法實(shí)現(xiàn)對(duì)學(xué)生信息的增刪改查;4、定義了相應(yīng)的方法Order()對(duì)學(xué)生成績(jī)信息進(jìn)行管理;5、定義了構(gòu)造函數(shù)進(jìn)行初始化并且有默認(rèn)的析構(gòu)函數(shù);6、定義學(xué)生類Student,由Student類派生出三個(gè)子類分別對(duì)小學(xué)生、中學(xué)生、大學(xué)生信息進(jìn)行管理;7、本實(shí)驗(yàn)程序沒有連接數(shù)據(jù)庫,所用數(shù)據(jù)都存在相應(yīng)的文件操作中,有相應(yīng)的方法實(shí)現(xiàn)文件相關(guān)操作;8、重載了操作符小于和大于號(hào)五、實(shí)驗(yàn)程序代碼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) /重載 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; 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請(qǐng)輸入選擇(數(shù)字1-3):); cases = Convert.ToInt32(Console.ReadLine(); if (cases = 1) flag = false; switch (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(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*); try Console.Write(tt請(qǐng)輸入選擇(數(shù)字1-7):); selnumber = Convert.ToInt32(Console.ReadLine(); catch (FormatException) 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 void 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 5. 顯示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系統(tǒng)); Console.WriteLine(tt*); Console.Write(tt請(qǐng)輸入選擇(數(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.Modify2(); 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.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 5. 顯示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系統(tǒng)); Console.WriteLine(tt*); Console.Write(tt請(qǐng)輸入選擇(數(shù)字1-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(); break; case 7: Environment.Exit(0); break; public static void Save(int n) /保存N個(gè)學(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) /判斷文件是否存在,存在則追加,不存在則創(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(); 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ù)已保存!請(qǐng)按任意鍵繼續(xù)); Console.ReadKey(true); Menu1(); public static void SaveToArray(ref int len) /將數(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 BinaryReader(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 return; 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); 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ù)錯(cuò)誤!); Console.ReadKey(true); return; finally bw.Close(); fs1.Close(); Console.WriteLine(修改數(shù)據(jù)成功!); Console.WriteLine(請(qǐng)按任意鍵繼續(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.xiaoxue 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(n請(qǐng)輸入第0學(xué)生的信息:, i + 1); while (true) /這個(gè)循環(huán)用來控制學(xué)號(hào)不能相同 Console.Write(n 學(xué)號(hào)); 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é)號(hào)重復(fù),請(qǐng)重輸!); Console.Write( 姓名); = Console.ReadLine(); try Console.Write( 語文成績(jī)); sdi.english = Convert.ToInt32(Console.ReadLine(); Console.Write( 英語成績(jī)); sdi.chinese = Convert.ToInt32(Console.ReadLine(); Console.Write( 數(shù)學(xué)成績(jī)); sdi.math = Convert.ToInt32(Console.ReadLine(); sdi.average = (sdi.english + sdi.chinese + sdi.math) / 3; catch (FormatException e) Console.WriteLine(您輸入的數(shù)據(jù)有誤! + e.Message); public static void SaveToArray(ref int len) ./將數(shù)據(jù)保存至數(shù)組中 public static void Save(int n) . /保存N個(gè)學(xué)生信息 public static void SaveToFile(int len) Menu1(); /將數(shù)據(jù)保存至文件中 private static void Menu1() public void Add() /添加模塊 int n = 0; try Console.WriteLine(n請(qǐng)輸入您需添加的學(xué)生記錄的個(gè)數(shù):); n = Convert.ToInt32(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 temp = new xiaoxue(); try Console.WriteLine(請(qǐng)輸入要修改學(xué)生的學(xué)號(hào)(學(xué)號(hào)不可改):); 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(); Console.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(len); else Console.WriteLine(未能查到信息!請(qǐng)重試!); Console.WriteLine(請(qǐng)按任意鍵繼續(xù)!); Console.ReadKey(true); Menu1(); public void DeleteData() /刪除信息 int len = 0; BrowseAll(ref len); SaveToArray(ref len); Console.Write(請(qǐng)輸入您要?jiǎng)h除的學(xué)生的學(xué)號(hào):); String s = Console.ReadLine(); bool flag = false; for (int i = 0; i len; i+) if (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(請(qǐng)按任意鍵繼續(xù)!); Console.ReadKey(true); Menu1(); public void Search() /查找模塊 Console.Write(請(qǐng)輸入您要查詢的學(xué)生的姓名:); String s = Console.ReadLine(); int len = 80; SaveToArray(ref len); Console.WriteLine(n學(xué)號(hào) 姓名 語文 英語 數(shù)學(xué) 平均分); bool flag = fa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房門窗安全性能檢測(cè)與維護(hù)合同
- 民族風(fēng)情園場(chǎng)地使用權(quán)轉(zhuǎn)讓合同
- 校園教師保健培訓(xùn)
- 皮膚活檢護(hù)理
- 中西醫(yī)結(jié)合治療模式解析
- 工藝流程中的“目的、作用、原因”分析-2025年高考化學(xué)工藝流程考點(diǎn)剖析+對(duì)點(diǎn)訓(xùn)練原卷版
- 高中物理專項(xiàng)復(fù)習(xí):受力分析 共點(diǎn)力的平衡
- 搜狐員工培訓(xùn)匯報(bào)
- 電力行業(yè)數(shù)據(jù)開放共享風(fēng)險(xiǎn)防護(hù)指南
- 右肺癌術(shù)后護(hù)理
- 2025年江蘇省無錫市惠山區(qū)中考三模歷史試題(含答案)
- 游泳館會(huì)員合同協(xié)議書
- 鐵磁材料漏磁信號(hào)高效計(jì)算與缺陷精準(zhǔn)反演的關(guān)鍵技術(shù)探索
- 分公司收回協(xié)議書
- 《數(shù)據(jù)分析與可視化綜合實(shí)驗(yàn)》課件
- 2025年公牛插座市場(chǎng)調(diào)研報(bào)告
- 2024-2030全球旅行用便攜式WiFi熱點(diǎn)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 第三單元 傳承中華優(yōu) 秀傳統(tǒng)文化 課 件- 2024-2025學(xué)年七年級(jí)道德與法治下冊(cè) 統(tǒng)編版
- 銀行培訓(xùn)中心管理制度
- 抽動(dòng)癥護(hù)理查房
- 2025安全月培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論