《學(xué)籍管理系統(tǒng) 設(shè)計(jì)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)籍管理系統(tǒng) 設(shè)計(jì)論文(13頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、上海交通大學(xué)課程設(shè)計(jì)報(bào)告學(xué)籍管理系統(tǒng)班 級計(jì)算機(jī)小組成員 成員1 2008273150成員 2 2008273151成員 3 2008273152指導(dǎo)教師開發(fā)時(shí)間2009年12月一、系統(tǒng)簡介設(shè)計(jì)一個(gè)基于結(jié)構(gòu)體數(shù)組的學(xué)生學(xué)籍管理系統(tǒng),能實(shí)現(xiàn)對學(xué)生學(xué)籍信息進(jìn)行錄入、 修改、刪除、查詢和輸出等基本操作。二、需求分析學(xué)籍管理系統(tǒng)應(yīng)實(shí)現(xiàn)以下功能:1、能錄入學(xué)生的基本信息,包括學(xué)號、姓名、專業(yè)、年級、性別和出生日期信息, 保存到結(jié)構(gòu)體數(shù)組中。2、能根據(jù)輸入的學(xué)號查找學(xué)生,進(jìn)行信息的修改。3、能根據(jù)輸入的學(xué)號從結(jié)構(gòu)體數(shù)組中刪除學(xué)生的記錄。4、實(shí)現(xiàn)查詢功能,能根據(jù)輸入的學(xué)號或年級在屏幕上顯示相應(yīng)的學(xué)生信息。5
2、、能在屏幕上以列表的方式輸出所有學(xué)生的信息。三、概要設(shè)計(jì)1、系統(tǒng)功能結(jié)構(gòu)圖根據(jù)項(xiàng)目的開發(fā)要求,本系統(tǒng)劃分成六個(gè)主功能模塊:錄入學(xué)生信息模塊、修改學(xué) 生信息模塊、刪除學(xué)生信息模塊、查詢信息模塊、輸出模塊和系統(tǒng)退出模塊。系統(tǒng)功能 結(jié)構(gòu)圖如下:學(xué)生檔案管理系統(tǒng)錄入學(xué)生信息修改學(xué)生信息麟跛學(xué)生信息查詢學(xué)生信息輸出學(xué)生信息退 出 系 統(tǒng)按學(xué)號查詢按班級查詢2、重要數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)學(xué)生學(xué)籍的記錄項(xiàng)用結(jié)構(gòu)體StuMessage表示,包括6個(gè)屬性,stuNo、name、spec、 grade、sex、birthday分別代表學(xué)生的學(xué)號、姓名、專業(yè)、年級、性別和出生日期,其 中birthday類型為自定義的結(jié)
3、構(gòu)體類型Date。struct StuMessagechar stuNo11;學(xué)號char name9;姓名char spec21;專業(yè)int grade;年級char sex;性別struct Date birthday; / 出生日期;日期類型Date包括三個(gè)屬性,分別代表年、月、日。struct Dateint year;/年int month; /月int day; / 日;3、函數(shù)設(shè)計(jì)學(xué)籍管理系統(tǒng)程序采用了結(jié)構(gòu)化程序設(shè)計(jì)的思想,由1個(gè).h頭文件和3個(gè).c源文件 組成。程序中除了主函數(shù)外,共設(shè)計(jì)了以下14個(gè)函數(shù),分別包含在3個(gè).c源文件中。 以下是這些函數(shù)的函數(shù)原型及功能設(shè)計(jì)。(1)
4、void SysInfo(void);函數(shù)功能:在屏幕上輸出系統(tǒng)及版權(quán)信息并等待用戶響應(yīng)。(2) void MenuOfMain(struct StuMessage stu);函數(shù)功能:在屏幕上顯示主菜單,接收用戶選擇并響應(yīng)用戶相應(yīng)操作。(3) void Append(struct StuMessage stu);函數(shù)功能:錄入一條學(xué)生記錄到記錄數(shù)組的末尾。(4) void Modify(struct StuMessage stu);函數(shù)功能:通過輸入學(xué)號查詢學(xué)生的相應(yīng)記錄信息,如果存在在屏幕上輸出相應(yīng)學(xué) 生記錄并通過重新輸入的方法修改該學(xué)生的記錄,否則輸出沒有找到相關(guān)記錄。(5) void
5、Delet(struct StuMessage stu);函數(shù)功能: 通過輸入學(xué)號查詢學(xué)生的相應(yīng)記錄信息,如果存在在屏幕上輸出相應(yīng)學(xué) 生記錄,用戶確認(rèn)刪除后調(diào)用DelList()函數(shù)將其刪除,否則輸出沒有找到相關(guān)記錄。(6) void MenuOfSear(struct StuMessage stu);函數(shù)功能:在屏幕上顯示查詢子主菜單,接收用戶選擇并響應(yīng)用戶操作。(7) void ListAll(struct StuMessage stu);函數(shù)功能:在屏幕上以列表方式輸出所有學(xué)生的信息。調(diào)用PrintHead()輸出表頭, 再調(diào)用ListOne()函數(shù)逐一輸出各條記錄。(8) void Q
6、uit(void);函數(shù)功能:退出菜單系統(tǒng),并調(diào)用exit(0)系統(tǒng)函數(shù)結(jié)束程序運(yùn)行。(9) void SearNum(struct StuMessage stu);函數(shù)功能:通過輸入學(xué)號調(diào)用NumOfSear()函數(shù)查詢學(xué)生的相應(yīng)記錄信息,如果存 在調(diào)用PrintHead()函數(shù)和ListOne()函數(shù)在屏幕上輸出相應(yīng)學(xué)生記錄,否則輸出沒有 找到相關(guān)記錄。(10) void SearGrade(struct StuMessage stu);函數(shù)功能:通過輸入年級查詢學(xué)生的相應(yīng)記錄信息,如果存在在屏幕以列表方式輸 出相應(yīng)學(xué)生記錄,并輸出統(tǒng)計(jì)滿足條件的學(xué)生個(gè)數(shù),否則輸出沒有找到相關(guān)記錄。(11)
7、 int NumOfSear(struct StuMessage stu, char stuNum);函數(shù)功能:根據(jù)接收到的學(xué)生學(xué)號,在相應(yīng)記錄數(shù)組中進(jìn)行查詢,如果存在相應(yīng)記 錄,返加相應(yīng)的數(shù)組下標(biāo),否則返回-1。(12) void PrintHead(void);函數(shù)功能: 在屏幕上顯示輸出列表的表頭。(13) void ListOne(struct StuMessage list);函數(shù)功能:在屏幕上以行的方式顯示輸出一個(gè)學(xué)生的相關(guān)信息。(14) int DelList(struct StuMessage stu, int i);函數(shù)功能:如果數(shù)組中存在下標(biāo)為i的記錄,刪除該記錄并返回1,
8、否則返回0。4、小組成員分工組員1main(); SystemInfo(); MenuOfMain(); Quit();組員2PrintHead(); ListOne(); ListAll(); Apend();組員3Modify(); Delte(); DelList(); MenuOfSear(); SeraNum(); SearGrade(); NumOfSear();四、詳細(xì)設(shè)計(jì)1、系統(tǒng)主函數(shù)main ()設(shè)計(jì)開始輸出系統(tǒng)及版權(quán)信息SysInfo()V顯示主菜單并響應(yīng)用 戶操作 MenuOfMain()結(jié)束2、主菜單模塊函數(shù)MenuOfMain()設(shè)計(jì)choose其他34501-一23
9、、錄入學(xué)生信息功能模塊函數(shù)Append。設(shè)計(jì)4、修改學(xué)生信息功能模塊函數(shù)Modify()設(shè)計(jì)5、刪除學(xué)生信息功能模塊函數(shù)Delete()設(shè)計(jì)6、查詢菜單模塊函數(shù)MenuOfSear()設(shè)計(jì)7、按學(xué)號查詢功能模塊函數(shù)SearNum()設(shè)計(jì)8、按年級查詢功能模塊函數(shù)SearGrade()設(shè)計(jì)9、輸出學(xué)生信息功能模塊函數(shù)ListAll()設(shè)計(jì)五、調(diào)試分析本系統(tǒng)在VC6下編譯調(diào)試通過,可順利運(yùn)行,各項(xiàng)功能達(dá)到設(shè)計(jì)要求。本系統(tǒng)程序由一個(gè).h頭文件和三個(gè).c源文件構(gòu)成。系統(tǒng)調(diào)試主要在VC6下進(jìn)行, 采用分模塊調(diào)試的方法進(jìn)行編譯,即完成一個(gè)函數(shù)功能模塊就編譯一個(gè)功能模塊,最后 再進(jìn)行整體編譯并生成可執(zhí)行文件
10、Student.exe。在調(diào)試的過程中,主要碰到了以下問題:1、清屏函數(shù)在TC中使用的clrsrc()函數(shù),但在VC6中沒有該函數(shù)也沒有相應(yīng)的 函數(shù)。查資料,發(fā)現(xiàn)在VC中可使用system()函數(shù)調(diào)用系統(tǒng)命令cls實(shí)現(xiàn)。2、在使用C語言系統(tǒng)函數(shù)進(jìn)行數(shù)據(jù)輸入的時(shí)候,發(fā)現(xiàn)使用getchar()和 gets()函數(shù)輸 入字符和字符串的時(shí)候,系統(tǒng)經(jīng)常跳過相應(yīng)的輸入語句,無法輸入數(shù)據(jù)。查資料,是C 系統(tǒng)的輸入處理的輸入緩存問題,解決方法是在進(jìn)行字符和字符串輸入的時(shí)候,先使用 fflush(stdin)函數(shù)清除輸入緩存,即可正常輸入字符和字符串。六、用戶手冊本系統(tǒng)是WIN32控制臺程序,可在WINDOW和DOS環(huán)境下運(yùn)行,執(zhí)行文件名稱: Student.exe o運(yùn)行程序后,首先顯示系統(tǒng)信息和版權(quán)信息,用戶按任意鍵后進(jìn)行主功能菜單。在 主功能菜單中輸入相應(yīng)的數(shù)字可執(zhí)行相應(yīng)的程序功能,包括錄入學(xué)生信息、修改學(xué)生信 息、刪除學(xué)生信息和輸入所有學(xué)生信息,輸入4可進(jìn)行查詢子菜單,可進(jìn)行按學(xué)號查詢 和按年級查詢學(xué)生信息。在主功能菜單按6可結(jié)束本系統(tǒng)的運(yùn)行并自動(dòng)關(guān)閉運(yùn)行窗口。七、附錄源程序文件名清單:Alist.H公用的常量和類型Main.cList.cEdit.c