

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《C語言程序設計》課程設計報告</p><p> 題目: 學生信息管理系統(tǒng) </p><p> 專業(yè): 計算機科學與技術 </p><p> 班級: 計算機XX班 </p><p> 學號: </p><
2、;p> 姓名: ***** </p><p> 日期:2012年3月21日</p><p><b> 1.2意義</b></p><p> 熟悉C語言程序的編程環(huán)境、熟練應用Visual C++ 6.0進行C語言編程、糾正、改錯、運行。</p><p> 掌握C語言的所
3、有數(shù)據(jù)類型,熟練的定義使用整型、實型和字符型的變量。</p><p> 掌握C語言的所有算法,并且能熟練使用,進行各項操作。</p><p> 學習并掌握C語言定義函數(shù)的基本方法、聲明函數(shù)及調用函數(shù)的方法和過程。</p><p> 掌握文件和文件指針的概念以及文件的定義方法,認識文件打開、關閉、讀、寫等文件基本操作函數(shù)。</p><p>
4、; 掌握結構體類型變量、數(shù)組的定義和使用。</p><p><b> 1.3目標</b></p><p> 熟悉C語言程序的編輯、編譯鏈接和運行的過程,至少能夠用一種編譯器較熟練地編輯、編譯及調試程序。</p><p> 掌握C語言數(shù)據(jù)類型,如何定義一個整型、字符型和實型的變量,以及對它們賦值的方法。</p><p&
5、gt; 熟練運用if語句和switch語句以及嵌套應用。涉及循環(huán)調用的,了解并掌握三種控制語句while、do-while和for語句。</p><p> 學習并掌握C語言定義函數(shù)的基本方法、聲明函數(shù)及調用函數(shù)的方法和過程。</p><p> 2.1 功能模塊設計</p><p> 模塊一:頭文件,變量定義,函數(shù)的聲明 </p><p&g
6、t; 對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明 </p><p> 模塊二:學生信息系統(tǒng)使用幫助 </p><p> 聲明函數(shù)void help(),對整個系統(tǒng)進行使用說明 </p><p> 模塊三:錄入學生信息 </p><p> 聲明函數(shù)void readfile(),說明一個文件指針FILE *fp 打開文件"s
7、tudent.txt" </p><p> 模塊四:刪除學生信息 </p><p> 聲明void del()實現(xiàn)學生信息刪除,通過學號對比確定要刪除的信息,然后用后一個替換掉。 </p><p> 模塊五:學生信息的查找 </p><p> 聲明void seek()為查找函數(shù),通過switch(item)設定用學號查找,
8、用姓名查找,用成績查找三個分支 </p><p> 模塊六:學生信息按總成績排序 </p><p> 聲明void sort()將錄入學生系按升序排列,用的是“冒泡排序法”實現(xiàn)排序 </p><p> 模塊七:顯示學生信息 </p><p> 通過display()函數(shù)輸出學生信息 </p><p><b
9、> 模塊八:保存信息 </b></p><p> 通過fp=fopen(“card.dat”, “wb”);寫入信息 </p><p><b> 模塊九:導出信息</b></p><p> 通過fp=fopen(“card.dat”, “wb”);導出信息</p><p><b>
10、模塊九:界面菜單 </b></p><p> 通過switch(num)調用,以上各函數(shù),實現(xiàn)功能</p><p> 函數(shù)void help(),對整個系統(tǒng)進行使用說明 </p><p> 3、 聲明函數(shù)void readfile(),說明一個文件指針FILE *fp 打開文件 “card.dat”</p><p&g
11、t; 4、聲明void del()實現(xiàn)學生信息刪除,通過學號對比確定要刪除的信息,然后用后一個替換掉。</p><p> 5、聲明void seek()為查找函數(shù),通過switch(item)設定用學號查找,用姓名查找,用成績查找三個分支 </p><p> 6、 聲明void sort()將錄入學生按升序排列,用的是“冒泡排序法”實現(xiàn)排序 </p><p>
12、; 7、 通過fp=fopen(“card.dat”, “wb”);寫入信息 </p><p> 8、 通過fp=fopen(“card.dat”, “wb”);導出信息</p><p> 9、 通過display()函數(shù)輸出學生信息 </p><p> 10、通過switch(num)調用,以上各函數(shù),實現(xiàn)功能</p><p>&l
13、t;b> 4 源代碼摘錄</b></p><p> #include <stdio.h> </p><p> #include <string.h></p><p> #include <stdlib.h> </p><p> #include <conio.h>
14、</p><p> #define M 3</p><p> #define N 1000</p><p> typedef struct stu</p><p><b> {</b></p><p> char xingming[20];</p><p> i
15、nt xuehao;</p><p> int chengji;</p><p> int gaoshu;</p><p> int yingyu;</p><p> int jisuanji;</p><p> int zchengji;</p><p><b> }ST
16、U;</b></p><p> STU stu[N];</p><p> int renshu=0;</p><p> void menu();</p><p> void fhzjm()//返回主界面函數(shù)</p><p><b> {</b></p><
17、p> char biaozhi[20];</p><p> printf("\n");</p><p> printf("還需要操作么?如果需要操作請輸入:yes,否則請輸入:no\n");</p><p> scanf("%s",biaozhi);</p><p>
18、 if(strcmp(biaozhi,"yes")==0)</p><p><b> {</b></p><p><b> menu();</b></p><p><b> }</b></p><p> else if(strcmp(biaozhi
19、,"no")==0)</p><p><b> exit(0);</b></p><p><b> else </b></p><p><b> {</b></p><p> printf("請輸入正確的字符,謝謝!\n");&l
20、t;/p><p><b> fhzjm();</b></p><p><b> }</b></p><p><b> }</b></p><p> void DengJi()</p><p><b> {</b></p&
21、gt;<p> int i,j,k=1;</p><p> system("CLS");</p><p> printf("請輸入學生的人數(shù):");</p><p> scanf("%d",&j);</p><p> for(i=0;i<j;i+
22、+,k++)</p><p><b> {</b></p><p> printf("請輸入第%d個學生的學號:",k);</p><p> scanf("%d",&stu[i].xuehao );</p><p> printf("請輸入第%d個學生的姓
23、名:",k);</p><p> scanf("%s",stu[i].xingming );</p><p> printf("請輸入第%d個學生的成績\n",k);</p><p> printf("請輸入高數(shù)學成績:");</p><p> scanf(&quo
24、t;%d",&stu[i].gaoshu );</p><p> printf("請輸入英語成績:");</p><p> scanf("%d",&stu[i].yingyu );</p><p> printf("請輸入計算機成績:");</p><p&
25、gt; scanf("%d",&stu[i].jisuanji );</p><p> stu[i].zchengji=stu[i].gaoshu+stu[i].yingyu+stu[i].jisuanji;</p><p> printf("總成績?yōu)椋?d\n",stu[i].zchengji);</p><p&g
26、t;<b> }</b></p><p> renshu=renshu+j;</p><p><b> fhzjm();</b></p><p><b> }</b></p><p> void ShanChu()</p><p><b&
27、gt; {</b></p><p> char scxxi[15];</p><p> system("CLS");</p><p> printf("刪除全部學生信息請輸入\"all\",刪除指定學生請輸入\"one\"\n");</p><p&
28、gt; scanf("%s",scxxi);</p><p> if(strcmp(scxxi,"all")==0)</p><p><b> {</b></p><p><b> int i;</b></p><p> printf("你
29、刪除的學生信息如下:\n");</p><p> printf("--------學號--------姓名--------高數(shù)------英語-------計算機-------總成績--------\n");</p><p> for(i=0;i<renshu;i++)</p><p> printf("----%
30、d-----%s-----%d-----%d-----%d-----%d-----\n",stu[i].xuehao ,stu[i].xingming ,stu[i].gaoshu ,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b> renshu=0;</b></p><p> pr
31、intf("刪除成功\n");</p><p><b> }</b></p><p> else if(strcmp(scxxi,"one")==0)</p><p><b> {</b></p><p> struct stu *p=NULL;<
32、;/p><p><b> int q;</b></p><p> int i,j,k=0;</p><p> printf("請輸入你要刪除的學生的學號:");</p><p> scanf("%d",&q);</p><p> for(i=0
33、;i<renshu;i++)</p><p><b> {</b></p><p> if(q==stu[i].xuehao)</p><p><b> {</b></p><p> k=1;j=i;break;</p><p><b> }<
34、/b></p><p><b> }</b></p><p><b> if(k)</b></p><p><b> {</b></p><p> printf("你刪除的學生信息如下:\n");</p><p> p
35、rintf("--------學號--------姓名--------高數(shù)------英語-------計算機-------總成績--------\n");</p><p> printf("----%d----------%s----------%d---------%d--------%d----------%d-----\n",stu[i].xuehao ,stu[
36、i].xingming ,stu[i].gaoshu ,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p> if(renshu==1)</p><p><b> {</b></p><p> p=&stu[0];</p><p><b>
37、; free(p);</b></p><p><b> renshu=0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
38、p> for(i=j;i<renshu;i++)</p><p> stu[i]=stu[i+1];</p><p><b> }</b></p><p> renshu=renshu-1;</p><p><b> }</b></p><p> pr
39、intf("刪除成功\n");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("輸入數(shù)據(jù)錯誤\n");</p>
40、<p><b> }</b></p><p><b> fhzjm();</b></p><p><b> }</b></p><p> void LiuLan()</p><p><b> {</b></p><
41、p><b> int i;</b></p><p> system("CLS");</p><p> if(renshu==0)</p><p><b> {</b></p><p> printf("系統(tǒng)里面沒有任何學生的信息\n");<
42、;/p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> for(i=0;i<renshu;i++)</p><p><b> {</b>
43、</p><p> printf("第%d個學生的學號是:%d\n",i+1,stu[i].xuehao);</p><p> printf("第%d個學生的姓名是:%s\n",i+1,stu[i].xingming);</p><p> printf("第%d個學生的高數(shù)成績:%d\n",i+1,s
44、tu[i].gaoshu);</p><p> printf("第%d個學生的英語成績:%d\n",i+1,stu[i].yingyu);</p><p> printf("第%d個學生的計算機成績:%d\n",i+1,stu[i].jisuanji);</p><p> printf("第%d個學生的總成績:
45、%d\n",i+1,stu[i].zchengji);</p><p><b> }</b></p><p><b> }</b></p><p><b> fhzjm();</b></p><p><b> }</b></p>
46、;<p> void ChaZhao()</p><p><b> {</b></p><p> char choice,xxi[15];</p><p><b> int xx;</b></p><p> int i,j,k=0;</p><p>
47、 if(renshu==0)</p><p><b> {</b></p><p> printf("系統(tǒng)里面沒有任何學生信息\n");</p><p><b> fhzjm();</b></p><p><b> }</b></p>
48、<p> printf("三種查找方式:學號、姓名、成績,如果按照學號查找請輸入,如果按照姓名查找請輸入,如果按照成績查找請輸入:\n");</p><p> printf("請輸入您查找的方式:");</p><p> scanf("%s",&choice);</p><p>
49、if(choice=='1')</p><p><b> {</b></p><p> printf("請輸入您所要查找的學生的學號:");</p><p> scanf("%d",&xx);</p><p> printf("您所查找的學
50、生的信息為:\n");</p><p> printf("------學號--------姓名--------高數(shù)--------英語--------計算機--------總成績\n");</p><p> for(i=0;i<renshu;i++)</p><p><b> {</b></p&g
51、t;<p> if(xx==stu[i].xuehao)</p><p><b> {</b></p><p><b> j=i;k=1;</b></p><p> printf("-------%d------%s------%d--------%d---------%d---------
52、--%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b> }</b></p><p><b> }</b></p><p><b>
53、 if(k==0)</b></p><p> printf("輸入的信息有誤\n");</p><p><b> }</b></p><p> else if(choice=='2')</p><p><b> {</b></p>
54、<p> printf("請輸入您所要查找的學生的姓名:");</p><p> scanf("%s",xxi);</p><p> printf("您所要查找的學生的信息為:\n");</p><p> printf("------學號--------姓名--------高
55、數(shù)--------英語--------計算機--------總成績\n");</p><p> for(i=0;i<renshu;i++)</p><p><b> {</b></p><p> if(strcmp(xxi,stu[i].xingming)==0)</p><p><b>
56、 {</b></p><p><b> j=i;k=1;</b></p><p> printf("-------%d------%s------%d--------%d---------%d----------%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yin
57、gyu,stu[i].jisuanji,stu[i].zchengji);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(k==0)</b></p><p> printf("輸入信息有誤!\n&q
58、uot;);</p><p><b> }</b></p><p> else if(choice=='3')</p><p><b> {</b></p><p> printf("請輸入您所要查找的學生的成績:");</p><p&
59、gt; scanf("%d",&xx);</p><p> printf("您所要查找的學生的信息為:\n");</p><p> printf("------學號--------姓名--------高數(shù)--------英語--------計算機--------總成績\n");</p><p>
60、; for(i=0;i<renshu;i++)</p><p><b> {</b></p><p> if((xx==stu[i].gaoshu)||(xx==stu[i].yingyu)||(xx==stu[i].jisuanji))</p><p><b> {</b></p><p
61、><b> j=i;k=1;</b></p><p> printf("-------%d------%s------%d--------%d---------%d----------%d\n",stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zch
62、engji);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(k==0)</b></p><p> printf("輸入的信息有誤!\n");</p><p>&l
63、t;b> }</b></p><p><b> fhzjm();</b></p><p><b> }</b></p><p> void PaiXu()</p><p><b> {</b></p><p> if(re
64、nshu==0)</p><p><b> {</b></p><p> printf("系統(tǒng)里面沒有任何學生信息\n");</p><p><b> fhzjm();</b></p><p><b> }</b></p><p&
65、gt; struct stu *p1[N],**p2,*temp;</p><p><b> int i,j;</b></p><p> system("CLS");</p><p><b> p2=p1;</b></p><p> for(i=0;i<rensh
66、u;i++)</p><p><b> {</b></p><p> p1[i]=stu+i;</p><p><b> }</b></p><p> for( i=0;i<renshu;i++)</p><p><b> {</b>&l
67、t;/p><p> for( j=i+1;j<renshu;j++)</p><p><b> {</b></p><p> if((*(p2+i))->zchengji<(*(p2+j))->zchengji)</p><p> {temp=*(p2+i);*(p2+i)=*(p2+j);*
68、(p2+j)=temp;}</p><p><b> }</b></p><p><b> }</b></p><p> printf("按照總成績排序之后的信息為:\n");</p><p> printf("------學號--------姓名-------
69、-高數(shù)--------英語--------計算機--------總成績\n");</p><p> for(i=0;i<renshu;i++)</p><p><b> {</b></p><p> printf("----%d-----%s----%d------%d--------%d----------%d
70、\n",(*(p2+i))->xuehao,(*(p2+i))->xingming,(*(p2+i))->gaoshu,(*(p2+i))->yingyu,(*(p2+i))->jisuanji,(*(p2+i))->zchengji);</p><p><b> }</b></p><p><b> fhz
71、jm();</b></p><p><b> }</b></p><p> void CunChu()</p><p><b> {</b></p><p><b> int i;</b></p><p><b> FIL
72、E *rs;</b></p><p> if((rs=fopen("card.dat","wb"))==NULL)</p><p><b> {</b></p><p> printf("not open");</p><p><b>
73、; exit(0);</b></p><p><b> }</b></p><p> for(i=0;i<renshu;i++)</p><p><b> {</b></p><p> fwrite(&stu[i], sizeof(stu[i]), 1, rs);
74、</p><p><b> }</b></p><p> if(ferror(rs))</p><p><b> {</b></p><p> fclose(rs);</p><p> perror("寫文件失敗!\n");</p>
75、<p><b> return;</b></p><p><b> }</b></p><p> printf("存儲文件成功!\n");</p><p> fclose(rs); </p><p><b> fhzjm();</b>&
76、lt;/p><p><b> }</b></p><p> void DaoChu()</p><p><b> {</b></p><p> struct stu t;</p><p><b> int i=0;</b></p>&
77、lt;p> FILE* fp = fopen("card.dat", "rb");</p><p><b> renshu=0;</b></p><p> if(NULL==fp)</p><p><b> {</b></p><p> per
78、ror("讀取文件打開失?。n");</p><p><b> return;</b></p><p><b> }</b></p><p> memset(stu,0x0,sizeof(stu));</p><p><b> while(1)</b&g
79、t;</p><p><b> {</b></p><p> fread(&t,sizeof(t),1,fp);</p><p> if(ferror(fp))</p><p><b> {</b></p><p> fclose(fp);</p>
80、;<p> perror("讀文件過程失?。n");</p><p><b> return;</b></p><p><b> }</b></p><p> if(feof(fp))</p><p><b> {</b></
81、p><p><b> break;</b></p><p><b> }</b></p><p><b> stu[i]=t;</b></p><p><b> i++;</b></p><p><b> }<
82、/b></p><p> fclose(fp);</p><p><b> renshu=i;</b></p><p> printf("導出文件成功!\n");</p><p><b> fhzjm();</b></p><p><b
83、> }</b></p><p> void menu()</p><p><b> {</b></p><p><b> int n=0;</b></p><p> system("CLS");</p><p> printf
84、(" 學生信息管理系統(tǒng)\n");</p><p> printf(" 作者10030095\n");</p><p> printf("----------------------MENU------------------\n");</p>&
85、lt;p> printf(" 1. 登記學生信息\n");</p><p> printf(" 2. 刪除學生信息\n");</p><p> printf(" 3. 瀏覽所有已經(jīng)登記的學生\n");</p><p>
86、printf(" 4. 查找\n");</p><p> printf(" 4.1.按學號查找\n");</p><p> printf(" 4.2.按姓名查找\n");</p><p> printf("
87、 4.3.按成績查找\n");</p><p> printf(" 5. 根據(jù)總成績排序\n");</p><p> printf(" 6. 存儲到文件\n");</p><p> printf(" 7
88、. 從文件導出\n");</p><p> printf(" 8. 退出系統(tǒng)\n");</p><p> a:printf(" 請選擇:");</p><p> scanf("%d",&n);</p><p> switch (n)
89、</p><p><b> {</b></p><p><b> case 1:</b></p><p> DengJi();break;</p><p><b> case 2:</b></p><p> ShanChu();break;&l
90、t;/p><p><b> case 3:</b></p><p> LiuLan();break;</p><p><b> case 4:</b></p><p> ChaZhao();break;</p><p><b> case 5:</b&g
91、t;</p><p> PaiXu();break;</p><p><b> case 6:</b></p><p> CunChu();break;</p><p><b> case 7:</b></p><p> DaoChu();break;</p&
92、gt;<p><b> case 8:</b></p><p> exit(0);break;</p><p> default:</p><p><b> {</b></p><p> printf("請輸入-8之間的數(shù)字,謝謝!\n");</
93、p><p><b> goto a;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> main()</b>
94、;</p><p><b> {</b></p><p><b> menu();</b></p><p><b> }</b></p><p> 5 程序的運行及結果分析</p><p><b> 主界面</b><
95、/p><p> 在主界面上選擇需要進行的操作:</p><p> 選擇1:則登記一個學生的信息。界面如下: </p><p> 選擇2:可以刪除全部學生的信息,也可以刪除指定某個學生姓名的信息。</p><p> 選擇3:可以瀏覽所有學生的信息。</p><p> 選擇4:進行查找操作。按照不同的方式查找。<
96、;/p><p> 選擇5:可以根據(jù)總成績排序</p><p> 選擇6: 則可以保存數(shù)據(jù)。</p><p> 選擇7: 導出文件</p><p> 選擇八: 退出學生信息管理系統(tǒng)</p><p><b> 7 總結和體會</b></p><p> 課程設計是把
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言程序設計課程設計報告--職工信息管理系統(tǒng)
- c語言程序設計課程設計--學生宿舍信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)-《c語言程序設計》課程設計報告
- 圖書信息管理系統(tǒng)課程設計報告--c語言程序設計
- 《程序設計語言》課程設計-學生信息管理系統(tǒng)
- c++程序設計課程設計---學生信息管理系統(tǒng)
- 高級程序設計課程設計報告—學生信息管理系統(tǒng)
- c語言課程設計-學生信息管理系統(tǒng)設計報告
- c語言課程設計-學生信息管理系統(tǒng)設計報告
- 學生信息管理系統(tǒng)c語言課程設計報告
- c語言課程設計報告----學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)c語言課程設計報告
- c語言課程設計報告---學生信息管理系統(tǒng)
- c語言課程設計報告---學生信息管理系統(tǒng)
- c語言課程設計報告--學生信息管理系統(tǒng)
- c語言程序設計報告-職工信息管理系統(tǒng)設計
- c語言課程設計---學生信息管理系統(tǒng)設計
- c語言課程設計--學生信息管理系統(tǒng)
- c語言課程設計--- 學生信息管理系統(tǒng)
- c語言課程設計--學生信息管理系統(tǒng)
評論
0/150
提交評論