版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)-- 圖書館借閱管理系統(tǒng)
- c語言實(shí)現(xiàn)圖書館課程設(shè)計(jì)報(bào)告--圖書借閱管理系統(tǒng)
- 圖書借閱管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---圖書借閱管理系統(tǒng)
- 課程設(shè)計(jì)----圖書借閱管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)(圖書管理系統(tǒng))
- c語言課程設(shè)計(jì)-圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)---圖書管理系統(tǒng)
- 圖書借閱管理系統(tǒng)-c程序設(shè)計(jì)課程設(shè)計(jì)(實(shí)踐教學(xué))
- c語言課程設(shè)計(jì)報(bào)告~圖書管理系統(tǒng)
- c語言圖書館管理系統(tǒng)課程設(shè)計(jì)
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書館管理系統(tǒng)c語言課程設(shè)計(jì)
- 圖書管理系統(tǒng)-c語言課程設(shè)計(jì)報(bào)告
- 學(xué)校圖書借閱管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)-圖書館管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理
評(píng)論
0/150
提交評(píng)論