版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計</b></p><p><b> 圖書借閱管理系統(tǒng)</b></p><p><b> 班 級: </b></p><p> 學(xué) 號: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ù)組,用于院級資料室管理,實現(xiàn)簡單的圖書借閱管理,可以進行借書
3、,還書,查詢,掛賬,借出圖書查詢等操作。具體分為6個模塊:</p><p><b> 圖書信息錄入。</b></p><p><b> 借閱信息錄入。</b></p><p><b> 還書記錄。</b></p><p><b> 掛賬處理。</b>
4、;</p><p> 信息查詢:分為按書名查詢,按作者查詢,按庫存量查詢和按被借閱信息查詢。</p><p> 借閱統(tǒng)計:分為按教師統(tǒng)計和按照部門統(tǒng)計。</p><p><b> 系統(tǒng)概要設(shè)計</b></p><p><b> 1.系統(tǒng)模塊化設(shè)計</b></p><p&g
5、t; 查找:按照圖書名稱,作者,庫存和被借閱信息查詢。</p><p> 借閱:輸入所找的圖書,輸入書名和編號,若有庫存,可以借閱,若沒有庫存,則無法借閱。</p><p> 還書:輸入圖書信息,進行還書。</p><p> 借閱統(tǒng)計:按照借書人的姓名和單位,分別查找借閱信息。</p><p> 掛賬處理:輸入當天日期,可以查找出在
6、當天,借閱圖書超過90天的借閱人姓名。</p><p><b> 系統(tǒng)詳細設(shè)計</b></p><p><b> 數(shù)據(jù)結(jié)構(gòu)設(shè)計</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]用來存放新到的圖書信息,包括編號、書名、作者、出版社和庫存。 </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ù)組用來存放借出去的圖書信息,包括編號,書名、出版社、借閱老師、老師所屬的部門、借閱日期
12、和還書日期。其中,還書日期在還書的時候補齊。</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è)計</b></p><p> 主函數(shù)入口進入,通過開關(guān)選擇1到6個模塊,7為退出。</p><p> 模塊1:入口void sear
14、ch();</p><p> 在這個函數(shù)里,通過開關(guān)選擇1到4類選擇,5為退出,退出后返回主函數(shù)。</p><p> 模塊2:入口void borrow();</p><p> 在這個函數(shù)里,若有庫存,輸入要借閱的圖書信息,沒有庫存無法借閱,然后返回主函數(shù)。</p><p> 模塊3:入口void returnb();</p&g
15、t;<p> 在這個函數(shù)里,輸入所還的圖書信息和還書日期,返回主函數(shù)。</p><p> 模塊4:入口void statistics();</p><p> 在這個函數(shù)里,通過開關(guān)選擇1到2類搜索,3為退出,退出后返回主函數(shù)。</p><p> 模塊5:入口void all();</p><p> 在這個函數(shù)里,先輸入
16、新書種類的數(shù)量,然后按次序,分別輸入圖書的編號、書名、作者、出版社和庫存。輸入結(jié)束,按任意鍵回到主函數(shù)。</p><p> 模塊六:入口void unpaid();</p><p> 在這個函數(shù)里,輸入當天日期,顯示出當天借閱超過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)計</b></p>&
18、lt;p><b> 圖書信息錄入</b></p><p><b> 系統(tǒng)實現(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)試時遇到很多問題。</p><p> 由于win tc自身的限制,在二維數(shù)組或者復(fù)雜的結(jié)構(gòu)體數(shù)組中,不能直接給float型變量賦值。若要賦值,需要用到第三變量,先賦值給第三變量,然后再將第三變量的值給所需變量。</p><p> 在scanf()函數(shù)中,用%s輸入字符串,在雙引號外面,用&a[20]和直接用a是不一樣的,在后面的調(diào)試中,用&a[20]將不
22、能正確進行字符串的比較。</p><p> 結(jié)構(gòu)體數(shù)組中,字符串可用gets()和scanf(),但是用gets時,會誤將回車換行當做字符,所以改用scanf(),用下劃線區(qū)分字符。</p><p> 在循環(huán)的嵌套時,變量十分容易看錯,須仔細校對。</p><p><b> 六.系統(tǒng)進一步擴充</b></p><p&g
23、t; 這個系統(tǒng)最大的缺陷是沒有使用文件,所以每一次打開系統(tǒng),都需要重新把圖書信息等重新輸入一遍,在實際應(yīng)用中十分麻煩。如果改進成用文件操作,每次打開就無需將信息重新輸入。</p><p> 模塊的功能還需增強,現(xiàn)有的功能和現(xiàn)實需要相差很大,所以各模塊的功能還是需要更加全面。</p><p> 系統(tǒng)的界面不夠人性化,操作性能還需進一步改進,可改為中文界面。另外每個界面還不夠簡潔,需要更
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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計-- 圖書館借閱管理系統(tǒng)
- c語言實現(xiàn)圖書館課程設(shè)計報告--圖書借閱管理系統(tǒng)
- 圖書借閱管理系統(tǒng)課程設(shè)計
- 課程設(shè)計---圖書借閱管理系統(tǒng)
- 課程設(shè)計----圖書借閱管理系統(tǒng)
- c語言課程設(shè)計--圖書管理系統(tǒng)
- c語言課程設(shè)計--圖書管理系統(tǒng)
- c語言課程設(shè)計(圖書管理系統(tǒng))
- c語言課程設(shè)計-圖書管理系統(tǒng)
- c語言課程設(shè)計---圖書管理系統(tǒng)
- 圖書借閱管理系統(tǒng)-c程序設(shè)計課程設(shè)計(實踐教學(xué))
- c語言課程設(shè)計報告~圖書管理系統(tǒng)
- c語言圖書館管理系統(tǒng)課程設(shè)計
- c語言圖書管理系統(tǒng)課程設(shè)計報告
- c語言圖書管理系統(tǒng)課程設(shè)計報告
- 圖書館管理系統(tǒng)c語言課程設(shè)計
- 圖書管理系統(tǒng)-c語言課程設(shè)計報告
- 學(xué)校圖書借閱管理系統(tǒng)-課程設(shè)計報告
- c語言課程設(shè)計-圖書館管理系統(tǒng)
- c語言課程設(shè)計--圖書管理
評論
0/150
提交評論