版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
東北大學(xué)信息科學(xué)與工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目圖書館圖書借閱信息管理系統(tǒng)課題組長王逸飛課題組成員王嘉琦李聰專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)班級計(jì)1307指導(dǎo)教師楊雷 2015年1月課程設(shè)計(jì)任務(wù)書題目:圖書館圖書借閱信息管理系統(tǒng)問題描述:對圖書館的圖書借閱業(yè)務(wù)管理作一個(gè)簡單的模擬。設(shè)計(jì)要求:設(shè)計(jì)圖書借閱信息管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實(shí)現(xiàn)圖書的創(chuàng)建、分類、插入、刪除、修改、借閱等管理功能。(3)實(shí)現(xiàn)圖書的各種借閱查詢和統(tǒng)計(jì)功能。(4)考慮采用優(yōu)化的查詢和排序算法。(5)其它完善性功能。指導(dǎo)教師簽字:年月日目錄1課題概述 11.1課題任務(wù) 11.2課題原理 11.3相關(guān)知識 32需求分析 42.1課題調(diào)研 42.2用戶需求分析 53方案設(shè)計(jì) 73.1總體功能設(shè)計(jì) 73.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 83.3函數(shù)原型設(shè)計(jì) 103.4主算法設(shè)計(jì) 123.5用戶界面設(shè)計(jì) 144方案實(shí)現(xiàn) 154.1開發(fā)環(huán)境與工具 154.2程序設(shè)計(jì)關(guān)鍵技術(shù) 164.3個(gè)人設(shè)計(jì)實(shí)現(xiàn)(按組員分工)4.3.1王逸飛設(shè)計(jì)實(shí)現(xiàn) 174.3.2王嘉琦設(shè)計(jì)實(shí)現(xiàn) 174.3.3李聰設(shè)計(jì)實(shí)現(xiàn) 175測試與調(diào)試 235.1個(gè)人測試(按組員分工) 235.1.1王逸飛測試 235.1.2王嘉琦測試 235.1.2李聰測試 235.2組裝與系統(tǒng)測試 335.3系統(tǒng)運(yùn)行 366課題總結(jié) 396.1課題評價(jià) 396.2團(tuán)隊(duì)協(xié)作 406.3團(tuán)隊(duì)協(xié)作 416.4個(gè)人設(shè)計(jì)小結(jié)(按組員分工) 426.4.1王逸飛設(shè)計(jì)小結(jié) 426.4.2王嘉琦設(shè)計(jì)小結(jié) 426.4.3李聰設(shè)計(jì)小結(jié) 427附錄A課題任務(wù)分工 50A-1課題程序設(shè)計(jì)分工 50A-2課題報(bào)告分工 51附錄B課題設(shè)計(jì)文檔(光盤) 52B-1課程設(shè)計(jì)報(bào)告(電子版) 52B-2源程序代碼(*.H,*.CPP) 52B-3工程與可執(zhí)行文件 52B-4屏幕演示錄像文件(可選) 52附錄C用戶操作手冊(可選) 53C.1運(yùn)行環(huán)境說明 53C.2操作說明 541課題概述1.1課題任務(wù)【問題描述】對圖書館的圖書借閱業(yè)務(wù)管理作一個(gè)簡單的模擬。【設(shè)計(jì)要求】設(shè)計(jì)圖書借閱信息管理的模擬程序。(1)采用順序表或結(jié)構(gòu)體鏈表存儲結(jié)構(gòu)。(2)實(shí)現(xiàn)圖書的創(chuàng)建、分類、插入、刪除、修改、借閱等管理功能。(3)實(shí)現(xiàn)圖書的各種借閱查詢和統(tǒng)計(jì)功能。(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語言實(shí)現(xiàn),在對圖書信息進(jìn)行排序的過程涉及到了結(jié)構(gòu)體鏈表的排序技術(shù)。文件的讀入與輸出操作。2需求分析2.1課題調(diào)研對東北大學(xué)圖書館進(jìn)行考察,并在網(wǎng)絡(luò)上搜集相關(guān)資料。發(fā)現(xiàn)圖書管理系統(tǒng)主要面向兩類人群,一是圖書館管理員,二是普通用戶。而兩類人群中,管理員應(yīng)該擁有對該系統(tǒng)的最高權(quán)限,全面掌握普通用戶的借閱信息,全面掌握所有圖書的借閱信息。權(quán)限較低的用戶只有圖書信息一般查詢權(quán)限,經(jīng)過注冊的用戶可有進(jìn)一步對圖書信息進(jìn)行操作的權(quán)限。2.2用戶需求分析進(jìn)過以上課題調(diào)研,主要有一下需要:(1)一般用戶:對圖書信息進(jìn)行查詢,顯示;(2)注冊用戶:可以對圖書信息進(jìn)行查詢,顯示,借書,還書,導(dǎo)出個(gè)人圖書信息;(3)管理員:針對用戶,可以進(jìn)行用戶信息增刪,用戶信息顯示,用戶信息的查詢;針對圖書,可以進(jìn)行圖書信息的查詢,圖書信息的顯示,圖書信息的錄入,圖書信息的刪除,圖書信息的排序。故需要以下主要函數(shù)用戶登錄管理,登錄信息確認(rèn),查詢圖書功能,顯示圖書信息功能,顯示圖書信息,借書功能,還書功能,個(gè)人圖書管理功能,圖書信息錄入,圖書信息刪除,圖書信息修改以及一些界面跳轉(zhuǎn)3方案設(shè)計(jì)3.1總體功能設(shè)計(jì)(1)實(shí)現(xiàn)一般用戶對圖書信息進(jìn)行查詢,顯示功能;(2)實(shí)現(xiàn)注冊用戶對圖書信息進(jìn)行查詢,顯示,借書,還書,導(dǎo)出個(gè)人圖書信息功能;(3)實(shí)現(xiàn)管理員針對用戶,可以進(jìn)行用戶信息增刪,用戶信息顯示,用戶信息的查詢;實(shí)現(xiàn)針對圖書,可以進(jìn)行圖書信息的查詢,圖書信息的顯示,圖書信息的錄入,圖書信息的刪除,圖書信息的排序。3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)用戶和管理員信息的節(jié)點(diǎn):structuser{ charusername[Max_username_size]; charpassword[Max_password_size];}USERtypedefstructuser1*UserPtr1;圖書信息節(jié)點(diǎn):typedefstructbook{charbookname[65];charauther[65];charchubanshe[65];charprofession[65];intbooknumber;intprice;intonof;structbook*next;}BOOK;我們將結(jié)構(gòu)的創(chuàng)建,初始化,插入刪除等基本操作都封裝在主界面函數(shù),插入函數(shù),注冊函數(shù)等之中,后面還有詳細(xì)的說明,在此不贅述。3.3函數(shù)原型設(shè)計(jì)intshow_function1_window(UserPtr1);顯示普通用戶界面intshow_function2_window(UserPtr1);顯示管理員用戶界面intshow_guanyue_window();普通用戶觀閱函數(shù)intshow_zhuce_window(UserPtr1);顯示注冊界面intshow_queren_window(UserPtr1);顯示確認(rèn)界面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);價(jià)格查詢intDelete(BookPtr);刪除圖書信息intSave(BookPtr);保存圖書信息intmain1();主體函數(shù)3.4主算法設(shè)計(jì)3.5用戶界面設(shè)計(jì)由于時(shí)間原因,低級版本在沒有實(shí)現(xiàn)可視化界面,采用DOS來顯示得到的結(jié)果。4方案實(shí)現(xiàn)4.1開發(fā)環(huán)境與工具編程環(huán)境為visualc++6.0。工具為C語言。4.2程序設(shè)計(jì)關(guān)鍵技術(shù)結(jié)構(gòu)體鏈表的創(chuàng)建,插入,刪除,輸出,排序;文件的讀入讀出,對文件進(jìn)行重新編輯。4.3個(gè)人設(shè)計(jì)實(shí)現(xiàn)(按組員分小節(jié))4.3.1王逸飛、王嘉琦、李聰設(shè)計(jì)實(shí)現(xiàn)1.課題任務(wù)(1)主函數(shù)函數(shù)界面(2)管理員界面函數(shù)(3)管理員主要功能實(shí)現(xiàn)(4)登錄確認(rèn)函數(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("歡迎來到東北大學(xué)圖書館\n");printf("\n\n\n\n"); printf("1:請輸入您的學(xué)名號\n"); printf("2:學(xué)號注冊\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));//將文件中的圖書信息導(dǎo)出,并存放在鏈表中 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)//進(jìn)入主要功能選項(xiàng){io++;if(cmd==0)break;if(io>2){printf("Sorry,wrongnumbermorethanthreetimes!!!\n");printf("系統(tǒng)自動(dòng)退出!?。n");printf("繼續(xù)登錄請重啟程序。");system("pause");return0;}printf("無效字符,無法識別!?。n");if(io>1)printf("最后一次機(jī)會(huì)!");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("最后一次機(jī)會(huì)!");system("pause");}}if(trytime==4&&m!=0){printf("系統(tǒng)自動(dò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("歡迎來到東北大學(xué)圖書館\n");printf("\n\n\n\n"); printf("1:請輸入您的學(xué)號:\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)//確認(rèn)是否為已注冊用戶{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("請輸入圖書價(jià)格:\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,作者\(yùn)n3,出版社\n4,編號\n5,單價(jià)\n6,狀態(tài)\n"); printf("請選擇要進(jìn)行修改的圖書信息所對應(yīng)的序號"); scanf("%d",&changenum);switch(changenum) { case1:printf("請輸入要進(jìn)行修改的書的名字:"); 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("請輸入要進(jìn)行修改的作者的名字:"); 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("請輸入要進(jìn)行修改的書的出版社:"); 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("請輸入要進(jìn)行修改的書的價(jià)格:"); 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("請輸入要進(jìn)行修改的書的編號:"); 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("請輸入要進(jìn)行修改的書的狀態(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("請選擇要?jiǎng)h除的圖書的書名:");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查詢服務(wù)");printf("\n2借書服務(wù)");printf("\n3還書服務(wù)");printf("\n4還清欠款");printf("\n5顯示所有圖書信息");printf("\n\n選擇0退出登錄?。?!");printf("\n\n請選擇您需要的服務(wù):\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,新進(jìn)圖書錄入");printf("\n2,圖書信息查詢");printf("\n3,已有圖書修改");printf("\n4,刪除圖書信息");printf("\n5,查詢圖書信息");printf("\n6,顯示已有圖書信息");printf("\n\n選擇0退出登錄");printf("\n\n請選擇您需要的服務(wù)\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("圖書價(jià)格:%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,按價(jià)格查詢\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("圖書價(jià)格:%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("圖書價(jià)格:%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("圖書價(jià)格:%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("圖書價(jià)格:%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("圖書價(jià)格:%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("請輸入你要查詢的價(jià)格:");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("圖書價(jià)格:%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é)果和輸出主界面選擇進(jìn)入功能的選項(xiàng)1進(jìn)入登錄選項(xiàng)2進(jìn)入注冊選項(xiàng)3管理員登錄4普通身份入口注冊依次輸入賬號和密碼,可選擇是否顯示密碼選擇顯示密碼,則顯示密碼;否則不顯示密碼。提示注冊成功信息。登錄依次按提示輸入賬號和密碼,輸入非注冊密碼會(huì)有報(bào)錯(cuò)提示,最多可輸入三次。(可選擇是否顯示密碼)輸入正確的賬號密碼,顯示普通用戶界面;賬號密碼輸入錯(cuò)誤還有提示。錄入依次輸入圖書信息將輸入的圖書信息保存文件中刪除輸入要?jiǎng)h除的圖書信息的名字將圖書刪除后在保存到文件之中修改選擇修改選項(xiàng)將圖書信息修改后保存到文件中顯示顯示所有圖書信息借書輸入書名書庫內(nèi)有書,顯示借書成功;沒有書顯示借書失敗還書書名提示還書成功查詢輸入查詢選項(xiàng)進(jìn)入不同查詢選項(xiàng)界面5.4系統(tǒng)運(yùn)行系統(tǒng)運(yùn)行結(jié)果如下:6課題總結(jié)6.1課題分析完成了課題要求功能,容易封裝便于使用。6.2團(tuán)隊(duì)協(xié)作本次課程設(shè)計(jì),讓我們感受到了在程序編寫軟件設(shè)計(jì)中團(tuán)隊(duì)你的力量。一個(gè)人的力量對于編寫一個(gè)大型的程序來說簡直是渺茫的,但是編寫程序這種工作又是不能忽略每一個(gè)個(gè)體的,因?yàn)橹灰粋€(gè)人有一個(gè)小小的疏忽,就可能導(dǎo)致整個(gè)程序無法運(yùn)行,甚至崩潰。我們充分利用現(xiàn)代社會(huì)知識信息交流充分發(fā)展的機(jī)會(huì),我們遇到困難時(shí)就去學(xué)校圖書館查找相關(guān)書籍或在網(wǎng)上查找相關(guān)資料。今后的學(xué)習(xí)也應(yīng)該注重理論與實(shí)踐的結(jié)合,多觀察多思考,知道自己所學(xué)知識在實(shí)際應(yīng)用中的作用。6.3個(gè)人設(shè)計(jì)小結(jié)(分組員小結(jié))6.3.1王逸飛設(shè)計(jì)小結(jié)總體上,鞏固了所學(xué)的有關(guān)c語言的知識,強(qiáng)化了對數(shù)據(jù)結(jié)構(gòu)的理解。強(qiáng)化了我們對計(jì)算機(jī)編程操作技能,充實(shí)了有關(guān)數(shù)據(jù)結(jié)構(gòu)的理論知識,拓寬了有關(guān)數(shù)據(jù)結(jié)構(gòu)的知識面,通過數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的學(xué)習(xí),找到了自身知識點(diǎn)的漏洞與欠缺,加深我們對數(shù)據(jù)結(jié)構(gòu)的理解,最關(guān)鍵的是對編程思想的理解,對程序開發(fā)過程中的有了較深層次的而理解,具體來說,加深了我對基本抽象數(shù)據(jù)類型的理解,例如結(jié)構(gòu)體鏈表的操作,間接地也鞏固了之前的有關(guān)C語言的知識,例如基本數(shù)據(jù)類型的操作等,文件的操作也更加的熟練。6.3.1王嘉琦設(shè)計(jì)小結(jié)通過本次程序設(shè)計(jì)課程,我發(fā)現(xiàn)編程最重要的便是可行以及合理,否則也是毫無用處的程序,沒有絲毫意義。剛開始的時(shí)候,總是在空想函數(shù)該怎樣編寫,而沒有考慮實(shí)際生活中圖書館的功能以及工作流程,導(dǎo)致做出來的東西很不切實(shí)際。吸取教訓(xùn)了以后,我仔細(xì)思考借鑒了我們學(xué)校圖書館的操作流程,才寫出行之有效的代碼。6.3.1李聰設(shè)計(jì)小結(jié)此次課程設(shè)計(jì),我通過上網(wǎng)查找資料學(xué)習(xí),深刻理解了線性表及其應(yīng)用。查詢函數(shù)中主要需要對線性表進(jìn)行訪問查詢,線性表的訪問需要遍歷線性表中的元素。在查詢函數(shù)設(shè)計(jì)過程中,需要仔細(xì)判別輸入的條件,考慮各種的可能的查詢情況,使程序完善和健壯。通過此次的課程設(shè)計(jì)我深刻的意識到,要想編好一個(gè)程序需要扎實(shí)的基本功,需要認(rèn)真的學(xué)習(xí)和了解相應(yīng)的知識。編程前,需要做好算法設(shè)計(jì),才能使編程的時(shí)候少犯一些算法邏輯錯(cuò)誤;編程時(shí),需要不斷的編譯及時(shí)改掉語法錯(cuò)誤的地方避免多個(gè)錯(cuò)誤累積看不出錯(cuò)誤的地方;程序編好后,需要對程序輸入極端、特殊情況測試保證程序沒有重大的算法漏洞?;贑8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用HYPERLINK"/detail.htm?
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長江職業(yè)學(xué)院《中外版畫史與經(jīng)典作品欣賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南大學(xué)滇池學(xué)院《畜牧試驗(yàn)設(shè)計(jì)與統(tǒng)計(jì)分析1》2023-2024學(xué)年第一學(xué)期期末試卷
- 校園安全管理規(guī)定與實(shí)施細(xì)則
- 2022年全國碩士研究生招生考試(思想政治理論)真題(含答案)
- 業(yè)務(wù)操作-房地產(chǎn)經(jīng)紀(jì)人《業(yè)務(wù)操作》模擬試卷1
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》預(yù)測試卷2
- 趣味數(shù)學(xué)游戲教學(xué)模板
- 公司員工生日晚會(huì)主持稿
- 二零二五版品牌合作承諾協(xié)議書模板
- 2024-2025學(xué)年陜西省渭南市高一(上)期末數(shù)學(xué)試卷(含答案)
- 物業(yè)工程管理安全培訓(xùn)課件
- 《文化苦旅》讀書分享 PPT
- 氧化鋁生產(chǎn)工藝教學(xué)拜耳法
- 2023年十八項(xiàng)醫(yī)療核心制度考試題與答案
- 氣管切開患者氣道濕化的護(hù)理進(jìn)展資料 氣管切開患者氣道濕化
- GB/T 12706.1-2020額定電壓1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)擠包絕緣電力電纜及附件第1部分:額定電壓1 kV(Um=1.2 kV)和3 kV(Um=3.6 kV)電纜
- 管理模板:某跨境電商企業(yè)組織結(jié)構(gòu)及部門職責(zé)
- 底架總組裝工藝指導(dǎo)書
- 簡單臨時(shí)工勞動(dòng)合同模板(3篇)
- 聚酯合成反應(yīng)動(dòng)力學(xué)
- 上??萍即髮W(xué),面試
評論
0/150
提交評論