版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 實(shí)習(xí)名稱(chēng) 程序設(shè)計(jì)課程設(shè)計(jì) </p><p> 設(shè)計(jì)題目 圖書(shū)信息管理系統(tǒng) </p><p> 實(shí)習(xí)時(shí)間 2010.06.27-2010.07.04 </p><p> 專(zhuān)業(yè)班級(jí) <
2、;/p><p> 指導(dǎo)老師 </p><p> 教學(xué)單位(蓋章) </p><p><b> 小組分工情況:</b></p><p><b> 二O一O年七月五日</b></p><p><b>
3、; C語(yǔ)言程序設(shè)計(jì)報(bào)告</b></p><p><b> ---圖書(shū)管理系統(tǒng)</b></p><p><b> 一、實(shí)驗(yàn)準(zhǔn)備</b></p><p> 做系統(tǒng)前,首先,自己詳細(xì)看了《C程序設(shè)計(jì)教程》(教科書(shū))的第十章《文件》,基本自學(xué)會(huì)了文件的相關(guān)內(nèi)容,理解了相關(guān)函數(shù)的用法和作用;另,上網(wǎng)查詢(xún)了很多相關(guān)
4、資料,還有找了很多相關(guān)的系統(tǒng),都詳細(xì)的看了一遍,加深了對(duì)C的理解以及對(duì)文件的相關(guān)內(nèi)容進(jìn)一步理解。學(xué)習(xí)了C語(yǔ)言的內(nèi)容,圖書(shū)信息管理系統(tǒng)有助于C語(yǔ)言學(xué)習(xí)的進(jìn)一步鞏固,在本系統(tǒng)可以增強(qiáng)對(duì)指針、數(shù)組、文件、函數(shù)等基本知識(shí)的進(jìn)一步理解。另外圖書(shū)信息管理系統(tǒng)也是學(xué)校常用的基本系統(tǒng)之一,它有助于學(xué)校對(duì)圖書(shū)館書(shū)籍的基本管理。</p><p><b> 二、功能簡(jiǎn)介 </b></p><
5、p> 圖書(shū)信息管理系統(tǒng)是對(duì)圖書(shū)信息的基本管理,它包括:圖書(shū)信息的輸入、圖書(shū)信息的修改及刪除、圖書(shū)信息的查詢(xún)、圖書(shū)信息的添加、圖書(shū)信息的瀏覽。</p><p> 使用模塊化編程的方法每項(xiàng)功能有一個(gè)或多個(gè)函數(shù)組合來(lái)完成. </p><p><b> 三、系統(tǒng)與性環(huán)境</b></p><p> 系統(tǒng)可以在MicrosoftVisualC
6、++6.0軟件運(yùn)行,硬件基本無(wú)要求,現(xiàn)在的計(jì)算機(jī)基本都可以運(yùn)行該系統(tǒng)。</p><p> 四、功能劃分及詳細(xì)說(shuō)明</p><p><b> 主要算法的設(shè)計(jì):</b></p><p><b> 主函數(shù)的算法設(shè)計(jì)</b></p><p><b> 開(kāi)始</b></p&
7、gt;<p> 首先,運(yùn)行程序,進(jìn)入菜單,然后選擇操作(運(yùn)用swith語(yǔ)句),調(diào)用各子函數(shù)。在返回操作中運(yùn)用while語(yǔ)句進(jìn)行控制返回菜單。</p><p><b> 各子函數(shù)的算法設(shè)計(jì)</b></p><p> 1、圖書(shū)信息的輸入函數(shù)</p><p><b> 假</b></p>&l
8、t;p><b> 真</b></p><p><b> 2、圖書(shū)信息的修改</b></p><p><b> 3、圖書(shū)信息的查詢(xún)</b></p><p> void search()選擇查詢(xún)方式 ,1按書(shū)號(hào)查詢(xún),2按書(shū)名查詢(xún), 然后定位,再調(diào)用輸出函數(shù);</p><
9、p><b> 4、圖書(shū)信息的瀏覽</b></p><p> 首先,輸出所有圖書(shū)的信息,并輸出圖書(shū)記錄數(shù),然后調(diào)用輔助函數(shù)進(jìn)行菜單選擇,操作完成后返回主菜單。</p><p><b> 5、圖書(shū)信息的添加</b></p><p> 首先,從文件中調(diào)用函數(shù)讀入函數(shù),再輸入要添加數(shù),然后添加圖書(shū)信息,并保存。<
10、;/p><p><b> 上機(jī)調(diào)試過(guò)程:</b></p><p> 在調(diào)試過(guò)程中出現(xiàn)了許多的錯(cuò)誤!特別是在查詢(xún)、修改刪除這2個(gè)函數(shù)的調(diào)上花費(fèi)了很多時(shí)間,主要是文件的寫(xiě)入與讀出以及菜單調(diào)試的問(wèn)題,還有建立新的鏈接也出現(xiàn)問(wèn)題,說(shuō)明自己對(duì)程序的執(zhí)行過(guò)程理解不夠深刻。</p><p><b> 五、源程序</b></p&g
11、t;<p> #include<stdio.h></p><p> #include<malloc.h></p><p> #include<string.h></p><p> #include<stdlib.h></p><p> #define LEN sizeof
12、(stu)</p><p> typedef struct student{</p><p> long number;</p><p> char name[10];</p><p> char sex[3];</p><p><b> int age;</b></p>
13、<p> float chinese;</p><p> float math;</p><p> float english;</p><p> float sum;</p><p> float average;</p><p> struct student *next;</p>
14、<p><b> }stu;</b></p><p> book *creat(void);</p><p> book *changes(book *head);</p><p> book *modify(book *head,long num);</p><p> book *del(boo
15、k *head,long num);</p><p> book *insert(book *head,book *stud);</p><p> book *input(book *head,book *p1);</p><p> void sort(book *head);</p><p> void total_average_
16、sort(book *head);</p><p> void chinese_sort(book *head);</p><p> void math_sort(book *head);</p><p> void english_sort(book *head);</p><p> void print(book *head);&
17、lt;/p><p> void Statistics(book *head);</p><p> void search(book *head);</p><p> void numsearch(book *head,long num);</p><p> void namesearch(book *head,char name[]);&
18、lt;/p><p><b> int n;</b></p><p> book *creat(void)</p><p><b> {</b></p><p> book *head,*p1,*p2;</p><p><b> n=0;</b>&l
19、t;/p><p> p1=p2=(book *)malloc(LEN);</p><p> printf("請(qǐng)輸入圖書(shū)信息!\n");</p><p> head=NULL;</p><p> p1=input(head,p1);</p><p> while(p1->number!=0
20、)</p><p><b> {</b></p><p><b> n=n+1;</b></p><p> if(n==1) head=p1;</p><p> else p2->next=p1;</p><p><b> p2=p1;</b&
21、gt;</p><p> p1=(book *)malloc(LEN);</p><p> p1=input(head,p1);</p><p><b> }</b></p><p> p2->next=NULL;</p><p> return(head);</p>
22、<p><b> }</b></p><p> book *input(book *head,book *p1)/*輸入圖書(shū)的信息*/</p><p><b> {</b></p><p> int i,f,k;</p><p><b> book *p2;</
23、b></p><p> loop:printf("圖書(shū)號(hào)(為整數(shù),輸入0時(shí)返回上一級(jí)):");</p><p> scanf("%ld",&p1->number);</p><p> if(p1->number<0){</p><p> printf("
24、圖書(shū)號(hào)不能為負(fù)數(shù),請(qǐng)重新輸入!\n");</p><p> goto loop;</p><p><b> }</b></p><p><b> else{</b></p><p> if(p1->number==0)</p><p> return
25、(p1);</p><p><b> else{</b></p><p><b> p2=head;</b></p><p><b> f=0;</b></p><p> for(i=1;i<=n;i++){</p><p> if(p1
26、->number==p2->number)</p><p> {f=1;break;}</p><p> p2=p2->next;}</p><p><b> }</b></p><p><b> if(f)</b></p><p> {print
27、f("圖書(shū)不能重復(fù),請(qǐng)重新輸入!\n");goto loop;}</p><p><b> }</b></p><p> printf("書(shū)名:");</p><p> scanf("%s",p1->name);</p><p> loop1:pr
28、intf("類(lèi)別: 1.文科 2.理科 \n");</p><p> printf("請(qǐng)選擇類(lèi)別:");</p><p> scanf("%d",&k);</p><p><b> switch(k)</b></p><p><b>
29、 {</b></p><p> case 1:strcpy(p1->sex,"文科");break;</p><p> case 2:strcpy(p1->sex,"理科");break;</p><p> default:printf("類(lèi)別只能是“文科”或“理科”,請(qǐng)重新輸入!\n&
30、quot;);goto loop1;}</p><p> printf("存期:");</p><p> scanf("%d",&p1->age);</p><p> while(p1->age<0||p1->age>120){</p><p> print
31、f("你輸入的存期不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("存期:");</p><p> scanf("%d",&p1->age);</p><p><b> }</b></p><p> printf(&
32、quot;章數(shù):");</p><p> scanf("%f",&p1->chinese);</p><p> while(p1->chinese<0||p1->chinese>100){</p><p> printf("你輸入的章數(shù)不符合實(shí)際情況,請(qǐng)重新輸入!\n");
33、</p><p> printf("章數(shù):");</p><p> scanf("%f",&p1->chinese);}</p><p> printf("頁(yè)數(shù):");</p><p> scanf("%f",&p1->math
34、);</p><p> while(p1->math<0||p1->math>100){</p><p> printf("你輸入的頁(yè)數(shù)不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("頁(yè)數(shù):");</p><p> scanf("%f&
35、quot;,&p1->math);}</p><p> printf("閱讀次數(shù):");</p><p> scanf("%f",&p1->english);</p><p> while(p1->english<0||p1->english>100){</p&g
36、t;<p> printf("你輸入的閱讀次數(shù)不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("閱讀次數(shù):");</p><p> scanf("%f",&p1->english);}</p><p> p1->sum=p1->chin
37、ese+p1->math+p1->english;</p><p> p1->average=p1->sum/3;</p><p> return(p1);</p><p><b> }</b></p><p> void search(book *head)</p><
38、;p><b> {</b></p><p><b> int k;</b></p><p><b> long num;</b></p><p> char name[10];</p><p><b> if(n==0)</b></p
39、><p> {printf("數(shù)據(jù)庫(kù)為空,沒(méi)有圖書(shū)的記錄!\n");return;}</p><p><b> else{</b></p><p><b> do{</b></p><p> printf("1. 按書(shū)號(hào)查找 2. 按書(shū)名查找 0. 返回
40、上一級(jí)\n");</p><p> printf("請(qǐng)選擇:");</p><p> scanf("%d",&k);</p><p><b> switch(k)</b></p><p><b> {</b></p>&
41、lt;p> case 1:do{</p><p> printf("書(shū)號(hào)(輸入0時(shí)跳出按書(shū)號(hào)查找):");</p><p> scanf("%ld",&num);</p><p> if(num==0)break;</p><p><b> else{</b>
42、;</p><p><b> if(num>0)</b></p><p> numsearch(head,num);</p><p><b> else</b></p><p> printf("輸入錯(cuò)誤,請(qǐng)重新選擇!\n");}</p><p&
43、gt; }while(1);</p><p><b> break;</b></p><p> case 2:do{</p><p> printf("書(shū)名(輸入0時(shí)跳出按書(shū)名查找):");</p><p> scanf("%s",name);</p>&l
44、t;p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p> namesearch(head,name);</p><p> }while(strcmp(name,"0")!=0);</p><p><b> break;</
45、b></p><p> case 0:break;</p><p> default:printf("輸入錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p><b> }</b></p><p> }while(k!=0);</p><p><b> }&l
46、t;/b></p><p><b> }</b></p><p> void numsearch(book *head,long num)</p><p><b> {</b></p><p><b> book *p1;</b></p><p
47、><b> p1=head;</b></p><p> while(p1!=NULL)</p><p><b> {</b></p><p> if(num==p1->number){</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t
48、閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p> printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1-&
49、gt;average);</p><p><b> return;}</b></p><p> p1=p1->next;</p><p><b> }</b></p><p> printf("沒(méi)有找到你要查找的圖書(shū)信息!\n");</p><p
50、><b> }</b></p><p> void namesearch(book *head,char name[])</p><p><b> {</b></p><p><b> int a=1;</b></p><p><b> book *p
51、1;</b></p><p><b> p1=head;</b></p><p> while(p1!=NULL)</p><p><b> {</b></p><p> if(strcmp(name,p1->name)==0){</p><p>
52、 printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);a=0;}</p><p> p1=p1-&
53、gt;next;</p><p><b> }</b></p><p><b> if(a)</b></p><p> printf("沒(méi)有找到你要查找的圖書(shū)信息!\n");</p><p><b> }</b></p><p&g
54、t; book *changes(book *head)</p><p><b> {</b></p><p><b> book *p1;</b></p><p><b> int k;</b></p><p><b> long num;</b&g
55、t;</p><p><b> do{</b></p><p> printf("1. 修改 2. 刪除 3. 插入 0. 返回上一級(jí)\n");</p><p> printf("請(qǐng)選擇:");</p><p> scanf("%d"
56、,&k);</p><p><b> switch(k)</b></p><p><b> {</b></p><p> case 1:do{</p><p><b> if(n==0){</b></p><p> printf(&qu
57、ot;數(shù)據(jù)庫(kù)為空,沒(méi)有圖書(shū)的記錄!\n");break;}</p><p><b> else{</b></p><p> printf("請(qǐng)輸入圖書(shū)的書(shū)號(hào)(書(shū)號(hào)應(yīng)為整數(shù),輸入0時(shí)跳出修改數(shù)據(jù)):");</p><p> scanf("%ld",&num);</p>
58、<p> if(num==0)break;</p><p><b> else{</b></p><p><b> if(num>0)</b></p><p> head=modify(head,num);</p><p><b> else</b>&
59、lt;/p><p> printf("書(shū)號(hào)不能為負(fù)數(shù),請(qǐng)重新輸入!\n");}</p><p><b> }</b></p><p> }while(1);</p><p><b> break;</b></p><p> case 2:do{<
60、;/p><p> if(n==0){printf("數(shù)據(jù)庫(kù)為空,沒(méi)有圖書(shū)信息!\n");break;}</p><p><b> else{</b></p><p> printf("請(qǐng)輸入要?jiǎng)h除的圖書(shū)的書(shū)號(hào)(書(shū)號(hào)應(yīng)為整數(shù),輸入0時(shí)跳出刪除元素):");</p><p> sc
61、anf("%ld",&num);</p><p> if(num==0)break;</p><p><b> else{</b></p><p><b> if(num>0)</b></p><p> head=del(head,num);</p&g
62、t;<p><b> else</b></p><p> printf("書(shū)號(hào)不能為負(fù)數(shù),請(qǐng)重新輸入!\n");}</p><p><b> }</b></p><p> }while(1);</p><p><b> break;</b&
63、gt;</p><p> case 3:printf("請(qǐng)輸入圖書(shū)信息!\n");</p><p> p1=(book *)malloc(LEN);</p><p> p1=input(head,p1);</p><p> while(p1->number!=0)</p><p>
64、{head=insert(head,p1);</p><p> print(head);</p><p> printf("請(qǐng)輸入圖書(shū)信息!\n");</p><p> p1=(book *)malloc(LEN);</p><p> p1=input(head,p1);</p><p>&
65、lt;b> }</b></p><p><b> break;</b></p><p> case 0:break;</p><p> default:printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");</p><p><b> }</b></p&
66、gt;<p> }while(k!=0);</p><p> return(head);</p><p><b> }</b></p><p> void sort(book *head)</p><p><b> {</b></p><p><
67、b> int k;</b></p><p> if(n==0){printf("數(shù)據(jù)庫(kù)為空,沒(méi)有圖書(shū)記錄!\n");return;}</p><p><b> do{</b></p><p> printf("1.按書(shū)號(hào)排序 2.按總次數(shù)和平均次數(shù)排序 3.按章數(shù)成績(jī)排序 4.
68、按頁(yè)數(shù)排序 5.按閱讀次數(shù)排序 0.返回上一級(jí)\n");</p><p> printf("請(qǐng)選擇:");</p><p> scanf("%d",&k);</p><p><b> switch(k)</b></p><p><b>
69、 {</b></p><p> case 1:print(head);break;</p><p> case 2:total_average_sort(head);break;</p><p> case 3:chinese_sort(head);break;</p><p> case 4:math_sort(head
70、);break;</p><p> case 5:english_sort(head);break;</p><p> case 0:break;</p><p> default:printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");</p><p><b> }</b></p>&
71、lt;p> }while(k!=0);</p><p><b> }</b></p><p> void total_average_sort(book *head)</p><p><b> {</b></p><p> book *p1,*p2;</p><p
72、><b> int j=0;</b></p><p> float max,k=301;</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p><b> do{</b></p><p&
73、gt;<b> max=0;</b></p><p> for(p1=head;p1;p1=p1->next)</p><p> if(p1->sum>max&&p1->sum<k){</p><p> max=p1->sum;</p><p><b>
74、; p2=p1;}</b></p><p><b> k=max;</b></p><p> for(p1=p2;p1;p1=p1->next)</p><p> if(p1->sum==max){</p><p> printf("%ld\t%s\t%s\t%d\t%.1f\
75、t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b> j++;}</b></p><p> }
76、while(j<n);</p><p><b> }</b></p><p> void chinese_sort(book *head)</p><p><b> {</b></p><p><b> int j=0;</b></p><p&
77、gt; float k=101,max;</p><p> book *p1,*p2;</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p><b> do{</b></p><p><b> m
78、ax=0;</b></p><p> for(p1=head;p1;p1=p1->next)</p><p> if(p1->chinese>max&&p1->chinese<k){</p><p> max=p1->chinese;</p><p><b>
79、p2=p1;}</b></p><p><b> k=max;</b></p><p> for(p1=p2;p1;p1=p1->next)</p><p> if(p1->chinese==max){</p><p> printf("%ld\t%s\t%s\t%d\t%.1f
80、\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b> j++;}</b></p><p>
81、}while(j<n);</p><p><b> }</b></p><p> void math_sort(book *head)</p><p><b> {</b></p><p><b> int j=0;</b></p><p>
82、; float k=101,max;</p><p> book *p1,*p2;</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p><b> do{</b></p><p><b> max
83、=0;</b></p><p> for(p1=head;p1;p1=p1->next)</p><p> if(p1->math>max&&p1->math<k){</p><p> max=p1->math;</p><p><b> p2=p1;}<
84、/b></p><p><b> k=max;</b></p><p> for(p1=p2;p1;p1=p1->next)</p><p> if(p1->math==max){</p><p> printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t
85、%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b> j++;}</b></p><p> }while(j<n)
86、;</p><p><b> }</b></p><p> void english_sort(book *head)</p><p><b> {</b></p><p><b> int j=0;</b></p><p> float k=
87、101,max;</p><p> book *p1,*p2;</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p><b> do{</b></p><p><b> max=0;</b&g
88、t;</p><p> for(p1=head;p1;p1=p1->next)</p><p> if(p1->english>max&&p1->english<k){</p><p> max=p1->english;</p><p><b> p2=p1;}</b
89、></p><p><b> k=max;</b></p><p> for(p1=p2;p1;p1=p1->next)</p><p> if(p1->english==max){</p><p> printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\
90、t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p><b> j++;}</b></p><p> }while(j<n
91、);</p><p><b> }</b></p><p> book *modify(book *head,long num)</p><p><b> {</b></p><p><b> book *p1;</b></p><p><
92、b> int k,m;</b></p><p><b> p1=head;</b></p><p> while(p1!=NULL)</p><p><b> {</b></p><p> if(p1->number==num)</p><p&g
93、t;<b> break;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p> if(p1->number==num)</p><p><b> {</b></p><p>&
94、lt;b> do{</b></p><p> printf("1.書(shū)名 2.類(lèi)別 3.存期 4.章數(shù)成績(jī) 5.頁(yè)數(shù) 6.閱讀次數(shù) 0.返回上一級(jí)\n");</p><p> printf("請(qǐng)選擇:");</p><p> scanf("%d",&
95、k);</p><p><b> switch(k)</b></p><p><b> {</b></p><p> case 1:printf("書(shū)名:");scanf("%s",p1->name);printf("修改成功!\n");break;&
96、lt;/p><p> case 2:loop2:printf("類(lèi)別: 1.文科 2. 理科\n");</p><p> printf("請(qǐng)選擇類(lèi)別:");</p><p> scanf("%d",&m);</p><p><b> switch(m)<
97、;/b></p><p><b> {</b></p><p> case 1:strcpy(p1->sex,"文科");break;</p><p> case 2:strcpy(p1->sex," 理科");break;</p><p> defaul
98、t:printf("類(lèi)別只能是“文科”或“ 理科”,請(qǐng)重新輸入!\n");goto loop2;}</p><p> printf("修改成功!\n");</p><p><b> break;</b></p><p> case 3:printf("存期:");</p&g
99、t;<p> scanf("%d",&p1->age);</p><p> while(p1->age<0||p1->age>120){</p><p> printf("你輸入的存期不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("
100、存期:");</p><p> scanf("%d",&p1->age);</p><p><b> }</b></p><p> printf("修改成功!\n");</p><p><b> break;</b></p
101、><p> case 4:printf("章數(shù)成績(jī):");</p><p> scanf("%f",&p1->chinese);</p><p> while(p1->chinese<0||p1->chinese>100){</p><p> printf(&q
102、uot;你輸入的章數(shù)成績(jī)不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("章數(shù)成績(jī):");</p><p> scanf("%f",&p1->chinese);}</p><p> p1->sum=p1->chinese+p1->math+p1->e
103、nglish;</p><p> p1->average=p1->sum/3;</p><p> printf("修改成功!\n");</p><p><b> break;</b></p><p> case 5:printf("頁(yè)數(shù):");</p>
104、;<p> scanf("%f",&p1->math);</p><p> while(p1->math<0||p1->math>100){</p><p> printf("你輸入的頁(yè)數(shù)不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf(&quo
105、t;頁(yè)數(shù):");</p><p> scanf("%f",&p1->math);}</p><p> p1->sum=p1->chinese+p1->math+p1->english;</p><p> p1->average=p1->sum/3;</p><p
106、> printf("修改成功!\n");</p><p><b> break;</b></p><p> case 6:printf("閱讀次數(shù):");</p><p> scanf("%f",&p1->english);</p><p
107、> while(p1->english<0||p1->english>100){</p><p> printf("年輸入的閱讀次數(shù)不符合實(shí)際情況,請(qǐng)重新輸入!\n");</p><p> printf("閱讀次數(shù):");</p><p> scanf("%f",&am
108、p;p1->english);}</p><p> p1->sum=p1->chinese+p1->math+p1->english;</p><p> p1->average=p1->sum/3;</p><p> printf("修改成功!\n");break;</p><p
109、> case 0:break;</p><p> default:printf("輸入錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p><b> }</b></p><p> }while(k!=0);</p><p><b> }</b></p>&l
110、t;p><b> else</b></p><p> printf("沒(méi)有找到你要修改的圖書(shū)的信息!\n");</p><p> return(head);</p><p><b> }</b></p><p> book *del(book *head,long
111、 num)</p><p><b> {</b></p><p> book *p1,*p2;</p><p> if(head==NULL){printf("數(shù)據(jù)庫(kù)為空,沒(méi)有圖書(shū)記錄! \n");goto end;}</p><p><b> p1=head;</b>&
112、lt;/p><p> while(num!=p1->number&&p1->next!=NULL)</p><p><b> {</b></p><p> p2=p1;p1=p1->next;</p><p><b> }</b></p><
113、p> if(num==p1->number)</p><p><b> {</b></p><p> if(p1==head){head=p1->next;printf("刪除成功!\n");}</p><p> else {p2->next=p1->next;printf("
114、刪除成功!\n");}</p><p><b> n=n-1;</b></p><p><b> }</b></p><p> else printf("沒(méi)有找到你要?jiǎng)h除的圖書(shū)信息!\n",num);</p><p><b> end:;</b&
115、gt;</p><p> return(head);</p><p><b> }</b></p><p> book *insert(book *head,book *stud)</p><p><b> {</b></p><p> book *p0,*p1,*
116、p2;</p><p><b> p1=head;</b></p><p><b> p0=stud;</b></p><p> if(head==NULL)</p><p> {head=p0;p0->next=NULL;}</p><p><b>
117、 else</b></p><p> {while((p0->number>p1->number)&&(p1->next!=NULL))</p><p><b> {</b></p><p><b> p2=p1;</b></p><p>
118、 p1=p1->next;</p><p><b> }</b></p><p> if(p0->number<=p1->number)</p><p><b> {</b></p><p> if(head==p1)head=p0;</p><
119、p> else p2->next=p0;</p><p> p0->next=p1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
120、p1->next=p0;p0->next=NULL;</p><p><b> }</b></p><p><b> }</b></p><p><b> n=n+1;</b></p><p> return(head);</p><p&
121、gt;<b> }</b></p><p> void Statistics(book *head)</p><p><b> {</b></p><p><b> book *p1;</b></p><p> int i,c=0,m=0,e=0;</p>
122、<p> float cmax=0,mmax=0,emax=0,summax=0,averagemax=0;</p><p><b> p1=head;</b></p><p> for(i=1;i<=n;i++){</p><p> if(p1->chinese>=cmax)</p>&l
123、t;p> cmax=p1->chinese;</p><p> if(p1->math>=mmax)</p><p> mmax=p1->math;</p><p> if(p1->english>=emax)</p><p> emax=p1->english;</p>
124、<p> if(p1->sum>=summax)</p><p> summax=p1->sum;</p><p> if(p1->average>=averagemax)</p><p> averagemax=p1->average;</p><p> if(p1->chin
125、ese<60)</p><p><b> c++;</b></p><p> if(p1->math<60)</p><p><b> m++;</b></p><p> if(p1->english<60)</p><p><b&
126、gt; e++;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p> printf("總成績(jī)最高分:%5.1f\n",summax);</p><p> printf("平成績(jī)最高分:%5.1f\n"
127、;,averagemax);</p><p> printf("章數(shù)最多:%5.1f\n",cmax);</p><p> printf("頁(yè)數(shù)最高分:%5.1f\n",mmax);</p><p> printf("閱讀次數(shù)最多:%5.1f\n",emax);</p><p>
128、; printf("章數(shù)最少:%d\n",c);</p><p> printf("頁(yè)數(shù)最少:%d\n",m);</p><p> printf("閱讀次數(shù)最少:%d\n",e);</p><p> printf("\n");</p><p><b&
129、gt; }</b></p><p> void print(book *head)</p><p><b> {</b></p><p><b> book *p1;</b></p><p> printf("\n現(xiàn)在的%d個(gè)圖書(shū)記錄為:\n",n);<
130、;/p><p><b> p1=head;</b></p><p> if(head!=NULL){</p><p> printf("書(shū)號(hào)\t書(shū)名\t類(lèi)別\t存期\t章數(shù)\t頁(yè)數(shù)\t閱讀次數(shù)\t總次數(shù)\t平均次數(shù)\n");</p><p><b> do {</b><
131、/p><p> printf("%ld\t%s\t%s\t%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",p1->number,p1->name,p1->sex,p1->age,p1->chinese,p1->math,p1->english,p1->sum,p1->average);</p><p
132、> p1=p1->next;</p><p> }while(p1!=NULL);</p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b
133、></p><p> int choice;</p><p> book *head;</p><p><b> do{</b></p><p><b> /*打印表頭*/</b></p><p> printf("*****************
134、**************************************************************\n");</p><p> printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^歡迎來(lái)到圖書(shū)成績(jī)管理系統(tǒng)!^_^_^_^_^_^_^_^_^_^_^_^_^_^\n");</p><p> printf("
135、; \n");</p><p> printf(" 圖書(shū)成績(jī)管理系統(tǒng)的基本功能: \n");</p><p&g
136、t; printf(" 1. 新建; \n");</p><p> printf(" 2. 查找; \n&
137、quot;);</p><p> printf(" 3. 更新; \n");</p><p> printf(" 4. 排序;
138、 \n");</p><p> printf(" 5. 統(tǒng)計(jì); \n");</p><p> printf("
139、 6. 顯示; \n");</p><p> printf(" 0. 跳出; \n");</p><p> printf("
140、 \n");</p><p> printf(" 按鍵選擇,回車(chē)確定! \n");</p><p
141、> printf(" \n");</p><p> printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_
142、^_^\n");</p><p> printf("*******************************************************************************\n");</p><p> printf("請(qǐng)選擇:");/*提示用戶(hù)選擇操作功能*/</p><p>
143、; scanf("%d",&choice);</p><p> while(getchar()!='\n');/*接收回車(chē)符*/</p><p> switch(choice)</p><p><b> {</b></p><p> case 1:head=creat
144、();print(head);break;</p><p> case 2:search(head);break;</p><p> case 3:head=changes(head);break;</p><p> case 4:sort(head);break;</p><p> case 5:Statistics(head);b
145、reak;</p><p> case 6:print(head);break;</p><p> case 0:break;</p><p> default:printf("輸入錯(cuò)誤,請(qǐng)重新選擇!\n");</p><p><b> }</b></p><p>
146、}while(choice!=0);</p><p><b> }</b></p><p> 說(shuō)明:基本上實(shí)現(xiàn)了題目所要求的函數(shù)功能,可以對(duì)圖書(shū)的信息進(jìn)行輸入、瀏覽、查詢(xún)、修改、添加等功能管理。</p><p><b> 六、個(gè)人心得</b></p><p> 通過(guò)本次課程設(shè)計(jì),自己C語(yǔ)言編
147、程的能力有了提高,特別是在文件、指針、數(shù)組、函數(shù)和結(jié)構(gòu)體方面有了很大提高,另外還學(xué)習(xí)了課本沒(méi)有講到的知識(shí),學(xué)會(huì)了使用模塊化編程的簡(jiǎn)單方法,另外在對(duì)話(huà)框的編程要求美觀、方面也有了體會(huì)。</p><p> 循環(huán)是C語(yǔ)言的重要方法,也是本程序的靈魂,它在本程序中既有“穿針引線(xiàn)”的作用,也起到了對(duì)數(shù)據(jù)進(jìn)行分析、存貯、讀取等重要的作用,本程序在使用循環(huán)過(guò)程中對(duì)循環(huán)進(jìn)行了多方法的應(yīng)用也是一個(gè)“亮點(diǎn)”,它使程序變得結(jié)構(gòu)合理,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書(shū)信息管理系統(tǒng)-《c語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 圖書(shū)信息管理系統(tǒng)-c語(yǔ)言程序設(shè)計(jì)
- 圖書(shū)信息管理系統(tǒng)——c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖書(shū)信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-- 圖書(shū)信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)----圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-圖書(shū)信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告---圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)—圖書(shū)信息管理
- 程序課程設(shè)計(jì)報(bào)告 圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)論文-圖書(shū)信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)論文-圖書(shū)信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告----學(xué)生信息管理系統(tǒng)
- c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告--職工信息管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---圖書(shū)信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論