新學生信息管理系統C語言課程設計說明書_第1頁
新學生信息管理系統C語言課程設計說明書_第2頁
新學生信息管理系統C語言課程設計說明書_第3頁
新學生信息管理系統C語言課程設計說明書_第4頁
新學生信息管理系統C語言課程設計說明書_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、*實踐教學* 蘭州理工大學軟件學院2013年秋季學期 計算機應用基礎 課程設計題 目:學生信息管理系統專業班級: 軟件1班 姓 名: 陳靜 學 號: 13700146 指導教師: 任旭鵬 成 績:_ 摘要 此次我們設計的是學生信息管理系統,在程序中運行學生信息創建模塊,列出模塊,刪除模塊,查找模塊,保存模塊等,在程序中用到了選擇結構,循環結構,結構體,數組,文件操作,自定義函數等。關鍵詞:結構體;文件操作;數組; 循環結構;選擇結構;自定義函數目 錄1需求分析12總體設計12.1程序的總體設計12.2數據結構23詳細設計43.1主控模塊設計43.2列出模塊54主要函數功能描述64.1 主函數m

2、ain()64.2列出函數print_list()75測試與調試86個人設計小結與心得體會11參考文獻11附件1 程序源代碼111需求分析(1)問題根據需求,該系統所應包含的信息有以下一些:息學生的基本信:學號、姓名、性別、QQ、電話根據需求,該系統所應實現的功能有以下一些:各種基本數據的錄入。如:學生基本信息錄入。各種基本數據的修改。即:允許對已經錄入的數據重新進行編輯、修改。例如修改學生信息中張三的電話信息各種基本數據的刪除。例如將張三的信息從學生信息中刪除基于各種數據的查詢。例如輸入學號1,查詢學號為1的名字、性別、QQ和電話。各種基本信息的瀏覽。例如對保存的學生信息的瀏覽。(2)系統

3、采用C語言實現,開發環境為VC,可以運行在操作系統windows98及以上皆可。(3)運行要求 能不受限制的錄入學生信息。 界面友好,操作方便,例如刪除前需要提示用戶是否刪除。 容錯性強,例如數據導出時,如果文件不存在需要提示用戶。2總體設計2.1程序的總體設計在系統設計方面需采用模塊化,把一個復雜的問題簡單化,化成幾個簡單的模塊來處理,.但是在劃分的同時又必須要了解各自的功能,它們之間應該有自己的獨立性,同時又存在相互的聯系.通訊記錄時以二進制的形式進行存儲和輸入,一般程序從整體到部分,先進行整體概括,然后在逐步細化完善本系統由一個圖來表示為主菜單創建刪除列出保存插入查找修改退出圖1系統總圖

4、本通訊管理系統可以概括的劃分為以下幾大模塊:1 輸入創建模塊2 列出菜單模塊3 刪除數據模塊4 修改數據模塊5 查找數據模塊6 插入數據模塊7 保存數據模塊8 退出系統2.2數據結構根據系統要求,系統中需要保存的數據學生的信息,其結構如下:數據項名稱數據項系統表示數據類型數據長度備注學生學號numint學生姓名namechar10學生QQqqchar10學生性別sexint學生電話phoneint 使用語言創建的結構體如下:#include<stdio.h>#include<stdlib.h>#include<string.h>int num; /*學生學號

5、*/ char name10; /*學生姓名*/ char qq10; /*學生QQ*/ int sex; /*學生性別*/ int phone; /*學生電話*/ LIST;LIST L100;int main(void)void revise_list () /*自定義函數-修改數組*/void print_list() /*自定義函數-列出菜單*/void delete_list() /*自定義函數-刪除文件*/void insert_list() /*自定義函數-創建文件*/void find_list() /*自定義函數-查找文件*/ void into_list() /*自定義函數

6、-插入文件*/void save_list() /*自定義函數-保存文件*/3詳細設計3.1主控模塊設計 調用子函數結束創建修改刪除列出查找插入保存退出輸入選擇開始密碼界面菜單界面控制整個程序的運行,通過主函數模塊分別調用各個模塊,實現各項功能,流程如下圖 1 2 3 4 5 6 7 0圖2主模塊流程圖注釋1主控是用switch多分支選擇結構來實現功能選擇3.2列出模塊列出模塊是通過循環結構變化個個列出數組自定義數組Lkey信息 i+結束輸出一個記錄i<keyinti; i=0開始 圖3列出模塊流程圖4主要函數功能描述4.1 主函數main()函數原型:#include<stdio

7、.h>#include<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0; /*stdlib-標準庫頭文件.sizeof-運算符.string-字符串.typedef-定義類型*/typedef struct list int num; /*學生學號*/ char name10; /*學生姓名*/ int qq; /*學生QQ*/ char sex10; /*學生性別*/ long int phone; /*學生電話*/ LIST;LIST L100

8、;int main(void) /*主函數*/ int choice,y; printf("ttt*學生信息管理系統*"); printf(" 請輸入密碼:"); scanf("%d",&y); if(y=123) do printf("nnnttt*學生信息管理系統*"); printf("ntttt*=*n"); printf(" tttt 1.*創建*n"); printf(" tttt 2.*列出*n"); printf(" tt

9、tt 3.*刪除*n"); printf(" tttt 4.*修改*n"); printf(" tttt 5.*查找*n"); printf(" tttt 6.*插入*n"); printf(" tttt 7.*保存*n"); printf(" tttt 0.*退出*n"); printf(" tttt 請選擇:"); scanf("%d",&choice); switch(choice) case 1:insert_list();bre

10、ak; case 2:print_list();break; case 3:delete_list();break; case 4:revise_list(); break; case 5:find_list();break; case 6:into_list();break; case 7:save_list();break; case 0:exit(0); default:printf("input againn"); while(1); else printf("密碼錯誤!請重啟程序!"); fflush(stdin); getchar(); re

11、turn 0;功能描述:通過if選擇結構實現加密正確輸入密碼后進入主菜單,否則提示“密碼密碼錯誤!請重啟程”進入主菜單后用switch多分支選擇結構來調用子函數來實現對學生信息的創建、修改、插入等。流程圖如圖2所示。4.2列出函數print_list()函數原型:void print_list() /*列出菜單*/ int i; for(i=0;i<key;i+) printf("學號t姓名tQQ號 t性別t電話tn"); printf("%dt%st%d t%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone

12、); if(key=0) printf("the shuzu is NULL!n");功能描述:通過for循環結構改變i的值調用Li保存的值逐個顯示。流程圖如圖3所示5測試與調試1主程序測試測試數據:輸入密碼123圖4測試結果:程序運行沒有錯誤,如下 圖5菜單選項測試:輸入數據請選擇:1圖6測試結果:程序運行沒有錯誤,如下圖72列出測試測試數據:輸入2,如下圖8測試結果程序運行有錯誤,如下 圖9錯誤是性別、電話沒有對其修改后如下圖106個人設計小結與心得體會為期一個星期的C語言實訓結束了,在這一個星期內我的感觸頗深。因為在寫程序中實在是遇到了太多的困難了,這讓我意識到自己對

13、C語言知識的貧乏。我們只學會了簡單的指針和函數,這些應付考試是絕對沒有問題了的,然而應用在實際的程序設計當中卻是遠遠不夠的。可想而知,驗收過程很不滿意,這讓我覺得很對不起老師的一番含辛茹苦。所以哪怕我的驗收過程不是很理想都好,我交實訓報告的時候也一定要把這個學生信息管理系統理解透徹!在整個編程過程中,我堅持虛心的向同學請教問題,同時自己也在網上查找各種信息,通過不斷地改正,我終于知道編好一個完美的程序是多么的不容易啊!同時,在不斷的犯錯中,我也了解了許多以前不知道的東西。做得不好的,也請老師多多見諒,以后我一定會好好改進的!最后,衷心地多謝老師辛苦的指導!參考文獻【1】姜靈芝,余健. C語言課

14、程設計案例精編.北京:清華大學出版社,2008【2】王新,孫雷. C語言課程設計.北京:清華大學出版社,2009【3】游洪躍、彭駿、譚斌.C語言程序設計實驗與課程設計教程.北京:清華大學出版社,2011【4】王連相.C/C+程序設計上機指導與測試. 北京:中國鐵道出版社,2006【5】C語言函數手冊,機械工業出版社,1999附件1 程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0;

15、/*stdlib-標準庫頭文件.sizeof-運算符.string-字符串.typedef-定義類型*/typedef struct list int num; /*學生學號*/ char name10; /*學生姓名*/ int qq; /*學生QQ*/ char sex10; /*學生性別*/ long int phone; /*學生電話*/ LIST;LIST L100;void revise_list () /*修改數組(revise-修改)*/ int i,j,k; int num; char name10; int qq; char sex10; long int phone; p

16、rintf("請選擇修改項學號"); scanf("%d",&j); for(k=0;k<key;k+) if(j=Lk.num) break; printf("您要修改成為:"); printf("tt學號tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("%s",name); printf("ttQQ號tt"); scanf("%d",&

17、qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話tt"); scanf("%d",&phone); Lk.num=num; strcpy(L,name); /*拷貝字符串*/ Lk.qq=qq; strcpy(Lk.sex,sex); Lk.phone=phone;void print_list() /*列出菜單*/ int i; for(i=0;i<key;i+) printf("學號t姓名tQQ號 t性別t電話tn&qu

18、ot;); printf("%dt%st%d t%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone); if(key=0) printf("the shuzu is NULL!n");void delete_list() /*刪除文件*/ int i,j,k; printf("您要刪除的是:n"); scanf("%d",&j); for(k=0;k<key;k+) if(j=Lk.num) break; if(k>=key) printf("您

19、輸入的數據有誤,請重新輸入:"); for(i=k;i<key;i+) Li=Li+1; key-; void insert_list() /*創建文件*/ int num; char name10; int qq; char sex10; long int phone; printf("tt學號tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("%s",name); printf("ttQQ號tt"); scanf(&quo

20、t;%d",&qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話tt"); scanf("%d",&phone); Lkey.num=num; strcpy(L,name); Lkey.qq=qq; strcpy(Lkey.sex,sex); Lkey.phone=phone; key+;void find_list() /*查找文件*/ int i,num; printf("請輸入你要查找的學號:"

21、); scanf("%d",&num); for (i=0;i<key;i+) if(Li.num=num) printf("學號t姓名tQQ號t性別t電話tn"); printf("%dt%st%dt%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone); break; if(i>=key) printf("無此人信息,請重新選擇:"); void into_list() /*插入文件*/ int i,j,k; int num;char name10; i

22、nt qq; char sex10; long int phone; printf("ttt您要插入項是:t"); scanf("%d",&j); if (j>0&&j<=key) for(i=key;i>=j;i-) Li=Li-1; key+; printf("請輸入你要插入的內容:n"); printf("tt學號tt"); scanf("%d",&num); printf("tt姓名tt"); scanf("

23、%s",name); printf("ttQQ號tt"); scanf("%d",&qq); printf("tt性別tt"); scanf("%s",sex); printf("tt電話tt"); scanf("%d",&phone); k=j-1; Lk.num=num; strcpy(L,name); Lk.qq=qq; strcpy(Lk.sex,sex); Lk.phone=phone; else printf("er

24、ror"); void save_list() /*保存文件*/ int i; FILE *fp; if(fp=fopen("file.txt","wb")=NULL) printf("不能打開文件n"); return; for(i=0;i<key;i+) if(fwrite(&Li,LEN,1,fp)!=1); fclose(fp); int main(void) /*主函數*/ int choice,y; printf("ttt*學生信息管理系統*"); printf(" 請輸入密碼:"); scan

溫馨提示

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

最新文檔

評論

0/150

提交評論