版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 2012年6月19號</p><p> 題目: 學生信息管理系統 </p><p> 課程名稱:C語言課程設計</p><p> 院(系、部、中心) :新能源與動力工程學院</p><p> 班 級:電力工程
2、與管理</p><p><b> 目 錄</b></p><p> 一、課程設計任務------------------- 1</p><p> 二、系統設計方案------------------- 1</p><p> 三、數據結構描述與定義------------- 2</p><p
3、> 四、程序主要代碼分析--------------- 2</p><p> 五、測試結果與分析------------------10</p><p> 六、課程設計總結--------------------10</p><p><b> 一、課程設計任務</b></p><p><b>
4、(一)前言</b></p><p> 本課程是繼《高級語言程序設計(C)》課程之后,訓練學生綜合運用本課程知識,結合實際系統運用C語言進行系統設計以及調試,加深對本課程的理解,提高學生綜合運用知識的能力、分析問題、解決問題的能力和利用C語言進行綜合系統設計的實踐技能。</p><p> 學C語言程序設計已有一學期了,對C語言的基本概念和常用算法也有了一定的了解,平時雖然也做
5、過一些練習,也看了不少程序從而掌握了一定的語法知識和編程經驗。但是對于有些功能強大的軟件還是沒有嘗試過能否編的起來。所以決定在所學知識的基礎上,再加以拓展,利用三天時間編個主題明確,具有一定使用價值的中小程序以提高自身的編程水平與上級調試技能。</p><p> ?。ǘ┱n程設計題目及要求</p><p> 學生信息管理系統設計:</p><p> 學生信息包括
6、:學號、姓名、年齡、性別、出生年月、地址、電話、E-mail等。試設計學生信息管理系統,使之能提供以功能:</p><p><b> 系統以菜單方式工作</b></p><p> 學生信息錄入功能(學生信息用文件保存)——輸入</p><p> 學生信息瀏覽功能——輸出</p><p> 查詢、排序功能——算法&
7、lt;/p><p> 按學號查詢、按姓名查詢</p><p> 學生信息的刪除與修改</p><p><b> 二、系統設計方案</b></p><p><b> ?。ㄒ唬┛傮w框架圖:</b></p><p><b> ?。ǘ┠K設計</b><
8、/p><p> 模塊一:頭文件,變量定義,函數聲明</p><p> 對系統所是用的變量進行定義、對函數進行聲明</p><p> 模塊二:學生信息系統使用幫助</p><p> 聲明函數void help(),對整個系統進行使用說明</p><p> 模塊三:錄入學生信息</p><p>
9、; 聲明函數void readfile(),說明一個文件指針FILE*ftp打開文件〝student.txt〞</p><p> 模塊四:學生信息的修改</p><p> 聲明void seek()為查找函數,通過switch(item)設定用學號查找,用姓名查找兩個分支</p><p> 模塊五:學生信息的修改</p><p>
10、聲明void modify()為學生信息修改函數,通過seitch(item)設定所要修改的項目</p><p> 模塊六:學生信息按學號排序</p><p> 聲明void sort()將錄入學生系統按升序排列,用的是“冒泡排序法”實現排序</p><p> 模塊七:增加學生信息</p><p> 聲明void insert()插入
11、學生信息,先通過判斷學生是否存在,若否則繼續輸入,若是跳出,重新循環 </p><p> 模塊八:刪除學生信息</p><p> 聲明void del()實現學生信息刪除,通過學號對比確定要刪除的信息,然后用后一個替換掉。</p><p> 模塊九:顯示學生信息</p><p> 通過display()函數輸出學生信息</p&g
12、t;<p><b> 模塊十:保存信息</b></p><p> 通過fp=fopen(student.txt.w):寫入信息</p><p><b> 模塊十一:界面菜單</b></p><p> 通過switch(num)調用以上各函數,實現功能</p><p> 三、數
13、據結構描述與定義</p><p><b> ?。ㄒ唬┙Y構體</b></p><p> “結構體名”用作類型的,他又稱“結構體標志”。聲明一個結構體類型的一般形式為:</p><p> Struct 結構體</p><p><b> (成員表列):</b></p><p>
14、; 大括號內是該結構體中的各個成員,由他們組成一個結構體,對個成員應進行類型聲明,即</p><p><b> 類型名,成員名</b></p><p> 也可以把“成員表列”改為“域表”。每一個成員也稱為結構體中的一個域。成員名歸為變量名同。</p><p><b> ?。ǘ┙Y構體數組:</b></p>
15、<p> 一個結構體變量中可以存放一組數據(如本程序中一個學生的學號、姓名、成績等)。因為程序中需存放著若干個學生的信息,這些數據需參加運算,就得運算數組即結構體數組,結構體數組的每個數組元素都是一個結構體類型的數組,他們分別包括各個成員(分量)項。</p><p> 四、程序主要代碼分析</p><p> #include"stdio.h"<
16、/p><p> #include"conio.h"</p><p> #include"string.h"</p><p> #include"stdlib.h"</p><p> void look(); /*聲明查看函數*/</p><p> v
17、oid save(); /*聲明保存函數*/</p><p> void search_name(); /*聲明按姓名查看函數*/</p><p> void search_number(); /*聲明按學號查看函數*/</p><p> void order(); /*聲明排序函數*/</p><p> void de
18、l(); /*聲明刪除函數*/</p><p> int openl(); /*聲明打開函數*/</p><p> void welcome(); /*聲明我的個人信息函數*/</p><p> void type(); /*聲明輸入函數*/</p><p> void see(); /*聲明打開并查看文件函數*/&
19、lt;/p><p> struct student /*定義學生信息的結構體類型*/</p><p><b> {</b></p><p> char num[15]; /*學號*/</p><p> char name[20]; /*姓名*/</p><p> char s
20、ex[4]; /*性別*/</p><p> int english; /*英語成績*/</p><p> int math; /*數學成績*/</p><p> int chinese; /*語文成績*/</p><p> float aver; /*平均成績*/</p><p>
21、 float sum; /*總成績*/</p><p> }stu[100];</p><p> int n; /*聲明一個全局變量*/</p><p> void main() /*主函數即用戶的操作界面*/</p><p><b> { </b></p&
22、gt;<p> system("color 1E"); /*設計文本顏色*/</p><p> int b,flag=0; /*聲明局部變量*/</p><p> while(1) /*循環輸出以下信息*/</p><p><b> {</b&g
23、t;</p><p> printf("\n\t\t\t歡迎來到學生成績管理系統!\n");</p><p> printf("\n\t\t\t\t ###制作\n");</p><p> printf("\t\t\t-------------------------------\n");</
24、p><p> printf("\t\t\t1.鍵入學生的信息\n\n"); /*鍵入學生的信息*/</p><p> printf("\t\t\t2.查看錄入的學生信息\n\n"); /*查看錄入的學生信息*/</p><p> printf("\t\t\t3.按姓名查看學生的信息\n\n");
25、 /*按姓名查看學生的信息*/</p><p> printf("\t\t\t4.按學號查看學生的信息\n\n"); /*按學號查看學生的信息*/</p><p> printf("\t\t\t5.按平均成績排序\n\n"); /*排序*/</p><p> printf("\t\t\t6.刪除學生信息\n
26、\n"); /*刪除學生信息*/</p><p> printf("\t\t\t7.保存學生信息\n\n"); /*保存*/</p><p> printf("\t\t\t8.打開文件\n\n"); /*打開文件*/</p><p> printf("\t\t\t9.我的個人信息\n\n&qu
27、ot;); /*我的個人信息*/</p><p> printf("\t\t\t0.退出\n\n"); /*退出*/</p><p> printf("\t\t\t請輸入你的選擇:");</p><p> scanf("%d",&b);</p><p><b&
28、gt; switch(b)</b></p><p><b> {</b></p><p> case 1:type();break; /*調用鍵入學生信息函數*/</p><p> case 2:look();break; /*調用查看函數*/</p><p> case 3:search_name
29、();break; /*調用姓名查看函數*/</p><p> case 4:search_number();break; /*調用學號查看函數*/</p><p> case 5:order();break; /*調用排序函數*/</p><p> case 6:del();break;/*調用刪除函數*/</p><p> c
30、ase 7:save();break;/*調用保存函數*/</p><p> case 8:see();break;/*調用打開文件函數*/</p><p> case 9:welcome();break;/*調用我的個人信息函數*/</p><p> case 0:flag=1;break;/*退出SWITCH語句*/</p><p>
31、; default :printf("錯誤!");</p><p><b> }</b></p><p> if(flag) break; /*如果選擇0就退出循環*/</p><p><b> }</b></p><p><b> }</b>
32、</p><p> void welcome() /*我的個人信息函數*/</p><p><b> {</b></p><p> system("CLS");</p><p> printf("\n\n\t\t------------個人信息------------");
33、 /*在屏幕上輸出一下信息*/</p><p> printf("\n\n\n\n\t\t姓名:###");</p><p> printf("\t\t\tSex:#\n");</p><p> printf("\t\t年齡:#\n");</p><p> printf(&
34、quot;\n\t\t\t--------學習經歷--------\n\n\n");</p><p> printf("\t\t小學:######\n\n");</p><p> printf("\t\t初中:#####\n\n");</p><p> printf("\t\tS高中:######\n
35、\n");</p><p> printf("\t\t大學:洛陽理工學院\n\n");</p><p> printf("\n\n\t\t按任意鍵返回歡迎屏幕!");</p><p> getch(); /*按任意鍵返回主函數*/</p><p><b> }</
36、b></p><p> void type() /*定義鍵入學生信息函數*/</p><p><b> {</b></p><p> system("CLS");</p><p> int i; /*定義局部變量*/</p><p> printf(&
37、quot;\t\t輸出你想輸入的學生信息個數:");</p><p> scanf("%d",&n);</p><p> for(i=0;i<n;i++) /*輸入每個學生的信息*/</p><p><b> {</b></p><p> printf(&qu
38、ot;\n\t\t\t----------------\n");</p><p> printf("\t\t\t學號:");</p><p> scanf("%s",&stu[i].num); /*輸入學號*/</p><p> printf("\t\t\t姓名:");</
39、p><p> scanf("%s",&stu[i].name); /*輸入姓名*/</p><p> printf("\t\t\t性別:");</p><p> scanf("%S",&stu[i].sex); /*輸入性別*/</p><p> print
40、f("\t\t\t英語:");</p><p> scanf("%d",&stu[i].english); /*輸入英語成績*/</p><p> printf("\t\t\t數學:");</p><p> scanf("%d",&stu[i].math);
41、/*輸入數學成績*/</p><p> printf("\t\t\t語文:");</p><p> scanf("%d",&stu[i].chinese); /*輸入語文成績*/</p><p> stu[i].aver=((float)stu[i].english+(float)stu[i].math+(fl
42、oat)stu[i].chinese)/3;/*計算平均成績*/</p><p> stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*計算總成績*/</p><p> printf("\t\t\t平均成績=%4.1f\n",stu[i].aver); /*輸出平均
43、成績*/</p><p> printf("\t\t\t總成績=%4.1f\n",stu[i].sum); /*輸出總成績*/</p><p><b> }</b></p><p> printf("\n\n\t\t\t按任意鍵返回菜單!!");</p><p><
44、;b> getch();</b></p><p><b> save();</b></p><p><b> }</b></p><p> void save() /*建立保存文件函數*/</p><p><b> {</b></p>
45、<p> system("CLS");</p><p> FILE *fp; /*定義文件型指針*/</p><p><b> int i;</b></p><p> if((fp=fopen("student.txt","wb"))==NULL) /*
46、打開輸出文件*/</p><p><b> {</b></p><p> printf("不能打開文件!\n"); </p><p> return; /*終止程序*/</p><p><b> }</b><
47、;/p><p> for(i=0;i<n;i++) /*向student文件中寫入信息*/</p><p> if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)</p><p> printf("文件寫入錯誤\n");</p><p> fclose
48、(fp); /*關閉文件*/</p><p> printf("\n\n\n\n\t\t\t學生信息保存成功!\n");</p><p> printf("\n\n\n\n\t\t\t按任意鍵返回菜單!!");</p><p><b> getch();</b></p>&l
49、t;p><b> }</b></p><p> void look() /*定義查看函數*/</p><p><b> {</b></p><p> system("CLS");</p><p><b> int i;</b></
50、p><p> //n=openl(); /*調用openl函數*/</p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i=0;i<n;i++) /*輸出所有的學生信息*/</p><p><b> {
51、</b></p><p> printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);&
52、lt;/p><p><b> }</b></p><p> printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b> getch();</b></p><p><b> }</b></p><p>
53、 void search_name() /*按姓名查看函數*/</p><p><b> {</b></p><p> system("CLS");</p><p><b> int i;</b></p><p> char name[20]; /*聲明字符數組*
54、/</p><p> printf("\t\t\t請輸入學生姓名:\n");</p><p> scanf("%s",name);</p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i
55、=0;i<n;i++)</p><p> if(strcmp(stu[i].name,name)==0) /*將輸入的姓名與結構體中的姓名進行比較*/</p><p><b> {</b></p><p> printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n&quo
56、t;,stu[i].num,stu[i].name,</p><p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p> printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b>
57、 }</b></p><p><b> getch();</b></p><p><b> }</b></p><p> void search_number() /*定義按學號查看函數*/</p><p><b> {</b></p>
58、<p> system("CLS");</p><p><b> int i;</b></p><p> char number[15]; /*聲明字符數組*/</p><p> printf("\t\t\t請輸入學號:\n");</p><p> sca
59、nf("%s",number);</p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i=0;i<n;i++)</p><p> if(strcmp(stu[i].num,number)==0) /*將輸入的學號與結構體
60、中的學號進行比較*/</p><p> printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);&
61、lt;/p><p> printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b> getch();</b></p><p><b> }</b></p><p> void order() /*定義排序函數*/</p><p
62、><b> {</b></p><p> system("CLS");</p><p><b> int i,j;</b></p><p><b> char a;</b></p><p> struct student temp; /
63、*聲明結構體變量*/</p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i=0;i<n;i++) /*對數據進行排序*/</p><p><b> {</b></p><p> for(j=i+
64、1;j<n;j++)</p><p> if(stu[i].sum<stu[j].sum)</p><p><b> {</b></p><p> temp=stu[i];</p><p> stu[i]= stu[j];</p><p> stu[j]=temp;</
65、p><p><b> }</b></p><p> printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chine
66、se,stu[i].aver,stu[i].sum);</p><p><b> }</b></p><p><b> getch();</b></p><p> printf("是否保存?(y or n)");</p><p> getchar();</p>
67、<p> scanf("%c",&a);</p><p> if(a=='y') /*是否保存排序后的文件*/</p><p><b> save();</b></p><p><b> else</b></p><p> pri
68、ntf("退出");</p><p><b> getch();</b></p><p><b> }</b></p><p> void del() /*定義刪除學生信息函數*/</p><p><b> {</b></p><
69、p><b> int i;</b></p><p><b> char a;</b></p><p> char name[20];</p><p> system("CLS");</p><p> printf("\t\t\t輸入學生名字:\n&quo
70、t;);</p><p> scanf("%s",name);</p><p> system("CLS");</p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i=0;i<n;
71、i++)</p><p> if(strcmp(stu[i].name,name)==0)</p><p><b> {</b></p><p> printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p>
72、<p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p><b> getch();</b></p><p> printf("真的刪除?(y or n)");</p><p>
73、getchar();</p><p> scanf("%c",&a);</p><p> if(a=='y') /*是否刪除該信息*/</p><p><b> {</b></p><p> for(;i<n;i++)</p><p>
74、 stu[i]=stu[i+1];</p><p><b> n=n-1;</b></p><p> printf("你已經刪除信息");</p><p><b> }</b></p><p><b> else</b></p><
75、;p> printf("退出");</p><p><b> getch();</b></p><p><b> }</b></p><p><b> save();</b></p><p><b> }</b><
76、/p><p> int openl() /*定義打開文件函數*/</p><p><b> {</b></p><p> system("CLS");</p><p><b> int i;</b></p><p><b> FILE
77、*fp;</b></p><p> if((fp=fopen("student.txt","rb"))==NULL)</p><p><b> {</b></p><p> printf("Cannot open file.\n");</p><p
78、><b> exit(0);</b></p><p><b> }</b></p><p> for(i=0;!feof(fp);i++)</p><p> fread(&stu[i],sizeof(struct student),1,fp);</p><p> fclose
79、(fp);</p><p> return(i-1);</p><p><b> }</b></p><p> void see() /*打開并查看文件*/</p><p><b> {</b></p><p> system("CLS")
80、;</p><p><b> int i;</b></p><p> n=openl();</p><p> printf("文件打開成功!\n");</p><p> printf("按任意鍵查看!\n");</p><p><b>
81、getch();</b></p><p> printf("\t學號\t姓名\t性別\t英語\t數學\t語文\t平均成績\t總成績\n");</p><p> for(i=0;i<n;i++) /*輸出所有的學生信息*/</p><p><b> {</b></p><p&g
82、t; printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p> stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p><b>
83、 }</b></p><p> printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b> getch();</b></p><p><b> }</b></p><p><b> 五、測試結果與分析</b>
84、;</p><p><b> 六、課程設計總結</b></p><p> 課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發技術十分重要的。我的題目是文章處理系統的設計,
85、對于我們這些新手來說,這是很大的考驗,我一千次一萬次的問自己,怎么才能找到課堂所學與實際應用的最佳結合點?怎么才能讓自己的程序在篇幅上簡單,在使用價值上豐富?怎樣讓自己的業余更靠近專業?怎樣讓自己的計劃更具有序性,而不會忙無一用?機會是老師,學校,以及無數教育工作者給的,而能力是自己的,耐性是需要的。經過自己的琢磨,聽取了師姐,師兄們的建議,還查閱了很多書籍,才做到了心中有數,才了解了C語言課程設計的真正用意——培養自學能力,養成程序編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計--學生信息管理系統
- c語言課程設計--- 學生信息管理系統
- c語言課程設計--學生信息管理系統
- c語言課程設計——學生信息管理系統
- c語言課程設計---學生信息管理系統
- 學生信息管理系統-c語言課程設計
- c語言課程設計-學生信息管理系統
- c語言課程設計-學生信息管理系統
- c語言課程設計--學生信息管理系統
- c語言課程設計--學生信息管理系統
- c語言課程設計-學生信息管理系統
- c語言課程設計-學生信息管理系統
- c語言課程設計---學生信息管理系統
- c語言課程設計--學生信息管理系統
- c語言課程設計----學生信息管理系統設計
- c語言課程設計-學生信息管理系統設計報告
- c語言課程設計-學生信息管理系統設計報告
- 學生信息管理系統c語言課程設計報告
- c語言課程設計--學生信息管理系統 (2)
- c語言課程設計--學生信息管理系統 (2)
評論
0/150
提交評論