




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计图书信息管理系统说明书目录一1摘要。32前言。33正文。4二、系统功能51、系统总功能52、系统总框架5三、功能模块的描述61数据结构62MAIN主函数63MENU主菜单94LOGIN口令函数115CREATE()创建图书信息函数126INCREASE()函数147SAVE保存记录到文件函数168READ()函数查看图书信息179DEL()函数删除图书信息1910MODIFY()函数修改图书信息2011SEARCH1()函数按书名搜索图书信息2212SEARCH2()函数按作者名搜索图书信息2413SORT函数按登录号排序2514SORT1()函数按图书价格排序2715PRINT()输出函数。2916系统设测试。30四源代码31五课程设计总结471、设计过程的感受与体会472、遇到的问题与解决方法483创新之处484存在的不足和改进的思想49摘要建立一个“图书借阅管理系统”,系统以菜单方式工作,编写存放有图书信息,包含图书名称、图书编号、单价、作者、数量、借书人姓名、学号等,并可对这些信息进行浏览;可按书名或按编号查找此信息,建立存放图书信息的文件,图书信息有图书名称、图书编号、单价、作者、数量、借书人姓名、学号等,并可对图书信息进行浏览。关键词图书信息管理;文件;浏览;查询;修改;前言近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理本系统通过管理图书馆图书,管理读者从进图书馆到离开的整个过程,以供图书馆图书信息管理。本系统能够维护读者的图书信息、读者信息,为图书借阅提供准确的资料提高了人员的工作效率系统功能1、系统总功能此程序提供了图书管理的功能。随着图书馆的书籍日益增多,对图书进行系统的管理,减轻图书管理员的工作负担显得越来越迫在眉睫。本程序为登记及查询图书信息提供了极大的方便。2、系统总框架二、功能模块的描述1数据结构一个完整的图书信息管理系统包括各种各样的信息,如登录号、书名、作者名、分类号、出版单位、出版时间、价格等。所以每组信息必须先定义数组的元素。C语言允许指定一种数据结构,这种类型的数据结构称为结构体。由于数组存储是采用顺序存放,在内存空间中占用连续空间,所以若干图书信息的管理实质是对顺序存储的线性表的管理。结构点如下STRUCTBOOKLONGNUMCHARAUTHOR15CHARNAME25CHARSORT25CHARADD30LONGTIMEFLOATPRICESTRUCTBOOKNEXT2MAIN主函数主函数是程序的入口,各模块独立,可分块调整,但都均由主函数控制和调用。本程序采用模块化设计。模块化程序就是把一个复杂问题的求解过程分阶段进行,每个阶段处理都控制在人们容易理解和处理的范围内。控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过调用主菜单函数得到的返回值,根据该值,调用相应的各功能函数,同时设置一个断点,即当返回值为一定条件时运行EXIT函数结束程序,以免造成死循环。主函数采用IF语句调用子函数,并实现菜单功能。也可以通过用SWITCH语句实现此功能相对于IF语句更简单、灵活。源程序如下SCANF“D“,IFK1INHEADINCREASEHEADIFINPRINTF“新图书库信息N“PRINTHEADSAVEHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK2HEADREADPRINTHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK3PRINTF“按书名查询1按作者名查询2N“SCANF“D“,IFU1SEARCH1HEADIFU2SEARCH2HEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK4PRINTF“按登录号排序1按图书价钱排序2N“SCANF“D“,IFL1HEADSORTHEADPRINTF“按登录号由小到大排列N“PRINTHEADIFL2HEADSORT1HEADPRINTF“按价钱由小到大排列N“PRINTHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK5IMODIFYHEADIFI1SAVEHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK6INHEADDELHEADIFINPRINTF“新图书库的信息N“PRINTHEADSAVEHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEPRINTF“谢谢使用图书管理系统N“EXIT03MENU主菜单直接利用输出函数PRINTF输出字符串,在屏幕上显示一个菜单,并显示一个提示输入选项,输入17之间的数字,主函数根据这些数字调用相应的功能函数,例如输入“4”调用SORT函数和SORT1()函数实现排序功能。这样直接输出主菜单,制作简便,操作简单。由于程序中很多地方用到了字符串输入语句,会造成下一个字符不能正确读入,为了在程序调用执行了各个函数后能够清晰地看到菜单,并输入新的选项,首先写了一条输出信息,PRINTF“按任意键返回“表示按任意键继续,一条读字符语句GETCH等待输入字符,按任意键即可进入主菜单。源程序为LOGINIFFPFOPEN“BOOKDAT“,“RB“0/打开已存在的图书库信息,如果不存在请先建立DOPRINTF“当前没有图书信息,请先建立图书库信息N“HEADCREATEWHILEHEAD0SAVEHEADPRINTF“保存成功N“HEADREADWHILE1/菜单功能PRINTF“图书信息管理系统N“PRINTF“请选择对应功能的数字键N“PRINTF“|N“PRINTF“|录入图书信息1|N“PRINTF“|浏览所有图书2|N“PRINTF“|查询图书信息3|N“PRINTF“|图书进行排序4|N“PRINTF“|修改图书信息5|N“PRINTF“|删除图书信息6|N“PRINTF“|N“PRINTF“退出程序7N“4LOGIN口令函数用户必须通过输入登录口令登录图书管理系统的主界面,程序开始运行时,调用了口令函数对此进行口令登陆。若口令输入正确,用户则成功登录图书信息管理系统的主界面,然后就能进行各种操作,若口令输入错误,则提示重新输入,三次输错之后退出系统。输入登录号登录号是否正确是否当前是否有图书信息是否重新输入(三次输入不正确自动退出程序)加载数据创建图书信息用PRINTF显示菜单输入菜单选项序号赋给C程序序号是否超出范围是否执行C,并返回C值退出程序源程序VOIDLOGINLONGL,IPRINTF“请输入口令111“SCANF“LD“,FORI0I3IIFL111PRINTF“输入口令错误请重新输入N“SCANF“D“,IFL111PRINTF“登录失败N“EXIT0PRINTF“登录成功N“5CREATE()创建图书信息函数输入口令函数正确,当前存在图书信息BOOKDAT文件,图书信息加载成功,当前如果不存在,系统提示必须录入新的图书信息。CREATE()函数的作用与下面的INCREASE()函数作用相似,但是两者还是有区别,下面对INCREASE()函数说明时,会再次提及。创建图书信息采用的是分项录入,如果一次用SCANF输入所有的图书信息,容易把个别的信息录入错误,界面设计也不美观。分项录入的过程,每次输入都会提示你输入哪项图书信息,用户使用也比较方便。当前不存在BOOKDAT文件,创建新的BOOKDAT文件。P1P2STRUCTBOOKMALLOCLEN,就是创建一个“STRUCTBOOK”类型的存储空间。当输入为“0”时,CREATE()函数结束,输入数据完毕,返回记录数到主函数。源程序为STRUCTBOOKCREATE/建立图书库信息函数STRUCTBOOKP1,P2,DN0D0P1P2STRUCTBOOKMALLOCLENPRINTF“登录号为0时,取消输入N“PRINTF“输入图书登录号“SCANF“LD“,WHILEP1NUM0PRINTF“作者名“SCANF“S“,P1AUTHORPRINTF“书名“SCANF“S“,P1NAMEPRINTF“分类号“SCANF“S“,P1SORTPRINTF“出版单位“SCANF“S“,P1ADDPRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,NN1IFN1DP1ELSEP2NEXTP1P2P1P1STRUCTBOOKMALLOCLENPRINTF“输入图书登录号“SCANF“LD“,P2NEXT0RETURND6INCREASE()函数INCREASE函数与上面提到的CREATE()函数相似,但是INCREASE()函数是基于BOOKDAT文件已存在的的情况下继续增加图书信息,CREATE()函数是BOOKDAT文件不存在的时候必须创立的图书信息函数。首先也是先创建“STRUCTBOOK”类型的存储空间P1P2STRUCTBOOKMALLOCLEN。当输入为“0”时,CREATE()函数结束,输入数据完毕,返回记录数到主函数。创建一个STRUCKBOOK类型的存储空间逐项输入图书信息(包括作者名、书名、登录号、价格等)登录号输入数字0结束提示是否保存记录到磁盘是否调用SAVE函数保存记录到磁盘继续输入源程序如下STRUCTBOOKINCREASESTRUCTBOOKD/添加图书函数STRUCTBOOKP1,P2P1DP2STRUCTBOOKMALLOCLENPRINTF“登陆号为0时,取消添加N“PRINTF“输入图书登录号“SCANF“LD“,IFP2NUM0RETURNPRINTF“作者名“SCANF“S“,P2AUTHORPRINTF“书名“SCANF“S“,P2NAMEPRINTF“分类号“SCANF“S“,P2SORTPRINTF“出版单位“SCANF“S“,P2ADDPRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,WHILEP1NEXT0P1P1NEXTP1NEXTP2NN1P2NEXT0RETURND7SAVE保存记录到文件函数SAVE函数在程序中是十分重要的,它用于保存数据,要不然,每次打开系统都得重新输入数据,这样的系统是没有任何价值的。在程序中的数据输入和输出是以终端为对象的,当程序关闭后,数据也就丢失了,所以SAVE函数将数据输出到磁盘文件上保存起来,使用时从磁盘读入到内存中,这就用到了磁盘文件的读写操作。按照文件的读写要求,先定义一个指向文件的指针,按WB写的方式打开文件,输入保存文件路径和文件名,如果文件不存在则系统自动创建文件,保存在所输的文件夹中。如果文件不能正常打开,则退出程序;否则用WHILE语句实现循环输入。是否保存当前图书库信息是否FPFOPEN“BOOKDAT“,“WB“为输出打开一个文件打开是否成功是否WHILE(P0)不能打开文件FWRITEP,LEN,1,FP写入信息FCLOSEFP关闭文件退出程序源程序为VOIDSAVESTRUCTBOOKP/保存图书函数FILEFPCHARMPRINTF“是否保存当前图书库信息Y/NN“SCANF“S“,IFMY|MYIFFPFOPEN“BOOKDAT“,“WB“0PRINTF“不能打开文件N“RETURNWHILEP0IFFWRITEP,LEN,1,FP1PRINTF“文件写入出错N“PPNEXTFCLOSEFPIFMN|MNPRINTF“退出程序N“EXIT08READ()函数查看图书信息图书信息管理系统的设计要实现最基本的功能时,必须要从磁盘中读取数据,然后再进行其他的显示、查找、分类等操作。按照文件的读写要求,先定义一个指向文件的指针,按照RB的方式打开已经保存好的文件,输入要打开文件的路径和文件名,FPFOPEN“BOOKDAT“,“RB“,在程序中我采用了FREAD函数读入一组数据,而不用FGETC函数,两者的主要区别在于,FREAD函数用来读入一个数据块,FGETC函数一般用来读入一个字符。输入要打开文件的路径和文件名FPFOPEN“BOOKDAT“,“RB“为读入内存打开一个文件打开是否成功是否输出提示不能打开文件退出EXIT定义一个动态的存储空间P1STRUCTBOOKMALLOCLEN用FREAD函数读入数据FCLOSEFP关闭文件提示“加载数据完成”RETURN(D)返回主函数源程序为STRUCTBOOKREAD/读入数据文件FILEFPSTRUCTBOOKP1,P2,DFPFOPEN“BOOKDAT“,“RB“P1STRUCTBOOKMALLOCLENDP2P1WHILEFEOFFPFREADP1,LEN,1,FPP2P1IFP2NEXT0BREAKP1STRUCTBOOKMALLOCLENP2NEXTP1P2NEXT0FCLOSEFPPRINTF“加载数据完成N“RETURND9DEL()函数删除图书信息删除图书信息的登录号,通过登录号来删除一组数据,数据从NUM开始删除,运用指针,指向要删除的数据,直到下一个为“0”时,删除完毕。如果输入删除的登录号在“BOOKDAT”文件中查找不到的时候,提示输出“找不到该登录号的书籍”,返回主函数。输入要删除图书的登录号是否存在该登录号是否删除该登录号的所有图书信息输出“找不到登录号的书籍”是否保存当前图书库信息保存新的图书库返回主函数源程序为STRUCTBOOKDELSTRUCTBOOKD/删除图书函数STRUCTBOOKP1,P2LONGQP1DPRINTF“输入要删除图书的登录号“SCANF“LD“,WHILEP1NUMQP1P1NEXTIFP1NUMQIFDP1DP1NEXTELSEP2NEXTP1NEXTPRINTF“删除登录号LDN“,QNN1ELSEPRINTF“找不到登录号为LD的书籍N“,QRETURND10MODIFY()函数修改图书信息由于录入的记录不是一成不变的,如某本书籍价格调低了,或某本书换了个登录号等,这就有必要对已存在的记录的某些信息作修改,这函数正是为此非常实用的功能而作。先读入记录,输入要修改的对象的登录号,WHILE循环实现由登录号开始修改,由于单个提示修改操作比较麻烦,我采用了一次覆盖所有的信息,再重新输入该登录号的图书信息,直接运用PRINF函数和SCANF函数即可。不过该方法也有不足之处。如果修改的内容是其中的一个信息,譬如只修改书名,重复输入它的所有数据也比较麻烦,不过由于本人熟练C的程度有限,还要继续改进方法。输入要修改书籍登录号WHILE循环提取该图书的所有信指向要修改图书的登录号IFDNUMQ逐项修改图书信息(NUM,AUTHOR,NAME,SORT,ADD,TIME,PRICE)显示修改后的图书信息保存图书信息返回主函数源程序如下INTMODIFYSTRUCTBOOKD/修改函数LONGQCHARUPRINTF“输入要修改书籍的登录号N“SCANF“LD“,WHILEDNUMQIFDNUMQPRINTF“请重新输入图书信息N“PRINTF“登录号“SCANF“LD“,PRINTF“作者名“SCANF“S“,PRINTF“书名“SCANF“S“,PRINTF“分类号“SCANF“S“,PRINTF“出版单位“SCANF“S“,PRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,PRINTF“修改后的信息为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICERETURN1ELSEPRINTF“找不到该书籍N“11SEARCH1()函数按书名搜索图书信息当需要寻找自己想要的某本图书时,如果在所有的图书信息中一本本地寻找比较麻烦,如果信息量大的话那几乎不可能找到。所以图书管理系统必须增设一些最简单的功能,搜索功能就是其中的基础功能之一。当你知道你要寻找的书名时,就可以用SEARCH1()函数来帮助你寻找你所需要的图书信息。因关系是字符串,比较用字符串比较函数STRCMP实现,从第0开始,比较输入的关系与记录中的关系是否一致则,一致则显示此记录,接着比较下一条记录,直到比较完所有记录输入要查询的书籍名称WHILESTRCMPDNAME,P1NAMEP1STRUCTBOOKMALLOCLENPRINTF“请输入要查询的书名N“SCANF“S“,P1NAMEWHILESTRCMPDNAME,P1NAMEIFSTRCMPDNAME,P1NAMEPRINTF“所查询图书信息为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICEELSEPRINTF“找不到所查询的书籍N“12SEARCH2()函数按作者名搜索图书信息图书搜索信息的另外一种方法是按照书籍的作者名查询,所用的方法跟上面的搜索方法一样。都是通过STRCMP函数进行判断其是否一致,相同就输出要查询的图书信息,不一致就比较下一条直到循环结束。输入要查询的作者名称WHILESTRCMPDAUTHOR,P1AUTHORP1STRUCTBOOKMALLOCLENPRINTF“输入要查询书籍的作者名N“SCANF“S“,P1AUTHORWHILESTRCMPDAUTHOR,P1AUTHORIFSTRCMPDAUTHOR,P1AUTHORPRINTF“所查询书籍为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICEELSEPRINTF“找不到所查询的书籍N“13SORT函数按登录号排序选择排序是一种比较简单且常用的排序方法。具体的做法是将结构中的每一项都进行比较,例如设有10个元素A1A10,将A1与A2A10进行比较,若A1比A2都小,则将其中最大的一个与A1交换,此时A1中存放了10个中最小的数。第二轮将A2与A3A10比较,将剩下的9个数中的最小者AI与A2对换,此时A2中存放的是10个中第二小的数。依次类推,进行比较直到都由小到大排列。SORT()函数是按照登录号的大小来排序的。分配空间P3STRUCTBOOKMALLOCLEN图书信息不为0WHILEP10前一本图书的登录号大于下一本图书的登录号是否把图书信息交换P1指向下一本图书P10是否P2指向下一本图书返回(P)到主函数源程序为STRUCTBOOKSORTSTRUCTBOOKP1/按登录号排序函数STRUCTBOOKP2,P,P3P3STRUCTBOOKMALLOCLENPP2P1WHILEP10IFP2NUMP1NUMP3NUMP2NUMSTRCPYP3AUTHOR,P2AUTHORSTRCPYP3NAME,P2NAMESTRCPYP3SORT,P2SORTSTRCPYP3ADD,P2ADDP3TIMEP2TIMEP3PRICEP2PRICEP2NUMP1NUMSTRCPYP2AUTHOR,P1AUTHORSTRCPYP2NAME,P1NAMESTRCPYP2SORT,P1SORTSTRCPYP2ADD,P1ADDP2TIMEP1TIMEP2PRICEP1PRICEP1NUMP3NUMSTRCPYP1AUTHOR,P3AUTHORSTRCPYP1NAME,P3NAMESTRCPYP1SORT,P3SORTSTRCPYP1ADD,P3ADDP1TIMEP3TIMEP1PRICEP3PRICEP1P1NEXTIFP10P2P1P2NEXTRETURNP14SORT1()函数按图书价格排序在某些情况下需要对所有的图书进行价格分类的时候,就必须要对书籍进行按价格排序。方法与上面的一样,而且针对个各种不同的情况,还可以增加排序的类型。这里只列举两种排序。分配空间P3STRUCTBOOKMALLOCLEN图书信息不为0WHILEP10前一本图书的价钱大于下一本图书的价钱是否把图书信息交换P1指向下一本图书P10是否P2指向下一本图书返回(P)到主函数源程序为STRUCTBOOKSORT1STRUCTBOOKP1/按价格排序函数STRUCTBOOKP2,P,P3P3STRUCTBOOKMALLOCLENPP2P1WHILEP10IFP2PRICEP1PRICEP3PRICEP2PRICESTRCPYP3AUTHOR,P2AUTHORSTRCPYP3NAME,P2NAMESTRCPYP3SORT,P2SORTSTRCPYP3ADD,P2ADDP3TIMEP2TIMEP3NUMP2NUMP2PRICEP1PRICESTRCPYP2AUTHOR,P1AUTHORSTRCPYP2NAME,P1NAMESTRCPYP2SORT,P1SORTSTRCPYP2ADD,P1ADDP2TIMEP1TIMEP2NUMP1NUMP1PRICEP3PRICESTRCPYP1AUTHOR,P3AUTHORSTRCPYP1NAME,P3NAMESTRCPYP1SORT,P3SORTSTRCPYP1ADD,P3ADDP1TIMEP3TIMEP1NUMP3NUMP1P1NEXTIFP10P2P1P2NEXTRETURNP15PRINT()输出函数PRINT函数是个简单的PRINTF函数,作用是显示需要的图书信息。每次进行排序,查询等操作时都要调用PRINTF函数。调用PRINTF直接输出包括登录号、作者名、书名、分类号、出版单位、出版时间、图书价格等,图书信息。PRINTF“登录号、作者名、书名、分类号、出版单位、出版时间、图书价格元”WHILEP0PRINTF“9LD5S6S8S8S8LD62FN“,PNUM,PAUTHOR,PNAME,PSORT,PADD,PTIME,PPRICEPPNEXT源程序为VOIDPRINTSTRUCTBOOKP/输出函数PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“WHILEP0PRINTF“9LD5S6S8S8S8LD62FN“,PNUM,PAUTHOR,PNAME,PSORT,PADD,PTIME,PPRICEPPNEXT16系统测试用以下的例子做测试,选择输入操作,依次输入,图书条码,作者名,返回则选择浏览、查询、修改、删除功能。图书条码书名作者名出版单位出版时间是否借出978730202801程序设计试题汇编谭浩强清华大学出版社1998是9787302104490零件设计高级篇白晶清华大学出版社2005否9771009503607海外英语席广辉安徽科学技术出版社2005是9787560825335高等数学习题集李炳钊同济大学出版社2003是9787562811770高等数学解题指导林正国华东理工大学出版社2001否97877207032799家春秋巴金人民文学出版社2005是9787562306573数学物理方法何淑芷华南理工大学出版社2001否9787312014406四级语法集训王少琳中国科学技术大学出版社2002是三源程序INCLUDEINCLUDEINCLUDEDEFINELENSIZEOFSTRUCTBOOKSTRUCTBOOK/定义结构体/LONGNUMCHARAUTHOR15/作者名CHARNAME25/书名CHARSORT25/分类号CHARADD30/出版单位LONGTIME/出版时间FLOATPRICE/价格STRUCTBOOKNEXTINTNVOIDMAINVOIDLOGIN/对口令函数的声明VOIDSAVESTRUCTBOOKP/对保存函数的声明STRUCTBOOKREAD/对读入函数的声明STRUCTBOOKCREATEVOID/建立图书库信息函数的声明STRUCTBOOKDELSTRUCTBOOKD/删除图书函数的声明STRUCTBOOKINCREASESTRUCTBOOKD/添加图书函数的声明VOIDSEARCH1STRUCTBOOKD/书名搜索函数的声明VOIDSEARCH2STRUCTBOOKD/作者名搜索函数的声明INTMODIFYSTRUCTBOOKD/修改图书函数的声明STRUCTBOOKSORTSTRUCTBOOKD/排序函数的声明STRUCTBOOKSORT1STRUCTBOOKDVOIDPRINTSTRUCTBOOKP/输出函数的声明STRUCTBOOKHEADFILEFPINTK,I,LCHARULOGINIFFPFOPEN“BOOKDAT“,“RB“0/打开已存在的图书库信息,如果不存在请先建立DOPRINTF“当前没有图书信息,请先建立图书库信息N“HEADCREATEWHILEHEAD0SAVEHEADPRINTF“保存成功N“HEADREADWHILE1/菜单功能PRINTF“图书信息管理系统N“PRINTF“请选择对应功能的数字键N“PRINTF“|N“PRINTF“|录入图书信息1|N“PRINTF“|浏览所有图书2|N“PRINTF“|查询图书信息3|N“PRINTF“|图书进行排序4|N“PRINTF“|修改图书信息5|N“PRINTF“|删除图书信息6|N“PRINTF“|N“PRINTF“退出程序7N“SCANF“D“,IFK1/录入图书信息INHEADINCREASEHEAD/调用添加函数添加图书信息IFINPRINTF“新图书库信息N“PRINTHEAD/调用输出函数显示图书信息SAVEHEAD/调用保存函数保存图书信息PRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK2/浏览图书信息HEADREAD/调用READ函数查看所有图书信息PRINTHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK3/查询图书信息PRINTF“按书名查询1按作者名查询2N“SCANF“D“,IFU1SEARCH1HEAD/调用SEARCH1函数进行按书名查询图书信息IFU2SEARCH2HEAD/调用SEARCH2函数进行按作者名查询图书信息PRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK4/图书信息排序PRINTF“按登录号排序1按图书价钱排序2N“SCANF“D“,IFL1/调用SORT函数进行按登录号排序HEADSORTHEADPRINTF“按登录号由小到大排列N“PRINTHEADIFL2HEADSORT1HEADPRINTF“按价钱由小到大排列N“/调用SORT1函数进行按登录号排序PRINTHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK5/修改图书信息IMODIFYHEAD/调用MODIFY函数进行修改图书信息IFI1SAVEHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEIFK6/删除图书信息INHEADDELHEAD/调用DEL函数进行删除图书信息IFINPRINTF“新图书库的信息N“PRINTHEADSAVEHEADPRINTF“按任意键返回“GETCHSYSTEM“CLS“PRINTF“NNN“CONTINUEPRINTF“谢谢使用图书管理系统N“EXIT0/退出程序VOIDLOGIN/输入口令函数LONGL,IPRINTF“请输入口令111“SCANF“LD“,FORI0I3IIFL111PRINTF“输入口令错误请重新输入N“SCANF“D“,IFL111PRINTF“登录失败N“EXIT0PRINTF“登录成功N“VOIDSAVESTRUCTBOOKP/保存图书函数FILEFPCHARMPRINTF“是否保存当前图书库信息Y/NN“SCANF“S“,IFMY|MYIFFPFOPEN“BOOKDAT“,“WB“0PRINTF“不能打开文件N“RETURNWHILEP0IFFWRITEP,LEN,1,FP1PRINTF“文件写入出错N“PPNEXTFCLOSEFPIFMN|MNPRINTF“退出程序N“EXIT0STRUCTBOOKREAD/读入数据文件FILEFPSTRUCTBOOKP1,P2,DFPFOPEN“BOOKDAT“,“RB“P1STRUCTBOOKMALLOCLENDP2P1WHILEFEOFFPFREADP1,LEN,1,FPP2P1IFP2NEXT0BREAKP1STRUCTBOOKMALLOCLENP2NEXTP1P2NEXT0FCLOSEFPPRINTF“加载数据完成N“RETURNDSTRUCTBOOKCREATE/建立图书库信息函数STRUCTBOOKP1,P2,DN0D0P1P2STRUCTBOOKMALLOCLENPRINTF“登录号为0时,取消输入N“PRINTF“输入图书登录号“SCANF“LD“,WHILEP1NUM0PRINTF“作者名“SCANF“S“,P1AUTHORPRINTF“书名“SCANF“S“,P1NAMEPRINTF“分类号“SCANF“S“,P1SORTPRINTF“出版单位“SCANF“S“,P1ADDPRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,NN1IFN1DP1ELSEP2NEXTP1P2P1P1STRUCTBOOKMALLOCLENPRINTF“输入图书登录号“SCANF“LD“,P2NEXT0RETURNDSTRUCTBOOKDELSTRUCTBOOKD/删除图书函数STRUCTBOOKP1,P2LONGQP1DPRINTF“输入要删除图书的登录号“SCANF“LD“,WHILEP1NUMQP1P1NEXTIFP1NUMQIFDP1DP1NEXTELSEP2NEXTP1NEXTPRINTF“删除登录号LDN“,QNN1ELSEPRINTF“找不到登录号为LD的书籍N“,QRETURNDSTRUCTBOOKINCREASESTRUCTBOOKD/添加图书函数STRUCTBOOKP1,P2P1DP2STRUCTBOOKMALLOCLENPRINTF“登陆号为0时,取消添加N“PRINTF“输入图书登录号“SCANF“LD“,IFP2NUM0RETURNPRINTF“作者名“SCANF“S“,P2AUTHORPRINTF“书名“SCANF“S“,P2NAMEPRINTF“分类号“SCANF“S“,P2SORTPRINTF“出版单位“SCANF“S“,P2ADDPRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,WHILEP1NEXT0P1P1NEXTP1NEXTP2NN1P2NEXT0RETURNDVOIDSEARCH1STRUCTBOOKD/按书名搜索函数STRUCTBOOKP1P1STRUCTBOOKMALLOCLENPRINTF“请输入要查询的书名N“SCANF“S“,P1NAMEWHILESTRCMPDNAME,P1NAMEIFSTRCMPDNAME,P1NAMEPRINTF“所查询图书信息为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICEELSEPRINTF“找不到所查询的书籍N“VOIDSEARCH2STRUCTBOOKD/按作者名搜索函数STRUCTBOOKP1P1STRUCTBOOKMALLOCLENPRINTF“输入要查询书籍的作者名N“SCANF“S“,P1AUTHORWHILESTRCMPDAUTHOR,P1AUTHORIFSTRCMPDAUTHOR,P1AUTHORPRINTF“所查询书籍为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICEELSEPRINTF“找不到所查询的书籍N“INTMODIFYSTRUCTBOOKD/修改函数LONGQCHARUPRINTF“输入要修改书籍的登录号N“SCANF“LD“,WHILEDNUMQIFDNUMQPRINTF“请重新输入图书信息N“PRINTF“登录号“SCANF“LD“,PRINTF“作者名“SCANF“S“,PRINTF“书名“SCANF“S“,PRINTF“分类号“SCANF“S“,PRINTF“出版单位“SCANF“S“,PRINTF“出版时间“SCANF“LD“,PRINTF“图书价格元“SCANF“F“,PRINTF“修改后的信息为N“PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“PRINTF“9LD5S6S8S8S8LD62FN“,DNUM,DAUTHOR,DNAME,DSORT,DADD,DTIME,DPRICERETURN1ELSEPRINTF“找不到该书籍N“STRUCTBOOKSORTSTRUCTBOOKP1/按登录号排序函数STRUCTBOOKP2,P,P3P3STRUCTBOOKMALLOCLENPP2P1WHILEP10IFP2NUMP1NUMP3NUMP2NUMSTRCPYP3AUTHOR,P2AUTHORSTRCPYP3NAME,P2NAMESTRCPYP3SORT,P2SORTSTRCPYP3ADD,P2ADDP3TIMEP2TIMEP3PRICEP2PRICEP2NUMP1NUMSTRCPYP2AUTHOR,P1AUTHORSTRCPYP2NAME,P1NAMESTRCPYP2SORT,P1SORTSTRCPYP2ADD,P1ADDP2TIMEP1TIMEP2PRICEP1PRICEP1NUMP3NUMSTRCPYP1AUTHOR,P3AUTHORSTRCPYP1NAME,P3NAMESTRCPYP1SORT,P3SORTSTRCPYP1ADD,P3ADDP1TIMEP3TIMEP1PRICEP3PRICEP1P1NEXTIFP10P2P1P2NEXTRETURNPSTRUCTBOOKSORT1STRUCTBOOKP1/按价格排序函数STRUCTBOOKP2,P,P3P3STRUCTBOOKMALLOCLENPP2P1WHILEP10IFP2PRICEP1PRICEP3PRICEP2PRICESTRCPYP3AUTHOR,P2AUTHORSTRCPYP3NAME,P2NAMESTRCPYP3SORT,P2SORTSTRCPYP3ADD,P2ADDP3TIMEP2TIMEP3NUMP2NUMP2PRICEP1PRICESTRCPYP2AUTHOR,P1AUTHORSTRCPYP2NAME,P1NAMESTRCPYP2SORT,P1SORTSTRCPYP2ADD,P1ADDP2TIMEP1TIMEP2NUMP1NUMP1PRICEP3PRICESTRCPYP1AUTHOR,P3AUTHORSTRCPYP1NAME,P3NAMESTRCPYP1SORT,P3SORTSTRCPYP1ADD,P3ADDP1TIMEP3TIMEP1NUMP3NUMP1P1NEXTIFP10P2P1P2NEXTRETURNPVOIDPRINTSTRUCTBOOKP/输出函数PRINTF“登录号作者名书名分类号出版单位出版时间图书价格元N“WHILEP0PRINTF“9LD5S6S8S8S8LD62FN“,PNUM,PAUTHOR,PNAME,PSORT,PADD,PTIME,PPRICEPPNEXT四课程设计总结1、设计过程的感受与体会学了一学期的C语言课,感觉到自己掌握的不多,又很少去上机实践。在课程设计中,需要自己做一个系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业生产过程中的智能优化
- 工作中的自我管理与时间管理技巧
- 工作中的目标管理与效率提升策略
- 工业节能改造项目投资报告
- 工业设计的发展趋势与创新点分析
- 工作休闲两不误-可穿戴设备在办公室和休闲场合的应用研究
- 工程中机电设备安装与调试技术
- 工作流程优化与提高工作效率的策略
- 工厂废水处理的成效及经验分享
- 工程机械的节能减排技术应用研究
- AC-10C沥青混合料配合比设计检验报告
- 模具保养记录表
- 形象店加盟管理方案
- 1.《郑人买履》课件PPT
- T∕ZS 0128-2020 既有建筑结构安全智慧监测技术规程
- 发电机定子绕组泄漏电流和直流耐压试验作业指导书
- 冀教版小学美术六年级下册教案
- 甘肃省生态功能区划
- DB22∕T 1073-2011 绿色淫羊藿生产技术规程
- 教练技术LP三阶段教练手册
- 国家开放大学《人文英语3》章节测试参考答案
评论
0/150
提交评论