版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、學籍管理系統(tǒng)一、系統(tǒng)簡介設計一個基于結(jié)構(gòu)體數(shù)組的學生學籍管理系統(tǒng),能實現(xiàn)對學 生學籍信息進行錄入, 修改,刪除,查詢和輸出等基本操作二、需求分析學籍管理系統(tǒng)應該實現(xiàn)以下功能:1、能錄入學生的基本信息,包括學號,姓名,專業(yè),年級, 性別和出生日期信息,保存到結(jié)構(gòu)體數(shù)組中。2、能根據(jù)輸入的學號查詢學生,進行信息的修改。3、能根據(jù)輸入的學號從結(jié)構(gòu)體數(shù)組中刪除學生的記錄。4、實現(xiàn)查詢功能,能根據(jù)輸入的學號或年級在屏幕上顯示 相應的學生信息。5、能在屏幕上以列表的方式輸出所有學生的信息。三、概要設計1、系統(tǒng)功能根據(jù)項目的開發(fā)要求,本系統(tǒng)劃分成六個主要功能模塊:錄 入學生信息模塊、修改學生信息模塊、刪除學
2、生信息模塊、 查詢學生信息模塊、輸出模塊和推出模塊。系統(tǒng)功能機構(gòu)圖 如下:2、重要數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)設計學生學籍的記錄項用結(jié)構(gòu)體Stu message表示,包括6個屬性,stuno,name、spec、grade、sex、birthday 分別代表學生的學 號、專業(yè)、年級、性別和出生日期,其中birthday類型為自定義的結(jié)構(gòu)體類型 Date.Struct stumessage Char stuno11:/ 學號Char name9:/ 姓名Char spec2:/專業(yè)Char grade:/年級Char sex:/性別Stuct date birthday:/ 出生日期;日期類型date包括三個
3、屬性,分別代表年、月、日Struct dateint year :/ 年Int month:/ 月Int day:/ 日; 3、函數(shù)設計學籍管理系統(tǒng)程序采用了結(jié)構(gòu)化程序設計的思想,由1個.h頭文件和3個C源文件組成。程序中除了主函數(shù)外,共設計 了以下14個函數(shù),分別包含在3個.c源文件中。以下是這些 函數(shù)原型及功能設計。(1) void sysinfo(void)函數(shù)功能:在屏幕上輸入系統(tǒng)及版權(quán)信息并等待用戶響應。(2) Void menuofmain(struct stumessage stu);函數(shù)功能:在屏幕上顯示主菜單,接收用戶選擇并響應用戶相應操作。(3) Void append(s
4、truct stumessage stu);函數(shù)功能:錄入一條學生記錄數(shù)組的末尾。(4) void modify ( struct stumessage stu)函數(shù)功能:通過輸入學號查詢學生相關(guān)信息,如果存在在屏幕上輸出相應學生記錄并通過重新輸入學生信息的方法修改該學生的記錄,否則輸出沒有找到相關(guān)記錄。;(5) void Delet(struct stu Message stu)函數(shù)功能:通過輸入學號查詢學生的相應記錄信息,如果 存在在屏幕上輸出相應學生記錄,用戶確認刪除后用 DelList()否則輸出沒有找到相關(guān)記錄。(6) Void menuOfsear(struct stumessag
5、e stu);函數(shù)功能:在屏幕上顯示查詢了主菜單,接受用戶選擇并響應用戶操作。(7) void listall(struct stumessage stu);函數(shù)功能:在屏幕上以列表的方式輸出學生所有信息。調(diào)用 printhead ()輸出表頭,在調(diào)用 listone ()函數(shù)注意輸出個 條記錄。(8) void quit ( void);函數(shù)功能:退出菜單系統(tǒng),并調(diào)用exit(O)系統(tǒng)函數(shù)結(jié)束程序運行。(9) void stear num(struct stumessage stu);函數(shù)功能:通過輸入學號調(diào)用numofsear ()函數(shù)查詢學生的相應的記錄信息,如果存在調(diào)用printhea
6、d ()函數(shù)和listone()函數(shù)在屏幕上輸出相應學生記錄,否則輸出沒有找到相關(guān)記錄。(10) voidsteargrade(stuct stumessage stu);函數(shù)功能:通過輸入年級查詢學生的相關(guān)記錄信息,如果存 在在屏幕以列表方式輸出相應學生記錄,并輸出統(tǒng)計滿足條 件的學生個數(shù),否則輸出沒有找到相關(guān)記錄。(11) int numofsear(struct stumessage stu.char stunumber);函數(shù)功能:根據(jù)接收到的學生學號,在相應記錄數(shù)組中進行 查詢,如果存在相應記錄,返加相應的數(shù)組下標,否則返回-1.(12) void printhead (void )
7、函數(shù)功能:在屏幕上顯示輸出列表的表頭。江西農(nóng)業(yè)大學(13) void list one (struct stumessage list);函數(shù)功能:在屏幕上以行的形式顯示輸出一個學生的相關(guān)信(14) int dellist(struct stumessage stu, int i):函數(shù)功能:如果數(shù)組中存在下標為i的記錄,刪除該記錄并返回1,否則返回0.組員1Main():systeminfo();menuofmain();quit();組員2Printhead();listone();listall(O;apend();組員3Modify();delte();dellist(0;menuof
8、stear();seranum();s eargrade();numofsear();4、小組成員分工四、詳細設計1、系統(tǒng)主函數(shù)main ()設計開始輸出系統(tǒng)及版權(quán)信息Sysi nfo()顯示用戶主菜單并響應用戶操作Menuofm江西農(nóng)業(yè)大學結(jié)束2、主菜單模塊函數(shù) menuofmain()設計YAppend。設計3、錄入學生信息功能模塊江西農(nóng)業(yè)大學4、修改學生信息功能模塊函數(shù)modify。設計5、刪除學生信息功能模塊函數(shù)delete。設計YN6.查詢菜單模塊函數(shù)Y7、按學號查詢功能模塊函數(shù)searnum()設計YY&按年級查詢功能模塊函數(shù)steargrade()設計9、輸出學生信息功能模塊函數(shù)
9、ListALL ()設計;清屏-1輸入表頭i=0江西農(nóng)業(yè)大學江西農(nóng)業(yè)大學江西農(nóng)業(yè)大學江西農(nóng)業(yè)大學輸出第條記錄i+廠按任意鍵繼續(xù)Getch()五調(diào)試分析本系統(tǒng)在VC6下編譯調(diào)試通過,可順利運行,各項功能達到 設計要求。本系統(tǒng)程序由一個.h頭文件和三個.C源文件構(gòu)成。系統(tǒng)調(diào)試 主要在vc6下進行,采用分模塊的方法進行編譯,即完成一個函數(shù)功能模塊就編譯一個功能模塊,最后再進行整體編譯并產(chǎn)生可執(zhí)行文件 student.exe。在調(diào)試過程中,主要碰到了以下問題:1. 在清屏函數(shù)在 Tc中使用的clrsc()函數(shù),但在vc6中沒有該 函數(shù)也沒有相應的函數(shù)。 查資料,發(fā)現(xiàn)在vc中可使用system()函數(shù)調(diào)
10、用系統(tǒng)實現(xiàn)。2. 在使用c語言系統(tǒng)函數(shù)進行數(shù)據(jù)輸入的時候,發(fā)現(xiàn)使用 getchar( 0和gets( 0函數(shù)輸入字符和字符串的時候,系統(tǒng)經(jīng)常跳過相應的輸入語句,無法輸入數(shù)據(jù)。查資料,是c系統(tǒng)的輸入處理,緩存問題,解決方法是在進行字符和字符串輸 入的時候,先使用 fflush (stdin)函數(shù)清除緩存,既可正常輸入字符和字符串六、用戶手冊本系統(tǒng)是 Win32控制臺程序,可在 window和dos環(huán)境下運 行,執(zhí)行文件名稱:student.exe。運行程序后,首先顯示系統(tǒng)消息和版權(quán)信息,用戶按任意鍵 后進行主要功能菜單,在主功能菜單中輸入相應的數(shù)字可執(zhí) 行相應的程序功能,包括錄入學生信息、修改學
11、生信息,刪 除學生信息和輸入所有學生信息,輸入4可進行查詢子菜單, 可進行按學號查詢和按年級查詢學生信息。在主功能菜單案 6可結(jié)束本系統(tǒng)的運行并自動關(guān)閉運行窗口。七、附錄源程序文件名清單:Alist.h/公用的常量和類型Main.cList.cEdit.c源代碼如下:#include#include#includestruct dateint year;int month;int day;;struct StuMessagechar stuNo11;char name10;char spec21;int greade;char sex10;struct date birthday;int le
12、ngth=0;struct StuMessage Stu100;int main()char c;int menuofmain();int Append(struct StuMessage Stu100);int Modify(struct StuMessage Stu100);int Delete(struct StuMessage Stu100);void Menuofsear(struct StuMessage Stu100);void Listall(struct StuMessage Stu100); int listone(struct StuMessage Stu100,int
13、i); system(color 5a);void SysInfo(void);printf(nnntttt江西農(nóng)業(yè)大學學籍管理系統(tǒng)n); printf(nnn 版本信息:nn);printf(ntc-free vision5.0nn); printf(nt2012-05-28tt); printf(nnttttttt 班級:軟件 1115班nn); printf(ttttttt 姓名:朱利斌 nn); printf(ttttttt 指導教師:鄧泓 nn); printf(nntttt enter 進入學籍管理系統(tǒng)n);c=getchar(); menuofmain();int menuofm
14、ain()int num;system(cls);system(color fc);int Append(struct StuMessage Stu100);int Modify(struct StuMessage Stu100);int Delete(struct StuMessage Stu100);void Menuofsear(struct StuMessage Stu100);void Listall(struct StuMessage Stu100); int listone(struct StuMessage Stu100,int i); printf(nnttt江西農(nóng)業(yè)大學學生
15、檔案管理系統(tǒng)nnn); printf(tttplease make a choicennn);printf(ttt錄入學生信息,請選擇 1n);printf(ttt修改學生信息,請選擇 2n);printf(ttt刪除學生信息,請選擇 3n);printf(ttt查詢學生信息,請選擇 4n);printf(ttt輸出學生信息,請選擇 5n);printf(ttt退出 系統(tǒng),請選擇6n); printf(nttttttttttttn);printf(nttn);printf(請輸入編號做出選擇:n);scanf(%d, & num);switch(num)case 1:Append(Stu);b
16、reak;case 2:Modify(Stu);break;case 3:Delete(Stu);break;case 4:Menuofsear(Stu);break;case 5:L istall(Stu);break;case 6:exit (0);break; default:printf(非法操作 n);break;int Append(struct StuMessage Stu100)system(cls);char c,ch;fflush(stdin);printf(輸入第%d個學生的信息。n,length+1);printf(第%d 個學生的信息 n,length+1); pri
17、ntf(please input stuNon); scanf(%s,Stu0.stuNo);printf(please input namen); scanf(%s,S);printf(please input specn);scanf(%s,Stu0.spec); printf(please input greaden); scanf(%d, &Stu0.greade); printf(please input sexn);scanf(%s,Stu0.sex);printf(please input birthdayn);scanf(%d%d%d, &Stu0.birthd
18、ay.year, &Stu0.birthday.month,&Stu0. birthday.day);length+;while(1) c=getchar();printf(輸入y或Y繼續(xù)輸入學生記錄nn或N結(jié)束輸入返回主菜單n); ch=getchar();if(ch=y|ch=Y)system(cls);fflush(stdi n);printf(第%d 個學生的信息 n,length+1); printf(please inp ut stuNon); scanf(%s,Stulength.stuNo); printf(please input namen); scanf(%s,Stule
19、); printf(please input specn); scanf(%s,Stulength.spec); printf(please input greaden); scanf(%d, &Stulength.greade); printf(please input sexn); scanf(%s,Stulength.sex); printf(please input birthdayn);scanf(%d%d%d, &Stulength.birthday.year, &Stulength.birthday.mont h,& Stulength.birthday.day
20、);length+;elseif(ch=n|ch=N)menuofmain();int Modify(struct StuMessage Stu)system(cls);int listone(struct StuMessage Stu,int i);char ch100,c;int i,j=-1;printf(輸入學號進行修改.n);gets(ch);for(i=0;ivlength;i+)if(strcmp(ch,Stui.stuNo)=0)j=i;listone(Stu,i);if(j=-1)printf(沒有找到相關(guān)記錄。n);Modify(Stu);printf(修改 Y,y/N,n
21、.n);fflush(stdi n);c=getchar();if(c=Y|c=y) fflush(stdin);printf(please inp ut stuNon);scanf(%s,Stuj.stuNo); printf(please input namen); scanf(%s,S); printf(please input specn); scanf(%s,Stuj.spec); printf(please input greaden); scanf(%d, &Stuj.greade); printf(please input sexn); scanf(%s,Stu
22、j.sex); printf(please input birthdayn);scanf(%d%d%d, &Stuj.birthday.year,&Stuj.birthday.month, &Stuj.bi rthday.day);elseif(c=N|c=n) menuofmain();printf(是否繼續(xù)修改是輸入 y|Y否輸入n|N。); c=getchar();if(C=y|c=Y) Modify(Stu);elseif(c= n|c=N) menuofmain();int Delete(struct StuMessage Stu)system(cls);int listone(st
23、ruct StuMessage Stu,int i);char ch100,c;int i,j=-1;printf(輸入學號進行刪除.n); fflush(stdin);gets(ch);for(i=0;ilength;i+)if(strcmp(ch,Stui.stuNo)=0)j=i;listone(Stu,i);if(j=-1)printf(沒有找到相關(guān)記錄。n);Delete(Stu);printf(刪除是 Y|y 否 N|nn); fflush(stdin);c=getchar();if(c=Y|c=y)for(j;jvlength;j+)Stuj=Stuj+1;length-;els
24、emenuofmain();printf(繼續(xù)刪除是 y|Y 否 n|N); fflush(stdin);c=getchar();if(C=y|c=Y)Delete(Stu);elseif(c=n|c=N) menuofmain();void Menuofsear(struct StuMessage Stu) system(cls);char c;char ch100;int a,i,j=0;int listone(struct StuMessage Stu,int i); printf(t輸入02進行選擇n);printf(按學號查詢,請選擇1n);printf(按年級查詢,請選擇 2n);printf(返回主菜單,請選擇0n); fflush(stdin);c=getchar();switch(c)case 1:fflush(stdin); printf(please inp ut stuNon); scanf(%s, &ch);for(i=0;ilength;i+)if(strcmp(c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 針灸聯(lián)合補陽還五湯加減治療頸腰椎病的臨床價值
- 初級會計實務-初級會計《初級會計實務》模擬試卷378
- 星載AIS系統(tǒng)解交織關(guān)鍵技術(shù)研究
- 基于射頻指紋的NFC電子車鎖防中繼攻擊算法研究
- 推廣招生培訓課程
- 基于模型預測控制的模塊化多電平換流器控制研究
- 科創(chuàng)孵化器合作伙伴及戰(zhàn)略聯(lián)盟分析
- 二零二五年度新能源儲能設備制造合同協(xié)議書2篇
- 反恐防暴安全知識培訓
- 二零二五年度個人信用保證借款合同示范文本2篇
- 垃圾處理廠工程施工組織設計
- 天皰瘡患者護理
- 2023年四川省公務員錄用考試《行測》真題卷及答案解析
- 機電一體化系統(tǒng)設計-第5章-特性分析
- 2025年高考物理復習壓軸題:電磁感應綜合問題(原卷版)
- 雨棚鋼結(jié)構(gòu)施工組織設計正式版
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹臨風福滿門模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 2024年印度辣椒行業(yè)狀況及未來發(fā)展趨勢報告
- 2024-2030年中國IVD(體外診斷)測試行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 碎紙機設計說明書
評論
0/150
提交評論