C语言课程设计——图书馆管理系统_第1页
C语言课程设计——图书馆管理系统_第2页
C语言课程设计——图书馆管理系统_第3页
C语言课程设计——图书馆管理系统_第4页
C语言课程设计——图书馆管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录第1章 引言21.1 题目背景21.2 设计目的21.3 解决问题2第2章 使用工具与特点42.1 C语言的发展42.2 C语言的特点5第3章 总体设计63.1编写目的63.2系统功能6第4章 系统分析与设计124.1添加功能设计124.2借阅图书功能13第5章 系统功能实现185.1添加功能185.2借阅功能18结 论21致 谢22第1章 引言1.1 题目背景随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求

2、当今社会,多元文化快速发展,人与人的交流也越来越多,社交也越来越广泛,这时,记住自己认识的人是很重要的,因此我们做了这个程序,为了使我们更有效的记录下自己所认识的人,更方便去和更多的人交流而不会记错。C语言成了在国内外使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生也是能够学习好的。1.2 设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想

3、来编写程序。程序包括的主要内容可以对图书馆管理系统进行输入、修改、删除、借阅、归还、显示等操作,设计一个有关学生借阅图书的管理程序,来方便人们对信息更方便的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养一下自己的实践能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的记录学生的借书管理,使人们不再因为添加、删除图书而苦恼。1.3 解决问题图书馆管理系统用于计算机管理图书馆里的书籍,方便学生进行更方便快捷的结束

4、程序。在这个程序中可以对图书馆管理系统中的内容进行输入、添加记录、显示记录、注册会员,还可对其中的书籍进行删除等等。使信息管理更具体、更明朗、更电子化,让人一目了然,给人们带来无穷的快捷。这次实训,使我们对C语言的掌握更加熟练,也解决了一些问题:1、解决手工记录和减少工作量,以及相关函数的使用。2、解决函数间的链接关系,使函数的调用更加方便灵活以及相关函数的使用。3、解决对单个函数如何操作和各种按键的功能设置以及相关函数的使用。4、解决对程序显示窗口的设置及对各种相关函数的使用。5、提高分析问题、解决问题和实际动手的能力。6、需要对图像和文本的输出有一个较好的了解。7、能够熟练运用C言分支语句

5、,并能使各种循环相互连接,完成对按键选择操作等过程。8、在设计的过程中,建立清晰的层次结构。9、在编写程序前先画出主要的功能结构图和主要模块的流程图。10、对每个功能所运用的数学知识有一个较好的认识和探索。11、得出最简洁,最快速的算法。12、要求操作简单,用户界面友好。第2章 使用工具与特点2.1 C语言的发展本次C语言课程设计中,我们小组的题目是学生成绩管理,在设计过程中,我们使用的软件是TurboC 2.0。C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。早期的操作系统等系统软件主要是用汇编语言编写的(包括 UN

6、IX操作系 统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较 差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以 实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内 存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性 ,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种 情况下应运而生了。 C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(Combi

7、nedProgram- ming Language)语言。CPL语言在ALGOL 60的基础上接近了硬件一些,但规 模比较大,难以实现。1967年英国剑桥大学的Matin Richards对 CPL语言作了 简化,推出了BCPL(Basic Combined Programming Language)语言。1970年 美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化, 设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现。 后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到

8、1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意。1977年出 现了不依赖于具体机器的C语言编译文本可移植C语言编译程序,使C移植 到其它机器时所做的工作大大简化了,这也推动了UNIX操作系统迅速地在各 种机器上实现。例如,VAX,AT&T等计算机系统都相继开发了UNIX。随着 UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪 生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、 小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界 上应用最广泛的几种计算机语言之一。以1978年发表的UNIX

9、第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合著了影响深远了名著The C Programming Lan- guage,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种 版本对C的发展和扩充 ,制定了新的标准,称为ANSI C。ANSI C比原来的标 准C有了很大的发展。1987年,ANSI C又 公布了新标准-87 ANSI C 。目前流行的C编译系统都是以它为基础的。2.2 C语言的特点.简洁紧凑、灵活方便C语言一共只有32个

10、关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. 运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3. 数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言

11、具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4. C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5. C语法限制不太严格、程序设计自由度大一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。6. C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功

12、能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7. C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低1020%。8. C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。第3章 总体设计3.1编写目的根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员

13、进行测试时的手册。3.2系统功能设计一个图书馆管理系统能提供以下功能:1.加入功能:加入图书的基本信息,如图书名称、图书编号、图书价格、该书出版社、图书作者。2.显示功能:显示所有已经输入并保存的图书及图书的详细信息,如书名称、图书编号、图书价格、该书出版社、图书作者。3.查询功能:按图书的名字进行查询,可以显示图书存在与否、以及图书的详细的信息4.删除功能:按图书的名字进行图书信息的删除。5.会员注册功能:图书馆会员的注册,要求输入该会员的名字、学号进行注册,成功注册后就可在图书馆里借阅图书。6.借书功能:根据是否是会员来判断是否能够进行借书,按图书的名字进行借阅。7.还书功能:按图书的名字

14、进行还书,办理入馆手续。8.文件操作:文件保存、文件读取。通过菜单的选择可以实现模块图的功能:通过不同的提示信息并输入不同的属性值,可以现实对图书信息的加入、总体显示、删除、查询功能,系统限制非会员不能借书。非会员注册后,可以按会员名字进行借书及还书的操作。我们所做的图书管理系统最大的优点在于操作方便、快捷,对图书的管理更加轻松自如,但是此系统只有当你是我们的会员时才能够借阅,这也给不是会员的同学带来了很大的不便,在工作人员操作此系统时,如有操作上的失误,并不会给我们带来更多的麻烦,比如在图书删除方面,当你们输入删除的书名后,但是又并不想删除此书,这时你不用有焦虑之心,我们在显示界面中会出现你

15、是否想删除的提示选择YN,这时你做出你真正的选择进行操作,即可对此书进行删除或保留。在显示图示界面中,当借阅者输入想要借阅的图书名称,屏幕上就会显示有关于本书的所有信息,比如书的编号、书的价格、书的出版社、书的作者等相关基本信息,使得借阅者对本书有更进一步的了解,对是否借阅此书作出准确的判断。图书馆管理系统操作界面添加图书信息函数显示图书信息函数删除图书信息函数查询图书信息函数会员注册信息函数借书记录信息函数文件保存信息函数归还记录信息函数文件读取信息函数图书馆管理系统主界面图书馆管理系统主界面如图3-1所示。图3-1图书馆系统主界面添加图书功能图书馆管理系统添加图书功能界面如图3-2所示。图

16、3-2图书添加界面显示图书信息功能图书馆管理系统显示图书信息功能界面如图3-3所示。图3-3图书显示界面删除图书功能图书馆管理系统删除图书功能界面如图3-4所示。图3-4图书删除界面查询图书功能图书馆管理系统查询图书功能界面如图3-5所示。图3-5图书查询界面会员注册功能图书馆管理系统会员注册功能界面如图3-6所示。图3-6会员注册界面会员借书功能图书管管理系统会员借书功能界面显示如图3-7 3-8所示。图3-7会员借书界面图3-8会员借书成功会员还书功能图书馆管理系统会员还书功能界面显示如图3-9所示。图3-9会员还书第4章 系统分析与设计4.1添加功能设计添加图书功能:义直向文件的指针,进

17、行申请空间,如果没申请到空间则输出没有申请到,内存溢出本函数。再输入书名,书号,价格,再用循环控制图书的输入。进而实现图书添加的功能。其流程图如图4-1。开始进入图书馆管理操作主界面进入图书添加功能图书名称图书价格图书编号图书出版社图书作者结束图4-1添加图书流程图输入书名4.2借阅图书功能添加图书功能:先输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。当你已是会员时,输入会员姓名,再输入想要借阅的图书名称,就可以实现借阅图书这一功能。我运用了指针、数组、链表等基本操作完成了这项功能的操作。具体操作如图4-2所示,详细操作如图4-3所示。开始输入会员

18、姓名是否是会员YN请注册输入图书名称此图书是否存在YN注册成功后借书成功此书已借出结束图4-2借阅图书具体流程图定义文件指针定义结构体指针定义数组定义标记变量清屏输出“请输入会员名”输入会员名如果打开文件不成功Y输出文件打开失败1返回上级1如果会员标记为0输出请注册会员吸收回车返回上级输出“请输入书名”输入书名如果打不开文件输出文件不能打开23吸收回车返回上级调用load函数,赋给现用指针P10读取节点信息判断是否借出N标记为借出添加借书者信息并写入文件4输出图书已借出返回上级Y4调用保存信息函数输出“成功借出”如果已借出输出借书失败关闭文件结束图4-3借阅图书详细流程图第5章 系统功能实现5

19、.1添加功能源代码:/*增加图书信息*/struct node *add(struct node *head);int i;float jg;struct node *p,*pnew;pnew=(struct node *)malloc(sizeof(struct node);printf("Please input bookname,booknumber,price,pub,namen");printf("bookname:");scanf("%s",pnew->bookname);printf("booknumbe

20、r:");scanf("%d",&pnew->booknumber);printf("price:");scanf("%f",&jg);pnew->price=jg;printf("pub:");scanf("%s",pnew->pub);printf("name:");scanf("%s",pnew->name);pnew->link=NULL;pnew->yes=1;if(head=NULL

21、)head=pnew;elsep=head;while(p->link!=NULL)p=p->link;p->link=pnew;return(head);5.2借阅功能源代码/*会员借书信息*/void BookBorrow()FILE *fp; struct node *pnew,*p1;char bookname20,membername20;int flag=0,mflag=0;clrscr();printf("Input the mermber name: ");scanf("%s",membername);if(fp=fop

22、en("member.txt","r")=NULL)printf("Cannot open filen!");getch();return;elsewhile(!feof(fp)consultmember=(struct Member *) malloc(sizeof(struct Member);fread(&consultmember,sizeof(struct Member),1,fp);if(strcmp(consultmember->name,membername)=0)mflag=1;break;fclose

23、(fp);if(mflag=0)printf("You are not a member,pleas register!");getch();return;printf("Input the bookname: ");scanf("%s",bookname);if(fp=fopen("library.txt","r")=NULL)printf("Cannot open filen!");getch();return;pnew=load();p1=pnew;while(p1)f

24、read(p1,sizeof(struct node),1,fp);if(strcmp(p1->bookname,bookname)=0)if(p1->yes=0)printf("This book has borrowedn!");getch();break;elsep1->yes=0;strcpy(p1->person,membername);save(p1);printf("Borrowed success!");getch();break;if(flag!=0)clrscr();printf("Borrowed

25、fail!n");getch();fclose(fp);结 论通过两周的课程设计,使我清楚地认识到了实践的重要性.经过有针对性地上机操作,不仅可以提高我对C语言的认识,更重要的是提高了自己的实践能力。在课程设计过程中,我学到了许多道理,也懂得无论做什么事情都应该先拟定一个计划。有了计划,就有了奋斗目标,我们就会冲着目标奋进。通过这次学习使我对指针、数组、结构体以及循环有了深刻的理解,可以学以致用,觉得有了很大的收获。与此同时也使我学会了如何克服不良情绪,怎样调整自己的心态。在这次学习中,我遇到了许多困难,但经过我的耐心研究,同学们的帮助以及老师的谆谆教导,使我最终克服了困难,成功地完

26、成了本次课程设计。这让我懂得了,无论做什么事都不要轻言放弃,无论做什么事都要有耐心、信心加恒心,只有这样,我们才会成功。在这次设计中,我的人生格言也在无时无刻地帮助着我,鼓励这我,在我感到困惑疲惫时,在我被问题萦绕百般不解时,它都会激励我,它就是在磨练中成长、苦中作乐。在做课程设计的过程中,我发现了许多平时没注意的细节,这也让我及时补充了自己的知识。应当说,在这次课程设计中,我花费了大量的精力与时间,但却让我懂得了C语言的重要性。我们小组主要负责的是图书馆管理系统,为了使此项目完善,这就需要我们对次系统有非常全面的理解。于是,我们利用业余时间查阅了大量的资料,并把其按一定顺序分类,自己也非常专注地投入到编程当中。在此期间,不可避免地会遇到许多问题,但我们小组中的所有成员都始终拥有无限地激情与动力,没有一丝泄气和放弃。当问题出现时,大家齐心协力来解决问题,当问题逐渐被我们所攻克时,内心的喜悦无以言表。这也使我充分地认识到,团队精神的伟大之处。与此同时,这次课程设计也使大家的心贴得更紧,情系得更近!程序设计和应用开发能力的提高,需要不断地上机实践和长期地经验积累,在上机的过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论