版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 實習名稱 程序設(shè)計課程設(shè)計 </p><p> 設(shè)計題目 圖書信息管理系統(tǒng) </p><p> 實習時間 2010.06.27-2010.07.04 </p><p> 專業(yè)班級 <
2、;/p><p> 指導老師 </p><p> 教學單位(蓋章) </p><p><b> 小組分工情況:</b></p><p><b> 二O一O年七月五日</b></p><p><b>
3、; C語言程序設(shè)計報告</b></p><p><b> ---圖書管理系統(tǒng)</b></p><p><b> 一、實驗準備</b></p><p> 做系統(tǒng)前,首先,自己詳細看了《C程序設(shè)計教程》(教科書)的第十章《文件》,基本自學會了文件的相關(guān)內(nèi)容,理解了相關(guān)函數(shù)的用法和作用;另,上網(wǎng)查詢了很多相關(guān)
4、資料,還有找了很多相關(guān)的系統(tǒng),都詳細的看了一遍,加深了對C的理解以及對文件的相關(guān)內(nèi)容進一步理解。學習了C語言的內(nèi)容,圖書信息管理系統(tǒng)有助于C語言學習的進一步鞏固,在本系統(tǒng)可以增強對指針、數(shù)組、文件、函數(shù)等基本知識的進一步理解。另外圖書信息管理系統(tǒng)也是學校常用的基本系統(tǒng)之一,它有助于學校對圖書館書籍的基本管理。</p><p><b> 二、功能簡介 </b></p><
5、p> 圖書信息管理系統(tǒng)是對圖書信息的基本管理,它包括:圖書信息的輸入、圖書信息的修改及刪除、圖書信息的查詢、圖書信息的添加、圖書信息的瀏覽。</p><p> 使用模塊化編程的方法每項功能有一個或多個函數(shù)組合來完成. </p><p><b> 三、系統(tǒng)與性環(huán)境</b></p><p> 系統(tǒng)可以在MicrosoftVisualC
6、++6.0軟件運行,硬件基本無要求,現(xiàn)在的計算機基本都可以運行該系統(tǒng)。</p><p> 四、功能劃分及詳細說明</p><p><b> 主要算法的設(shè)計:</b></p><p><b> 主函數(shù)的算法設(shè)計</b></p><p><b> 開始</b></p&
7、gt;<p> 首先,運行程序,進入菜單,然后選擇操作(運用swith語句),調(diào)用各子函數(shù)。在返回操作中運用while語句進行控制返回菜單。</p><p><b> 各子函數(shù)的算法設(shè)計</b></p><p> 1、圖書信息的輸入函數(shù)</p><p><b> 假</b></p>&l
8、t;p><b> 真</b></p><p><b> 2、圖書信息的修改</b></p><p><b> 3、圖書信息的查詢</b></p><p> void search()選擇查詢方式 ,1按書號查詢,2按書名查詢, 然后定位,再調(diào)用輸出函數(shù);</p><
9、p><b> 4、圖書信息的瀏覽</b></p><p> 首先,輸出所有圖書的信息,并輸出圖書記錄數(shù),然后調(diào)用輔助函數(shù)進行菜單選擇,操作完成后返回主菜單。</p><p><b> 5、圖書信息的添加</b></p><p> 首先,從文件中調(diào)用函數(shù)讀入函數(shù),再輸入要添加數(shù),然后添加圖書信息,并保存。<
10、;/p><p><b> 上機調(diào)試過程:</b></p><p> 在調(diào)試過程中出現(xiàn)了許多的錯誤!特別是在查詢、修改刪除這2個函數(shù)的調(diào)上花費了很多時間,主要是文件的寫入與讀出以及菜單調(diào)試的問題,還有建立新的鏈接也出現(xiàn)問題,說明自己對程序的執(zhí)行過程理解不夠深刻。</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("請輸入圖書信息!\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)/*輸入圖書的信息*/</p><p><b> {</b></p><p> int i,f,k;</p><p><b> book *p2;</
23、b></p><p> loop:printf("圖書號(為整數(shù),輸入0時返回上一級):");</p><p> scanf("%ld",&p1->number);</p><p> if(p1->number<0){</p><p> printf("
24、圖書號不能為負數(shù),請重新輸入!\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("圖書不能重復,請重新輸入!\n");goto loop;}</p><p><b> }</b></p><p> printf("書名:");</p><p> scanf("%s",p1->name);</p><p> loop1:pr
28、intf("類別: 1.文科 2.理科 \n");</p><p> printf("請選擇類別:");</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("類別只能是“文科”或“理科”,請重新輸入!\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("你輸入的存期不符合實際情況,請重新輸入!\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ù)不符合實際情況,請重新輸入!\n");
33、</p><p> printf("章數(shù):");</p><p> scanf("%f",&p1->chinese);}</p><p> printf("頁數(shù):");</p><p> scanf("%f",&p1->math
34、);</p><p> while(p1->math<0||p1->math>100){</p><p> printf("你輸入的頁數(shù)不符合實際情況,請重新輸入!\n");</p><p> printf("頁數(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ù)不符合實際情況,請重新輸入!\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ù)庫為空,沒有圖書的記錄!\n");return;}</p><p><b> else{</b></p><p><b> do{</b></p><p> printf("1. 按書號查找 2. 按書名查找 0. 返回
40、上一級\n");</p><p> printf("請選擇:");</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("書號(輸入0時跳出按書號查找):");</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("輸入錯誤,請重新選擇!\n");}</p><p&
43、gt; }while(1);</p><p><b> break;</b></p><p> case 2:do{</p><p> printf("書名(輸入0時跳出按書名查找):");</p><p> scanf("%s",name);</p>&l
44、t;p> printf("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("輸入錯誤,請重新選擇!\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("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("沒有找到你要查找的圖書信息!\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("沒有找到你要查找的圖書信息!\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. 返回上一級\n");</p><p> printf("請選擇:");</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ù)庫為空,沒有圖書的記錄!\n");break;}</p><p><b> else{</b></p><p> printf("請輸入圖書的書號(書號應為整數(shù),輸入0時跳出修改數(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ù),請重新輸入!\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ù)庫為空,沒有圖書信息!\n");break;}</p><p><b> else{</b></p><p> printf("請輸入要刪除的圖書的書號(書號應為整數(shù),輸入0時跳出刪除元素):");</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ù),請重新輸入!\n");}</p><p><b> }</b></p><p> }while(1);</p><p><b> break;</b&
63、gt;</p><p> case 3:printf("請輸入圖書信息!\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("請輸入圖書信息!\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("輸入錯誤,請重新輸入!\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ù)庫為空,沒有圖書記錄!\n");return;}</p><p><b> do{</b></p><p> printf("1.按書號排序 2.按總次數(shù)和平均次數(shù)排序 3.按章數(shù)成績排序 4.
68、按頁數(shù)排序 5.按閱讀次數(shù)排序 0.返回上一級\n");</p><p> printf("請選擇:");</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("輸入錯誤,請重新輸入!\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("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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.書名 2.類別 3.存期 4.章數(shù)成績 5.頁數(shù) 6.閱讀次數(shù) 0.返回上一級\n");</p><p> printf("請選擇:");</p><p> scanf("%d",&
95、k);</p><p><b> switch(k)</b></p><p><b> {</b></p><p> case 1:printf("書名:");scanf("%s",p1->name);printf("修改成功!\n");break;&
96、lt;/p><p> case 2:loop2:printf("類別: 1.文科 2. 理科\n");</p><p> printf("請選擇類別:");</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("類別只能是“文科”或“ 理科”,請重新輸入!\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("你輸入的存期不符合實際情況,請重新輸入!\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ù)成績:");</p><p> scanf("%f",&p1->chinese);</p><p> while(p1->chinese<0||p1->chinese>100){</p><p> printf(&q
102、uot;你輸入的章數(shù)成績不符合實際情況,請重新輸入!\n");</p><p> printf("章數(shù)成績:");</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("頁數(shù):");</p>
104、;<p> scanf("%f",&p1->math);</p><p> while(p1->math<0||p1->math>100){</p><p> printf("你輸入的頁數(shù)不符合實際情況,請重新輸入!\n");</p><p> printf(&quo
105、t;頁數(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ù)不符合實際情況,請重新輸入!\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("輸入錯誤,請重新選擇!\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("沒有找到你要修改的圖書的信息!\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ù)庫為空,沒有圖書記錄! \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("沒有找到你要刪除的圖書信息!\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("總成績最高分:%5.1f\n",summax);</p><p> printf("平成績最高分:%5.1f\n"
127、;,averagemax);</p><p> printf("章數(shù)最多:%5.1f\n",cmax);</p><p> printf("頁數(shù)最高分:%5.1f\n",mmax);</p><p> printf("閱讀次數(shù)最多:%5.1f\n",emax);</p><p>
128、; printf("章數(shù)最少:%d\n",c);</p><p> printf("頁數(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個圖書記錄為:\n",n);<
130、;/p><p><b> p1=head;</b></p><p> if(head!=NULL){</p><p> printf("書號\t書名\t類別\t存期\t章數(shù)\t頁數(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("^_^_^_^_^_^_^_^_^_^_^_^_^_^歡迎來到圖書成績管理系統(tǒng)!^_^_^_^_^_^_^_^_^_^_^_^_^_^\n");</p><p> printf("
135、; \n");</p><p> printf(" 圖書成績管理系統(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)計; \n");</p><p> printf("
139、 6. 顯示; \n");</p><p> printf(" 0. 跳出; \n");</p><p> printf("
140、 \n");</p><p> printf(" 按鍵選擇,回車確定! \n");</p><p
141、> printf(" \n");</p><p> printf("^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_
142、^_^\n");</p><p> printf("*******************************************************************************\n");</p><p> printf("請選擇:");/*提示用戶選擇操作功能*/</p><p>
143、; scanf("%d",&choice);</p><p> while(getchar()!='\n');/*接收回車符*/</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("輸入錯誤,請重新選擇!\n");</p><p><b> }</b></p><p>
146、}while(choice!=0);</p><p><b> }</b></p><p> 說明:基本上實現(xiàn)了題目所要求的函數(shù)功能,可以對圖書的信息進行輸入、瀏覽、查詢、修改、添加等功能管理。</p><p><b> 六、個人心得</b></p><p> 通過本次課程設(shè)計,自己C語言編
147、程的能力有了提高,特別是在文件、指針、數(shù)組、函數(shù)和結(jié)構(gòu)體方面有了很大提高,另外還學習了課本沒有講到的知識,學會了使用模塊化編程的簡單方法,另外在對話框的編程要求美觀、方面也有了體會。</p><p> 循環(huán)是C語言的重要方法,也是本程序的靈魂,它在本程序中既有“穿針引線”的作用,也起到了對數(shù)據(jù)進行分析、存貯、讀取等重要的作用,本程序在使用循環(huán)過程中對循環(huán)進行了多方法的應用也是一個“亮點”,它使程序變得結(jié)構(gòu)合理,
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書信息管理系統(tǒng)-《c語言程序設(shè)計》課程設(shè)計報告
- 圖書信息管理系統(tǒng)-c語言程序設(shè)計
- 圖書信息管理系統(tǒng)——c語言課程設(shè)計報告
- c語言圖書信息管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告-- 圖書信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----圖書信息管理系統(tǒng)
- c語言課程設(shè)計-圖書信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計》課程設(shè)計報告---圖書信息管理系統(tǒng)
- c語言課程設(shè)計—圖書信息管理
- 程序課程設(shè)計報告 圖書信息管理系統(tǒng)
- c語言課程設(shè)計圖書信息管理系統(tǒng)
- c語言課程設(shè)計圖書信息管理系統(tǒng)
- c語言課程設(shè)計論文-圖書信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計論文-圖書信息管理系統(tǒng)設(shè)計
- c語言程序設(shè)計課程設(shè)計報告----學生信息管理系統(tǒng)
- c語言程序設(shè)計課程設(shè)計報告--職工信息管理系統(tǒng)
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
評論
0/150
提交評論