ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:183.04KB ,
资源ID:2571511      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2571511.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(实验1报告-图书管理软件系统的开发.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

实验1报告-图书管理软件系统的开发.doc

1、实验1报告 图书管理软件系统的开发 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 31 个人收集整理 勿做商业用途 实验一 管

2、理软件系统的开发 一、实验题目: 设计一个简单实用图书管理系统。 二、实验要求 1.该实验的课内学时是4个课时。 2.程序完成后应该完成如下基本功能: 1)用自定义结构体typedef struct设计该软件的数据结构; 2)用链表将所有的图书按照图书编号顺序链接起来。 3)程序能够输入图书名称、图书编号、ISBN号、单价、作者、出版社。 4)程序能够显示已经输入的指定图书编号的图书的信息。 5)程序能够统计某一类图书(ISBN号相同)的数量. 6)能够判断输入的ISBN号以及图书编号的有效性。 3. 1)程序能够按要求显示指定作者或者指定出版社的图书的数量。 2)

3、允许添加、修改、删除图书信息。 3)设计一个通用模块,能够根据图书的任何一项信息进行排序,并且根据图书编号进程排序(升序或者降序)。 4)能够输入的数据长期存储在文件中,再次运行程序时从文件中读取数据,无须重复输入。 5)在程序的提示语言清晰明确,界面美观并且适用. 三、层次及模块分析 借书 还书 上架新书信息录入 部分图书信息修改 下架图书信息删除除 操作选择菜单 图书信息查询 所有图书信息以文件形式输出保存与从外界文件加载 图书管理系统 1、图书编号输入 2、图书ISBN输入 3、图书编号生成 4、图书名称输入 5、图书作者输入 6、图书出版社输入

4、 7、图书价格输入 8、图书总册数及借出册数输入 9、图书信息地址查询 10、图书信息输出 11、图书排序 12、图书借阅信息输入 13、读者编号输入 14、读者信息地址查询 1、9、12、13、14 1、9、12、13、14 3、2、4、5、6、7、8、 1、9、15 1、9、2、4、5、6、7、8、12 1、9、11、10 15、图书信息删除 三、主要模块设计 Book,*BookList; //图书(列表)数据类型 typedef struct node4 { char ReaderName[10];//读者姓名 int

5、ReaderNo,Rented;//读者编号、借书数量 ReadInfoList readinfo;//借书信息 struct node4*Next;//下一读者 } Reader,*ReaderList; //读者(列表)数据类型 //全局变量 BookList L; ReaderList R; //函数声明 void mainmenu(); void Exit(); void RentBook(); void ReaderNoInput(); Book *BookNoSearch(int BookNo); Reader *ReaderNoSea

6、rch(int ReaderNo); void DateInput(Date*d); void BackBook(); void InfoWriteMenu(); void BookNoInput(Book* writebook); void ISBNInput(Book* writebook); void PriceInput(Book* writebook); void BookNameInput(Book* writebook); void AuthorInput(Book* writebook); void PublisherInput(Book* writebook

7、 void RentInfoWrite(Book* writebook); void BookInfoResearch(); void BookNoResearch(); void BookInfoPrn(Book*B); void ISBNResearch(); Book *ISBNSearch(int isbn); void BookNameResearch(); void BookResort(BookList L); void ResortbyBookNo(BookList L); void ResortbyISBN(BookList L); void Res

8、ortbyBookName(BookList L); void ResortbyAuthor(BookList L); void ResortbyPublisher(BookList L); void ResortbyPrice(BookList L); void AuthorResearch(); void PublisherResearch(); void PriceResearch(); void AddBook(); void DeleteBook(); void BookInfoLoad(); void ReaderInfoLoad(); //主菜单设计 vo

9、id mainmenu() { int OpratNo; printf(”********欢迎使用图书管理系统——揽月制作********\n\t请输入所选操作的序号加回车结束!\n\t1——〉借书!\n\t2—-〉还书!\n\t3—->图书信息修改!\n\t4-—〉图书信息查询!\n\t5—-〉新书上架信息录入!\n\t6-—>下架图书信息删除!\n\t7——>退出图书管理系统!\n"); scanf(”%d”,&OpratNo); switch(OpratNo) { case 1: RentBook();

10、 break; case 2: BackBook(); break; case 3: InfoWriteMenu(); break; case 4: BookInfoResearch(); break; case 5: AddBook(); break; case 6: DeleteBook(); break; case 7:

11、 Exit(); } } //退出系统 void Exit() { printf(”退出系统成功!下次再见!\n"); return; } //借书模块 void RentBook() { Book*book; Reader*reader; book=(Book*)malloc(sizeof(Book)); reader=(Reader*)malloc(sizeof(Reader)); Book*rentbook; Reader*bookreader; RentIn

12、fo*R1,*R2; ReadInfo*r1,*r2; int OprNo; printf(”您将进行借书操作请按提示操作!\n”); printf(”请输入所借图书的编号!\n"); BookNoInput(book);//图书编号输入 rentbook=BookNoSearch(book—〉BookNo);//按编号查询图书信息存储地址 if(rentbook) { rentbook->Rented++;//借出册数加1 R2=(RentInfo*)malloc(sizeof

13、RentInfo)); R1=rentbook-〉rentinfo->Next; while(R1-〉Next) { R1=R1-〉Next; } R1->Next=R2; R2—〉Next=NULL; printf("请输入借书读者编号!”); ReaderNoInput(reader);//读者编号输入 bookreader=(Reader*)ReaderNoSearch(reader—〉ReaderN

14、o);//按读者编号搜索读者信息存储地址 if(bookreader) { bookreader-〉Rented++;//借书册数加1 r2=(ReadInfo*)malloc(sizeof(ReadInfo)); r1=bookreader->readinfo->Next; while(r1->Next) { r1=r1->Next; } r1

15、>Next=r2; r2—>Next=NULL; R2—>BookReader=bookreader; r2-〉RentedBook=rentbook; printf(”请输入借书年、月、日!"); DateInput(&R2—〉RentDate);//日期输入 printf(”请再次输入借书年、月、日!”); DateInput(&r2->RentDate);//日期输入 free(b

16、ook); free(reader); printf("借书操作完成!"); } else printf(”借书操作失败!\n”); } else printf(”借书操作失败!\n"); printf("继续借书请按1加回车,返回主菜单请按2加回车,退出管理系统请按3加回车!"); scanf(”%d”,&OprNo); switch(OprNo) { case 1: RentBook(); brea

17、k; case 2: mainmenu(); break; case 3: Exit(); } } //读者编号输入模块 void ReaderNoInput(Reader*writereader) { scanf(”%d”,writereader—>ReaderNo); } //按编号查询图书信息存储地址模块 Book*BookNoSearch(int BookNo) { Book *B; while(B—>BookNo!=BookNo&&B->Next)

18、 { B=B—〉Next; } if(B->BookNo=BookNo)return B; else { printf("该编号图书不存在!\n”); return NULL; } } //按编号查询读者信息存储地址模块 Reader*ReaderNoSearch(int ReaderNo) { Reader*r=R; if(r—>Next!=NULL) { r=r-〉Next; while(r—>Reade

19、rNo!=ReaderNo&&r->Next)r=r->Next; if(r-〉ReaderNo=ReaderNo)return r; else { printf("该编号读者不存在!\n”); return NULL; } } } //日期输入模块 void DateInput(Date* d) { printf("请输入年、月、日以空格间隔回车结束!\n"); scanf("%d %d %d”,d—〉year, d—〉month,

20、d—〉day); } //还书模块设计 void BackBook() { //int bookno,rederno; Book*backbook; Book*booksign; Reader*bookreader; Reader*readersign; RentInfo*R1,*R2; ReadInfo*r1,*r2; int OprNo; booksign=(Book*)malloc(sizeof(Book)); readersign=(Reader*)malloc(sizeof(R

21、eader)); printf("您将进行还书操作请按提示操作!\n"); printf("请输入所还图书的编号!\n"); BookNoInput(booksign);//图书编号输入 backbook=BookNoSearch(booksign->BookNo);//按编号查询图书信息存储地址 printf(”请输入借书读者编号!”); ReaderNoInput(readersign);//读者编号输入 bookreader=(Reader*)ReaderNoSearch(readersign-〉ReaderNo);/

22、/按读者编号搜索读者信息存储地址 if(backbook&&bookreader) { R2=backbook—>rentinfo; R1=R2—>Next; r2=bookreader-〉readinfo; r1=r2—〉Next; while(R1-〉BookReader!=bookreader&&R1-〉Next) { R2=R1; R1=R1—〉Next; } while(

23、r1-〉RentedBook!=backbook&&r1—〉Next) { r2=r1; r1=r1—〉Next; } if(r1-〉RentedBook==backbook&&R1—>BookReader==bookreader) { backbook—>Rented-—; bookreader—>Rented--; R2->Next=R1—〉Next; free(R

24、1); r2->Next=r1—〉Next; free(r1); printf(”还书操作完成!\n"); } else printf("输入错误还书操作失败!\n”); } printf(”继续还书请按1加回车,返回主菜单请按2加回车,退出管理系统请按3加回车!”); scanf(”%d”,&OprNo); switch(OprNo) { case 1: BackBook(); bre

25、ak; case 2: mainmenu(); break; case 3: Exit(); } } //图书信息修改菜单 void InfoWriteMenu() { int OprNo; int writebookno; Book*writebook; printf("请输入要修改信息的图书的编号加回车结束!\n”); scanf("%d",&writebookno); writebook=(Book*)BookNoSearch(write

26、bookno); printf(”请输入所要修改内容的序号加回车结束!\n1—-〉修改图书编号!\n2—->修改ISBN号!\n3-->修改书名!\n4——>修改图书作者!\n5—->修改图书出版社!\n6-—>修改图书单价!\n7-->修改图书外借信息!8-->返回主菜单!\n9-->退出图书管理系统!\n”); scanf("%d",&OprNo); switch(OprNo) { case 1: printf(”请输入图书编号以回车结束!\n"); BookNoInput(writebook);

27、 printf(”图书信息修改完成!\n”); break; case 2: printf("请输入图书ISBN号以回车结束!\n”); ISBNInput(writebook); printf(”图书信息修改完成!\n"); break; case 3: printf(”请输入图书名称以#号结束!\n"); BookNameInput(writebook); printf("图书信息修改完成!\n”);

28、 break; case 4: printf(”请输入图书作者以#号结束!\n"); AuthorInput(writebook); printf("图书信息修改完成!\n”); break; case 5: printf(”请输入图书出版社以#号结束!\n”); PublisherInput(writebook); printf(”图书信息修改完成!\n"); break; case 6: printf

29、"请输入图书价格回车结束!\n"); PriceInput(writebook); printf(”图书信息修改完成!\n"); break; case 7: printf(”请输入图书外借信息!\n"); RentInfoWrite(writebook); printf("图书信息修改完成!\n"); break; case 8: mainmenu(); break; case 9:

30、 Exit(); break; default: printf("输入错误返回图书信息修改菜单!\n”); InfoWriteMenu(); } } //图书编号输入模块 void BookNoInput(Book* writebook) { scanf(”%d",writebook—>BookNo); } //ISBN号输入模块 void ISBNInput(Book* writebook) { scanf(”%d",writebook-〉ISBN); } //图书价格输入模块

31、 void PriceInput(Book* writebook) { scanf(”%d",writebook->Price); } //图书名称输入模块 void BookNameInput(Book* writebook) { char c; int i; scanf("%c”,&c); for(i=0; c!='#’; i++) { writebook—〉BookName[i]=c; scanf(”%c”,&c); } writebook->BookName[i

32、]=’\0'; } //图书作者输入模块 void AuthorInput(Book* writebook) { char c; int i; scanf(”%c",&c); for(i=0; c!=’#'; i++) { writebook-〉Author[i]=c; scanf(”%c”,&c); } writebook->Author[i]=’\0’; } //图书出版社输入模块 void PublisherInput(Book* writebook) {

33、char c; int i; scanf("%c”,&c); for(i=0; c!=’#’; i++) { writebook—>Publisher[i]=c; scanf("%c",&c); } writebook-〉Publisher[i]='\0’; } //图书外借信息修改模块 void RentInfoWrite(Book*writebook) { int count,readerno; RentInfo*R; //Reader*re; p

34、rintf(”请输入该书外借的册数!\n”); scanf("%d",writebook-〉Rented); for(count=0; count〈writebook—〉Rented; count++) { printf(”请输入第%d册图书借出日期!\n",count+1); R=(RentInfo*)malloc(sizeof(RentInfo)); writebook->rentinfo—〉Next=R; DateInput(&R—〉RentDate); printf(

35、"请输入第%d册图书借阅者的读者编号!\n”,count+1); scanf("%d",&readerno); R—〉BookReader=(Reader*)ReaderNoSearch(readerno); } } //图书信息查询 void BookInfoResearch() { int OprNo;//操作序号 printf(”您将进行图书信息查询操作请按提示进行操作!\n请输入所选操作的序号加回车结束!\n"); printf(”1-->查询所输入图书编号的所有图书!\n”); printf

36、"2——〉查询所输入ISBN号的所有图书!\n"); printf("3—-〉查询所输入书名的所有图书!\n"); printf("4-->查询所输入作者的所有图书!\n”); printf(”5-—〉查询所输入出版社的所有图书!\n”); printf(”6—-〉查询所输入价格的所有图书!\n”); printf(”7-—〉返回主菜单!\n"); printf("8—-〉退出图书管理系统!\n”); scanf(”%d”,&OprNo); switch(OprNo) { case 1:

37、 BookNoResearch(); break; case 2: ISBNResearch(); break; case 3: BookNameResearch(); break; case 4: AuthorResearch(); break; case 5: PublisherResearch(); break; case 6: PriceResea

38、rch(); break; case 7: mainmenu(); break; case 8: Exit(); break; default: printf("输入错误请重新输入!\n"); BookInfoResearch(); } } //查询所输入图书编号的所有图书 void BookNoResearch() { Book*B,*C; C=(Book*)malloc(sizeof(Book)

39、 BookNoInput(C); B=BookNoSearch(C—〉BookNo); BookInfoPrn(B); } //图书信息输出模块 void BookInfoPrn(Book*B) { int avilable,count; RentInfo *info; if(B) { avilable=B—>Total-B—〉Rented; printf(”图书编号:%017d图书ISBN号:%017d图书名称:%10s图书作者:%10s图书出版社:%10s图书价格:%04d

40、图书馆藏册数:%03d图书已借出册数:%03d图书可借册数:%03d\n",B-〉BookNo,B—〉ISBN,B—〉BookName,B—>Author,B-〉Publisher,B—>Price,B—〉Total,B-〉Rented,avilable); info=B->rentinfo-〉Next; for(count=1; count〈=B—〉Rented; count++) { printf(”第%03d位借阅者的借书日期:%4d年%2d月%2d日 借书读者编号:%010d借书读者姓名%4s\n”,inf

41、o—〉RentDate.year,info-〉RentDate.month,info->RentDate。day,info-〉BookReader—>ReaderNo,info—>BookReader->ReaderName); info=info->Next; } } } //查询所输入ISBN号的所有图书! void ISBNResearch() { Book*B,*C; C=(Book*)malloc(sizeof(Book)); ISBNInput(C); //printf(”请输入查

42、询结果的显示的排序方式!\n1——〉按编号升序排序显示!\n2-->按ISBN升序显示!\n3——>按书名ascii码升序显示!\n4——〉按作者的ascii码升序排序!\n5-—〉按出版社的ascii码升序显示!\n6——〉按价格升序显示!\n") B=ISBNSearch(C-〉ISBN); BookInfoPrn(B); } //按ISBN号查询图书信息存储地址模块 Book*ISBNSearch(int isbn) { Book*B=L; while(B—〉ISBN!=isbn&&B-〉Next) { B=B-

43、>Next; } if(B->ISBN=isbn)return B; else { printf(”该ISBN号图书不存在!\n"); return NULL; } } //查询所输入书名的所有图书! void BookNameResearch() { Book*B1,*B2; int flag,count=0; B1=(Book*)malloc(sizeof(Book)); printf(”请输入要查询的书名!\n"); BookNameInput(

44、B1); BookResort(L); B2=L—>Next; flag=0; while(B2—〉Next) { if(strcmp(B2-〉BookName,B1—>BookName)==0) { BookInfoPrn(B2); flag=1; count++; } B2=B2—>Next; } if(!flag)printf(”所输入书名的图书不存在!\n");

45、 else printf("共搜索到%d本所输入书名的图书所有信息如上所示!\n”,count); free(B1); } //图书信息存储链表排序 void BookResort(BookList L) { int OprNo; printf(”请选择图书的排序方式(输入操作序号加回车结束)!\n1——>按编号升序排序显示!\n2-->按ISBN升序显示!\n3-—〉按书名ascii码升序显示!\n4——>按作者的ascii码升序排序!\n5——>按出版社的ascii码升序显示!\n6——>按价格升序显示!\n”); scanf("%d”,&

46、OprNo); switch(OprNo) { case 1: ResortbyBookNo(L); break; case 2: ResortbyISBN(L); break; case 3: ResortbyBookName(L); break; case 4: ResortbyAuthor(L); break; case 5: ResortbyPublishe

47、r(L); break; case 6: ResortbyPrice(L); break; default: printf("输入错误重新选择!\n"); } } //按编号升序排序! void ResortbyBookNo(BookList L) { Book*B1,*B2,*B3;//B1标记插入位置的前一节点 B2标记进行插入的节点 B3标记下一进行排序的节点 if(L-〉Total〉1) { B2=L->Next—>Next;

48、 B3=B2-〉Next; L—>Next-〉Next=NULL; do { B1=L-〉Next; while(B2->BookNo>=B1-〉Next->BookNo&&B1—>Next-〉Next)B1=B1—>Next; if(B2—>BookNo〉=B1—〉Next-〉BookNo) { B2—〉Next=B1-〉Next; B1—>Next=B2

49、 } else { B2—>Next=B1—〉Next-〉Next; B1—>Next->Next=B2; } B2=B3; B3=B3—〉Next; } while(B2=NULL); } else printf("馆藏图书不足两册无需排序!\n"); } //按ISBN升序排序! void Resortby

50、ISBN(BookList L) { Book*B1,*B2,*B3;//B1标记插入位置的前一节点 B2标记进行插入的节点 B3标记下一进行排序的节点 if(L—>Total>1) { B2=L->Next->Next; B3=B2->Next; L-〉Next-〉Next=NULL; do { B1=L—〉Next; while(B2-〉ISBN〉=B1-〉Next—>ISBN&&B1-〉Next-〉Next)B1=B

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服