版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 《C語言程序設計》</b></p><p><b> 項目設計報告</b></p><p> 項目名稱: 學生成績信息管理系統(tǒng) </p><p> 2016年 1月 13日</p><p><b> 目 錄</b&
2、gt;</p><p><b> 1 項目分析1</b></p><p> 1.1 問題描述1</p><p> 1.2 功能需求分析1</p><p><b> 2 系統(tǒng)設計2</b></p><p> 2.1 數(shù)據(jù)結(jié)構(gòu)設計2</p>&l
3、t;p> 2.3部分功能設計2</p><p> 3 系統(tǒng)實現(xiàn)源程序4</p><p> 3.1 主函數(shù)設計4</p><p> 3.2 添加學生信息5</p><p> 3.3 姓名學號查詢10</p><p> 3.4 成績查詢12</p><p> 3.5
4、刪除學生成績信息13</p><p> 3.6 修改學生成績信息14</p><p><b> 4 功能測試16</b></p><p> 4.1 菜單測試16</p><p> 4.2 系統(tǒng)功能測試16</p><p> 5 系統(tǒng)設計遇到的問題及解決方法21</p&g
5、t;<p> 6 項目設計總結(jié)22</p><p><b> 1 項目分析</b></p><p><b> 1.1 問題描述</b></p><p> 信息儲存與查詢是計算機處理數(shù)據(jù)的優(yōu)勢之一,目前,學生信息的管理系統(tǒng)已經(jīng)完全走進了校園,其中成績信息的儲存是主要部分,本課題使用C語言實現(xiàn)學生成績的
6、儲存,查詢,修改,以及刪除等操作。程序中涉及到數(shù)據(jù)塊和文件指針的操作,包括結(jié)構(gòu)體數(shù)據(jù)定義,使用及文件的讀寫,定位,修改等。</p><p> 1.2 功能需求分析</p><p> 學生成績信息管理系統(tǒng)的主要功能如下:</p><p> ①添加學生信息:錄入學生的基本信息,如姓名,學號,成績。</p><p> ?、陲@示所有學生成績信息
7、:直接顯示已經(jīng)全部錄入學生的成績信息。</p><p> ?、蹖W號或姓名查詢:可以根據(jù)學生的姓名和學號直接查詢該名學生的成績。</p><p> ?、艹煽儾樵儯嚎梢愿鶕?jù)一個特定的分數(shù)來查詢學生的信息。</p><p> ?、輨h除學生成績信息:可以直接根據(jù)學號確定是否刪除對應學生的成績信息。</p><p> ?、扌薷膶W生成績信息:直接根據(jù)學生
8、學號來修改學生的姓名,學號,成績。</p><p> 圖1-1 系統(tǒng)功能模塊圖</p><p><b> 2 系統(tǒng)設計</b></p><p> 2.1 數(shù)據(jù)結(jié)構(gòu)設計</p><p><b> 2.2 函數(shù)設計</b></p><p><b> 表1 函數(shù)
9、列表</b></p><p><b> 2.3部分功能設計</b></p><p> 1.刪除學生的信息,輸入學生的學號進行刪除操作,如果沒有此人,系統(tǒng)將會提示無此人,如果找到,系統(tǒng)將會確認你是否需要刪除,流程圖如1-2所示。</p><p> 圖1-2 刪除學生信息流程圖</p><p> 2.輸入
10、學號進行查詢對應同學的成績,流程圖如圖1-3所示。</p><p> 圖1-3 查詢功能流程圖</p><p><b> 3 系統(tǒng)實現(xiàn)源程序</b></p><p><b> 3.1 主函數(shù)設計</b></p><p> void main()</p><p><
11、;b> {</b></p><p><b> int x;</b></p><p> system("cls");/*清屏*/</p><p><b> do</b></p><p><b> {</b></p>
12、<p> printf("\n 歡迎使用學生成績信息管理系統(tǒng)\n\n\n\n\n"); </p><p> printf(" 1 ---------添加學生信息\n\n"); </p><p> printf("
13、 2 ---------顯示所有學生成績信息\n\n"); </p><p> printf(" 3 ---------學號或姓名查詢\n\n");</p><p> printf(" 4 ---------成績查詢\n\n"
14、); </p><p> printf(" 5 ---------刪除學生成績信息\n\n");</p><p> printf(" 6 ---------修改學生成績信息\n\n");</p><p> printf(&qu
15、ot; 0 ---------退出");</p><p> printf(" 請您選擇:");</p><p><b> choice:</b></p><p> scanf("%d",&
16、;x);</p><p><b> switch(x)</b></p><p><b> {</b></p><p> case 1:add();break;</p><p> case 2:printall();break;</p><p> case 3:sea
17、rch();break;</p><p> case 4:jgsearch();break;</p><p> case 5:del();break;</p><p> case 6:modify();break;</p><p> case 0:break;</p><p> default:printf(
18、"\n 錯誤的選擇,請重新選擇:");goto choice; </p><p><b> } </b></p><p><b> }</b></p><p> while(x!=0);</p><p> system(&qu
19、ot;cls");</p><p> printf("\n\n 歡迎再次使用學生成績管理系統(tǒng)\n"); </p><p><b> }</b></p><p> 3.2 添加學生信息</p><p> /*學生成績信息管理系統(tǒng)*/</p&
20、gt;<p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p> int c,j,t;</p><p> struct stu/*定義結(jié)構(gòu)體類型*/ <
21、/p><p><b> {</b></p><p> char name[10];</p><p> char num[10];</p><p> char score[10];</p><p><b> }</b></p><p> stud
22、ent[100],</p><p> newstudent[100];</p><p> /*添加學生個人信息*/ </p><p> void addnew()</p><p> {int a,b,k;</p><p> FILE *fp,*fp1,*fp2; /*FILE類型指針變量的定
23、義形式*/ </p><p> for(a=0;a<200;a++)</p><p><b> {</b></p><p> system("cls");</p><p> printf(" 歡迎使用學生成績管理系統(tǒng)\n\n\n");<
24、/p><p> printf(" 錄入學生信息\n\n");</p><p> printf("輸入學生姓名:");</p><p> scanf("%s",&student[a].name);</p><p> printf(&qu
25、ot;輸入學生學號:");</p><p> scanf("%s",&student[a].num);</p><p> printf("輸入學生成績:");</p><p> scanf("%s",&student[a].score);</p><p&g
26、t; printf("輸入‘1’繼續(xù),‘0’結(jié)束\n");/*判斷輸入是否結(jié)束*/ </p><p> scanf("%d",&b);</p><p> if(b==0)</p><p><b> {</b></p><p><b> c=a
27、;</b></p><p> system("cls");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if((f
28、p1=fopen("Ca1.txt","w"))==NULL)/*文件名,使用文件方式*/ </p><p> {printf("信息寫入失敗");</p><p><b> exit(0);</b></p><p><b> }</b></p&g
29、t;<p> if((fp2=fopen("Ca2.txt","w"))==NULL)</p><p> {printf("信息寫入失敗");</p><p><b> exit(0);</b></p><p><b> }</b><
30、;/p><p> if((fp=fopen("Ca3.txt","w"))==NULL)</p><p> {printf("信息寫入失敗");</p><p><b> exit(0);</b></p><p><b> }</b>
31、;</p><p> j=sizeof(struct stu);</p><p> for(a=0;a<=c;a++)</p><p> {if(fwrite(&student[a],j,1,fp)!=1)</p><p> printf("存入失敗!");</p><p>&
32、lt;b> }</b></p><p> for(a=0;a<=c;a++)</p><p> {if(strcmp(student[a].score,"80")==0)</p><p> {fwrite(&student[a],j,1,fp1);</p><p><b>
33、 }</b></p><p><b> else</b></p><p> {fwrite(&student[a],j,1,fp2);</p><p><b> }</b></p><p><b> }</b></p><p&g
34、t; printf("添加成功!\n\n");</p><p> printf("請輸入'0'返回\n");</p><p> scanf("%d",&k);</p><p> fclose(fp1);</p><p> fclose(fp2);&l
35、t;/p><p> fclose(fp);</p><p><b> if(k==0)</b></p><p> system("cls");</p><p><b> }</b></p><p> /*繼續(xù)添加成員*/</p><
36、;p> void addold()</p><p><b> {</b></p><p> int a,b,k,p,q;</p><p> char wjm[20];</p><p><b> FILE *fp;</b></p><p> j=sizeof(
37、struct stu);</p><p> system("cls");</p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p><p> printf(" 錄入學生信息\n\n");</p&g
38、t;<p> printf("\n\n存儲文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p> printf("請輸入想繼續(xù)添加的文件名:");</p><p> scanf("%s",wjm);</p><p> for(a=0;a<
39、;200;a++)</p><p><b> {</b></p><p> printf("輸入學生姓名:");</p><p> scanf("%s",&newstudent[a].name);</p><p> printf("輸入學生學號:"
40、;);</p><p> scanf("%s",&newstudent[a].num);</p><p> printf("輸入學生成績:");</p><p> scanf("%s",&newstudent[a].score);</p><p> print
41、f("輸入‘1’繼續(xù),‘0’結(jié)束\n");//判斷輸入是否結(jié)束</p><p> scanf("%d",&b);</p><p> if(b==0)</p><p><b> {</b></p><p><b> c=a;</b>
42、</p><p> system("cls");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if((fp=fopen(wjm
43、,"r"))==NULL)</p><p><b> {</b></p><p> printf("文件打開失??!");</p><p><b> exit(0);</b></p><p><b> }</b></p&g
44、t;<p><b> a=0;</b></p><p> while(!feof(fp))</p><p> {fread(&student[a],j,1,fp);</p><p><b> a++;</b></p><p><b> }</b>
45、</p><p> fclose(fp);</p><p><b> t=a-1;</b></p><p> for(q=0,p=t;q<=c,p<=t+c;q++,p++)</p><p><b> {</b></p><p> strcpy(stud
46、ent[p].name,newstudent[q].name);</p><p> strcpy(student[p].num,newstudent[q].num);</p><p> strcpy(student[p].score,newstudent[q].score);</p><p><b> }</b></p>&
47、lt;p> if((fp=fopen(wjm,"w"))==NULL)</p><p><b> {</b></p><p> printf("文件打開失??!");</p><p><b> exit(0);</b></p><p><
48、b> }</b></p><p> for(a=0;a<=t+c;a++)</p><p> {if(fwrite(&student[a],j,1,fp)!=1)</p><p> printf("存入失敗!");</p><p><b> }</b><
49、/p><p> printf("添加成功!\n\n");</p><p> printf("請輸入'0'返回\n");</p><p> scanf("%d",&k);</p><p> fclose(fp);</p><p>&l
50、t;b> if(k==0)</b></p><p> system("cls");</p><p><b> }</b></p><p> void add()</p><p><b> {int x;</b></p><p>
51、 system("cls");</p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p><p> printf(" 添加學生信息\n\n");</p><p> printf("
52、 1 重新添加信息\n");</p><p> printf(" 2 繼續(xù)添加信息\n");</p><p> printf(" 0 返回\n\n\n");</p>
53、<p> printf(" 請選擇:");</p><p> scanf("%d",&x);</p><p><b> choice:</b></p><p><b> switch(x)<
54、/b></p><p><b> {</b></p><p> case 1:addnew();break;</p><p> case 2:addold();break;</p><p> case 0:break;</p><p> default:printf("\
55、n 錯誤的選擇,請重新選擇:");</p><p> goto choice; </p><p><b> }</b></p><p> system("cls");</p><p><b> }</b></p
56、><p> /*顯示所有學生的成績*/ </p><p> void printall()</p><p><b> {</b></p><p><b> int a,b;</b></p><p> FILE *fp,*fp1,*fp2;</p>&l
57、t;p> system("cls");</p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p><p> printf(" 全部已錄入學生信息\n\n");</p><p> printf("
58、;%-10s%-20s%-50s\n","姓名","學號","成績");</p><p> j=sizeof(struct stu);</p><p> if((fp=fopen("Ca1.txt","r"))==NULL)</p><p> {pr
59、intf("\n打開失敗");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> if((fp1=fopen("Ca2.txt","r"))==NULL)</p><p>
60、 {printf("信息寫入失敗");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> if((fp2=fopen("Ca3.txt","r"))==NULL)</p><
61、p> {printf("信息寫入失敗");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> a=0;</b></p><p> while(!feof(fp))</p&
62、gt;<p> {if(fread(&student[a],j,1,fp)==1)</p><p> {printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b> a++;</b></p>
63、<p><b> }</b></p><p><b> }</b></p><p><b> a=0;</b></p><p> while(!feof(fp1))</p><p> {if(fread(&student[a],j,1,fp1)==
64、1)</p><p> {printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b> a++;</b></p><p><b> }</b></p><p&g
65、t;<b> }</b></p><p><b> a=0;</b></p><p> while(!feof(fp2))</p><p> {if(fread(&student[a],j,1,fp2)==1)</p><p> {printf("%-10s%-20s%-
66、50s\n",student[a].name,student[a].num,student[a].score);</p><p><b> a++;</b></p><p><b> }</b></p><p><b> }</b></p><p> fclo
67、se(fp);</p><p> fclose(fp1);</p><p> fclose(fp2);</p><p> printf("返回上級請輸入‘0’!\n:");</p><p> scanf("%d",&b);</p><p><b> i
68、f(b==0)</b></p><p><b> {</b></p><p> system("cls");</p><p><b> }</b></p><p><b> }</b></p><p> 3.3
69、姓名學號查詢</p><p> void search()</p><p><b> {</b></p><p> int k,b,a;</p><p> char cx[20];</p><p><b> FILE *fp;</b></p><
70、p> system("cls");</p><p> j=sizeof(struct stu);</p><p><b> do</b></p><p><b> {</b></p><p> printf(" 歡迎使用學生成績信
71、息管理系統(tǒng)\n\n\n");</p><p> printf(" 查找已錄入學生成績信息\n\n");</p><p><b> k=0;</b></p><p> if((fp=fopen("Ca1.txt","r"))==NULL)&
72、lt;/p><p><b> {</b></p><p> printf("\n打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> printf(&quo
73、t;請輸入學號或姓名:\n");</p><p> scanf("%s",cx);</p><p> if((cx[0]<'0')||(cx[0]>'9'))</p><p><b> {a=0;</b></p><p> while(!
74、feof(fp))</p><p> {fread(&student[a],j,1,fp);</p><p> if(strcmp(student[a].name,cx)==0)</p><p><b> {</b></p><p> printf("\n\n已查到,該記錄為:\n\n"
75、;);</p><p> printf("%-10s%-20s%-50s\n","姓名","學號","成績");</p><p> printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);&l
76、t;/p><p><b> k=1;</b></p><p><b> }</b></p><p><b> a++;</b></p><p><b> }</b></p><p><b> }</b>&
77、lt;/p><p> if('0'<=cx[0]<='9')</p><p><b> {a=0;</b></p><p> while(!feof(fp))</p><p> {fread(&student[a],j,1,fp);</p><
78、p> if(strcmp(student[a].num,cx)==0)</p><p><b> {</b></p><p> printf("\n\n已查到,該記錄為:\n\n");</p><p> printf("%-10s%-20s%-50s\n","姓名",&q
79、uot;學號","成績");</p><p> printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b> k=1;</b></p><p><b> }<
80、;/b></p><p><b> a++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(!k)</b></p><p> printf(&qu
81、ot;\n文件中無此人的記錄。");</p><p> fclose(fp);</p><p> printf("\n輸入“1”繼續(xù)查找,“0”結(jié)束\n");</p><p> scanf("%d",&b);</p><p> system("cls");&
82、lt;/p><p><b> }</b></p><p> while(b!=0);</p><p> system("cls");</p><p><b> }</b></p><p><b> 3.4 成績查詢</b><
83、;/p><p> void jgsearch()</p><p><b> {int b,a;</b></p><p> char cx[20];</p><p><b> FILE *fp;</b></p><p> system("cls");&
84、lt;/p><p> j=sizeof(struct stu);</p><p><b> do</b></p><p><b> {</b></p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p>
85、<p> printf(" 查找學生成績信息\n\n");</p><p> if((fp=fopen("Ca1.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\
86、n打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> printf("請輸入學生成績:\n");</p><p> scanf("%s",cx);</p>
87、<p><b> a=0;</b></p><p> while(!feof(fp))</p><p><b> {</b></p><p> fread(&student[a],j,1,fp);</p><p> if(strcmp(cx,student[a].sco
88、re)==0)</p><p> {printf("%-10s%-20s%-50s\n","姓名","學號","成績");</p><p> printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].sco
89、re);</p><p><b> }</b></p><p><b> a++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p> printf("\n輸入“1”繼續(xù)查找,“0
90、”結(jié)束\n");</p><p> scanf("%d",&b);</p><p> system("cls");</p><p><b> }</b></p><p> while(b!=0);</p><p> system(
91、"cls");</p><p><b> }</b></p><p> 3.5 刪除學生成績信息</p><p> void del()</p><p><b> {</b></p><p> int m=0,k=0,b,a,q,p;</p
92、><p> char xh[20],wjm[20];</p><p><b> FILE *fp;</b></p><p> system("cls");</p><p> j=sizeof(struct stu);</p><p><b> do</b&
93、gt;</p><p><b> {</b></p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p><p> printf(" 刪除學生成績信息\n\n");</p><p>
94、 printf("\n\n存儲文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p><b> k=0;</b></p><p> printf("\n請輸入學號:");</p><p> scanf("%s",xh);</p>
95、;<p> printf("\n請輸入欲刪除的文件名:");</p><p> scanf("%s",wjm);</p><p> if((fp=fopen(wjm,"r"))==NULL)</p><p><b> {</b></p><p&
96、gt; printf("\n文件打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> a=0;</b></p><p> while(!feof(fp))</p&
97、gt;<p><b> {</b></p><p> fread(&student[a],j,1,fp); //將文件內(nèi)容輸入到數(shù)組中</p><p><b> a++;</b></p><p><b> }</b></p
98、><p> fclose(fp);</p><p><b> t=a-1;</b></p><p> for(a=0;a<=t;a++)</p><p><b> {</b></p><p> if(strcmp(xh,student[a].num)==0)<
99、;/p><p><b> {k=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> if(a==t)</b></p><p> printf("
100、;\n\n文件中無此人的記錄。");</p><p><b> }</b></p><p><b> if(k==1)</b></p><p><b> {</b></p><p> printf("\n\n已查到,該記錄為:\n\n");
101、</p><p> printf("%-10s%-20s%-50s","姓名","學號","成績");</p><p> printf("%-10s%-20s%-50s",student[a].name,student[a].num,student[a].score);</p>
102、;<p> printf("\n確實要刪除記錄,請按1;不刪除記錄,請按0:\n");</p><p> scanf("%d",&m);</p><p><b> if(m)</b></p><p><b> {</b></p><p
103、> for(p=a,q=a+1;p<t,q<=t;q++,p++)</p><p><b> {</b></p><p> strcpy(student[p].name,student[q].name);</p><p> strcpy(student[p].num,student[q].num);</p>
104、<p> strcpy(student[p].score,student[q].score);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if((fp=fopen(
105、wjm,"w"))==NULL)</p><p><b> {</b></p><p> printf("\n文件打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></
106、p><p> for(a=0;a<t;a++)</p><p> fwrite(&student[a],j,1,fp);</p><p><b> if(m)</b></p><p> printf("\n刪除成功!");</p><p> fclose(f
107、p);</p><p> printf("\n輸入“1”繼續(xù),“0”結(jié)束\n");</p><p> scanf("%d",&b);</p><p> system("cls");</p><p><b> }</b></p>&l
108、t;p> while(b!=0);</p><p> system("cls");</p><p><b> }</b></p><p> 3.6 修改學生成績信息</p><p> void modify()</p><p><b> {</
109、b></p><p> int k=0,b,a;</p><p> char xh[20],wjm[20];</p><p><b> FILE *fp;</b></p><p> system("cls");</p><p> j=sizeof(struct
110、stu);</p><p><b> do</b></p><p><b> {</b></p><p> printf(" 歡迎使用學生成績信息管理系統(tǒng)\n\n\n");</p><p> printf("
111、 修改學生成績信息\n\n");</p><p> printf("\n\n存儲文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p> printf("\n請輸入學號:");</p><p> scanf("%s",xh);</p>
112、;<p> printf("\n請輸入欲修改文件名:");</p><p> scanf("%s",wjm);</p><p> if((fp=fopen(wjm,"r+"))==NULL)</p><p><b> {</b></p><p&
113、gt; printf("\n打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> a=0;</b></p><p> while(!feof(fp))</p>
114、;<p> {fread(&student[a],j,1,fp);</p><p><b> a++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> t=a-1;</b><
115、/p><p> for(a=0;a<=t;a++)</p><p><b> {</b></p><p> if(strcmp(xh,student[a].num)==0)</p><p><b> {</b></p><p><b> k=1;<
116、/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> if(a==t)</b></p><p> printf("\n\n文件中無此人的記錄。");</p><
117、;p><b> }</b></p><p><b> if(k==1)</b></p><p><b> {</b></p><p> printf("\n\n已查到,該記錄為:\n\n");</p><p> printf("%-
118、10s%-20s%-50s","姓名","學號","成績");</p><p> printf("%-10s%-20s%-50s",student[a].name,student[a].num,student[a].score);</p><p> printf("\n請輸入新的姓名:&
119、quot;);</p><p> scanf("%s",student[a].name);</p><p> printf("\n請輸入新的學號:");</p><p> scanf("%s",student[a].num);</p><p> printf("\n
120、請輸入新的成績:");</p><p> scanf("%s",student[a].score);</p><p> if((fp=fopen(wjm,"w"))==NULL)</p><p><b> {</b></p><p> printf("\
121、n文件打開失敗!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for(a=0;a<t;a++)</p><p> fwrite(&student[a],j,1,fp);</p><
122、;p> printf("\n修改成功!");</p><p> fclose(fp);</p><p><b> }</b></p><p> printf("\n輸入“1”繼續(xù),“0”結(jié)束\n");</p><p> scanf("%d",&a
123、mp;b);</p><p> system("cls");</p><p><b> }</b></p><p> while(b!=0);</p><p> system("cls");</p><p><b> }</b>
124、;</p><p><b> 4 功能測試</b></p><p><b> 4.1 菜單測試</b></p><p> 學生成績管理系統(tǒng)運行后的主菜單界面如圖4-1所示。</p><p><b> 圖4-1系統(tǒng)主界面</b></p><p>
125、 4.2 系統(tǒng)功能測試</p><p><b> 添加學生信息</b></p><p> 在主菜單按1后,會顯示圖4-2,再按2添加學生的信息如圖4-3所示,如果按1的話那么所有以前的保存的信息都將被清除,接著再重新輸入數(shù)據(jù)。</p><p> 圖4-2 學生信息輸入界面</p><p> 圖4-3 學生信息輸入
126、界面</p><p> 顯示所有學生成績信息</p><p> 在系統(tǒng)菜單上面按2,則所有的學生成績都會顯示如圖4-4所示。</p><p> 圖4-4 學生成績?yōu)g覽</p><p><b> 學號或姓名查詢</b></p><p> 在主菜單上輸入3,然后在根據(jù)姓名或者學號,可以查到該
127、同學的分數(shù),如圖4-5和4-6圖所示。</p><p> 圖4-5 根據(jù)學號查詢分數(shù)</p><p> 圖4-6 根據(jù)姓名查詢分數(shù)</p><p><b> 成績查詢</b></p><p> 在主菜單上輸入4,可以得到圖4-7所示,這是根據(jù)分數(shù)來確定學生。</p><p> 圖4-7
128、根據(jù)分數(shù)來確定學生</p><p><b> 刪除學生成績信息</b></p><p> 在主菜單上按5,選擇需要刪除的對應文檔里的該學生的成績信息,可以得到圖4-8所示。</p><p> 圖4-8 刪除學生信息</p><p><b> 修改學生的信息</b></p>&l
129、t;p> 在主菜單上按6,選擇需要修改的人的學號,再進行一系列的修改,可以得到圖4-9所示。</p><p> 圖4-9 修改學生信息</p><p> 5 系統(tǒng)設計遇到的問題及解決方法</p><p> 1.*和[ ]在定義時只是說明作用,不能誤解為運算符</p><p> &、*、[ ]是C語言提供的三種運算符,分
130、別是取地址運算符、指針運算符和下標運算符,其中,&與*互為逆運算。在表達式中它們的意義很明確,但是在定義中*、[ ]只是起說明作用,不能看作運算符。</p><p> 例如:int number=10;</p><p> Int *pt=&number;</p><p> Int *pt=a;</p><p>
131、在這里,我們?nèi)菀妆缓髢蓚€語句迷惑,之所以迷惑,就是把*當作了運算符,其實在這里Int *共同來修飾指針變量pt,定義一個指向整型變量的指針變量,自然會把一個地址&number賦值給pt。因此,上述后面兩個賦值語句中,第一個是正確的。</p><p> 2、用整數(shù)值直接給指針賦值</p><p> 指針值就是指針所指向的地址,在程序運行中,指針的值其實就是一個整數(shù)值,但是決不能
132、在程序語句中把一個整數(shù)值當作指針的值直接賦給指針。</p><p> 例如:int num;</p><p><b> Int *pt;</b></p><p> num=72781;</p><p><b> p=num;</b></p><p> 最后一個語
133、句目的是使指針指向地址72781(十進制),編譯時系統(tǒng)就會提示這個語句有錯誤。</p><p><b> 3、字符串的讀入</b></p><p> 當要求從鍵盤讀入一字符串時,若選用輸入的函數(shù)不當,也容易造成錯誤,而且難以發(fā)現(xiàn)。</p><p> 例如:#include<stdio.h></p><p&g
134、t;<b> main()</b></p><p> { char str[20];</p><p> scanf(“%s”,str);</p><p> printf(“%s”,str);</p><p><b> }</b></p><p> 運行該程序,從
135、鍵盤鍵入“I love China”字符串,結(jié)果其程序結(jié)果顯示單個字符I,而不是字符串“I love China”。這說明scanf函數(shù)并沒有讀入整個字符串,而只讀入了單個字符I,這是因為scanf函數(shù)讀入字符串時,它認為字符串的結(jié)束標志為空格而不是回車鍵。所以scanf函數(shù)實際上只能讀入一個單詞,而不是字符串。</p><p> 正確的讀入字符串的程序如下:</p><p> #in
136、clude<stdio.h></p><p><b> main()</b></p><p><b> {</b></p><p> char str[20];</p><p> gets(str);</p><p> printf(“%s”,str);
137、</p><p><b> } </b></p><p><b> 6 項目設計總結(jié)</b></p><p> 通過C語言編程系統(tǒng),讓我們對C語言有了更深的了解,而不只是單單的在課本中學到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而在自己動手的過程中,出現(xiàn)的問題很多,比理論要難的多,當一個程序?qū)?/p>
138、完以后,經(jīng)常會有很多錯誤而沒法解決。不過,通過幾天的編程,逐漸積攢了一些經(jīng)驗,有些錯誤可以較快看出來。這次實訓有很大的收獲,讓我們對C語言有了更深的認識,平時在課堂上學到的東西可以自己動手編寫,將其轉(zhuǎn)化成一些實用的技能。如果是一個程序?qū)懲暌惶庡e誤也沒有,會有種成就感,于是興趣就來了,興趣來了,自然學的東西也就多了,能把理論變成實際的技能,讓我們對C語言有了濃厚的興趣和更深層的認識。</p><p> 我們總結(jié)過
139、此次系統(tǒng)的不足之處,比如,它只能記錄一科成績的分數(shù),還有它不能把所有的人按分數(shù)排名排序等,這些都是我們沒有做到的,有很大一部分原因是因為我們沒有很好的掌握這部分內(nèi)容,所有導致系統(tǒng)缺少該部分功能,我們以后有時間的話,一定會好好完善這些不足之處的。</p><p><b> 參考文獻</b></p><p> [1] 吉順如《C程序設計習題與課程設計指導》電子工業(yè)出版
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計報告+學生成績信息管理系統(tǒng)+源代碼
- c語言成績信息管理系統(tǒng)課程設計--成績信息管理系統(tǒng)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設計
- c語言課程設計--學生成績管理系統(tǒng)
- 課程設計-- 學生成績信息管理系統(tǒng)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計———學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
評論
0/150
提交評論