2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  C語言課程設(shè)計(jì)報(bào)告</b></p><p>  2011~2012學(xué)年第2學(xué)期</p><p>  課 程:C語言課程設(shè)計(jì)</p><p>  課程設(shè)計(jì)名稱:圖書管理系統(tǒng)</p><p>  2012年05月04日</p><p><b>  

2、一、需求分析</b></p><p>  為了滿足圖書管理的要求,通過計(jì)算機(jī)技術(shù)給圖書管理人員和讀者借、還書帶來便利。使用c語言編寫了圖書此管理系統(tǒng)。本系統(tǒng)主要實(shí)現(xiàn)圖書信息管理的功能,通過此系統(tǒng)可對(duì)圖書館庫存圖書信息進(jìn)行管理和維護(hù)操作。實(shí)現(xiàn)了圖書館內(nèi)管理的幾乎所有功能,包括查詢、添加、刪除、修改圖書信息,以及對(duì)圖書信息的存檔、讀取、排序。所設(shè)計(jì)的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的

3、選擇來進(jìn)行各種處理,并且在此過程中能夠盡可能的處理用戶使用過程中可能出現(xiàn)的異常情況。圖書信息包括作者名、書名、出版社、出版時(shí)間、圖書編號(hào)、價(jià)格、借書人姓名、借書人性別、借書人學(xué)號(hào)。圖書信息的錄入和顯示要求有一定的規(guī)范格式,錄入的圖書信息用文件形式保存,并可以對(duì)其進(jìn)行瀏覽、查詢、修改、刪除等基本操作。整個(gè)程序?qū)崿F(xiàn)鏈表操作,對(duì)圖書信息的操作逐個(gè)地進(jìn)行。</p><p><b>  二、算法設(shè)計(jì):</b

4、></p><p><b>  1.設(shè)計(jì)思想:</b></p><p>  整個(gè)系統(tǒng)制造的而過程中,涉及了較多C語言知識(shí)點(diǎn),對(duì)于不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作以分析和總結(jié),并結(jié)合這個(gè)課題進(jìn)行綜合的應(yīng)用,在一定程度上做到了對(duì)所學(xué)知識(shí)融會(huì)貫通。進(jìn)一步加深、鞏固了所學(xué)的專業(yè)的基本理論知識(shí),培養(yǎng)了綜合分析問題、解決問題的能力。在設(shè)計(jì)程序時(shí),實(shí)現(xiàn)了程序的模塊化、

5、結(jié)構(gòu)化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面簡單,易操作。 </p><p><b>  2.設(shè)計(jì)表示:</b></p><p>  (1)整個(gè)系統(tǒng)除了主函數(shù)外,另外還有各種功能子函數(shù),利用循環(huán)語句do-while()和選擇語句switch()實(shí)現(xiàn)各個(gè)子函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù),以實(shí)現(xiàn)相應(yīng)的功能。主函數(shù)中首先從文件讀取信息到鏈表中,以用于后面其

6、他函數(shù)的操作??傮w主要實(shí)現(xiàn)了圖書的錄入、存儲(chǔ)、查詢、添加、刪除、修改、排序等功能。</p><p> ?。?)在主函數(shù)中選擇管理員登錄或者學(xué)生登錄,并且輸入正確密碼后才可以進(jìn)入系統(tǒng),若連續(xù)3次輸入密碼錯(cuò)誤將會(huì)被強(qiáng)制退出。</p><p>  (3) Create_Books_Doc();這是一個(gè)指針函數(shù),它主要實(shí)現(xiàn)了鏈表的創(chuàng)建,它返回的時(shí)一個(gè)單向鏈表的頭。其他函數(shù)調(diào)用時(shí)只需調(diào)用它返回的頭即

7、可。Clear();此為清屏操作,在運(yùn)行中可以隨時(shí)將屏幕清空。</p><p>  (4) Print_Book_Doc ();這個(gè)函數(shù)為鏈表的輸出函數(shù),把鏈表的頭傳給函數(shù)后,可以表格的形式輸出整個(gè)鏈表的所有信息。、</p><p>  (5)save();這個(gè)函數(shù)為保存信息到文件的函數(shù),使用時(shí)將鏈表的頭傳給函數(shù),函數(shù)可將整個(gè)鏈表的所有信息存入到磁盤文件中。并覆蓋掉源文件,以便以后調(diào)用。R

8、ead()這個(gè)函數(shù)為讀取文件的函數(shù),將文件中的數(shù)據(jù)讀入鏈表中。 </p><p>  (7)search_book1();search_book2();search_book3();search_book4();search_book5();這五個(gè)函數(shù)為查詢圖書信息函數(shù),它們分別按編號(hào)、書名、作者、借書人姓名、借書人學(xué)號(hào)進(jìn)行查詢。查詢到信息后返回信息所在節(jié)點(diǎn),查詢不到則返回空指針。</p>&l

9、t;p>  (8)InsertDoc();Sorting_order1();Sorting_order2();DeleteDoc ();info_change ();這四個(gè)函數(shù)為功能函數(shù),InsertDoc();添加圖書信息、Sorting_order1();將圖書按編號(hào)排序、Sorting_order2();將圖書按價(jià)格排序、DeleteDoc ();刪除圖書信息、info_change ();修改圖書信息。調(diào)用時(shí)將鏈表頭指針傳

10、遞給函數(shù),函數(shù)返回經(jīng)過功能操作后的頭指針。</p><p><b>  3.結(jié)構(gòu)體系設(shè)計(jì):</b></p><p><b>  以下為部分流程圖:</b></p><p>  圖書管理系統(tǒng)主界面流程圖</p><p>  管理員版圖書管理系統(tǒng)流程圖</p><p>  圖書查

11、詢系統(tǒng)主界面流程圖</p><p><b>  排序頁面</b></p><p>  5.設(shè)計(jì)過程中的想法與程序中的不足:</p><p>  總的來說這個(gè)程序大致實(shí)現(xiàn)了題目的要求,但是這套程序仍然存在著很多的問題與不足。比如,程序中主函數(shù)寫的有點(diǎn)繁瑣,有太多的嵌套,不是那么井然有序,條理清晰,程序注釋也不是很完善,對(duì)信息處理功能還有些不足之處

12、,提示信息不明確。還有就是沒能做到模糊查詢。</p><p>  這個(gè)系統(tǒng)主要是參照課本手機(jī)通訊錄模版編寫的,同時(shí)也得到了老師和同學(xué)的一些幫助。我在做系統(tǒng)的過程中也遇到了很多問題,有的是知識(shí)不足,有的是考慮不夠周全。事實(shí)證明,只靠自己的知識(shí)面還是很窄,獨(dú)立處理問題能力不是很強(qiáng),以后還要加強(qiáng)對(duì)c語言的學(xué)習(xí)。 </p><p>  我認(rèn)為對(duì)于C語言編寫的程序來說,使用方法大致都是一樣的,所以如

13、果要改進(jìn)的話,就是要改進(jìn)一些算法,盡量把界面編寫清楚,提示信息全面,方便易用。</p><p><b>  三、調(diào)試與測試:</b></p><p>  上機(jī)操作(部分截圖)</p><p>  系統(tǒng)主界面(選擇數(shù)字進(jìn)入,退出系統(tǒng))</p><p>  選擇1輸入密碼進(jìn)入管理員版系統(tǒng),然后出現(xiàn)功能菜單;</p>

14、;<p>  選擇1進(jìn)入錄入系統(tǒng),錄入后瀏覽;</p><p><b>  選擇8進(jìn)行清屏;</b></p><p>  由于版面原因,其他操作頁面可以上機(jī)運(yùn)行進(jìn)行操作,在此就不再一一列出。</p><p><b>  四、小節(jié):</b></p><p>  在這一個(gè)星期的實(shí)踐中,通過

15、編寫這個(gè)圖書管理系統(tǒng),我體會(huì)到了c語言學(xué)習(xí)的實(shí)用性。將理論和實(shí)踐結(jié)合在一起,用先進(jìn)的計(jì)算機(jī)工具方便人們的生活。C語言程序的編寫首先要從大局考慮,把自己編寫整個(gè)程序的思想都寫在草稿上,這樣有助于自己編寫程序,在編寫時(shí)要完善注釋,方便其他人理解程序。編寫的程序從理論上來說并沒有錯(cuò),但一上機(jī)就問題不斷。甚至有些課本上的知識(shí)照搬不變,也不能得到正確的結(jié)果。有時(shí)一個(gè)程序改了一遍又一遍,但就是不能成功,編程顯得枯燥乏味,看似簡單的程序題,在調(diào)試時(shí)卻

16、屢屢出錯(cuò)。經(jīng)反復(fù)的修改后,結(jié)果正確了,這時(shí)所有的乏味都顯得那么無力,一切都是值得的。</p><p>  我認(rèn)為,開發(fā)一套系統(tǒng),最重要的是細(xì)心,并且思考要全面,結(jié)合實(shí)際,充分考慮到客戶的需求和現(xiàn)實(shí)意義。不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有現(xiàn)實(shí)意義。 所以c語言程序的實(shí)用性很強(qiáng),我們以后還要更加努力認(rèn)真地學(xué)習(xí)編程語言。</p><p><b>  附錄:</b>&

17、lt;/p><p><b>  源代碼:</b></p><p>  #include<stdio.h></p><p>  #include<math.h></p><p>  #include<string.h></p><p>  #include<st

18、dlib.h></p><p>  struct books_list{</p><p>  char author[20]; /*作者名*/</p><p>  char bookname[20]; /*書名*/ </p><p>  char publisher[20];

19、 /*出版單位*/</p><p>  char pbtime[15]; /*出版時(shí)間*/</p><p>  char booknum[10]; /*圖書編號(hào)*/</p><p>  float price; /*價(jià)格*/</p><p>  char

20、 lendername[20]; /*借書人姓名*/</p><p>  char lendersex[10]; /*借書人性別*/</p><p>  char lendernum[20]; /*借書人學(xué)號(hào)*/</p><p>  struct books_list * next; /*鏈表的指針域

21、*/</p><p><b>  };</b></p><p><b>  /*清屏函數(shù)*/</b></p><p>  void Clear()</p><p><b>  { </b></p><p>  system("cls"

22、);</p><p><b>  }</b></p><p>  /*保存數(shù)據(jù)至文件*/</p><p>  void save(struct books_list * head)</p><p><b>  {</b></p><p>  struct books_list

23、 *p;</p><p><b>  FILE *fp;</b></p><p><b>  p=head;</b></p><p>  fp=fopen("f1.txt","w+"); </p><p>  fprintf(fp,"%20s%20s

24、%20s%20s%20s%20f%20s%20s%20s",p->booknum,p->bookname,p->author,p->publisher,p->pbtime,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  while(p->next!= NULL){<

25、/p><p>  p=p->next;</p><p>  fprintf(fp,"%20s%20s%20s%20s%20s%20f%20s%20s%20s",p->booknum,p->bookname,p->author,p->publisher,p->pbtime,p->price,p->lendername,p->

26、;lendersex,p->lendernum);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("已將數(shù)據(jù)保存到 f1.txt 文件\n");</p><p><b>  }</b></p>

27、;<p><b>  /*插入*/</b></p><p>  struct books_list * InsertDoc(struct books_list * head,struct books_list * book)</p><p><b>  {</b></p><p><b>  cha

28、r a;</b></p><p>  struct books_list * ptr,* p;</p><p><b>  p=head;</b></p><p><b>  ptr=book;</b></p><p>  if(head==NULL){</p><p

29、><b>  head=ptr;</b></p><p>  head->next=NULL;</p><p><b>  }</b></p><p><b>  else{</b></p><p>  while(p->next!=NULL)</p&g

30、t;<p>  p=p->next;</p><p>  p->next=ptr;</p><p>  ptr->next=NULL;</p><p><b>  }</b></p><p>  printf("是否保存插入的圖書信息?(Y/N)");</p>

31、;<p>  getchar();</p><p>  scanf("%c",&a);</p><p>  if(a=='Y'||a=='y')</p><p>  save(head);</p><p><b>  else</b></p&

32、gt;<p>  printf("\n未保存插入后數(shù)據(jù)!\n\n");</p><p>  return head;</p><p><b>  }</b></p><p>  /*新建鏈表頭節(jié)點(diǎn)*/</p><p>  struct books_list * Create_Books_

33、Doc()</p><p><b>  {</b></p><p>  struct books_list * head,*p;</p><p>  int size=sizeof(struct books_list);</p><p>  head=NULL;</p><p>  char fl

34、ag='Y';</p><p>  while(flag=='Y'||flag=='y'){</p><p>  p=(struct books_list *)malloc(sizeof(struct books_list));/*開辟新空間,存入數(shù)據(jù),添加進(jìn)鏈表*/</p><p><b>  here0:

35、</b></p><p>  printf("\n 請(qǐng)輸入圖書編號(hào):");</p><p>  getchar();</p><p>  scanf("%s",p->booknum);</p><p>  printf("\n

36、 請(qǐng)輸入圖書書名:");</p><p>  getchar();</p><p>  scanf("%s",p->bookname);</p><p>  printf("\n 請(qǐng)輸入圖書作者名:");</p><p> 

37、 getchar();</p><p>  scanf("%s",p->author);</p><p>  printf("\n 請(qǐng)輸入圖書出版社:");</p><p>  getchar();</p><p>  scanf("%s"

38、,p->publisher);</p><p>  printf("\n 請(qǐng)輸入圖書出版時(shí)間:");</p><p>  getchar();</p><p>  scanf("%s",p->pbtime);</p><p>  printf("

39、;\n 請(qǐng)輸入圖書價(jià)格:");</p><p>  getchar();</p><p>  if(scanf("%f",&p->price)!=1){</p><p>  printf("價(jià)格輸入有誤,請(qǐng)重新輸入!");</p><p> 

40、 goto here0;</p><p><b>  }</b></p><p>  printf("\n 請(qǐng)輸入借書人姓名:");</p><p>  getchar();</p><p>  scanf("%s",p->lendern

41、ame); </p><p>  printf("\n 請(qǐng)輸入借書人性別:");</p><p>  getchar();</p><p>  scanf("%s",p->lendersex); </p><p>  printf("\n

42、 請(qǐng)輸入借書人學(xué)號(hào):");</p><p>  getchar();</p><p>  scanf("%s",p->lendernum);</p><p>  printf("\n");</p><p>  head=InsertDoc(head,p);<

43、;/p><p>  printf(" ━━━━ 添加成功!━━━━");</p><p>  printf("\n 繼續(xù)添加(輸入‘Y’或‘y’繼續(xù),否則結(jié)束)?");</p><p>  getchar();</p><p

44、>  scanf("%c",&flag);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><

45、;p><b>  /*修改操作*/</b></p><p>  void info_change(struct books_list * head)</p><p><b>  {</b></p><p>  struct books_list * p;</p><p>  int pandu

46、an=0; </p><p>  char temp[20],a;</p><p><b>  p=head;</b></p><p>  if(head==NULL)</p><p>  printf(" ━━━━ 圖書庫為空!━━━━\n");</p><p&

47、gt;<b>  else{</b></p><p>  printf("請(qǐng)輸入要修改圖書的書名:");</p><p>  getchar();</p><p>  scanf("%s",temp);</p><p>  while(p!=NULL){</p>&l

48、t;p>  if(strcmp(p->bookname,temp)==0){</p><p>  printf("\n 請(qǐng)輸入修改后的圖書編號(hào):");</p><p>  getchar();</p><p>  scanf("%s",p->booknum);</p

49、><p>  printf("\n 請(qǐng)輸入修改后的圖書書名:");</p><p>  getchar();</p><p>  scanf("%s",p->bookname);</p><p>  printf("\n

50、 請(qǐng)輸入修改后的圖書作者名:");</p><p>  getchar();</p><p>  scanf("%s",p->author);</p><p>  printf("\n 請(qǐng)輸入修改后的圖書出版社:");</p><p>  get

51、char();</p><p>  scanf("%s",p->publisher);</p><p>  printf("\n 請(qǐng)輸入修改后的圖書出版時(shí)間:");</p><p>  getchar();</p><p>  scanf("%s&q

52、uot;,p->pbtime);</p><p>  printf("\n 請(qǐng)輸入修改后的圖書價(jià)格:");</p><p>  getchar();</p><p>  scanf("%f",&p->price);</p><p>  print

53、f("\n 請(qǐng)輸入修改后的借書人姓名:");</p><p>  getchar();</p><p>  scanf("%s",p->lendername); </p><p>  printf("\n 請(qǐng)輸入修改后的借書人性別:&q

54、uot;);</p><p>  getchar();</p><p>  scanf("%s",p->lendersex); </p><p>  printf("\n 請(qǐng)輸入修改后的借書人學(xué)號(hào):");</p><p>  getchar();</p&

55、gt;<p>  scanf("%s",p->lendernum);</p><p>  printf("\n");</p><p>  getchar();</p><p>  panduan=1;</p><p><b>  }</b></p>

56、<p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(panduan==0){</p><p>  printf("\n ━━━━ 沒有此圖書記

57、錄! ━━━━\n\n");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  printf("是否保存修改后的圖書信息?(Y/N)");</p><p>  scanf("%c",&

58、;a);</p><p>  if(a=='Y'||a=='y')</p><p>  save(head);</p><p><b>  else</b></p><p>  printf("\n未保存修改后數(shù)據(jù)!\n\n");</p><p>

59、;<b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  /*按照?qǐng)D書號(hào)查詢*/</p><p>  void search_book1(struct books_list *head)</p

60、><p><b>  {</b></p><p><b>  int a=0;</b></p><p>  struct books_list * p;</p><p>  char temp[20];</p><p><b>  p=head;</b>&l

61、t;/p><p>  if(head==NULL)</p><p>  printf(" ━━━━ 圖書庫為空!━━━━\n");</p><p><b>  else{</b></p><p>  printf("請(qǐng)輸入您要查找圖書的編號(hào): ");</p>

62、;<p>  getchar();</p><p>  scanf("%s",temp);</p><p>  while(p!= NULL){</p><p>  if(strcmp(p->booknum,temp)==0){</p><p>  printf("\n圖書已找到!\n&quo

63、t;);</p><p>  printf("\n");</p><p>  printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出

64、版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào) ┃\n"); </p><p>  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.

65、12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n",p->booknum,p->bookname,p->author,p->publisher,p->pbtime,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  printf("┗━━━

66、┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━┻━━━━━━┛\n");</p><p>  printf("\n");</p><p><b>  a++;</b></p><p><b>  }</b></p><p>  p=

67、p->next;</p><p>  if(p==NULL&&a==0)</p><p>  printf("\n查詢完畢,未找到所要查詢的信息!\n");</p><p><b>  } </b></p><p><b>  }</b></p>

68、<p><b>  return;</b></p><p><b>  }</b></p><p>  /*按照?qǐng)D書名查詢*/</p><p>  void search_book2(struct books_list *head)</p><p><b>  {</b

69、></p><p><b>  int a=0;</b></p><p>  struct books_list * p;</p><p>  char temp[20];</p><p><b>  p=head;</b></p><p>  if(head==NUL

70、L)</p><p>  printf(" ━━━━ 圖書庫為空!━━━━\n");</p><p><b>  else{</b></p><p>  printf("請(qǐng)輸入您要查找書本的名稱: ");</p><p>  getchar();</p>

71、;<p>  scanf("%s",temp);</p><p>  while(p!= NULL){</p><p>  if(strcmp(p->bookname,temp)==0){</p><p>  printf("\n圖書已找到!\n");</p><p>  print

72、f("\n");</p><p>  printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào)

73、┃\n"); </p><p>  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-1

74、2.12s┃\n",p->booknum,p->bookname,p->author,p->publisher,p->pbtime,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━

75、━━━━┻━━━━━┻━━━━━━┛\n");</p><p>  printf("\n");</p><p><b>  a++;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p>

76、  if(p==NULL&&a==0)</p><p>  printf("\n查詢完畢,未找到所要查詢的信息!\n");</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  return;<

77、;/b></p><p><b>  }</b></p><p>  /*按照?qǐng)D書作者查詢*/</p><p>  void search_book3(struct books_list *head)</p><p><b>  {</b></p><p><b&

78、gt;  int a=0;</b></p><p>  struct books_list * p;</p><p>  char temp[20];</p><p><b>  p=head;</b></p><p>  if(head==NULL)</p><p>  printf

79、(" ━━━━ 圖書庫為空!━━━━\n");</p><p><b>  else{</b></p><p>  printf("請(qǐng)輸入您要查找圖書的作者: ");</p><p>  getchar();</p><p>  scanf("%s&qu

80、ot;,temp);</p><p>  while(p!= NULL){</p><p>  if(strcmp(p->author,temp)==0){</p><p>  printf("\n圖書已找到!\n");</p><p>  printf("\n");</p><

81、;p>  printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào) ┃\n"); </p><p>

82、  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n",p->booknum,p-&g

83、t;bookname,p->author,p->publisher,p->pbtime,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━┻━━━━━━┛\n");</

84、p><p>  printf("\n");</p><p><b>  a++;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p>  if(p==NULL&&a==0)</p

85、><p>  printf("\n查詢完畢,未找到所要查詢的信息!\n");</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b

86、>  }</b></p><p>  /*按照借書人姓名查詢*/</p><p>  void search_book4(struct books_list *head)</p><p><b>  {</b></p><p><b>  int a=0;</b></p>

87、;<p>  struct books_list * p;</p><p>  char temp[20];</p><p><b>  p=head;</b></p><p>  if(head==NULL)</p><p>  printf(" ━━━━ 圖書庫為空!━━━━

88、\n");</p><p><b>  else{</b></p><p>  printf("請(qǐng)輸入您要查找的圖書借書人姓名: ");</p><p>  getchar();</p><p>  scanf("%s",temp);</p><p&g

89、t;  while(p!= NULL){</p><p>  if(strcmp(p->lendername,temp)==0){</p><p>  printf("\n圖書已找到!\n");</p><p>  printf("\n");</p><p>  printf("┏━━━

90、┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào) ┃\n"); </p><p>  printf("┣━━━╋━━━━━

91、╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n",p->booknum,p->bookname,p->author,p

92、->publisher,p->pbtime,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━┻━━━━━━┛\n");</p><p>  printf(

93、"\n");</p><p><b>  a++;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p>  if(p==NULL&&a==0)</p><p>  printf(&

94、quot;\n查詢完畢,未找到所要查詢的信息!\n");</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p&g

95、t;<p>  /*按照借書人學(xué)號(hào)查詢*/</p><p>  void search_book5(struct books_list *head)</p><p><b>  {</b></p><p><b>  int a=0;</b></p><p>  struct book

96、s_list * p;</p><p>  char temp[20];</p><p><b>  p=head;</b></p><p>  if(head==NULL)</p><p>  printf(" ━━━━ 圖書庫為空!━━━━\n");</p><

97、;p><b>  else{</b></p><p>  printf("請(qǐng)輸入您要查找圖書的借書人學(xué)號(hào): ");</p><p>  getchar();</p><p>  scanf("%s",temp);</p><p>  while(p!= NULL){</

98、p><p>  if(strcmp(p->lendernum,temp)==0){</p><p>  printf("\n圖書已找到!\n");</p><p>  printf("\n");</p><p>  printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳

99、━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào) ┃\n"); </p><p>  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━

100、━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n",p->booknum,p->bookname,p->author,p->publisher,p->pbtim

101、e,p->price,p->lendername,p->lendersex,p->lendernum);</p><p>  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━┻━━━━━━┛\n");</p><p>  printf("\n");</p>

102、<p><b>  a++;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p>  if(p==NULL&&a==0)</p><p>  printf("\n查詢完畢,未找到所要查詢的信息!\n&

103、quot;);</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  /*

104、刪除操作*/</b></p><p>  struct books_list * DeleteDoc(struct books_list * head)</p><p><b>  {</b></p><p>  struct books_list * ptr1,* ptr2;</p><p><b&g

105、t;  int a=0;</b></p><p><b>  char b;</b></p><p>  char temp[20];</p><p>  printf(" [請(qǐng)輸入您要?jiǎng)h除的圖書書名]:");</p><p>  scanf(&qu

106、ot;%s",temp);</p><p>  while(head!=NULL&&strcmp(head->bookname,temp)==0){</p><p>  ptr2=head;</p><p>  head=head->next;</p><p>  free(ptr2);</p>

107、;<p><b>  a=1;</b></p><p>  printf("已成功刪除!");</p><p><b>  }</b></p><p>  if(head==NULL){</p><p>  printf("\n鏈表為空,無法刪除!\n\n

108、");</p><p>  return NULL;</p><p><b>  }</b></p><p>  ptr1=head;</p><p>  ptr2=head->next;</p><p>  while(ptr2!=NULL){</p><p&

109、gt;  if(strcmp(ptr2->bookname,temp)==0){</p><p>  ptr1->next=ptr2->next;</p><p>  free(ptr2);</p><p><b>  a=1;</b></p><p>  printf("已成功刪除!&quo

110、t;);</p><p><b>  }</b></p><p><b>  else</b></p><p>  ptr1=ptr2;</p><p>  ptr2=ptr1->next;</p><p><b>  }</b></p>

111、;<p>  if(ptr2==NULL&&a==0){</p><p>  printf("\n未找到要?jiǎng)h除的數(shù)據(jù)!\n\n");</p><p>  goto here10;</p><p><b>  }</b></p><p>  printf("是否保

112、存刪除后的圖書信息?(Y/N)");</p><p>  getchar();</p><p>  scanf("%c",&b);</p><p>  if(b=='Y'||b=='y')</p><p>  save(head);</p><p>

113、<b>  else</b></p><p>  printf("\n未保存刪除后數(shù)據(jù)!\n\n");</p><p><b>  here10:</b></p><p>  return head;</p><p><b>  }</b></p>

114、;<p><b>  /*瀏覽*/</b></p><p>  void Print_Book_Doc(struct books_list * head)</p><p><b>  {</b></p><p>  struct books_list * p1;</p><p>  i

115、f(head==NULL){</p><p>  printf("\n鏈表為空,無法輸出!\n\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("┏━━━┳━━━━━┳━━━━━┳━

116、━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"); </p><p>  printf("┃圖書號(hào)┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時(shí)間 ┃ 價(jià)格 ┃借書人姓名┃借書人性別┃ 借書人學(xué)號(hào) ┃\n"); </p><p>  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━

117、━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n");</p><p>  for(p1=head;p1;p1=p1->next)</p><p>  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n",p1-&

118、gt;booknum,p1->bookname,p1->author,p1->publisher,p1->pbtime,p1->price,p1->lendername,p1->lendersex,p1->lendernum);</p><p>  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━

119、┻━━━━━━┛\n");</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  /*讀文件*/</b></p><p>  struct books_list * Read()</p><

120、;p><b>  {</b></p><p>  struct books_list *p1,*head=NULL,*tail;</p><p>  FILE * fp;</p><p>  if((fp=fopen("f1.txt","r"))==NULL){ </p><p&

121、gt;  printf("File open error!\n");</p><p>  printf("此時(shí)文件中無圖書信息,請(qǐng)管理員先輸入圖書信息并進(jìn)行保存。\n\n");</p><p><b>  goto end;</b></p><p><b>  }</b></p

122、><p>  while(!feof(fp)){</p><p>  p1=(struct books_list *)malloc(sizeof(struct books_list));</p><p>  fscanf(fp,"%s%s%s%s%s%f%s%s%s",p1->booknum,p1->bookname,p1->aut

123、hor,p1->publisher,p1->pbtime,&p1->price,p1->lendername,p1->lendersex,p1->lendernum);</p><p>  if(head==NULL)</p><p><b>  head=p1;</b></p><p><b&

124、gt;  else</b></p><p>  tail->next=p1;</p><p><b>  tail=p1; </b></p><p><b>  }</b></p><p>  tail->next=NULL; </p><p>  f

125、close(fp);</p><p><b>  end:</b></p><p>  return head;</p><p><b>  }</b></p><p>  /*按照?qǐng)D書價(jià)格排序*/</p><p>  struct books_list * Sorting_

126、order1(struct books_list * head)</p><p><b>  {</b></p><p>  struct books_list *p1,*p2,*p3,*p4,*p5,*p6,*p7;</p><p><b>  int x=1;</b></p><p><b

127、>  char b;</b></p><p>  for(p1=head;p1->next!=NULL;p4=p1,p1=p1->next){</p><p><b>  p3=p1;</b></p><p>  for(p2=p1->next,p5=p7=p2;p2!=NULL;p7=p2,p2=p2-&g

128、t;next){</p><p>  if(p1->price>=p2->price){</p><p><b>  p3=p2;</b></p><p><b>  p5=p7;</b></p><p><b>  }</b></p><

129、p><b>  }</b></p><p>  if(p3!=p1){ /*說明p1->price>=p2->price成立*/</p><p>  if(x&&p1==head){ /*對(duì)p1==head時(shí)排序的處理*/</p><p>  p6=p1->next

130、;</p><p>  p1->next=p3->next;</p><p>  p3->next=p6;</p><p>  p5->next=p1;</p><p><b>  head=p3;</b></p><p><b>  p1=p3;</b&g

131、t;</p><p><b>  x=0;</b></p><p><b>  }</b></p><p>  else{ /*對(duì)p1!=head時(shí)排序的處理*/</p><p>  p6=p1->next;</p><p>  

132、p1->next=p3->next;</p><p>  p3->next=p6;</p><p>  p4->next=p3;</p><p>  p5->next=p1;</p><p><b>  p1=p3;</b></p><p><b>  }&

133、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("是否保存排序后的圖書信息?(Y/N)");</p><p>  getchar();</p><p>  scanf(&

134、quot;%c",&b);</p><p>  if(b=='Y'||b=='y')</p><p>  save(head);</p><p><b>  else</b></p><p>  printf("\n未保存排序后數(shù)據(jù)!\n\n");&l

135、t;/p><p>  return head;</p><p><b>  }</b></p><p>  /*按照書號(hào)排序*/</p><p>  struct books_list * Sorting_order2(struct books_list * head)</p><p><b&g

136、t;  {</b></p><p>  struct books_list *p1,*p2,*p3,*p4,*p5,*p6,*p7;</p><p><b>  int x=1;</b></p><p><b>  char b;</b></p><p>  for(p1=head;p1

137、->next!=NULL;p4=p1,p1=p1->next){</p><p><b>  p3=p1;</b></p><p>  for(p2=p1->next,p5=p7=p2;p2!=NULL;p7=p2,p2=p2->next){</p><p>  if(strcmp(p1->booknum,p2-&

138、gt;booknum )>0){</p><p><b>  p3=p2;</b></p><p><b>  p5=p7;</b></p><p><b>  }</b></p><p><b>  }</b></p><p&g

139、t;  if(p3!=p1){</p><p>  if(x&&p1==head){</p><p>  p6=p1->next;</p><p>  p1->next=p3->next;</p><p>  p3->next=p6;</p><p>  p5->ne

140、xt=p1;</p><p><b>  head=p3;</b></p><p><b>  p1=p3;</b></p><p><b>  x=0;</b></p><p><b>  }</b></p><p><b&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論