版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》</p><p><b> 綜合實(shí)驗(yàn)</b></p><p> 課程設(shè)計(jì)名稱:學(xué)生成績(jī)管理系統(tǒng) </p><p><b> 學(xué)生成績(jī)管理系統(tǒng)</b></p><p><b> 問(wèn)題的描述和分析</
2、b></p><p><b> 1.1問(wèn)題的描述</b></p><p> 隨著社會(huì)的發(fā)展和經(jīng)濟(jì)時(shí)代的到來(lái),管理信息系統(tǒng)在各行各業(yè)都越來(lái)越重要,特別是教育事業(yè)。在經(jīng)濟(jì)發(fā)達(dá)的國(guó)家,許多教育機(jī)構(gòu)(如公辦、私立、培訓(xùn)機(jī)構(gòu)等),都投入了大量的資金開(kāi)發(fā)MIS系統(tǒng),以求在將來(lái)激烈的競(jìng)爭(zhēng)中立于不敗之地。在我國(guó),民辦教育是新興的一個(gè)行業(yè),是隨著改革開(kāi)放和市場(chǎng)經(jīng)濟(jì)的發(fā)展根據(jù)中
3、國(guó)特有的國(guó)情發(fā)展起來(lái)的,特別是中國(guó)民辦教育促進(jìn)法的出臺(tái),從一定的程度上規(guī)范和促進(jìn)了中國(guó)民辦教育的發(fā)展,這是一個(gè)很有發(fā)展前途的新興產(chǎn)業(yè),但是同發(fā)達(dá)國(guó)家相比,我國(guó)的民辦教育行業(yè)的信息技術(shù)的應(yīng)用程度還很低,只有在大城市中發(fā)展較早、規(guī)模較大的民辦院校中才使用計(jì)算機(jī)進(jìn)行大規(guī)模操作,從各方面提高工作效率,取得良好的社會(huì)和經(jīng)濟(jì)效益,而一些新興的、規(guī)模較小的民辦機(jī)構(gòu)還沒(méi)有全部具備這種功能。因此可見(jiàn),隨著我國(guó)民辦教育的迅速發(fā)展,信息技術(shù)在其上的應(yīng)用會(huì)更加
4、地廣泛和深入。</p><p> 1.2現(xiàn)有系統(tǒng)存在問(wèn)題的分析 有的學(xué)校根本就沒(méi)有系統(tǒng),還是手工操作計(jì)算機(jī)日新月異的發(fā)展,但是有的領(lǐng)導(dǎo)只見(jiàn)眼前利益,不關(guān)心,甚至不敢嘗試新興的事物。手工操作還十分落后,效率極低,成本很大,以后的社會(huì)是信息的社會(huì),信息只有快,準(zhǔn),精才能發(fā)揮其價(jià)值。 所以機(jī)器代替人力是必然的歷史發(fā)展趨勢(shì),只有領(lǐng)導(dǎo)的重視和支持才能從人工操作改為計(jì)算機(jī)的自動(dòng)化系統(tǒng)。人工操作
5、必將被計(jì)算機(jī)代替。 有些學(xué)校雖使用了計(jì)算機(jī),甚至管理系統(tǒng),但是仍然存在很多問(wèn)題,問(wèn)題一日不解決,效率就一日提不上去。 還有,有的系統(tǒng)很不完善到處是漏洞,可以說(shuō)是千瘡百孔,這樣極不完善的系統(tǒng)能有保障嗎?所以制作一個(gè)完善的學(xué)生管理系統(tǒng)是必不可少的。</p><p><b> 二、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)</b></p><p> struct p
6、erson</p><p><b> {</b></p><p> char name[20];</p><p><b> long num;</b></p><p> float math;</p><p> float English;</p>&
7、lt;p> float chinese;</p><p> float average;</p><p> float sum;</p><p><b> }student;</b></p><p><b> 三、模塊:</b></p><p> 學(xué)生成績(jī)管
8、理系統(tǒng)模塊</p><p><b> 四、算法的設(shè)計(jì)</b></p><p> 1.在此成績(jī)管理系統(tǒng)中,要求用戶輸入的只是有字符型和數(shù)值型數(shù)據(jù),所以我設(shè)計(jì)了下面函數(shù)來(lái)處理并對(duì)輸出的數(shù)據(jù)進(jìn)行檢驗(yàn)。</p><p><b> int N=0;</b></p><p><b> Ente
9、r()</b></p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> char ch;</b></p><p><b> char ch2;</b></p>
10、<p> char numstr[20];</p><p> struct person student2;</p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","ab");</p><p> if(fp
11、==NULL)</p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n"
12、;);</p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b&g
13、t; {</b></p><p><b> do{</b></p><p> printf("your name:");</p><p> gets(student.name);</p><p> printf("\nyour num:");</p>
14、;<p> gets(numstr);</p><p> student.num=atol(numstr);</p><p> printf("\nyour math:");</p><p> gets(numstr);</p><p> student.math=atof(numstr);<
15、/p><p> printf("\nyour English:");</p><p> gets(numstr);</p><p> student.English=atof(numstr);</p><p> printf("\nyour chinese:");</p><p&
16、gt; gets(numstr);</p><p> student.chinese=atof(numstr);</p><p> student.sum=student.chinese+student.math+student.English;</p><p> student.average=student.sum/3;</p><p
17、> fwrite(&student,sizeof(struct person),1,fp);</p><p><b> N++;</b></p><p> printf("Do you continue adding other students(Y/N)?\n");</p><p> ch=getch
18、ar();</p><p> getchar();</p><p> }while(ch=='y'||ch=='Y');</p><p><b> }</b></p><p> printf("Show all(Y/N)?\n");</p><
19、;p> ch2=getchar();</p><p> getchar();</p><p> if(ch2=='y'||ch2=='Y')</p><p> Listall();</p><p> fclose(fp);</p><p> return_confirm
20、();</p><p><b> clrscr();</b></p><p><b> }</b></p><p><b> 2.查詢學(xué)生記錄</b></p><p> 當(dāng)用戶執(zhí)行此查詢?nèi)蝿?wù)時(shí),系統(tǒng)會(huì)提示用戶進(jìn)行查詢字段的選擇,即按學(xué)號(hào)或按姓名進(jìn)行查詢。若此學(xué)生記錄存在
21、,則會(huì)打印輸出此學(xué)生記錄的信息。</p><p><b> Search()</b></p><p><b> { </b></p><p> char choice;</p><p><b> char ch1;</b></p><p>&
22、lt;b> char ch2;</b></p><p><b> char ch3;</b></p><p><b> char ch4;</b></p><p> char name[20];</p><p><b> long num;</b>&
23、lt;/p><p> char numstr[20];</p><p><b> clrscr();</b></p><p> printf("***WAYS OF SEARCHING***\n");</p><p> printf("--------------------------
24、-\n");</p><p> printf("** 1.name **\n"); </p><p> printf("** 2.num **\n");</p><p> printf("-----------------------
25、-----\n");</p><p> printf("give your choice:\n");</p><p> choice=getchar();</p><p> getchar();</p><p> while(choice>'2'||choice<'1&
26、#39;)</p><p><b> {</b></p><p> printf("Sorry.your choice is wrong.\nplease give a correct one:\n");</p><p> choice=getchar();</p><p> getchar(
27、);</p><p><b> }</b></p><p> 3.根據(jù)姓名或?qū)W號(hào)進(jìn)行查找</p><p> switch(choice)</p><p><b> {</b></p><p> case '1':do{ </p><
28、;p><b> Loop1:</b></p><p> printf("input the name of students you want to search:\n");</p><p> gets(name);</p><p> Search1(name);</p><p> p
29、rintf("GO ON SEARCHING BY NAEM(Y/N)?\n");</p><p> ch2=getchar();</p><p> getchar();</p><p> }while(ch2=='y'||ch2=='Y');</p><p> printf(&qu
30、ot;Search by other ways(Y/N)?\n");</p><p> ch3=getchar();</p><p> getchar();</p><p> if(ch3=='y'||ch3=='Y')</p><p> goto Loop2;</p><
31、p><b> break; </b></p><p><b> case '2':</b></p><p><b> do{</b></p><p><b> Loop2:</b></p><p> printf(&qu
32、ot;input the num of students you want to search:\n");</p><p> gets(numstr);</p><p> num=atol(numstr);</p><p> Search2(num);</p><p> printf("GO ON SEARCHIN
33、G BY NUM(Y/N)?\n");</p><p> ch1=getchar();</p><p> getchar();</p><p> }while(ch1=='y'||ch1=='Y'); </p><p><b> }</b></p>
34、;<p><b> }</b></p><p> Search2(long num)</p><p><b> {</b></p><p> FILE *fp;</p><p><b> char ch;</b></p><p>
35、; int flag=0;</p><p><b> int t;</b></p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","rb");</p><p> if(fp==NULL)<
36、/p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");</p&g
37、t;<p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b
38、></p><p><b> flag=0;</b></p><p> t=0; </p><p> while(fread(&student,sizeof(struct person),1,fp))</p><p> if(num==student.num)</p>&l
39、t;p><b> {</b></p><p> printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");</p><p> printf("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name
40、,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b> t=1;</b></p><p><b> break;</b></p><p><b> }</b
41、></p><p><b> if(t==0)</b></p><p> printf("Sorry.the student you are searching not existed.\n");</p><p> rewind(fp);</p><p><b> }</
42、b></p><p> fclose(fp);</p><p><b> }</b></p><p> Search1(char *name)</p><p><b> {</b></p><p> FILE *fp;</p><p>
43、;<b> char ch;</b></p><p> int flag=0;</p><p><b> int t;</b></p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","
44、;rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with p
45、atience.\nthe system is exiting.\n");</p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> els
46、e</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p> t=0; </p><p> while(fread(&student,sizeof(struct person),1,fp))<
47、;/p><p> if((strcmp(name,student.name))==0)</p><p><b> {</b></p><p> printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");</p><p> printf
48、("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b> t=1;</b></p><p&g
49、t;<b> break;</b></p><p><b> }</b></p><p><b> if(t==0)</b></p><p> printf("Sorry.the student you are searching not existed.\n");<
50、/p><p> rewind(fp);</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p><b> Delete()</b></p><p>
51、;<b> {</b></p><p><b> FILE *fp;</b></p><p> struct person student1[30],student2[30];</p><p><b> int i;</b></p><p><b> int
52、 k;</b></p><p><b> int j;</b></p><p><b> int flag;</b></p><p><b> char ch1;</b></p><p> char name[20];</p><p>
53、;<b> char ch;</b></p><p><b> char ch2;</b></p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","rb+");</p><p&g
54、t; if(fp==NULL)</p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exitin
55、g.\n");</p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p&g
56、t;<b> {</b></p><p><b> do{</b></p><p><b> i=0;</b></p><p><b> j=0;</b></p><p><b> flag=0;</b></p>
57、<p> printf("input the name of students you are going to delete.\n");</p><p> scanf("%s",name);</p><p> while(fread(&student,sizeof(struct person),1,fp)==1)<
58、/p><p><b> {</b></p><p> if((strcmp(name,student.name))!=0)</p><p><b> {</b></p><p> student2[j]=student;</p><p><b> j++;&l
59、t;/b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> flag=1;</b></p><p> printf(&
60、quot;name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p> printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,
61、student.sum,student.average);</p><p> printf("Delete(Y/N)?\n");</p><p> ch1=getchar();</p><p> getchar();</p><p> toupper(ch);</p><p> if(ch
62、=='N')</p><p> goto Loop; </p><p><b> } </b></p><p><b> }</b></p><p> printf("j=%d\n",j);</p><p><b>
63、 k=j; </b></p><p><b> i=0; </b></p><p> fclose(fp);</p><p> if(flag==0)</p><p> printf("Sorry.the student you are searching not existed.\n&
64、quot;);</p><p> if(flag==1)</p><p> printf("Congratulation!you succeed!!!\n");</p><p> fp=fopen("jie.txt","wb+");</p><p> if(fp==NULL)
65、</p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");<
66、/p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {&l
67、t;/b></p><p><b> i=0;</b></p><p><b> do{</b></p><p> fwrite(&student2[i],sizeof(struct person),1,fp);</p><p><b> i++;</b>
68、</p><p> }while(i<k);</p><p><b> }</b></p><p><b> Loop:</b></p><p> getchar(); </p><p> printf("Go on(Y/N)?\n");&
69、lt;/p><p> ch=getchar();</p><p> getchar();</p><p> }while(ch=='y'||ch=='Y');</p><p> printf("Show all(Y/N)?\n");</p><p> ch2=g
70、etchar();</p><p> getchar();</p><p> if(ch2=='y'||ch2=='Y')</p><p><b> {</b></p><p> rewind(fp);</p><p> printf("name
71、\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p> while(fread(&student,sizeof(struct person),1,fp))</p><p><b> { </b></p><p> printf("
72、;%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p><b> }</b></p><p><b>
73、 }</b></p><p><b> }</b></p><p> fclose(fp);</p><p> return_confirm();</p><p><b> }</b></p><p><b> 4.修改學(xué)生記錄</b&g
74、t;</p><p> 在修改學(xué)生記錄操作中,系統(tǒng)會(huì)先按輸入的學(xué)號(hào)或姓名查找該記錄,然后提示用戶修改學(xué)號(hào)或姓名之外的值,但學(xué)號(hào)或姓名不能修改。</p><p><b> Revise()</b></p><p><b> {</b></p><p><b> FILE *fp;&l
75、t;/b></p><p><b> char ch;</b></p><p><b> char ch1;</b></p><p> long offset=sizeof(struct person);</p><p> int flag=0;</p><p>
76、; char numstr[20];</p><p> char name[20];</p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","rb+");</p><p> if(fp==NULL)</p>
77、;<p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");</p>&
78、lt;p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&
79、lt;/p><p><b> again:</b></p><p> printf("name of rivesing student:\n");</p><p> gets(name);</p><p><b> do{</b></p><p>&l
80、t;b> flag=0;</b></p><p> fread(&student,sizeof(struct person),1,fp);</p><p> if((strcmp(name,student.name))==0)</p><p><b> {</b></p><p><
81、;b> flag=1;</b></p><p> printf("the following is information of student being deleted:\n");</p><p> printf("name\t\tnum\tmath\tchinese\tEnglish\tsum\taverage\n");
82、</p><p> printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b> do{</b
83、></p><p> printf("***informations for revising***\n");</p><p> printf("====================================\n");</p><p> printf("# 1.name 2.n
84、um #\n");</p><p> printf("# 3.math 4.English #\n");</p><p> printf("# 5.chinese 6.total #\n");</p><p> printf(&
85、quot;====================================\n");</p><p> printf("give a choice:\n");</p><p> ch=getchar();</p><p> getchar();</p><p> while(ch>'
86、6'||ch<'1')</p><p><b> {</b></p><p> printf("Sorry.you put is wrong.\nplease input another choice:\n");</p><p> ch=getchar();</p><
87、p> getchar();</p><p><b> }</b></p><p> switch(ch)</p><p><b> {</b></p><p> case '1':ass_revise("name");</p><
88、;p> gets(student.name);</p><p><b> break;</b></p><p> case '2':ass_revise("num");</p><p> gets(numstr);</p><p> student.num=atol(n
89、umstr);</p><p><b> break;</b></p><p> case '3':ass_revise("math");</p><p> gets(numstr);</p><p> student.math=atof(numstr);</p>
90、<p><b> break;</b></p><p> case '4':ass_revise("English");</p><p> gets(numstr);</p><p> student.English=atof(numstr);</p><p>&l
91、t;b> break;</b></p><p> case '5':ass_revise("chinese");</p><p> gets(numstr);</p><p> student.chinese=atof(numstr);</p><p><b> bre
92、ak;</b></p><p> case '6':ass_revise("total");</p><p> gets(student.name);</p><p> ass_revise("num");</p><p> gets(numstr);</p&g
93、t;<p> student.num=atol(numstr);</p><p> ass_revise("math");</p><p> gets(numstr);</p><p> student.math=atof(numstr);</p><p> ass_revise("Eng
94、lish");</p><p> gets(numstr);</p><p> student.English=atof(numstr);</p><p> ass_revise("chinese");</p><p> gets(numstr);</p><p> studen
95、t.chinese=atof(numstr);</p><p><b> }</b></p><p> student.sum=student.chinese+student.math+student.English;</p><p> student.average=student.sum/3;</p><p>
96、 printf("Continue revising the same student(Y/N)?\n");</p><p> ch1=getchar();</p><p> getchar();</p><p> }while(ch=='y'||ch=='Y');</p><p>
97、 fseek(fp,-offset,1);</p><p> fwrite(&student,sizeof(struct person),1,fp);</p><p> printf("the following is information of student had been revised:\n");</p><p> p
98、rintf("name\t\tnum\tmath\tchinese\tEnglish\tsum\taverage\n");</p><p> printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math
99、,student.sum,student.average);</p><p> printf("Congratulation!you succeed!!!\n");</p><p><b> break;</b></p><p><b> }</b></p><p> }
100、while(fread(&student,sizeof(struct person),1,fp));</p><p> rewind(fp);</p><p> if(flag==0)</p><p> printf("Sorry.the student of reving not existed.\n");</p>
101、<p> printf("GO ON Revising(Y/N)?\n");</p><p> ch1=getchar();</p><p> getchar();</p><p> if(ch1=='y'||ch1=='Y')</p><p> goto again;&
102、lt;/p><p><b> }</b></p><p> fclose(fp);</p><p> return_confirm();</p><p><b> clrscr();</b></p><p><b> }</b></p>
103、<p> 5.對(duì)學(xué)生記錄進(jìn)行排序Order()</p><p><b> {</b></p><p> FILE *fp; </p><p><b> char ch;</b></p><p><b> char ch2;</b></p&g
104、t;<p><b> int k;</b></p><p> float a[30],b[30],c[30],d[30];</p><p> struct person student1[30];</p><p><b> int i;</b></p><p><b>
105、; char ch1;</b></p><p> fp=fopen("jie.txt","rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("can't open t
106、his file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b> getch();</b></p><p><b> exit(0);</b>
107、;</p><p><b> }</b></p><p> rewind(fp);</p><p><b> i=0;</b></p><p> while(fread(&student1[i],sizeof(struct person),1,fp))</p><
108、p><b> i++;</b></p><p><b> k=i; </b></p><p><b> do{</b></p><p> for(i=0;i<k;i++)</p><p><b> {</b></p>
109、<p> a[i]=student1[i].math;</p><p> b[i]=student1[i].English;</p><p> c[i]=student1[i].chinese;</p><p> d[i]=student1[i].average;</p><p><b> } </b
110、></p><p> printf(" ***WAYS OF ORDER*** \n"); </p><p> printf("========================\n");</p><p> printf("*1.math 2.English*\n");<
111、;/p><p> printf("*3.chinese 4.average*\n");</p><p> printf("=========================\n");</p><p> printf("please give a choice:\n");</p><
112、;p> ch=getchar();</p><p> getchar();</p><p> while(ch<'1'||ch>'4')</p><p><b> {</b></p><p> printf("Sorry.the date you in
113、put is wrong.\nplease give another choice:\n");</p><p> ch=getchar();</p><p> getchar();</p><p><b> }</b></p><p> switch(ch)</p><p>&l
114、t;b> {</b></p><p> case '1':Order1(a);</p><p><b> break;</b></p><p> case '2':Order1(b);</p><p><b> break;</b><
115、/p><p> case '3':Order1(c);</p><p><b> break;</b></p><p> case '4':Order1(d);</p><p><b> break;</b></p><p><b&g
116、t; }</b></p><p> printf("Congratulation!you succeed!!!\n"); </p><p> printf("Go on ordering(Y/N)?\n");</p><p> ch1=getchar();</p><p> ge
117、tchar();</p><p> }while(ch1=='y'||ch=='Y');</p><p> printf("Show all(Y/N)?\n");</p><p> ch2=getchar();</p><p> getchar();</p><p
118、> if(ch2=='y'||ch2=='Y')</p><p><b> {</b></p><p> rewind(fp);</p><p> printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n"
119、);</p><p> while(fread(&student,sizeof(struct person),1,fp))</p><p><b> { </b></p><p> printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,s
120、tudent.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p>&
121、lt;p> return_confirm();</p><p><b> }</b></p><p> Order1(float *p)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p
122、><b> int i=0;</b></p><p><b> int k;</b></p><p><b> int j;</b></p><p> struct person student2;</p><p> struct person student1
123、[30];</p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","r+");</p><p> if(fp==NULL)</p><p><b> {</b></p><p&
124、gt; printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b> getch();</b></p><
125、;p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while(fread(&student1[i],s
126、izeof(struct person),1,fp))</p><p><b> i++;</b></p><p><b> k=i;</b></p><p><b> i=0;</b></p><p> while(i<k)</p><p&g
127、t;<b> {</b></p><p> for(j=i+1;j<k;j++)</p><p> if(p[i]<p[j])</p><p><b> {</b></p><p> student2=student1[i];</p><p> stu
128、dent1[i]=student1[j];</p><p> student1[j]=student2;</p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p><p>
129、rewind(fp); </p><p> for(i=0;i<k;i++)</p><p> fwrite(&student1[i],sizeof(struct person),1,fp);</p><p><b> }</b></p><p> fclose(fp);</p&
130、gt;<p><b> }</b></p><p><b> 6.顯示學(xué)生記錄</b></p><p> 由于記錄顯示操作經(jīng)常進(jìn)行,所以我將這分由獨(dú)立的函數(shù)來(lái)實(shí)現(xiàn),減少代碼的重復(fù)。</p><p><b> Listall()</b></p><p>&l
131、t;b> {</b></p><p><b> FILE *fp;</b></p><p><b> char ch;</b></p><p> struct person student1[30];</p><p><b> int i;</b>&
132、lt;/p><p><b> int k;</b></p><p> fp=fopen("jie.txt","r");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> print
133、f("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b> getch();</b></p><p><
134、b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> do{ </b></p><p
135、> rewind(fp);</p><p> printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p> while(fread(&student,sizeof(struct person),1,fp))</p><p><b
136、> { </b></p><p> printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p
137、><b> }</b></p><p> printf("GO ON(Y/N)?\n");</p><p> ch=getchar();</p><p> getchar();</p><p> }while(ch=='y'||ch=='Y');<
138、/p><p><b> }</b></p><p> fclose(fp);</p><p> return_confirm();</p><p><b> }</b></p><p><b> 四、具體程序的實(shí)現(xiàn)</b></p>&
139、lt;p> #include"stdio.h"</p><p> #include"string.h"</p><p> #include"stdlib.h"</p><p> #include"ctype.h"</p><p> struct p
140、erson</p><p><b> {</b></p><p> char name[20];</p><p><b> long num;</b></p><p> float math;</p><p> float English;</p>&
141、lt;p> float chinese;</p><p> float average;</p><p> float sum;</p><p><b> }student;</b></p><p><b> int N=0;</b></p><p><
142、b> Enter()</b></p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> char ch;</b></p><p><b> char ch2;</b>&
143、lt;/p><p> char numstr[20];</p><p> struct person student2;</p><p><b> clrscr();</b></p><p> fp=fopen("jie.txt","ab");</p><p
144、> if(fp==NULL)</p><p><b> {</b></p><p> printf("can't open this file.\n");</p><p> printf("wait for a second with patience.\nthe system is exit
145、ing.\n");</p><p><b> getch();</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p
146、><b> {</b></p><p><b> do{</b></p><p> printf("your name:");</p><p> gets(student.name);</p><p> printf("\nyour num:"
147、);</p><p> gets(numstr);</p><p> student.num=atol(numstr);</p><p> printf("\nyour math:");</p><p> gets(numstr);</p><p> student.math=atof(n
148、umstr);</p><p> printf("\nyour English:");</p><p> gets(numstr);</p><p> student.English=atof(numstr);</p><p> printf("\nyour chinese:");</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)(部分)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)學(xué)生成績(jī)管理課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)之學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理程序的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論