圖書信息管理系統(tǒng)課程設計報告_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p>  一.課程設計的內容**************************************************3</p><p>  二.需求分析**********************************************************3</p><p

2、>  三.概要設計**********************************************************3</p><p>  3.1軟件運行開發(fā)平臺*******************************************************3</p><p>  3.2 數據結構****************************

3、**********************************4</p><p>  3.3系統(tǒng)結構圖*************************************************************5</p><p>  四.詳細設計***********************************************************5<

4、;/p><p>  4.1頭文件,變量定義,函數**************************************************5</p><p>  4.2 管理員登錄,新用戶注冊模塊**********************************************6</p><p>  4.3菜單模塊設計****************

5、********************************************9</p><p>  4.4輸入模塊設計************************************************************9</p><p>  4.5瀏覽模塊設計**************************************************

6、*********10</p><p>  4.6查詢模塊設計***********************************************************11</p><p>  4.7刪除模塊設計***********************************************************12</p><p>  

7、4.8修改模塊設計***********************************************************13</p><p>  五.測試,結果分析**************************************************15</p><p>  5.1數據分析************************************

8、***************************15</p><p>  5.2測試截圖***************************************************************16</p><p>  六.總結****************************************************************22<

9、;/p><p>  七.參考文獻***********************************************************22</p><p>  八.附源程序***********************************************************22</p><p><b>  課程設計的內容<

10、/b></p><p>  圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖書信息管理系統(tǒng),使之能提供以下功能: 系統(tǒng)以菜單方式工作 圖書信息錄入功能(圖書信息用文件保存) 圖書信息瀏覽功能 圖書信息查詢功能(按書名查詢,按作者名查詢,按登錄號查詢) 圖書信息的刪除與修改(可選項)</p><p>  擴展功能

11、(管理員登錄,新用戶注冊,并且每個用戶都有獨立的文件來保存他的信息,用戶之間通過密碼識別,互不影響)</p><p><b>  需求分析</b></p><p>  根據題目要求,應把圖書信息用結構體形式輸入,再存放入文件中儲存。所以應該提供一個結構體和文件的輸入輸出操作。在程序中需要實現圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應的模塊來實現

12、;另外還需提供鍵盤式選擇菜單實現功能,在運行時達到所要目的。還有,應該有管理員登錄用戶密碼識別的模塊和新用戶注冊的模塊,以實現多用戶同時使用該系統(tǒng)的目的,而通過用戶名來保存相應的信息,用戶之間互不干擾。</p><p><b>  概要設計</b></p><p>  3.1 軟件運行與開發(fā)平臺</p><p>  Visual C++ 簡介&

13、lt;/p><p>  這個系統(tǒng)前臺所用的開發(fā)工具是Visual C++ 6.0,它是Microsoft 公司開發(fā)的基于C/C++的集成開發(fā)工具,是Visual Studio中功能最為強大,代碼效率最高的開發(fā)工具.</p><p>  Visual C++ 6.0跟以前的版本相比,它的編譯器,調試器,連接器,編輯器,資源編輯器都有所加強,在編輯器中還提供了自動語句生成功能,編輯器會像Visua

14、l Basic那樣自動提示函數的參數,對象成員.另外, Visual C++ 6.0還提供了許多的向導.在MFC中新增了一些類,提供了更加強大的數據訪問功能.</p><p>  程序員可以利用Visual C++ 6.0以基于Windows API的C編程方式或基于MFC的C++編程方式,也可混合編程,使工作效率相對提高,開發(fā)工作量減少,源代碼效率高.從面使Visual C++ 6.0成為目前開發(fā)Windows

15、應用程序最好、最高效的開發(fā)工具之一。同時在數據庫系統(tǒng)開發(fā)方面也有很大的優(yōu)勢.</p><p><b>  3.2 數據結構</b></p><p>  本系統(tǒng)定義了兩個結構體變量,分別用來儲存管理員信息與圖書信息。各模塊的數據結構如下:</p><p>  3.2.1 菜單選擇模塊:(</p><p><b&g

16、t;  給出信息提示;</b></p><p>  繪制菜單(包含輸入、顯示、查詢、修改、刪除、退出、排序);</p><p>  提示菜單選擇并讀入到變量;</p><p>  根據讀入變量的值調用不同的模塊函數;)</p><p>  3.2.2    信息輸入模塊:(</p>&l

17、t;p><b>  打開職工信息文件;</b></p><p><b>  發(fā)出輸入提示信息;</b></p><p><b>  輸入職工信息;</b></p><p><b>  提示是否繼續(xù)輸入;</b></p><p><b>  

18、讀入到變量;</b></p><p>  根據讀入變量的值進入菜單或輸入函數模塊;)</p><p>  3.2.3   信息輸出模塊:(</p><p>  輸出所有圖書的所有信息。)</p><p>  3.2.4   信息查詢模塊:(</p><p>  調用s

19、witch函數;</p><p><b>  給出信息提示;</b></p><p>  提示菜單選擇并讀入到變量;</p><p>  根據讀入變量的值進入不同的case;</p><p>  Case 1 給出信息提示;</p><p>  提示菜單選擇并讀入到變量;</p>

20、<p>  Strcmp函數將保存的信息與變量比較,如有相同,就輸出該圖書的所有信息;否則,提示出錯。</p><p>  Case 2 給出信息提示;</p><p>  提示菜單選擇并讀入到變量;</p><p>  Strcmp函數將保存的信息與變量比較,如有相同,就輸出該圖書的所有信息;否則,提示出錯。)</p><p>

21、;  3.2.5 信息修改模塊:(</p><p><b>  給出信息提示;</b></p><p>  提示菜單選擇并讀入到變量;</p><p>  Strcmp函數將保存的信息與變量比較,如有相同,就輸出該圖書的所有信息,并提示輸入新的圖書信息;否則,提示出錯。)</p><p>  3.2.6信息刪除模塊:(&

22、lt;/p><p><b>  給出信息提示;</b></p><p>  提示菜單選擇并讀入到變量;</p><p>  Strcmp函數將保存的信息與變量比較,如有相同,就輸出該圖書的所有信息,并刪除該圖書的圖書信息;否則,提示出錯。)</p><p>  3.2.7 文件保存模塊(</p><p&g

23、t;  看文件能不能讀;否則提示出錯。</p><p>  看文件的長度符不符合要求;否則提示出錯。</p><p><b>  保存文件)</b></p><p><b>  3.3 系統(tǒng)結構圖</b></p><p><b>  如圖3-3</b></p>&

24、lt;p><b>  圖3-3</b></p><p><b>  詳細設計</b></p><p>  4.1 頭文件,變量定義,函數</p><p>  #include <stdio.h></p><p>  #include <string.h></p&g

25、t;<p>  #include <stdlib.h></p><p>  #define N 10</p><p>  char administrator[20]; /********管理員名字**********/</p><p>  struct manage </p><p>  {char m

26、anage_name[20];</p><p>  char password[20];</p><p><b>  };</b></p><p>  struct library</p><p><b>  {</b></p><p>  int num;

27、 /********登錄號**********/</p><p>  char book_name[30]; /********書名************/</p><p>  char writer[30]; /********作者************/</p><p>  char sort_num[6];

28、 /********分類號**********/</p><p>  char pub_company[30]; /********出版單位********/</p><p>  char pub_time[30]; /********出版時間********/</p><p>  float price; /*****

29、***價格************/</p><p><b>  };</b></p><p>  typedef struct library LIB;</p><p>  LIB lib[N];</p><p>  FILE *fp; </p&

30、gt;<p>  int all=0;</p><p>  void menu();/*菜單函數*/ </p><p>  void enter(); /*輸入模塊*/ </p><p>  void browse();/*瀏覽函數*/</p><p>  void search();/*查詢

31、函數*/</p><p>  void del(int y);/*刪除函數*/</p><p>  void modify(int x);/*修改函數*/</p><p>  void printf_back(); /*一個任務結束時選擇瀏覽還是返回函數***/</p><p>  void wr_search(); /*****

32、***按圖書作者查詢函數************/</p><p>  void bn_search(); /********按圖書名查詢函數**************/</p><p>  void id_search(); /********按圖書登錄號查詢函數**********/</p><p>  void index(); /

33、********顯示登錄界面函數**************/</p><p>  void login(); /********管理員進入函數****************/</p><p>  void byebye(); /********離開界面函數******************/</p><p>  void adm_vi

34、ew(); /********輸入登錄帳號密碼界面函數******/</p><p>  void new_adm_view(); /********新用戶注冊界面函數************/</p><p>  4.2管理員登錄,新用戶注冊模塊的算法設計</p><p>  4.2.1用戶來到圖書信息管理系統(tǒng)頁面</p><p>

35、  /*************************登錄離開模塊*******************************/</p><p>  void index() </p><p><b>  { </b></p><p>  char input;</p><p>  printf("\n\

36、n\t\t\t*****************************\n");</p><p>  printf("\t\t\t 圖書信息管理系統(tǒng)\n");</p><p>  printf("\t\t\t*****************************\n\n\n");</p><p>  pr

37、intf(" --------------------------------------------------------------------------\n");</p><p>  printf("\t<按任意鍵進入>\n\t");</p><p>  input=getchar(); </p><p

38、><b>  }</b></p><p>  void login()</p><p><b>  {</b></p><p>  int input;</p><p>  char input_1; </p><p><b>  do </b>

39、;</p><p>  { printf("\t1.管理員進入\n"); </p><p>  printf("\t2.新用戶注冊\n");</p><p>  printf("\t3.退出本系統(tǒng)\n\n\n");</p><p>  printf("\t請選擇服務類別:&

40、quot;);</p><p>  scanf("%d",&input);</p><p>  switch(input)</p><p><b>  {</b></p><p><b>  case 1:{</b></p><p>  adm_v

41、iew();break; /********管理員進入界面函數************/</p><p><b>  }</b></p><p><b>  case 2:{</b></p><p>  new_adm_view();break;/********新用戶注冊界面函數************/</p&g

42、t;<p><b>  }</b></p><p><b>  case 3:{</b></p><p>  byebye(); break;/********離開界面函數************/</p><p><b>  } </b></p><p>&l

43、t;b>  default: </b></p><p><b>  {</b></p><p>  printf("\n\t輸入出錯!請重新選擇~\n");</p><p>  printf("\n\t按任意鍵返回選擇頁面~\n\t");</p><p>  in

44、put_1=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  while(input!=1&&input!=2&&input!=3);

45、</p><p><b>  }</b></p><p>  void byebye() </p><p><b>  {</b></p><p>  printf("\n\n\n\t\t*感謝您的使用*\n\n\t\t");</p><p>  pr

46、intf("按任意鍵退出本系統(tǒng)\n\t\t");</p><p>  getchar();</p><p>  exit(0); </p><p><b>  }</b></p><p>  4.2.2管理員進入</p><p><b>  圖4-2-2</b

47、></p><p>  4.2.3 新用戶注冊</p><p><b>  圖4-2-3</b></p><p>  4.3菜單模塊的算法設計</p><p><b>  開始</b></p><p><b>  圖4-3</b></p>

48、;<p>  首先,運行程序,進入菜單,然后選擇操作(運用swith語句),調用各子函數。在返回操作中運用while語句進行控制返回菜單。</p><p>  4.4輸入模塊算法設計</p><p><b>  圖4-4</b></p><p>  4.5瀏覽模塊算法設計</p><p><b>

49、  圖4-5</b></p><p>  void browse () 首先,輸出所有圖書的信息,并輸出圖書記錄數,然后調用輔助函數進行菜單選擇,操作完成后返回主菜單。</p><p>  4.6查詢模塊算法設計</p><p><b>  圖4-6</b></p><p>  void search()選擇

50、查詢方式 ,1按圖書登錄號查詢,2按作者查詢,3 按圖書名查詢 然后定位,再調用輸出函數;</p><p>  4.7刪除模塊算法設計</p><p>  /*******************刪除模塊**************************/</p><p>  void del(int y)</p><p><b&g

51、t;  { </b></p><p>  char input,ad1[20],ad2[20],ad3[20],ad4[20];</p><p><b>  FILE *fp;</b></p><p>  int inp,i=0,j;</p><p>  LIB book_taxis[20];</p

52、><p>  strcpy(ad1,administrator);</p><p>  strcpy(ad2,administrator);</p><p>  strcpy(ad3,administrator);</p><p>  strcpy(ad4,administrator);</p><p>  if(y==N

53、+1)</p><p><b>  search();</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  do{</b></p><p>  printf(&q

54、uot;\n\n\n\t注意:您確定要刪除該記錄嗎?\n");</p><p>  printf("\n\t1).是\t2).否\n");</p><p>  printf("\n\t請輸入:");</p><p>  scanf("%d",&inp);</p><p&

55、gt;  if(inp!=1&&inp!=2)</p><p><b>  {</b></p><p>  printf("\n\t對不起,沒有該項服務~");</p><p>  printf("\t按任意鍵重新選擇\n\t");</p><p>  input=

56、getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p>  while (inp!=1&&inp!=2);</p><p>  if (inp==2)</p><p><b>  sear

57、ch();</b></p><p>  if (inp==1)</p><p><b>  {</b></p><p>  if ((fp=fopen(strcat(ad1,".c"),"r"))!=NULL)</p><p><b>  {</b>

58、;</p><p><b>  do</b></p><p><b>  {</b></p><p>  fread(&book_taxis[i],sizeof(struct library),1,fp);</p><p><b>  i=i+1;</b></p&

59、gt;<p><b>  }</b></p><p>  while(!feof(fp));</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  if (i>2) </p><p><b>

60、  {</b></p><p>  fp=fopen(strcat(ad2,".c"),"w"); </p><p>  for (j=0;j<y;j++)</p><p>  fwrite(&book_taxis[j],sizeof(struct library),1,fp);</p>

61、<p>  fclose(fp);</p><p>  fp=fopen(strcat(ad3,".c"),"a");</p><p>  for (j=y+1;j<i-1;j++)</p><p>  fwrite(&book_taxis[j],sizeof(struct library),1,f

62、p);</p><p>  fclose(fp);</p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  remove(strcat(ad3,&qu

63、ot;.c"));</p><p><b>  }</b></p><p>  printf("\n\n\t記錄已刪除!\n\n\t按任意鍵返回\n\t");</p><p>  input=getchar();</p><p>  printf_back(); </p>

64、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.8修改模塊算法設計</p><p>  /**************************修改模塊**************

65、********/</p><p>  void modify(int x)</p><p><b>  {</b></p><p>  int inp,i=0,j;</p><p>  FILE *fp,*fp1;</p><p>  char input,ad1[20],ad2[20];<

66、;/p><p>  LIB books,book_taxis[20];</p><p>  strcpy(ad1,administrator);</p><p>  strcpy(ad2,administrator);</p><p>  if(x==N+1)</p><p><b>  search();<

67、;/b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\

68、n\n\n\t注意:您確定要修改該記錄嗎?\n");</p><p>  printf("\n\t1.是\t2.否\n");</p><p>  printf("\n\t請輸入:");</p><p>  scanf("%d",&inp);</p><p>  if

69、 (inp!=1&&inp!=2)</p><p><b>  {</b></p><p>  printf("\n\t對不起~沒有這項服務~\n");</p><p>  printf("\t按任意鍵重新選擇\n\t");</p><p>  input=getc

70、har();</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(inp!=1&&inp!=2);</p><p><b>  if(i==2)</b></p><p><

71、b>  search();</b></p><p>  if (inp==1)</p><p><b>  {</b></p><p>  printf("\n\n\n\t---請輸入圖書信息---\n\n");</p><p>  printf("\t登錄號:"

72、);</p><p>  scanf("%d",&books.num);</p><p>  printf("\n\t書名:");</p><p>  scanf("%s",books.book_name);</p><p>  printf("\n\t作者名:&q

73、uot;);</p><p>  scanf("%s",books.writer);</p><p>  printf("\n\t分類號:");</p><p>  scanf("%s",books.sort_num);</p><p>  printf("\n\t出版單位

74、:");</p><p>  scanf("%s",books.pub_company);</p><p>  printf("\n\t出版時間:");</p><p>  scanf("%s",books.pub_time);</p><p>  printf("

75、;\n\t價格:");</p><p>  scanf("%f",&books.price);</p><p>  if ((fp1=fopen(strcat(ad1,".c"),"r"))!=NULL) </p><p><b>  { </b></p&

76、gt;<p><b>  do</b></p><p><b>  {</b></p><p>  fread(&book_taxis[i],sizeof(struct library),1,fp1); </p><p><b>  i=i+1;</b></p>

77、<p><b>  } </b></p><p>  while(!feof(fp1));</p><p>  fclose(fp1);</p><p>  for (j=0;j<x;j++)</p><p>  if (books.num==book_taxis[j].num) </p>

78、<p><b>  {</b></p><p>  printf("\n\n\n\t對不起,這個編號已經使用過了~\n");</p><p>  printf("\t按任意鍵返回管理菜單~");</p><p>  printf("0");</p><p&

79、gt;  input=getchar();</p><p>  printf_back(); </p><p><b>  break;</b></p><p><b>  }</b></p><p>  for (j=x+1;j<i-2;j++) </p><p

80、>  if (books.num==book_taxis[j].num)</p><p><b>  {</b></p><p>  printf("\n\n\n\t對不起,這個編號已經使用過了~\n");</p><p>  printf("1");</p><p>  p

81、rintf("\t按任意鍵返回管理菜單~");</p><p>  input=getchar();</p><p>  printf_back(); </p><p><b>  break;</b></p><p><b>  }</b></p><p&

82、gt;<b>  }</b></p><p>  book_taxis[x]=books; </p><p>  fp=fopen(strcat(ad2,".c"),"w");</p><p>  for (j=0;j<i-1;j++) </p><p>  

83、fwrite(&book_taxis[j],sizeof(struct library),1,fp);</p><p>  fclose(fp);</p><p>  printf("\n\n\t信息修改完成!按任意鍵返回");</p><p>  input=getchar();</p><p>  printf

84、_back(); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  五、測試、結果進行分析</p><p><b>  5.1.數據分析</b

85、></p><p>  5.1.1 實現程序:首先進入如下界面:</p><p><b>  1.圖書信息錄入</b></p><p><b>  2.瀏覽全部</b></p><p><b>  3.查詢</b></p><p><b>

86、;  4.刪除數據</b></p><p><b>  5.修改數據</b></p><p><b>  6.退出</b></p><p>  5.1.2輸入“1”,后按“num登陸號”, book_name書名,writer作者名,sort_num分類號,出版社pub_conpany,出版時間pub_time

87、,價錢price順序輸入兩組數據:</p><p>  “1,we,er,1,as,1234,34”</p><p>  “2,ew,re,2,sa,4321,43”</p><p>  5.1.3.輸入“2”輸出數據:</p><p>  “1,we,er,1,as,1234,34”</p><p>  “2,ew,

88、re,2,sa,4321,43”</p><p>  5.1.4.輸入“3”查找,“請選擇按書名或作者名或登錄號查詢:</p><p><b>  1:登錄號</b></p><p><b>  2.作者名</b></p><p><b>  3.書名 </b></p&g

89、t;<p>  輸入“1“或“2”或“3”分別查詢。</p><p>  輸入“3“和“we“,輸出“1,we,er,1,as,1234,34”;輸入2和“re“,輸出“2,ew,re,2,sa,4321,43”,輸入“1”和“1”,輸出“1,we,er,1,as,1234,34”; 符合要求</p><p>  5.1.5 輸入”4”或“5“進行修改或刪除。</p&

90、gt;<p>  輸入修改的書名“we”顯示“1,we,er,1,as,1234,34”及“please input xiugai's the informations”,后輸入新信息。</p><p>  5.1.6輸入6退出。</p><p><b>  5.2.測試截圖</b></p><p><b>  

91、登錄界面</b></p><p><b>  圖5-1</b></p><p><b>  菜單界面</b></p><p><b>  圖5-2</b></p><p><b>  輸入信息界面</b></p><p>

92、;<b>  圖5-3</b></p><p><b>  瀏覽界面</b></p><p><b>  圖5-4</b></p><p><b>  查詢界面</b></p><p><b>  圖5-5</b></p>

93、<p><b>  查詢結果界面</b></p><p><b>  圖5-6</b></p><p><b>  刪除界面</b></p><p><b>  圖5-7</b></p><p><b>  刪除成功界面</b

94、></p><p><b>  圖5-8</b></p><p><b>  修改界面</b></p><p><b>  圖5-9</b></p><p><b>  退出界面</b></p><p><b>  

95、圖5-10</b></p><p><b>  總結</b></p><p>  這次課程設計讓我掌握了許多的有用知識。首先通過不斷地學習和鍛煉更加熟練地掌握應用軟件Microsoft Visual C++ 6.0 了。設計正確及合適的程序對于我們初學者來說是很大的難題,出現一丁點兒錯誤就得非很大的努力去修改,正式者一步步一點點的努力讓我對C語言游樂更深的

96、認識。同時我掌握了解決問題的方法,這無論是對以后的學習、生活都有無比重要的價值。</p><p>  在設計中,每個同學都會遇到一些困難,或多或少,這些困難常常讓我心情煩躁,比如不能清晰的建立設計模塊,不會修改出現的錯誤等等,然后我向同學尋求幫助,向他們學習,最終通過自己努力建立了模塊。不可避免地程序中肯定依然存在者某些問題,我希望在以后的學習和應用中不斷提高自己的能力,攻克遇到的困難。</p>&

97、lt;p>  通過本次課程設計,自己C語言編程的能力有了提高,特別是在文件、指針、數組、函數和結構體方面有了很大提高,另外還學習了課本沒有講到的知識,學會了使用模塊化編程的簡單方法,另外在對話框的編程要求美觀、方面也有了體會。</p><p>  循環(huán)是C語言的重要方法,也是本程序的靈魂,它在本程序中既有“穿針引線”的作用,也起到了對數據進行分析、存貯、讀取等重要的作用,本程序在使用循環(huán)過程中對循環(huán)進行了多

98、方法的應用也是一個“亮點”,它使程序變得結構合理,通俗易懂,也降低了程序的難度。以后要對這種方法進行深刻的體會。</p><p>  數組在程序中有著很重要的作用,對數據的貯存、輸入、讀取起著很重要的作用,本程序幾乎所有數據都以數組進行輸入、貯存、讀取方便了對數據的處理和輸入,數組的的使用在本程序中有很大的好處。</p><p>  函數是實現模塊化編程的基礎,它使程序變得方面易懂,對修改

99、起了很大作用,降低了編程的難度,一個函數就是一個功能,它使各個功能之間有了一定的獨立性,但也有了一定的聯系性,一個函數的錯誤,不會導致整個程序的失敗(主函數除外),對函數的良好應用時在本程序中又以深刻的體會,有了很大提高。</p><p>  結構體的使用,為本程序提供了很大方便,也提高了程序的可讀性,結構數組方便了對數據的管理。</p><p>  文件的讀取與存貯使數據可以保存下來,這

100、也是在C語言的學習過程中沒有進行教學的內容,在開始時遇到了不小的困難,但前期的準備工作做的還好,最終克服了。</p><p>  另外、感覺到在做C語言作業(yè)時編的程序是 那樣的簡短(都不足1k)、兒現在自己編寫的程序變大了,需要在編程方面進一步提高,同時提高了自己對編程的興趣,使自己對編程有了更深的理解,體會到編程的樂趣。</p><p>  最后,出于興趣,自己給這個程序加了多用戶登錄功

101、能,每個用戶獨立擁有一個文件夾保存各自的信息,通過帳號密碼登錄,互不干擾,雖然期間遇到了不少困難,但最終還是把它做了出來,還是挺高興的。</p><p><b>  參考文獻</b></p><p>  [1] ,譚浩強,C程序設計,清華大學出版社,2007</p><p>  [1] ,張冬梅等,C語言課程設計與學習指導,中國鐵道出版社,20

102、08</p><p><b>  附源程序</b></p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #include <stdlib.h></p><p>  #defin

103、e N 10</p><p>  char administrator[20]; /********管理員名字**********/</p><p>  struct manage </p><p>  {char manage_name[20];</p><p>  char password[20];</p>&

104、lt;p><b>  };</b></p><p>  struct library</p><p><b>  {</b></p><p>  int num; /********登錄號**********/</p><p>  char book_name[

105、30]; /********書名************/</p><p>  char writer[30]; /********作者************/</p><p>  char sort_num[6]; /********分類號**********/</p><p>  char pub_company[30]

106、; /********出版單位********/</p><p>  char pub_time[30]; /********出版時間********/</p><p>  float price; /********價格************/</p><p><b>  };</b></p&

107、gt;<p>  typedef struct library LIB;</p><p>  LIB lib[N];</p><p>  FILE *fp; </p><p>  int all=0;</p><p>  void menu();/*菜單函數

108、*/ </p><p>  void enter(); /*輸入模塊*/ </p><p>  void browse();/*瀏覽函數*/</p><p>  void search();/*查詢函數*/</p><p>  void del(int y);/*刪除函數*/</p><p

109、>  void modify(int x);/*修改函數*/</p><p>  void printf_back(); /*一個任務結束時選擇瀏覽還是返回函數***/</p><p>  void wr_search(); /********按圖書作者查詢函數************/</p><p>  void bn_search();

110、/********按圖書名查詢函數**************/</p><p>  void id_search(); /********按圖書登錄號查詢函數**********/</p><p>  void index(); /********顯示登錄界面函數**************/</p><p>  void login();

111、 /********管理員進入函數****************/</p><p>  void byebye(); /********離開界面函數******************/</p><p>  void adm_view(); /********輸入登錄帳號密碼界面函數******/</p><p>  void new

112、_adm_view(); /********新用戶注冊界面函數************/</p><p>  /************************************登錄離開模塊**************************************/</p><p>  void index() </p><p><b>  {

113、</b></p><p>  char input;</p><p>  printf("\n\n\t\t\t*****************************\n");</p><p>  printf("\t\t\t 圖書信息管理系統(tǒng)\n");</p><p>  prin

114、tf("\t\t\t*****************************\n\n\n");</p><p>  printf(" ------------------------------------------------------------------------------\n");</p><p>  printf("\

115、t<按任意鍵進入>\n\t");</p><p>  input=getchar(); </p><p><b>  }</b></p><p>  void login()</p><p><b>  {</b></p><p>  int in

116、put;</p><p>  char input_1; </p><p><b>  do </b></p><p>  { printf("\t1.管理員進入\n"); </p><p>  printf("\t2.新用戶注冊\n");</p><p&g

117、t;  printf("\t3.退出本系統(tǒng)\n\n\n");</p><p>  printf("\t請選擇服務類別:");</p><p>  scanf("%d",&input);</p><p>  switch(input)</p><p><b>  {&

118、lt;/b></p><p><b>  case 1:{</b></p><p>  adm_view();break; /********管理員進入界面函數************/</p><p><b>  }</b></p><p><b>  case 2:{</b

119、></p><p>  new_adm_view();break;/********新用戶注冊界面函數************/</p><p><b>  }</b></p><p><b>  case 3:{</b></p><p>  byebye(); break;/*******

120、*離開界面函數************/</p><p><b>  } </b></p><p><b>  default: </b></p><p><b>  {</b></p><p>  printf("\n\t輸入出錯!請重新選擇~\n");&

121、lt;/p><p>  printf("\n\t按任意鍵返回選擇頁面~\n\t");</p><p>  input_1=getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

122、 }</b></p><p>  while(input!=1&&input!=2&&input!=3);</p><p><b>  }</b></p><p>  void byebye() </p><p><b>  {</b></p&g

123、t;<p>  printf("\n\n\n\t\t*感謝您的使用*\n\n\t\t");</p><p>  printf("按任意鍵退出本系統(tǒng)\n\t\t");</p><p>  getchar();</p><p>  exit(0); </p><p><b>  }

124、</b></p><p>  void adm_view() /***********管理員進入***********/</p><p><b>  {</b></p><p>  char password[20];char ad[20];</p><p>  int k,w,i;</p>

125、<p><b>  FILE *fp;</b></p><p>  struct manage pswd;</p><p><b>  do </b></p><p><b>  {</b></p><p>  printf("\n\n\t請輸入管理員帳號:

126、");</p><p>  scanf("%s",administrator);</p><p>  strcpy(ad,administrator);</p><p>  fp=fopen(strcat(ad,".txt"),"r");</p><p>  printf(

127、"\n\n\t請輸入管理員密碼:");</p><p>  /************密碼輸入,回顯星號的程序*******************/</p><p>  for (i=0; i<30; i++)</p><p><b>  {</b></p><p>  password[i]

128、 = getch(); /*逐次賦值,但不回顯*/</p><p>  printf("*"); /*以星號代替字符個數*/</p><p>  if (password[i] == '\x0d') /*回車則終止循環(huán)*/</p><p><b>  {</b><

129、;/p><p>  password[i] ='\0';</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /************密碼輸入

130、,回顯星號的程序*******************/ </p><p>  fread(&pswd,sizeof(struct manage),1,fp);</p><p>  fclose(fp);</p><p>  w=strcmp(pswd.manage_name,administrator); </p><p>  k=

131、strcmp(pswd.password,password);</p><p><b>  }</b></p><p>  while (w!=0||k!=0);</p><p>  menu(); </p><p><b>  }</b></p><p>  voi

132、d new_adm_view() /*******新用戶注冊********/ </p><p><b>  { </b></p><p>  char password[20];char ad[20];</p><p>  int k,w,i;</p><p><b>  FILE *fp;</b

133、></p><p>  struct manage Manage;</p><p>  printf("\n\n\t請輸入管理員帳號:");</p><p>  scanf("%s",administrator);</p><p>  strcpy(ad,administrator);</p

134、><p>  fp=fopen(strcat(ad,".txt"),"wb");</p><p>  printf("\n\n\t請輸入管理員密碼:");</p><p>  /************密碼輸入,回顯星號的程序*******************/</p><p>  

135、for (i=0; i<30; i++)</p><p><b>  {</b></p><p>  password[i] = getch(); /*逐次賦值,但不回顯*/</p><p>  printf("*"); /*以星號代替字符個數*/</p><p>

136、  if (password[i] == '\x0d') /*回車則終止循環(huán)*/</p><p><b>  {</b></p><p>  password[i] ='\0';</p><p><b>  break;</b></p><p><b> 

137、 }</b></p><p><b>  }</b></p><p>  /************密碼輸入,回顯星號的程序*******************/</p><p>  strcpy(Manage.manage_name,administrator);/*將帳號密碼暫存入結構體變量Manage中*/</p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論