关闭

关闭

封号提示

内容

首页 图书馆借阅管理系统(无错误修改版).doc

图书馆借阅管理系统(无错误修改版).doc

图书馆借阅管理系统(无错误修改版).doc

上传者: 曲凡 2011-12-28 评分1 评论0 下载29 收藏0 阅读量307 暂无简介 简介 举报

简介:本文档为《图书馆借阅管理系统(无错误修改版)doc》,可适用于专题技术领域,主题内容包含吉首大学课程设计信息科学与工程学院级计科一班陈照希、胡蝶、高其显吉首大学课程设计报告课程名称《高级语言程序设计》课程设计课题名称图书借阅管理系统专业符等。

吉首大学课程设计信息科学与工程学院级计科一班陈照希、胡蝶、高其显吉首大学课程设计报告课程名称《高级语言程序设计》课程设计课题名称图书借阅管理系统专业计算机科学与技术班级计科一班学号、、姓名陈照希、胡蝶、高其显指导教师何迎生年月日目录设计内容与设计要求.设计内容.设计要求二、设计的目的三、参与人员与组织方式四、设计内容五、课程设计报告程序设计准备程序设计说明程序的主要功能六功能模块的划分主函数模块图书基本信息显示模块图书基本信息输入模块图书基本信息查询模块图书基本信息删除模块图书基本信息录入模块图书基本信息修改模块读文件模块文件保存模块七主要功能的实现八程序调试九.原代码清单及注释十总结一、设计内容与设计要求.设计内容:对一个有N本图书的图书馆通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。()、本系统采用一个包含N个数据的结构体数组每个数据的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。()、本系统显示这样的菜单:图书基本信息录入图书基本信息显示图书基本信息删除图书基本信息修改图书基本信息查询(按书号查询、书名等)g退出系统()、执行一个具体的功能之后程序将重新显示菜单。.设计要求:()、内容编写一个图书借阅管理程序可以管理书目对图书的查找管理借阅信息。()、设计要求)程序采用字符界面)显示功能菜单用户指定键即可进入相应功能)书目及借阅数据按记录保存于文本文件)程序应该考虑到数据的完整性有效性二、设计的目的《高级语言序设计》课程设计是计算机科学与技术专业和网络工程专业集中实践性环节之一是学习完《高级语言程序设计》课程后进行的一次全面的综合练习。本课程设计主要目的在于加深学生对高级语言程序设计的基本理论和基本语法知识的理解全面掌握高级语言程序设计的基本方法和技术熟悉相关编程环境和工具能够熟练地运用CC编写较为简单的应用程序并对之进行调试分析。按照专业人才培养方案规定本课程设计合格学生记学分分。三、参与人员与组织方式按照专业人才培养方案本课程设计要求级计算科学与技术专业和网络工程专业的所有学生必须按时完成。为了保证设计的质量本课程设计以组为单位人一组进行组织配备一位指导老师进行指导。课程设计时间共两周从年月日开始到年月日结束。四、设计内容以Windowsxp或Windows等为开发平台以VisualC或GCCG(IDE推荐MinGWDeveloperStudio)作为开发工具和开发环境用纯C或C编码完成一个小型实用程序的设计、算法分析和编码、调试程序采用控制台字符界面数据采用文本文件存储要求程序功能清晰、完善能正常运行有明确的输入输出结果正确用户界面友好代码要求符合标准排版清晰风格良好。设计过程应该提供完善的设计文档代码说明文档。五、课程设计报告程序设计准备做系统前首先我们详细看了《C程序设计》(教科书)基本自学会了文件的相关内容理解了相关函数的用法和作用另外我们上网查询了很多相关资料还有找了很多相关的系统都详细的看了一遍加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容图书信息管理系统有助于C语言学习的进一步巩固在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一它有助于学校对图书馆书籍的基本管理。程序设计说明根据题目要求应当把图书信息用结构体形式输入再定义一个全局变量和文件指针进行整个程序的运行然后把图书信息送到文件中去所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入浏览查询删除和修改等功能的操作所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能在运行时达到所要求的目的。程序的主要功能图书管理在生活中运用非常广泛因此需要用许多的程序来对它们进行管理。图书借阅管理系统是对图书信息的基本管理它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。通过编译一个C语言函数其中包含一个主函数多个子函数主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。、图书基本信息显示:显示已被录入图书的所有信息。、图书基本信息删除:通过输入书名判断此图书是否存在若存在则删除该图书所有信息若不存在则提示用户重新输入图书书名。、图书基本信息修改:通过输入书名判断此图书是否存在若不存在则提示用户重新输入图书书名若存在则可对图书各项信息进行修改。、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。、退出系统:即退出图书借阅管理系统。使用模块化编程的方法每项功能有一个或多个函数组合来完成其中菜单选项模块对应如下:图书基本信息录入==>voidinsert()图书基本信息显示==>voidprint()图书基本信息删除==>voiddel()图书基本信息修改==>voidmodify()图书基本信息查询==>voidfind()这份代码中各个变量的定义如下:num图书编号name书名author作者pub出版社where出版日期count单价六功能模块的划分主函数模块根据图书馆信息管理系统的要求可设计一个主函数及定义多个用户自定义函数。在主函数中定义全局变量即是在函数外部定义的变量其不属于某一个函数而属于一个源程序文件在整个程序内可以多次被引用。图书基本信息显示模块当用户选择图书基本信息显示时程序会将所有图书信息列出。图书基本信息输入模块在程序开始运行创建文件库时调动此模块提示用户输入新的图书编号(编号为时结束输入)然后继续输入图书书名作者出版社出版日期单价等信息。结束输入时提示用户图书输入完成。图书基本信息查询模块用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后查找出该图书是否存在若存在则显示该图书信息若不存在则提示用户无此图书信息。图书基本信息删除模块用户输入所要删除的图书书名先查找该图书是否存在若存在则删除该图书所有信息若不存在则提示无此图书信息。图书基本信息录入模块首先输入图书录入的编号(不为)判断是否有重复的编号若有则提示用户该书已存在若无则继续录入书名、作者、出版社、单价。图书基本信息修改模块用户输入要修改的书名判断该书是否存在若不存在则提示用户无此图书信息若存在则提示用户选择修改项目然后提示用户图书信息修改完成。读文件模块在运行该程序时程序会自动检测是否存在图书信息若存在则会显示图书信息若不存在则会提示用户创建文件库录入图书信息。文件保存模块当用户对图书信息有录入修改删除等操作时程序会自动保存操作和新的图书信息。七主要功能的实现程序运行流程:但每个模块运行完即会回到主函数然后选择其他或退出。八程序调试第一次运行程序时库文件不存在图书信息于是录入图书信息。图书编号书名作者出版社出版日期单价英语张三人民教育出版社主界面。在主界面选择开始录入新的图书信息。图书编号书名作者出版社出版日期单价数学李四高等教育出版社在主界面选择查询图书信息按或分别选择按书名或书号查询。(以《英语》为例)选择按书号查找输入书号:即可查询图书《英语》所有信息。选择按书名查找输入书名:英语即可获得图书《英语》所有信息。在主界面选择对图书资料进行删除(以《数学》为例)在后续图书信息显示时无《数学》图书信息。在主界面选择对图书进行修改(以《英语》为例修改图书作者将作者更换为王五)在后续图书基本信息显示时作者不将是张三而是王五。在主界面选择图书基本信息显示此时图书信息经过删除和修改和初始信息不同。九.原代码清单及注释#include<stdioh>#include<stringh>#include<conioh>#include<stdlibh>#defineNsizeof(structbook)#definePT"dssssdn",p>num,p>name,p>author,p>pub,p>where,p>countstructbook*图书信息*{intnum*书号*charname*书名*charwhere*出版日期*charauthor*作者*charpub*出版社*intcount*单价*structbook*next}voidfind(structbook*p)voidfind(structbook*p)*输出模块*voidprint(structbook*p){structbook*psystem("cls")p=p>nextprintf("nn^^^^^^^^^^^^^^^^图书信息表^^^^^^^^^^^^^^^^")printf("nn图书编号图书名称作者出版社出版日期单价nn")while(p!=){printf(PT)p=p>next}getch()输入任意值返回system("cls")}*输入模块*structbook*creat(){structbook*head,*p,*pinti=head=p=(structbook*)malloc(N)分配新的内存给phead>next=printf("nntt录入图书信息")printf("n")while(){p=(structbook*)malloc(N)printf("n请输入图书编号(书号为结束):")scanf("d",p>num)if(p>num!=){printf("nn书名作者出版社出版日期单价nnn")scanf("ssssd",p>name,p>author,p>pub,p>where,p>count)p>next=pp=pi}elsebreak}p>next=free(p)printf("n")printf("nttd种书录入完毕",i)getch()system("cls")returnhead}*查找模块*voidfind(structbook*p){intvsystem("cls")printf("按书名查找nnn")printf("按书号查找n")scanf("d",v)switch(v){case:find(p)breakcase:find(p)breakdefault:}}voidfind(structbook*p){system("cls")charnameintflag=structbook*pp=p>nextprintf("请输入要查找的书名:n")scanf("s",name)for(p=ppp=p>next)if(strcmp(p>name,name)==){printf("nn图书编号图书名称作者出版社出版日期单价nn")printf(PT)flag=break}if(flag)printf("n暂无此图书信息n")当flag=时执行getch()}voidfind(structbook*p){system("cls")intnumintflag=structbook*pp=p>nextprintf("请输入要查找的书号:n")scanf("d",num)for(p=ppp=p>next)if(p>num==num){printf("nn图书编号图书名称作者出版社出版日期单价nn")printf(PT)flag=break}if(flag)printf("n暂无此图书信息n")getch()}*删除模块*voiddel(structbook*p){system("cls")charnameintflag=structbook*pp=pprintf("请输入要删除的书名:n")scanf("s",name)while(p!=){if(strcmp(p>name,name)==){p>next=p>next后续结点连接到前驱结点之后free(p)printf("t该书资料已删除")flag=break}p=pp=p>next}if(flag)printf("nt无此图书信息。")getch()system("cls")}*录入模块*voidinsert(structbook*p){structbook*psystem("cls")p=(structbook*)malloc(N)while(){printf("n请输入要录入的图书编号(书号为退出):")scanf("d",p>num)if(p>num!=){if(p>next!=p>next>num==p>num)找到重号{p=p>nextfree(p)printf("t该书已存在")}else{printf("nn书名作者出版社出版日期单价nnn")scanf("ssssd",p>name,p>author,p>pub,p>where,p>count)p>next=p>nextp>next=pprintf("t已成功录入")}}elsebreak}getch()system("cls")}*修改模块*voidmodify(structbook*p){system("cls")charnameintflag=intchoicestructbook*pp=p>nextprintf("请输入要修改的书名:nn")scanf("s",name)while(p!=flag==){if(strcmp(p>name,name)==){printf("nt请选择要修改的项:")printf("nt修改图书编号n")printf("nt修改图书出版日期n")printf("nt修改图书作者n")printf("nt修改图书出版社n")printf("nt修改图书单价n")scanf("d",choice)switch(choice){case:{printf("n请输入新的图书编号:")scanf("d",p>num)break}case:{printf("n请输入新的图书出版日期:")scanf("s",p>where)break}case:{printf("n请输入新的图书作者:")scanf("s",p>author)break}case:{printf("n请输入新的图书出版社:")scanf("s",p>pub)break}case:{printf("n请输入新的图书单价:")scanf("d",p>count)break}}printf("nt该项已成功修改。nt新的图书信息:")printf("nn图书编号图书名称作者出版社出版日期单价nn")printf(PT)flag=}p=pp=p>next}if(flag)printf("nt暂无此图书信息。")getch()system("cls")}*读文件*structbook*readfile(){inti=structbook*p,*p,*head=FILE*fpif((fp=fopen("librarytxt","rb"))==)以只读的方式打开文件{printf("nnt********库文件不存在请创建!**********")getch()return}head=(structbook*)malloc(N)p=headhead>next=printf("n已有图书信息:")printf("nn图书编号图书名称作者出版社出版日期单价nn")while(!feof(fp)){p=(structbook*)malloc(N)while(fscanf(fp,"dssssd",p>num,p>name,p>author,p>pub,p>where,p>count)!=EOF){printf(PT)i}p>next=pp=p}p>next=fclose(fp)printf("n共种d图书信息",i)printf("nnn文件中的信息以正确读出。按任意键返回。")getch()system("cls")return(head)}*保存文件*voidsave(structbook*head){FILE*fpstructbook*pfp=fopen("librarytxt","wb")以只写方式打开二进制文件if(fp==)打开文件失败{printf("n=====>打开文件失败!n")getch()return}elsefor(p=head>nextp!=p=p>next)fprintf(fp,"dssssdn",p>num,p>name,p>author,p>pub,p>where,p>count)fclose(fp)printf("nt保存文件成功!n")}voidmain(){structbook*head=intchoice=head=readfile()if(head==){printf("ntt********************")getch()head=creat()}do{system("cls")printf("Welcomen")printf("欢迎您图书管理员nnnn")printf("****************************************nn")printf("n请选择:")printf("n图书基本信息录入n")printf("n图书基本信息查询n")printf("n图书基本信息删除n")printf("n图书基本信息修改n")printf("n图书基本信息显示n")printf("n退出系统n")printf("****************************************n")scanf("d",choice)switch(choice){case:find(head)breakcase:modify(head)breakcase:insert(head)breakcase:del(head)breakcase:print(head)breakcase:system("cls")break}}while(choice!=)save(head)}十总结通过为期一周的课程设计对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础在我们计科专业的学习中占据着十分重要的地位。我们C语言编程的能力有了提高特别是在文件、指针、数组、函数和结构体方面有了很大提高另外还学习了课本没有讲到的知识学会了使用模块化编程的简单方法另外在对话框的编程要求美观、方面也有了体会。循环是C语言的重要方法也是本程序的灵魂它在本程序中既有“穿针引线”的作用也起到了对数据进行分析、存贮、读取等重要的作用本程序在使用循环过程中对循环进行了多方法的应用也是一个“亮点”它使程序变得结构合理通俗易懂也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用对数据的贮存、输入、读取起着很重要的作用本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入数组的的使用在本程序中有很大的好处。函数是实现模块化编程的基础它使程序变得方面易懂对修改起了很大作用降低了编程的难度一个函数就是一个功能它使各个功能之间有了一定的独立性但也有了一定的联系性一个函数的错误不会导致整个程序的失败(主函数除外)对函数的良好应用时在本程序中又以深刻的体会有了很大提高。结构体的使用为本程序提供了很大方便也提高了程序的可读性结构数组方便了对数据的管理。这个程序的结构大体是从网络上借鉴的但是大部分功能模块与任务要求不同只能自己修改最后终于调试通过同时也使我们知道要学好这门课程仅学习书本上的知识是不够的还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践多编写程序才能更好的理解与掌握书本上的东西。同时提高了自己对编程的兴趣使自己对编程有了更深的理解体会到编程的乐趣。

类似资料

该用户的其他资料

四级作文常用写作句型50句.doc

反传销调查表格.doc

报纸服装秀.doc

信息科学与工程学院2011年迎新方案.doc

搞笑幽默相声小品短剧本.doc

职业精品

精彩专题

鱼的家常做法大全

为您提供鱼的做法大全:黄花鱼怎么做好吃,熏鱼的家常做法,清蒸鲳鱼的做法,不管是怎样的做法,我们这里鱼的家常菜谱全都有哦。快一起来看看鱼怎么做才好吃吧!

用户评论

0/200
    暂无评论
上传我的资料

精选资料

热门资料排行换一换

  • 四库全书、禁毁及补编、存目及补编…

  • 唐贾耽记边州入四夷道里考实.pdf

  • 《谷霁光史学文集》(4)《杂着》…

  • GBT 14454.2-2008…

  • 《谷霁光史学文集》(3)《隋唐宋…

  • 我的人生“狠”字当头:“油神”皮…

  • 为什么是欧洲?世界史视角下的西方…

  • 下一步:中国企业的全球化路径[美…

  • 《谷霁光史学文集》(2)《经济史…

  • 资料评价:

    / 28
    所需积分:5 立即下载

    意见
    反馈

    返回
    顶部