2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(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></p><p><b>  圖書借閱管理系統(tǒng)</b></p><p><b>  班 級(jí): </b></p><p>  學(xué) 號(hào):121407124</p><p><b>  姓 名: <

2、/b></p><p><b>  指導(dǎo)老師: </b></p><p><b>  成 績:</b></p><p><b>  任務(wù)描述</b></p><p>  課題是圖書借閱管理系統(tǒng)。采用結(jié)構(gòu)體數(shù)組,用于院級(jí)資料室管理,實(shí)現(xiàn)簡單的圖書借閱管理,可以進(jìn)行借書

3、,還書,查詢,掛賬,借出圖書查詢等操作。具體分為6個(gè)模塊:</p><p><b>  圖書信息錄入。</b></p><p><b>  借閱信息錄入。</b></p><p><b>  還書記錄。</b></p><p><b>  掛賬處理。</b>

4、;</p><p>  信息查詢:分為按書名查詢,按作者查詢,按庫存量查詢和按被借閱信息查詢。</p><p>  借閱統(tǒng)計(jì):分為按教師統(tǒng)計(jì)和按照部門統(tǒng)計(jì)。</p><p><b>  系統(tǒng)概要設(shè)計(jì)</b></p><p><b>  1.系統(tǒng)模塊化設(shè)計(jì)</b></p><p&g

5、t;  查找:按照?qǐng)D書名稱,作者,庫存和被借閱信息查詢。</p><p>  借閱:輸入所找的圖書,輸入書名和編號(hào),若有庫存,可以借閱,若沒有庫存,則無法借閱。</p><p>  還書:輸入圖書信息,進(jìn)行還書。</p><p>  借閱統(tǒng)計(jì):按照借書人的姓名和單位,分別查找借閱信息。</p><p>  掛賬處理:輸入當(dāng)天日期,可以查找出在

6、當(dāng)天,借閱圖書超過90天的借閱人姓名。</p><p><b>  系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p><b>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  struct list</p><p><b>  {</b></p><p><b&g

7、t;  long num;</b></p><p>  char name[20];</p><p>  char auther[20];</p><p>  char publisher[20];</p><p>  int quantity;</p><p>  }books[N];</p>

8、<p>  struct list books[N]用來存放新到的圖書信息,包括編號(hào)、書名、作者、出版社和庫存。 </p><p>  struct time</p><p><b>  {</b></p><p><b>  int year;</b></p><p>  int m

9、onth;</p><p><b>  int day;</b></p><p><b>  };</b></p><p>  struct time 結(jié)構(gòu)體用來存放年月日信息</p><p>  struct out</p><p><b>  {</b&g

10、t;</p><p>  long numb;</p><p>  char name[20];</p><p>  char publisher[20];</p><p>  char teacher[20];</p><p>  char subject[20];</p><p>  flo

11、at price;</p><p>  struct time borrow;</p><p>  struct time returnb;</p><p>  }outlist[N];</p><p>  struct out outside[N]結(jié)構(gòu)體數(shù)組用來存放借出去的圖書信息,包括編號(hào),書名、出版社、借閱老師、老師所屬的部門、借閱日期

12、和還書日期。其中,還書日期在還書的時(shí)候補(bǔ)齊。</p><p><b>  struct b</b></p><p><b>  {</b></p><p>  char name[20];</p><p>  char book[10][20];</p><p><b&

13、gt;  }teacher;</b></p><p>  struct b teacher用來保存借閱老師的姓名和所屬部門,用與查找。</p><p><b>  模塊接口設(shè)計(jì)</b></p><p>  主函數(shù)入口進(jìn)入,通過開關(guān)選擇1到6個(gè)模塊,7為退出。</p><p>  模塊1:入口void sear

14、ch();</p><p>  在這個(gè)函數(shù)里,通過開關(guān)選擇1到4類選擇,5為退出,退出后返回主函數(shù)。</p><p>  模塊2:入口void borrow();</p><p>  在這個(gè)函數(shù)里,若有庫存,輸入要借閱的圖書信息,沒有庫存無法借閱,然后返回主函數(shù)。</p><p>  模塊3:入口void returnb();</p&g

15、t;<p>  在這個(gè)函數(shù)里,輸入所還的圖書信息和還書日期,返回主函數(shù)。</p><p>  模塊4:入口void statistics();</p><p>  在這個(gè)函數(shù)里,通過開關(guān)選擇1到2類搜索,3為退出,退出后返回主函數(shù)。</p><p>  模塊5:入口void all();</p><p>  在這個(gè)函數(shù)里,先輸入

16、新書種類的數(shù)量,然后按次序,分別輸入圖書的編號(hào)、書名、作者、出版社和庫存。輸入結(jié)束,按任意鍵回到主函數(shù)。</p><p>  模塊六:入口void unpaid();</p><p>  在這個(gè)函數(shù)里,輸入當(dāng)天日期,顯示出當(dāng)天借閱超過90天的借閱人姓名,按任意鍵返回。</p><p><b>  3流程圖</b></p><

17、p><b>  主函數(shù)</b></p><p><b>  查找</b></p><p><b>  借閱</b></p><p><b>  還書</b></p><p><b>  借閱統(tǒng)計(jì)</b></p>&

18、lt;p><b>  圖書信息錄入</b></p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  輸入新書</b></p><p><b>  借書</b></p><p><b>  借書未成功</b>&l

19、t;/p><p><b>  還書</b></p><p><b>  教師借書信息</b></p><p><b>  部門借書信息</b></p><p><b>  掛賬處理</b></p><p><b>  書籍查找

20、</b></p><p><b>  按作者查找</b></p><p><b>  查找已借閱書籍</b></p><p><b>  查找書籍庫存</b></p><p><b>  五.系統(tǒng)調(diào)試</b></p><p&

21、gt;  系統(tǒng)調(diào)試時(shí)遇到很多問題。</p><p>  由于win tc自身的限制,在二維數(shù)組或者復(fù)雜的結(jié)構(gòu)體數(shù)組中,不能直接給float型變量賦值。若要賦值,需要用到第三變量,先賦值給第三變量,然后再將第三變量的值給所需變量。</p><p>  在scanf()函數(shù)中,用%s輸入字符串,在雙引號(hào)外面,用&a[20]和直接用a是不一樣的,在后面的調(diào)試中,用&a[20]將不

22、能正確進(jìn)行字符串的比較。</p><p>  結(jié)構(gòu)體數(shù)組中,字符串可用gets()和scanf(),但是用gets時(shí),會(huì)誤將回車換行當(dāng)做字符,所以改用scanf(),用下劃線區(qū)分字符。</p><p>  在循環(huán)的嵌套時(shí),變量十分容易看錯(cuò),須仔細(xì)校對(duì)。</p><p><b>  六.系統(tǒng)進(jìn)一步擴(kuò)充</b></p><p&g

23、t;  這個(gè)系統(tǒng)最大的缺陷是沒有使用文件,所以每一次打開系統(tǒng),都需要重新把圖書信息等重新輸入一遍,在實(shí)際應(yīng)用中十分麻煩。如果改進(jìn)成用文件操作,每次打開就無需將信息重新輸入。</p><p>  模塊的功能還需增強(qiáng),現(xiàn)有的功能和現(xiàn)實(shí)需要相差很大,所以各模塊的功能還是需要更加全面。</p><p>  系統(tǒng)的界面不夠人性化,操作性能還需進(jìn)一步改進(jìn),可改為中文界面。另外每個(gè)界面還不夠簡潔,需要更

24、合理的清屏操作。</p><p><b>  附錄:</b></p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #include <stdlib.h></p><p>  #

25、include <conio.h></p><p>  #define N 100</p><p>  struct list</p><p><b>  {</b></p><p><b>  long num;</b></p><p>  char name[

26、20];</p><p>  char auther[20];</p><p>  char publisher[20];</p><p>  int quantity;</p><p>  }books[N];</p><p>  struct time</p><p><b>  

27、{</b></p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;</b></p><p><b>  };</b></p><p>  struct o

28、ut</p><p><b>  {</b></p><p>  long numb;</p><p>  char name[20];</p><p>  char publisher[20];</p><p>  char teacher[20];</p><p>  

29、char subject[20];</p><p>  float price;</p><p>  struct time borrow;</p><p>  struct time returnb;</p><p>  }outlist[N];</p><p><b>  struct b</b&g

30、t;</p><p><b>  {</b></p><p>  char name[20];</p><p>  char book[10][20];</p><p><b>  }teacher;</b></p><p>  /*shengming*/</p>

31、<p>  int all();</p><p>  void search();</p><p>  void borrow();</p><p>  void unpaid();</p><p>  void statistics();</p><p>  void returnb();</p&

32、gt;<p>  int menu();</p><p>  int menu2();</p><p>  int menu3();</p><p>  int cal(struct time x);</p><p>  void searchbook();</p><p>  void searchau

33、ther();</p><p>  void searchoutside();</p><p>  void searchquantity();</p><p>  void teacherinfo();</p><p>  void deparinfo();</p><p><b>  int n;<

34、/b></p><p><b>  int q=1;</b></p><p><b>  /*start*/</b></p><p>  int main()</p><p><b>  {</b></p><p>  int choice;<

35、;/p><p>  choice=menu();</p><p>  while (choice!=7) {</p><p>  switch (choice) {</p><p>  case 1:search();break;</p><p>  case 2:borrow();break;</p>&l

36、t;p>  case 3:returnb();break;</p><p>  case 4:statistics();break;</p><p>  case 5:n=all();break;</p><p>  case 6:unpaid();break;</p><p>  default:printf("error.

37、\n");</p><p><b>  }</b></p><p><b>  getch();</b></p><p>  choice=menu();</p><p><b>  }</b></p><p><b>  }<

38、/b></p><p>  int menu()</p><p><b>  {</b></p><p><b>  int x;</b></p><p>  system("cls");</p><p>  printf("*******

39、****************************************\n\n");</p><p>  printf(" library system \n\n");</p><p>  printf("1.search

40、 2.borrow \n\n");</p><p>  printf("3.return 4.statistic\n\n");</p><p>  printf("5.newbooks 6.unpaid \n\n");</p

41、><p>  printf("7.exit\n\n");</p><p>  printf("***********************************************\n\n");</p><p>  printf("make a choice:");</p><p&g

42、t;  scanf("%d",&x);</p><p><b>  return x;</b></p><p><b>  }</b></p><p>  int menu2()</p><p><b>  {</b></p><

43、p><b>  int x;</b></p><p>  system("cls");</p><p>  printf("******************************\n");</p><p>  printf("choose:\n");</p>

44、<p>  printf("1.search for book\n");</p><p>  printf("2.search for auther\n");</p><p>  printf("3.search for books outside\n");</p><p>  printf(&q

45、uot;4.search for quantity;\n");</p><p>  printf("5.exit\n");</p><p>  printf("******************************\n");</p><p>  printf("make a choice:"

46、);</p><p>  scanf("%d",&x);</p><p><b>  return x;</b></p><p><b>  }</b></p><p>  int menu3()</p><p><b>  {</

47、b></p><p><b>  int x;</b></p><p>  system("cls");</p><p>  printf("******************************\n");</p><p>  printf("choose:\

48、n");</p><p>  printf("1.teachers' information:\n");</p><p>  printf("2.department's information:\n");</p><p>  printf("3.exit\n");</p&g

49、t;<p>  printf("******************************\n");</p><p>  printf("make a choice:");</p><p>  scanf("%d",&x);</p><p><b>  return x;&

50、lt;/b></p><p><b>  }</b></p><p><b>  /*5*/</b></p><p><b>  int all()</b></p><p><b>  {</b></p><p>  int

51、i=0,x;</p><p>  printf("number of books:\n");</p><p>  scanf("%d",&x);</p><p>  printf("enter the information:mun,name,auther,publisher,quantity.\n"

52、;);</p><p>  for (i=0; i<x; i++) {</p><p>  scanf("%ld %s %s %s %d",&books[i].num,books[i].name,books[i].auther,books[i].publisher,&books[i].quantity);</p><p>&

53、lt;b>  }</b></p><p><b>  return i;</b></p><p><b>  }</b></p><p><b>  /*2*/</b></p><p>  void borrow()</p><p>&

54、lt;b>  {</b></p><p>  int i = 0;</p><p><b>  long j;</b></p><p><b>  float x;</b></p><p>  char b[20];</p><p>  printf(&qu

55、ot;the num and the name:\n");</p><p>  scanf("%ld %s",&j,b);</p><p>  for(i=0;i<=n;i++){</p><p><b>  {</b></p><p>  if(strcmp(b,books[

56、i].name)==0&&books[i].quantity>0)</p><p>  {printf("record the information:\n");</p><p>  scanf("%ld %s %s %s %s",&outlist[q].numb,outlist[q].name,outlist[q].p

57、ublisher,outlist[q].teacher,outlist[q].subject);</p><p>  printf("price:\n");</p><p>  scanf("%f",&x);</p><p>  outlist[q].price=x;</p><p>  pri

58、ntf("date:\n");</p><p>  scanf("%d %d %d",&outlist[q].borrow.year,&outlist[q].borrow.month,&outlist[q].borrow.day);</p><p>  books[i].quantity--;</p><p

59、><b>  q++;</b></p><p><b>  }</b></p><p>  else if(strcmp(b,books[i].name)==0&&books[i].quantity<1)</p><p>  printf("all borrowed.\n")

60、;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*3*/</b></p><p>  void returnb()</p

61、><p><b>  {</b></p><p><b>  long x;</b></p><p><b>  int i;</b></p><p>  printf("the num of the book you want to return:\n");&

62、lt;/p><p>  scanf("%ld",&x);</p><p>  for (i=0; i<q; i++) {</p><p>  if(x==outlist[i].numb)</p><p><b>  {</b></p><p>  printf(&qu

63、ot;enter the date:\n");</p><p>  scanf("%d %d %d",&outlist[i].returnb.year,&outlist[i].returnb.month,&outlist[i].returnb.day);</p><p><b>  }</b></p>

64、<p><b>  }</b></p><p>  for (i=0; i<n; i++) {</p><p>  if(x==books[i].num)</p><p>  books[i].quantity++;</p><p><b>  }</b></p>&

65、lt;p><b>  }</b></p><p><b>  /*6*/</b></p><p>  void unpaid()</p><p><b>  {</b></p><p>  int cal(struct time x);</p><p&

66、gt;  int i,d,r,s;</p><p>  struct time dd;</p><p>  printf("enter the date:\n");</p><p>  scanf("%d %d %d",&dd.year,&dd.month,&dd.day);</p>&l

67、t;p>  printf("list:\n");</p><p>  for (i=1; i<=q; i++) {</p><p>  if (dd.year>outlist[i].borrow.year) {</p><p>  r=cal(outlist[i].borrow);</p><p>  i

68、f ((outlist[i].borrow.year-2004)%4==0) {</p><p><b>  d=366-r;</b></p><p><b>  } else {</b></p><p><b>  d=365-r;</b></p><p><b>

69、  }</b></p><p>  s=cal(dd);</p><p><b>  d=d+s;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {<

70、/b></p><p>  s=cal(dd);</p><p>  r=cal(outlist[i].borrow);</p><p><b>  d=s-r;</b></p><p><b>  }</b></p><p>  if (d>90&&am

71、p;outlist[i].returnb.day==0) {</p><p>  printf("%s %s\n",outlist[i].subject,outlist[i].teacher);</p><p><b>  }</b></p><p><b>  }</b></p><

72、;p><b>  }</b></p><p>  int cal(struct time x)</p><p><b>  {</b></p><p>  int i,n,m=0;</p><p>  int months[13]={0,31,28,31,30,31,30,31,31,30,3

73、1,30,31};</p><p>  int monthsr[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};</p><p>  if(x.year%400==0||((x.year%4==0)&&(x.year%100!=0)))</p><p><b>  {</b></p&

74、gt;<p>  for (i=1; i<=12; i++) {</p><p>  if (x.month==i) {</p><p>  for (n=1; n<i; n++) {</p><p>  m+=monthsr[n];</p><p><b>  }</b></p>

75、<p><b>  }</b></p><p><b>  }</b></p><p><b>  m+=x.day;</b></p><p><b>  }else{</b></p><p>  for (i=1; i<=12; i++

76、) {</p><p>  if (x.month==i) {</p><p>  for (n=1; n<i; n++) {</p><p>  m+=months[n];</p><p><b>  }</b></p><p><b>  }</b></p&g

77、t;<p><b>  }</b></p><p><b>  m+=x.day;</b></p><p><b>  }</b></p><p><b>  return m;</b></p><p><b>  }</b&

78、gt;</p><p><b>  /*1*/</b></p><p>  void search()</p><p><b>  {</b></p><p><b>  int z;</b></p><p>  z=menu2();</p>

79、<p>  while(z!=5)</p><p><b>  {</b></p><p><b>  switch(z)</b></p><p><b>  {</b></p><p>  case 1:searchbook();break;</p>

80、<p>  case 2:searchauther();break;</p><p>  case 3:searchoutside();break;</p><p>  case 4:searchquantity();break;</p><p>  default:printf("error.\n");</p>&l

81、t;p><b>  }</b></p><p><b>  getch();</b></p><p>  z=menu2();</p><p><b>  }</b></p><p><b>  }</b></p><p> 

82、 void searchbook()</p><p><b>  {</b></p><p>  int i,b=0;</p><p>  char a[20];</p><p>  printf("the book you want:\n");</p><p>  scanf

83、("%s",a);</p><p>  for (i=0; i<n; i++) {</p><p>  if(strcmp(a, books[i].name)==0)</p><p><b>  {</b></p><p>  printf("%ld %s %s %s %d\n&quo

84、t;,books[i].num,books[i].name,books[i].auther,books[i].publisher,books[i].quantity);</p><p><b>  b++;</b></p><p><b>  }</b></p><p><b>  }</b><

85、/p><p>  if (b==0) {</p><p>  printf("no books.\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void searchauther()</p&

86、gt;<p><b>  {</b></p><p>  int i,b=0;</p><p>  char a[20];</p><p>  printf("the auther you want to search:\n");</p><p>  scanf("%s&quo

87、t;,a);</p><p>  for (i=0; i<n; i++) {</p><p>  if(strcmp(a, books[i].auther)==0)</p><p><b>  {</b></p><p>  printf("%ld %s\n",books[i].num,book

88、s[i].name);</p><p><b>  b++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (b==0) {</p><p>  printf("no book

89、s.\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void searchoutside()</p><p><b>  {</b></p><p>  int i,b=0;<

90、;/p><p>  printf("the books outside:\n");</p><p>  for (i=1; i<=q; i++) {</p><p>  if(outlist[i].returnb.day==0)</p><p><b>  {</b></p><

91、p>  printf("%s %s has been borrowed.\n",outlist[i].subject,outlist[i].teacher);</p><p><b>  b++;</b></p><p><b>  }</b></p><p><b>  }</b

92、></p><p>  if (b==0) {</p><p>  printf("no books.\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void searchquantit

93、y()</p><p><b>  {</b></p><p>  int i,b=0;</p><p>  char a[20];</p><p>  printf("the quantity you want to know:\n");</p><p>  scanf(&q

94、uot;%s",a);</p><p>  for (i=0; i<n; i++) {</p><p>  if (strcmp(a, books[i].name)==0) {</p><p>  printf("the quantity of this book:%d",books[i].quantity);</p>

95、<p><b>  b++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (b==0) {</p><p>  printf("no books been found.\n"

96、);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*4*/</b></p><p>  void statistics()</p><p><b>  {</b>&l

97、t;/p><p><b>  int g;</b></p><p>  g=menu3();</p><p>  while(g!=3)</p><p><b>  {</b></p><p><b>  switch(g)</b></p>&

98、lt;p><b>  {</b></p><p>  case 1:teacherinfo();break;</p><p>  case 2:deparinfo();break;</p><p>  default:printf("error.\n");</p><p><b>  

99、}</b></p><p><b>  getch();</b></p><p>  g=menu3();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void teacherinfo(

100、)</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  char tea[20];</p><p>  printf("enter the teacher's name:\n");</p><p>  scanf(&qu

101、ot;%s",tea);</p><p>  for (i=1; i<=q; i++) {</p><p>  if(strcmp(tea, outlist[i].teacher)==0)</p><p><b>  {</b></p><p>  printf("%s ",outl

102、ist[i].name);</p><p>  printf("\n");</p><p><b>  j++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (j=

103、=0) {</p><p>  printf("no results\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void deparinfo()</p><p><b>  {&

104、lt;/b></p><p>  int i,j=0;</p><p>  char depart[20];</p><p>  printf("enter the dapartment you want to search:\n");</p><p>  scanf("%s",depart);&

105、lt;/p><p>  for (i=1; i<=q; i++) {</p><p>  if (strcmp(depart, outlist[i].subject)==0) {</p><p>  printf("%s ",outlist[i].teacher);</p><p><b>  j++;<

106、/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(j==0)</b></p><p>  printf("no results.\n");</p><p>

溫馨提示

  • 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)論