C課程設計報告(學生信息管理系統(tǒng))_第1頁
C課程設計報告(學生信息管理系統(tǒng))_第2頁
C課程設計報告(學生信息管理系統(tǒng))_第3頁
C課程設計報告(學生信息管理系統(tǒng))_第4頁
C課程設計報告(學生信息管理系統(tǒng))_第5頁
免費預覽已結束,剩余24頁可下載查看

付費下載

下載本文檔

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

文檔簡介

1、海奇4種手比課程設計報告課程名稱C語言程序設計課題名稱學生信息管理系統(tǒng)專 業(yè)電氣工程及其自動化班級1086班學 號 2姓名周餞指導教師彭禎劉錚郭芳2011年 6 月20 日湖南工程學院課程設計任務書課程名稱C課程設計課 題學生信息管理系統(tǒng)專業(yè)班級 電氣1086班學生姓名周鐵學號指導老師彭禎劉錚郭芳審批任務書下達日期 2011年6月20日任務完成日期2011年7月1日3目錄一、題目總體介紹錯誤!二、需求分析錯誤!三、總體設計錯誤!1、現(xiàn)行系統(tǒng)組織結構圖: 錯誤!2、數(shù)據(jù)結構分析錯誤!3、工作原理等錯誤!三、詳細設計錯誤!四.系統(tǒng)調試與結果分析 錯誤!六、總結錯誤!七、附件錯誤!未定義書簽 未定義

2、書簽 未定義書簽 未定義書簽, 未定義書簽 未定義書簽 未定義書簽 未定義書簽 未定義書簽 未定義書簽未定義書簽,參考文獻錯誤!4一、題目總體介紹(1) 、課程設計題目:學生信息管理(2) 、課程設計內容與主要功能:設計與開發(fā)一個學生信息管理系統(tǒng),對學生的學號、姓名、性別、年齡等基本信息進行管理、主要功能如下:1) ) 輸入記錄2) 顯示全部記錄3) 查找記錄4) 刪除記錄5) 插入記錄6) 保存文件7) 讀文件8) 按學號顯示記錄9) 按姓名排序(3) 、目的與要求:1、目的:( 1 )要求學生達到熟練掌握C 語言的基本知識和技能;(2)基本掌握C語言程序設計的基本思路和方法;(3)能夠利用

3、所學的基本知識和技能,解決簡單的C語言程序設計問題。2、基本要求:1)設計正確,方案合理。2)界面友好,使用方便。3)程序精煉,結構清晰。3、創(chuàng)新要求:在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功 能。4、寫出設計說明書、設計方法和基本原理:1、問題描述(功能要求):(1)能夠從屏幕上讀取一個學生的信息并將信息存入到數(shù)據(jù)文件中。(2)能夠將指定的信息從文件中刪除。(3)能夠按學號、姓名、性別、年齡對學生的信息進行檢索并將檢索 結果顯示在屏幕上。(4)如果檢索不到相應的信息應提示用戶。2、問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)寫出需求分析(做什么);

4、(2)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為;(3)根據(jù)問題描述,設計系統(tǒng)的類層次;(4)完成類層次中各個類的描述(包括屬性和方法);(5)完成類中各個成員函數(shù)的定義;(6)用戶界面的設計;(7)分析系統(tǒng)功能模塊(系統(tǒng)流程圖);(8)代碼編寫,功能調試;(9)完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。二、需求分析(1)能夠從屏幕上讀取一個學生的信息并將信息存入到數(shù)據(jù)文件中。(2)能夠將指定的信息從文件中刪除。(3)能夠按學號、姓名、性別、年齡對學生的信息進行檢索并將檢索 結果顯示在屏幕上。(7)如果檢索不到相應的信息應提示用戶。三、總體設計291、現(xiàn)行系統(tǒng)組織結構圖:2、數(shù)據(jù)結構分析使用整型,

5、雙精度,字符型定義變量和函數(shù)。使用結構體,類等概念實現(xiàn)數(shù)據(jù)存儲。同時也是用這些自定義類型定義了變量和函數(shù)。體現(xiàn)面向對象設計的特點。3、工作原理等系統(tǒng)功能結構圖:四、詳細設計1 、類設計類: student數(shù)據(jù)成員學號,姓名,性別,年齡類: school成員函數(shù)輸入記錄函數(shù)enter ():輸入編號到計算機中;顯示記錄函數(shù)list() :顯示全部輸入的內容,如學號、姓名、性別、年齡等;按姓名查找顯示記錄函數(shù)search ():按學號或姓名查找學生的信息;刪除記錄函數(shù)delete。:刪除指定學號學生信息;插入記錄函數(shù)add():插入指定學號學生信息;記錄保存為文件函數(shù)save():將學生信息保存為

6、文件函數(shù);從文件中讀記錄函數(shù)10ad():從文件中讀出學生信息;按序號查找顯示記錄函數(shù)display() :按序號查找學生信息;按姓名排序函數(shù)s0rt() :按學生姓名排序;文件復制函數(shù)copy():將文件復制;顯示單條記錄函數(shù)print(STUDENTS temp); 顯示單條學生信息;查找函數(shù)find(STUDENTS t,int n,char *s) :查找學生信息;輸出函數(shù) menu_se1ect():輸出學生信息;五系統(tǒng)調試與結果分析1 、初始目錄:2、輸入數(shù)據(jù):3、顯示所有記錄:4、查找記錄:5、刪除記錄:6、插入記錄:7、按姓名排序8、復制信息9、按序號排序2.系統(tǒng)運行的結果:設

7、計特點和不足之處:系統(tǒng)整體清晰明了,功能基本齊全,但系統(tǒng)中報錯功能不完整,當學號等信息 輸入數(shù)字等時不出現(xiàn)報錯,可設置提醒重新輸入。六、總結1、在做了課程實驗以后,我對 C語言的了解更深了,很多知識得到了鞏周,一些不懂的知識也漸漸明了!但從C語言這門課程開始,已發(fā)現(xiàn)程序設計的樂趣,在學習C語言的過程中也學到了許多計算機應用基礎知 識,對計算機的機體也有了 一個大體的了解2、作了學生學生信息管理系統(tǒng)程序后,我對數(shù)據(jù)類型、函數(shù)、指針、結 構體更加熟悉了,作為 C語言所特有得指針、結構體和對象再編寫程 序得過程中運用十分廣泛,我還必須多加練習才能達到一個更高的水平,結構體和對象、指針都是非常重要的。

8、3、這次實訓是彭禎老師給了很大引導,經(jīng)過自己的改寫,實現(xiàn)要求。先做簡單的輸出,一步步的再做其它圖案,在實際操作過程中犯 的一些錯誤還會有意外的收獲,感覺實訓很有意思。在具體操作中對 這學期所學的C語言的理論知識得到鞏固,達到實訓的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機中應更加注意,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機實訓的 重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。4、在完完整整的做完一個課程實驗后,我對程序的整體性有了一個明確 的認識,做一個程序必須要注意程序前后的聯(lián)系,要具有清晰的思路,程序要具有層次。對整體性的把握至關重要!5、學習計算機語言,最重

9、要的就是上機操作,我深感自己動手能力比較 差,在以后的學習中,還必須多多上機調試程序,從實踐中多積累經(jīng) 驗,為以后學習和工作打下堅實的基礎。七、附件/*頭文件(.h ) */#include /*I/O函數(shù)*/#include /*標準庫函數(shù)*/#include /*字符串函數(shù)*/#include /*字符操作函數(shù)*/#define M 50 /*定義常數(shù)表示記錄數(shù)*/typedef struct /*定義數(shù)據(jù)結構*/char no20;/*學號*/char name20; /*姓名*/顯示記錄*/按姓名查找顯示記錄*/刪除記錄*/插入記錄*/記錄保存為文件*/從文件中讀記錄*/按序號查找顯示

10、記錄*/按姓名排序*/顯示單條記錄*/int menu_select(); /*主菜單函數(shù)*/char sex5;/* 性別 */int age;/* 年齡 */ STUDENTS;/*/int enter(STUDENTS t); /* 輸入記錄*/void list(STUDENTS t,int n); /* void search(STUDENTS t,int n); /* int delete(STUDENTS t,int n); /* int add(STUDENTS t,int n); /* void save(STUDENTS t,int n); /* int load(STUD

11、ENTS t); /* void display(STUDENTS t); /* void sort(STUDENTS t,int n); /* void copy(); /* 文件復制*/void print(STUDENTS temp); /*int find(STUDENTS t,int n,char *s) ; /*查找函數(shù)*/*/main()STUDENTS stuM; /* 定義結構體數(shù)組*/int length; /* 保存記錄長度*/clrscr(); /* 清屏 */for(;)/* 無限循環(huán)*/switch(menu_select() /*調用主菜單函數(shù),返回值整數(shù)作開關語

12、句*/case 0:length=enter(stu);break;/*輸入記錄*/case 1:list(stu,length);break; /*顯示全部記錄*/查找記錄*/刪除記錄*/插入記錄*/保存文件*/讀文件*/按序號顯示記錄*/按姓名排序*/case 2:search(stu,length);break; /*case 3:length=delete(stu,length);break; /*case 4:length=add(stu,length); break; /*case 5:save(stu,length);break; /*case 6:length=load(stu

13、); break; /*case 7:display(stu);break; /*case 8:sort(stu,length);break; /*復制文件*/如返回值為11則程序結束*/case 9:copy();break; /*case 10:exit(0); /*/*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項*/ menu_select()char s80;int c;gotoxy(1,25);/*將光標定為在第 25行,第1列*/printf(press any key enter menun);/*提示壓任意鍵繼續(xù) */getch(); /*讀入任意字符*/clrscr(); /

14、* 清屏 */gotoxy(1,1);printf(I*MENU*nn);printf(0.Enter recordn);printf(1.List the filen);printf(2.Search record onnamen);printf(3.Delete a recordn);printf(4.add record n);printf(5.Save the filen);printf(6.Load the filen);printf( 7. display record on ordern);printf( 8. sort to make new filen);printf(9.

15、copy the file to new filen);printf(10. Quitn);printf(*n);doprintf(n Enteryou choice(010):);/* 提示輸入選項*/scanf(%s,s); /*輸入選擇項*/c=atoi(s); /* 將輸入的字符串轉化為整型數(shù)*/while(c10); /* 選擇項不在011 之間重輸*/return c; /* 返回選擇項,主程序根據(jù)該數(shù)調用相應的函數(shù)*/* 輸入記錄,形參為結構體數(shù)組,函數(shù)值返回類型為整型表示記錄長度*/int enter(STUDENTS t) int i,n;char *s;clrscr();

16、/* 清屏 */printf(nplease input num n); /*提示信息*/scanf(%d,&n); /* 輸入記錄數(shù)*/printf(please input record n); /*提示輸入記錄*/printf(no name sex agen);printf(n);for (i=0;in;i+)scanf(%s,ti.no);scanf(%s,);scanf(%s,ti.sex);scanf(%d,&ti.age);return n; /*返回記錄條數(shù)*/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/void list(STUDENTS 肛int n)int i

17、;clrscr();printf(nn*STUDENTS*n);printf(noname sex agen);printf(n);for(i=0;in-1) /* 如果整數(shù)i值大于n-1 ,說明沒找到*/printf(not foundn);elseprint(ti); /*找到,調用顯示函數(shù)顯示記錄*/* 顯示指定的一條記錄*/ void print(STUDENTS temp) clrscr();printf(nn*n);printf(noname sex agen);n);printf(printf(%-20s%-20s%-10s%-10dn,temp.no,,tem

18、p.sex,temp.age );printf(I*end*n);/* 查找函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)以及姓名s */ int find(STUDENTS t,int n,char *s)int i;for(i=0;in;i+)/* 從第一條記錄開始,直到最后一條*/if(strcmp(s,)=0)/*記錄中的姓名和待比較的姓名是否相等 */return i; /*相等,則返回該記錄的下標號,程序提前結結束*/return i; /* 返回 i 值 */* 刪除函數(shù),參數(shù)為記錄數(shù)組和記錄條數(shù)*/int delete(STUDENTS t,int n)char s20; /*要

19、刪除記錄的姓名 */int ch=0;int i,j;printf(please deleted namen); /*提示信息 */scanf(%s,s);/*輸入姓名 */i=find(t,n,s); /*調用 find 函數(shù) */for(;i=i;j-) /*strcpy(tj+1.no,tj.no); /*strcpy(tj+1.name,); /*條 */strcpy(tj+1.sex,tj.sex); /*tj+1.age=tj.age; /*當前記錄的年齡拷貝到后一條strcpy(ti.no,temp.no); /*strcpy(,);

20、*/* 將新插入記錄的性別拷貝到第i 個位置 */將新插入記錄的年齡拷貝到第i 個位置 */*/*/strcpy(ti.sex,temp.sex);ti.age = temp.age; /*n+; /* 記錄數(shù)加1*/return n; /* 返回記錄數(shù)/* 保存函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)void save(STUDENTS t,int n)int i;FILE *fp; /* 指向文件的指針*/*打開文件,并判斷打開是沒打開 */輸出提示信息*/將記錄數(shù)寫入文件*/if(fp=fopen(record.txt,wb)=NULL)否正常 */printf(can not open file

21、n);/*exit(1); /*退出 */printf(nSaving filen); /* fprintf(fp,%d,n); /*將換行符號寫入文件*/fprintf(fp,rn); /* for(i=0;in;i+) fprintf(fp,%-20s%-30s%-10s%-10d”,ti.no,,ti.sex,ti.age);/*格式寫入記錄*/fprintf(fp,rn); /*將換行符號寫入文件 */fclose(fp);/*關閉文件 */printf(*save success*n); /*/*讀入函數(shù),參數(shù)為結構體數(shù)組*/int load(STUDENTS t口)i

22、nt i,n;FILE *fp;/*指向文件的指針*/if(fp=fopen(record.txt,rb)=NULL)/* printf(can not open filen); /*exit(1); /*退出 */顯示保存成功*/打開文件*/不能打開*/fscanf(fp,%d,&n); /* 讀入記錄數(shù) */for(i=0;i=0&idn) /*判斷序號是否在記錄范圍內*/printf(Enter order number.n); /*移動文件指針到該記錄位fseek(fp,(id-1)*sizeof(STUDENTS),1); /* 置 */print(tid); /*調用輸出函數(shù)顯示該

23、記錄*/printf(rn);else如果序號不合理顯示信printf(no %d number record!n ,id); /*息 */fclose(fp); /*關閉文件*/* 排序函數(shù),參數(shù)為結構體數(shù)組和記錄數(shù)*/ void sort(STUDENTS t,int n)int i,j,flag;STUDENTS temp; /* 臨時變量做交換數(shù)據(jù)用*/for(i=0;in;i+)flag=0; /*設標志判斷是否發(fā)生過交換*/for(j=0;j0)/*比較大小 */temp=tj; tj=tj+1;tj+1=temp;flag+;if(flag=0)break; /*如果標志為 0,說明沒有發(fā)生過交換循環(huán)結束*/printf(sort sucess!n); /*顯示排序成功 */*復制文件*/void copy()char outfile20; /*目標文件名 */int i,n;STUDENTS tempM; /* 定義臨時變量 */FILE *sfp,*tfp; /*定義指向文件的指針*/clrscr();/* 清屏 */if(sfp=fopen(record.txt,rb)=NULL) /*打開記錄文件 */printf(can not

溫馨提示

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

評論

0/150

提交評論