【數(shù)據(jù)結(jié)構(gòu)】圖書館圖書借閱信息管理系統(tǒng)_第1頁
【數(shù)據(jù)結(jié)構(gòu)】圖書館圖書借閱信息管理系統(tǒng)_第2頁
【數(shù)據(jù)結(jié)構(gòu)】圖書館圖書借閱信息管理系統(tǒng)_第3頁
【數(shù)據(jù)結(jié)構(gòu)】圖書館圖書借閱信息管理系統(tǒng)_第4頁
【數(shù)據(jù)結(jié)構(gòu)】圖書館圖書借閱信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東北大學信息科學與工程學院數(shù)據(jù)結(jié)構(gòu)課程設計報告題目圖書館圖書借閱信息管理系統(tǒng)課題組長王逸飛課題組成員王嘉琦李聰專業(yè)名稱計算機科學與技術(shù)班級計1307指導教師楊雷 2015年1月課程設計任務書題目:圖書館圖書借閱信息管理系統(tǒng)問題描述:對圖書館的圖書借閱業(yè)務管理作一個簡單的模擬。設計要求:設計圖書借閱信息管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實現(xiàn)圖書的創(chuàng)建、分類、插入、刪除、修改、借閱等管理功能。(3)實現(xiàn)圖書的各種借閱查詢和統(tǒng)計功能。(4)考慮采用優(yōu)化的查詢和排序算法。(5)其它完善性功能。指導教師簽字:年月日目錄1課題概述 11.1課題任務 11.2課題原理 11.3相關(guān)知識 32需求分析 42.1課題調(diào)研 42.2用戶需求分析 53方案設計 73.1總體功能設計 73.2數(shù)據(jù)結(jié)構(gòu)設計 83.3函數(shù)原型設計 103.4主算法設計 123.5用戶界面設計 144方案實現(xiàn) 154.1開發(fā)環(huán)境與工具 154.2程序設計關(guān)鍵技術(shù) 164.3個人設計實現(xiàn)(按組員分工)4.3.1王逸飛設計實現(xiàn) 174.3.2王嘉琦設計實現(xiàn) 174.3.3李聰設計實現(xiàn) 175測試與調(diào)試 235.1個人測試(按組員分工) 235.1.1王逸飛測試 235.1.2王嘉琦測試 235.1.2李聰測試 235.2組裝與系統(tǒng)測試 335.3系統(tǒng)運行 366課題總結(jié) 396.1課題評價 396.2團隊協(xié)作 406.3團隊協(xié)作 416.4個人設計小結(jié)(按組員分工) 426.4.1王逸飛設計小結(jié) 426.4.2王嘉琦設計小結(jié) 426.4.3李聰設計小結(jié) 427附錄A課題任務分工 50A-1課題程序設計分工 50A-2課題報告分工 51附錄B課題設計文檔(光盤) 52B-1課程設計報告(電子版) 52B-2源程序代碼(*.H,*.CPP) 52B-3工程與可執(zhí)行文件 52B-4屏幕演示錄像文件(可選) 52附錄C用戶操作手冊(可選) 53C.1運行環(huán)境說明 53C.2操作說明 541課題概述1.1課題任務【問題描述】對圖書館的圖書借閱業(yè)務管理作一個簡單的模擬。【設計要求】設計圖書借閱信息管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實現(xiàn)圖書的創(chuàng)建、分類、插入、刪除、修改、借閱等管理功能。(3)實現(xiàn)圖書的各種借閱查詢和統(tǒng)計功能。(4)考慮采用優(yōu)化的查詢和排序算法。(5)其它完善性功能。1.2課題原理以結(jié)構(gòu)體鏈表為存儲結(jié)構(gòu),則抽象數(shù)據(jù)類型即為用結(jié)構(gòu)體鏈表表示的線性表,所以主要涉及到結(jié)構(gòu)體鏈表的一些基本操作函數(shù)。1.3相關(guān)知識結(jié)構(gòu)體鏈表表示的線性表的定義,表示,C語言實現(xiàn),在對圖書信息進行排序的過程涉及到了結(jié)構(gòu)體鏈表的排序技術(shù)。文件的讀入與輸出操作。2需求分析2.1課題調(diào)研對東北大學圖書館進行考察,并在網(wǎng)絡上搜集相關(guān)資料。發(fā)現(xiàn)圖書管理系統(tǒng)主要面向兩類人群,一是圖書館管理員,二是普通用戶。而兩類人群中,管理員應該擁有對該系統(tǒng)的最高權(quán)限,全面掌握普通用戶的借閱信息,全面掌握所有圖書的借閱信息。權(quán)限較低的用戶只有圖書信息一般查詢權(quán)限,經(jīng)過注冊的用戶可有進一步對圖書信息進行操作的權(quán)限。2.2用戶需求分析進過以上課題調(diào)研,主要有一下需要:(1)一般用戶:對圖書信息進行查詢,顯示;(2)注冊用戶:可以對圖書信息進行查詢,顯示,借書,還書,導出個人圖書信息;(3)管理員:針對用戶,可以進行用戶信息增刪,用戶信息顯示,用戶信息的查詢;針對圖書,可以進行圖書信息的查詢,圖書信息的顯示,圖書信息的錄入,圖書信息的刪除,圖書信息的排序。故需要以下主要函數(shù)用戶登錄管理,登錄信息確認,查詢圖書功能,顯示圖書信息功能,顯示圖書信息,借書功能,還書功能,個人圖書管理功能,圖書信息錄入,圖書信息刪除,圖書信息修改以及一些界面跳轉(zhuǎn)3方案設計3.1總體功能設計(1)實現(xiàn)一般用戶對圖書信息進行查詢,顯示功能;(2)實現(xiàn)注冊用戶對圖書信息進行查詢,顯示,借書,還書,導出個人圖書信息功能;(3)實現(xiàn)管理員針對用戶,可以進行用戶信息增刪,用戶信息顯示,用戶信息的查詢;實現(xiàn)針對圖書,可以進行圖書信息的查詢,圖書信息的顯示,圖書信息的錄入,圖書信息的刪除,圖書信息的排序。3.2數(shù)據(jù)結(jié)構(gòu)設計用戶和管理員信息的節(jié)點:structuser{ charusername[Max_username_size]; charpassword[Max_password_size];}USERtypedefstructuser1*UserPtr1;圖書信息節(jié)點:typedefstructbook{charbookname[65];charauther[65];charchubanshe[65];charprofession[65];intbooknumber;intprice;intonof;structbook*next;}BOOK;我們將結(jié)構(gòu)的創(chuàng)建,初始化,插入刪除等基本操作都封裝在主界面函數(shù),插入函數(shù),注冊函數(shù)等之中,后面還有詳細的說明,在此不贅述。3.3函數(shù)原型設計intshow_function1_window(UserPtr1);顯示普通用戶界面intshow_function2_window(UserPtr1);顯示管理員用戶界面intshow_guanyue_window();普通用戶觀閱函數(shù)intshow_zhuce_window(UserPtr1);顯示注冊界面intshow_queren_window(UserPtr1);顯示確認界面intjiemian();通用界面intJieshu(BookPtr);借書函數(shù)intHuanshu(BookPtr);還書函數(shù)intInsert(BookPtr*);增加圖書函數(shù)intShow(BookPtr);顯示圖書信息函數(shù)intSerch(BookPtra);查找函數(shù)intnumserch(BookPtr);編號查詢intadresserch(BookPtr);出版社查詢intautherserch(BookPtr);作者查詢intnameserch(BookPtr);書名查詢intonofserch(BookPtr);圖書狀態(tài)查詢intpriceserch(BookPtr);價格查詢intDelete(BookPtr);刪除圖書信息intSave(BookPtr);保存圖書信息intmain1();主體函數(shù)3.4主算法設計3.5用戶界面設計由于時間原因,低級版本在沒有實現(xiàn)可視化界面,采用DOS來顯示得到的結(jié)果。4方案實現(xiàn)4.1開發(fā)環(huán)境與工具編程環(huán)境為visualc++6.0。工具為C語言。4.2程序設計關(guān)鍵技術(shù)結(jié)構(gòu)體鏈表的創(chuàng)建,插入,刪除,輸出,排序;文件的讀入讀出,對文件進行重新編輯。4.3個人設計實現(xiàn)(按組員分小節(jié))4.3.1王逸飛、王嘉琦、李聰設計實現(xiàn)1.課題任務(1)主函數(shù)函數(shù)界面(2)管理員界面函數(shù)(3)管理員主要功能實現(xiàn)(4)登錄確認函數(shù)(5)圖書信息錄入(6)圖書信息刪除(7)圖書信息顯示(8)圖書信息修改(9)圖書信息排序(10)圖書信息保存(11)普通用戶觀閱函數(shù)2.程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<windows.h>#defineMax_username_size64+1#defineMax_password_size64+1structuser1{ charusername[65]; charpassword[65];}USER1,dengl;//登陸用賬戶信息typedefstructuser1*UserPtr1;typedefstructuser2{charusername[Max_username_size];intsex;longintstunumber;}USER2;//管理用賬戶信息typedefUSER2*UserPtr2;typedefstructbook{charbookname[65]; charauther[65]; charchubanshe[65]; charprofession[65]; intbooknumber; intprice; intonof; structbook*next;}BOOK;typedefBOOK*BookPtr;intshow_function1_window(UserPtr1);intshow_function2_window(UserPtr1);intshow_zhuce_window(UserPtr1);intshow_queren_window(UserPtr1);intjiemian();intJieshu(BookPtr);intHuanshu(BookPtr);intHuankuan();intInsert(BookPtr*);intShow(BookPtr);intnumserch(BookPtr);intadresserch(BookPtr);intautherserch(BookPtr);intnameserch(BookPtr);intadresserch(BookPtr);intonofserch(BookPtr);intpriceserch(BookPtr);intDelete(BookPtr);intSave(BookPtr);voidshow_denglu_window(UserPtr1b);intSerch(BookPtra);BookPtrbookhead=NULL;intmain1(){intcmd0;{system("cls");printf("*******************************************************************************\n"); printf("\n\n\n\n"); printf("歡迎來到東北大學圖書館\n");printf("\n\n\n\n"); printf("1:請輸入您的學名號\n"); printf("2:學號注冊\n"); printf("3:管理員登陸\n\n\n"); printf("選擇0,然后按任意鍵關(guān)閉本程序?。。n\n\n"); printf("請選擇執(zhí)行命令:"); BookPtrpb1,pb2;FILE*pbook1;intflag1=0; bookhead=(BookPtr)malloc(sizeof(structbook));//將文件中的圖書信息導出,并存放在鏈表中 bookhead->next=NULL; if((pbook1=fopen("f:\\book.din","rb"))!=NULL){rewind(pbook1);if(!feof(pbook1)){fread(bookhead,sizeof(structbook),1,pbook1);pb1=(BookPtr)malloc(sizeof(structbook));bookhead->next=pb1;fread(pb1,sizeof(structbook),1,pbook1);}while(!feof(pbook1)){pb2=(BookPtr)malloc(sizeof(structbook));fread(pb2,sizeof(structbook),1,pbook1);if(feof(pbook1))break;pb1->next=pb2;pb1=pb2;}pb1->next=NULL;}fclose(pbook1); intcmd,trytime,io=0;scanf("%d",&cmd);cmd0=cmd;while(cmd>3||cmd<1)//進入主要功能選項{io++;if(cmd==0)break;if(io>2){printf("Sorry,wrongnumbermorethanthreetimes!!!\n");printf("系統(tǒng)自動退出?。?!\n");printf("繼續(xù)登錄請重啟程序。");system("pause");return0;}printf("無效字符,無法識別?。?!\n");if(io>1)printf("最后一次機會!");printf("請重新選擇:");scanf("%d",&cmd);}FILE*fp1; if(cmd==1)//用戶入口{inttrytime,m=1;for(trytime=1;m!=0&&trytime<4;trytime++){show_denglu_window(&dengl);m=show_queren_window(&dengl);if(trytime==2&&m!=0){printf("最后一次機會!");system("pause");}}if(trytime==4&&m!=0){printf("系統(tǒng)自動退出!?。n");printf("繼續(xù)登錄請重啟程序。");system("pause");}if(m==0)show_function1_window(&dengl);}elseif(cmd==2)//注冊入口{show_denglu_window(&dengl);if((fp1=fopen("f:\\zhucezhe.din","ab"))==NULL){printf("\ncannotopenfile");}fwrite(&dengl,sizeof(dengl),1,fp1);fclose(fp1);printf("\n注冊成功!!!");}elseif(cmd==3)//管理員登陸入口{show_denglu_window(&dengl);for(trytime=0;trytime<3;trytime++){if(strcmp(dengl.username,"zaq")==0&&strcmp(dengl.password,"zaq")==0){show_function2_window(&dengl);break;}elseshow_denglu_window(&dengl);}}}returncmd0;}voidshow_denglu_window(UserPtr1b)//登錄函數(shù),從終端獲得數(shù)據(jù) {memset(b->password,0,65);system("cls");printf("*******************************************************************************\n"); printf("\n\n\n\n"); printf("歡迎來到東北大學圖書館\n");printf("\n\n\n\n"); printf("1:請輸入您的學號:\n");scanf("%s",b->username); printf("2:請輸入您的三級密碼:\n");inti=0;charch=0;chara='y';while((ch=getch())!='\r'){putchar('*');b->password[i]=ch;i++;}printf("\n是否顯示密碼:是(Y)/否(N)");scanf("%d",&a);a=getchar();if(a=='Y'||a=='y'){printf("\n您輸入的密碼是%s",b->password);system("pause");}}intshow_queren_window(UserPtr1b)//確認是否為已注冊用戶{FILE*fp2;structuser1u;UserPtr1v=&u;intm=1,n=1;if((fp2=fopen("f:\\zhucezhe.din","rb"))==NULL){printf("\ncannotopenfile");}while((m*m+n*n)!=0){fread(v,sizeof(USER1),1,fp2);m=strcmp(b->username,v->username);n=strcmp(b->password,v->password);if(m==0&&n==0){printf("\n已注冊,可借閱圖書\n");system("pause");return0;}if(feof(fp2))break;}fclose(fp2);if(m!=0){printf("\n非法侵入\n");system("pause");return1;}}intInsert(BookPtr*bookhead)//錄入圖書信息{FILE*pbook2;system("cls");jiemian(); if((pbook2=fopen("f:\\book.din","ab"))==NULL){printf("\n不能打開文件!!!");}BookPtrp1,p2,r;p1=p2=*bookhead;while(p1!=NULL){p2=p1;p1=p1->next;}r=(BookPtr)malloc(sizeof(structbook));r->next=NULL;if(r==NULL){printf("分配空間失敗?。?");return0;}if(p2==NULL)*bookhead=r;else{p2->next=r;} printf("請輸入圖書名稱:\n"); scanf("%s",&r->bookname); printf("請輸入圖書作者:\n"); scanf("%s",&r->auther); printf("請輸入出版社:\n"); scanf("%s",&r->chubanshe); printf("請輸入圖書編號:\n"); scanf("%d",&r->booknumber);printf("請輸入圖書價格:\n");scanf("%d",&r->price); printf("請輸入出狀態(tài):\n"); scanf("%d",&r->onof); fwrite(r,sizeof(structbook),1,pbook2); fclose(pbook2);charm;printf("\n是否要繼續(xù)錄入:"); scanf("%c",&m); scanf("%c",&m); if(m=='y'||m=='Y') Insert(&r);}//intchange(BookPtra)//修改圖書信息{system("cls");jiemian();FILE*pbook3; if((pbook3=fopen("f:\\book.din","wb"))==NULL){printf("\n不能打開文件!!!");}BookPtrp1,p2;p1=p2=a; intchangenum; BOOKlinshi; printf("\n1,書名\n2,作者\n3,出版社\n4,編號\n5,單價\n6,狀態(tài)\n"); printf("請選擇要進行修改的圖書信息所對應的序號"); scanf("%d",&changenum);switch(changenum) { case1:printf("請輸入要進行修改的書的名字:"); scanf("%s",linshi.bookname); while(p1!=NULL){if(strcmp(linshi.bookname,p1->bookname)==0){printf("請輸入要修改之后的書名:\n");scanf("%s",&p1->bookname);break;}p2=p1;p1=p1->next;} break; case2:printf("請輸入要進行修改的作者的名字:"); scanf("%s",linshi.auther); while(p1!=NULL){if(strcmp(linshi.auther,p1->auther)==0){printf("請輸入要修改之后的作者:\n");scanf("%s",&p1->auther);break;}p2=p1;p1=p1->next;} break; case3:printf("請輸入要進行修改的書的出版社:"); scanf("%s",linshi.chubanshe); while(p1!=NULL){if(strcmp(linshi.chubanshe,p1->chubanshe)==0){printf("請輸入要修改之后的出版社:\n");scanf("%s",&p1->chubanshe);break;}p2=p1;p1=p1->next;} break; case4:printf("請輸入要進行修改的書的價格:"); scanf("%d",linshi.price); while(p1!=NULL){if(linshi.price==p1->price){printf("請輸入要修改之后的出版社:\n");scanf("%d",&p1->price);break;}p2=p1;p1=p1->next;} break; case5:printf("請輸入要進行修改的書的編號:"); scanf("%d",&linshi.booknumber); while(p1!=NULL){if(linshi.booknumber==p1->booknumber){printf("請輸入要修改之后的出版社:\n");scanf("%d",&p1->booknumber);break;}p2=p1;p1=p1->next;} break; case6:printf("請輸入要進行修改的書的狀態(tài):"); scanf("%d",&linshi.onof); while(p1!=NULL){if(linshi.onof==p1->onof){printf("請輸入要修改之后的狀態(tài):\n");scanf("%d",&p1->onof);break;}p2=p1;p1=p1->next;} break; default:printf("enterdataerror!\n"); } p1=p2=a; while(p1!=NULL){fwrite(p1,sizeof(structbook),1,pbook3);p2=p1;p1=p1->next;}fclose(pbook3); return0;}intDelete(BookPtra)//刪除圖書信息{system("cls");jiemian();BOOKb;BookPtrp1,p2;p1=p2=a;intflag=0;printf("請選擇要刪除的圖書的書名:");scanf("%s",b.bookname);while(p1!=NULL){if(strcmp(b.bookname,p1->bookname)==0){if(p1==a){a=p1->next;free(p1);}else{p2->next=p1->next;free(p1);}break;}else{p2=p1;p1=p1->next;}}Save(a);}intSave(BookPtra)//將處理好的鏈表存入文件{FILE*pbook3;BookPtrp1,p2;p1=p2=a; if((pbook3=fopen("f:\\book.din","wb"))==NULL){printf("\n不能打開文件!!!");}while(p1!=NULL){fwrite(p1,sizeof(structbook),1,pbook3);p2=p1;p1=p1->next;}fclose(pbook3);return0;}intshow_function1_window(UserPtr1b)//用戶主界面{jiemian();BookPtrp1,p2;p1=p2=bookhead;intm;do{system("cls");jiemian();printf("尊敬的%s用戶,您好!",b->username);printf("\n\n\n1查詢服務");printf("\n2借書服務");printf("\n3還書服務");printf("\n4還清欠款");printf("\n5顯示所有圖書信息");printf("\n\n選擇0退出登錄?。?!");printf("\n\n請選擇您需要的服務:\n");scanf("%d",&m);switch(m){case1:Serch(bookhead);system("pause");break;case2:Jieshu(bookhead);break;case3:Huanshu(bookhead);break;case4:Huankuan();break;case5:Show(bookhead);break;case0:break;default:printf("wrongnumber");}}while(m!=0);}intshow_function2_window(UserPtr1b)//管理員主界面{jiemian();intm;do{system("cls");jiemian();printf("尊敬的%s管理員,您好!",b->username);printf("\n\n\n1,新進圖書錄入");printf("\n2,圖書信息查詢");printf("\n3,已有圖書修改");printf("\n4,刪除圖書信息");printf("\n5,查詢圖書信息");printf("\n6,顯示已有圖書信息");printf("\n\n選擇0退出登錄");printf("\n\n請選擇您需要的服務\n");scanf("%d",&m);switch(m){case1:Insert(&bookhead);break;case2:Serch(bookhead);break;case3:change(bookhead);break;case4:Delete(bookhead);break;case5:Show(bookhead);break;case6:Show(bookhead);break;case0:break;default:printf("wrongnumber\n");}}while(m!=0);return0;}intJieshu(BookPtra)//借書{system("cls");jiemian();BookPtrp1,p2;intflag=1;charch;p1=p2=a;BOOKlinshi;printf("\n請輸入您要借的書的書名:");scanf("%s",linshi.bookname);while(p1!=NULL){if(strcmp(linshi.bookname,p1->bookname)==0){if(p1->onof==0){printf("\n抱歉,該書已被借走,是否再借其他書籍:");ch=getchar();ch=getchar();if('y'==ch){Jieshu(a);}elsebreak;}else{printf("\n在架可借,是否借書:");ch=getchar();ch=getchar();if('y'==ch){p1->onof=0;flag=0;}printf("\n借書成功,是否繼續(xù)借書");ch=getchar();ch=getchar();if('y'==ch){Jieshu(a);}elsebreak;}}elsep2=p1;p1=p1->next;}Save(a);}intHuanshu(BookPtra)//還書{system("cls");jiemian();BookPtrp1,p2;intflag=1;charch;p1=p2=a;BOOKlinshi;printf("\n請輸入您要還的書的書名:");scanf("%s",linshi.bookname);while(p1!=NULL){if(strcmp(linshi.bookname,p1->bookname)==0){if(p1->onof==1){printf("\n抱歉,該書已還,是否還其他書籍:");ch=getchar();ch=getchar();if('y'==ch){Huanshu(a);}elsebreak;}else{printf("\n在架借出,是否還書:");ch=getchar();ch=getchar();if('y'==ch){p1->onof=1;flag=0;}printf("\n還書成功,是否歸還其他書籍");ch=getchar();ch=getchar();if('y'==ch){Huanshu(a);}elsebreak;}}elsep2=p1;p1=p1->next;}Save(a);}intjiemian()//主要背景函數(shù){system("cls");printf("*******************************************************************************\n"); printf("\n\n\n\n"); printf("歡迎來到忍者大師高級圖書館\n");printf("\n\n\n\n");}intShow(BookPtra)//顯示函數(shù){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;inti=0;printf("所有圖書信息如下\n\n");while(p1!=NULL){i++;printf("第%d本書的信息:\n",i);printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);printf("\n\n"),p2=p1;p1=p1->next;}system("pause");return0;}intSerch(BookPtra)//查找函數(shù){system("cls");jiemian();intb;printf("1,按書名查詢\n");printf("2,按作者查詢\n");printf("3,按出版社查詢\n");printf("4,按編號查詢\n");printf("5,按價格查詢\n");printf("6,按狀態(tài)查詢\n");printf("\n請輸入您要查詢的方式:\n");scanf("%d",&b);switch(b){case1:nameserch(a);break;case2:autherserch(a);break;case3:adresserch(a);break;case4:numserch(a);break;case5:priceserch(a);break;case6:onofserch(a);break;}system("pause");}intnameserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;charbookname[65];printf("請輸入你要查詢的書的名字:");scanf("%s",bookname);while(p1!=NULL){if(strcmp(p1->bookname,bookname)==0){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intautherserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;charauther[65];printf("請輸入你要查詢的作者的名字:");scanf("%s",auther);while(p1!=NULL){if(strcmp(p1->auther,auther)==0){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intadresserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;charadress[65];printf("請輸入你要查詢的出版社的名字:");scanf("%s",adress);while(p1!=NULL){if(strcmp(p1->chubanshe,adress)==0){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intnumserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;intnum;printf("請輸入你要查詢的編號:");scanf("%d",&num);while(p1!=NULL){if(p1->booknumber==num){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intonofserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;intof;printf("請輸入你要查詢的狀態(tài):");scanf("%d",&of);while(p1!=NULL){if(p1->onof==of){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intpriceserch(BookPtra){system("cls");jiemian();BookPtrp1,p2;p1=p2=a;intflag=1;intpri;printf("請輸入你要查詢的價格:");scanf("%d",&pri);while(p1!=NULL){if(p1->price==pri){printf("圖書名稱:%s\n",p1->bookname);printf("圖書作者:%s\n",p1->auther);printf("出版社:%s\n",p1->chubanshe);printf("圖書編號:%ld\n",p1->booknumber);printf("圖書價格:%d\n",p1->price);printf("圖書狀態(tài):%d\n",p1->onof);flag=0;}p2=p1;p1=p1->next;}if(flag==1)printf("\n對不起,尚未收錄您正查詢的圖書!!!");}intmain(){intcmd1=0,cmd2;cmd2=main1();while(cmd2!=cmd1){cmd2=main1();}return0;}5.3系統(tǒng)測試操作名稱操作流程操作結(jié)果和輸出主界面選擇進入功能的選項1進入登錄選項2進入注冊選項3管理員登錄4普通身份入口注冊依次輸入賬號和密碼,可選擇是否顯示密碼選擇顯示密碼,則顯示密碼;否則不顯示密碼。提示注冊成功信息。登錄依次按提示輸入賬號和密碼,輸入非注冊密碼會有報錯提示,最多可輸入三次。(可選擇是否顯示密碼)輸入正確的賬號密碼,顯示普通用戶界面;賬號密碼輸入錯誤還有提示。錄入依次輸入圖書信息將輸入的圖書信息保存文件中刪除輸入要刪除的圖書信息的名字將圖書刪除后在保存到文件之中修改選擇修改選項將圖書信息修改后保存到文件中顯示顯示所有圖書信息借書輸入書名書庫內(nèi)有書,顯示借書成功;沒有書顯示借書失敗還書書名提示還書成功查詢輸入查詢選項進入不同查詢選項界面5.4系統(tǒng)運行系統(tǒng)運行結(jié)果如下:6課題總結(jié)6.1課題分析完成了課題要求功能,容易封裝便于使用。6.2團隊協(xié)作本次課程設計,讓我們感受到了在程序編寫軟件設計中團隊你的力量。一個人的力量對于編寫一個大型的程序來說簡直是渺茫的,但是編寫程序這種工作又是不能忽略每一個個體的,因為只要一個人有一個小小的疏忽,就可能導致整個程序無法運行,甚至崩潰。我們充分利用現(xiàn)代社會知識信息交流充分發(fā)展的機會,我們遇到困難時就去學校圖書館查找相關(guān)書籍或在網(wǎng)上查找相關(guān)資料。今后的學習也應該注重理論與實踐的結(jié)合,多觀察多思考,知道自己所學知識在實際應用中的作用。6.3個人設計小結(jié)(分組員小結(jié))6.3.1王逸飛設計小結(jié)總體上,鞏固了所學的有關(guān)c語言的知識,強化了對數(shù)據(jù)結(jié)構(gòu)的理解。強化了我們對計算機編程操作技能,充實了有關(guān)數(shù)據(jù)結(jié)構(gòu)的理論知識,拓寬了有關(guān)數(shù)據(jù)結(jié)構(gòu)的知識面,通過數(shù)據(jù)結(jié)構(gòu)課程設計的學習,找到了自身知識點的漏洞與欠缺,加深我們對數(shù)據(jù)結(jié)構(gòu)的理解,最關(guān)鍵的是對編程思想的理解,對程序開發(fā)過程中的有了較深層次的而理解,具體來說,加深了我對基本抽象數(shù)據(jù)類型的理解,例如結(jié)構(gòu)體鏈表的操作,間接地也鞏固了之前的有關(guān)C語言的知識,例如基本數(shù)據(jù)類型的操作等,文件的操作也更加的熟練。6.3.1王嘉琦設計小結(jié)通過本次程序設計課程,我發(fā)現(xiàn)編程最重要的便是可行以及合理,否則也是毫無用處的程序,沒有絲毫意義。剛開始的時候,總是在空想函數(shù)該怎樣編寫,而沒有考慮實際生活中圖書館的功能以及工作流程,導致做出來的東西很不切實際。吸取教訓了以后,我仔細思考借鑒了我們學校圖書館的操作流程,才寫出行之有效的代碼。6.3.1李聰設計小結(jié)此次課程設計,我通過上網(wǎng)查找資料學習,深刻理解了線性表及其應用。查詢函數(shù)中主要需要對線性表進行訪問查詢,線性表的訪問需要遍歷線性表中的元素。在查詢函數(shù)設計過程中,需要仔細判別輸入的條件,考慮各種的可能的查詢情況,使程序完善和健壯。通過此次的課程設計我深刻的意識到,要想編好一個程序需要扎實的基本功,需要認真的學習和了解相應的知識。編程前,需要做好算法設計,才能使編程的時候少犯一些算法邏輯錯誤;編程時,需要不斷的編譯及時改掉語法錯誤的地方避免多個錯誤累積看不出錯誤的地方;程序編好后,需要對程序輸入極端、特殊情況測試保證程序沒有重大的算法漏洞?;贑8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用HYPERLINK"/detail.htm?

溫馨提示

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

評論

0/150

提交評論