图书登记管理系统程序.pdf

上传人:g****s 文档编号:77456267 上传时间:2023-03-14 格式:PDF 页数:40 大小:1.75MB
返回 下载 相关 举报
图书登记管理系统程序.pdf_第1页
第1页 / 共40页
图书登记管理系统程序.pdf_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《图书登记管理系统程序.pdf》由会员分享,可在线阅读,更多相关《图书登记管理系统程序.pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1/40 HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY C 语言程序设计 课程设计报告 课设题目:学生 C 语言图书登记管理程序设计 专 业:电气与信息工程(汽车电子)班 级:电信 143 班 *名:*成 绩:指导教师:胡宁亚老师 2/40 目 录 C 语言程序设计.1 课程设计报告.1 1.课程设计目的.4 2.需求分析.4 2.1 要求.4 2.2 任务描述.5 2.3 运行环境.5 2.4 开发工具.6 3.总体设计.6 3.1 系统流设计.6 3.2 系统模块设计.7 4.详细设计.7 4.1 数据结构设计.7 4.2 模块接口设计.8 4.3 以

2、下是几个主要模块的流程图:.9 5.运行结果.13 5.1 读取图书信息界面:.13 5.2 欢迎界面:.13 5.3 主菜单界面:.14 5.4 给定书号显示图书信息界面:.15 5.5 给定书名显示图书信息界面:.15 5.6 给定书号修改图书信息界面:.16 5.7:给定书号删除图书信息界面:.16 5.8:图书信息显示界面:.17 5.9:显示课设题目信息界面:.17 6.程序调试.18 6.1 程序调试.18 7.课设总结.20 7.1 心得体会.20 7.2 问题与不足.23 8.程序源代码.23 9.参考文献.40 3/40 学生 C 语言图书登记管理程序设计 问题描述:请设计一

3、个图书登记管理程序,以方便图书管理员管理图书馆内的图书,该程序应该具有以下功能:(1)从键盘输入某本图书的信息(2)给定图书的国际标准书号(ISBN),显示该图书的信息。(3)给定图书的作者,显示所有该作者所著的图书。(4)给定国际标准书号(ISBN),修改该图书的信息。(5)给定国际标准书号(ISBN),删除该图书的信息。题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。(2)图书信息应该包含国际标准书号、图书名称、图书出版社、图书作者(假设一个作 者)、图书价格、出版时间。(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过 菜单项选择希

4、望进行的操作项目。输入要求:(1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输 入的信息完成相应的处理,实现要求的功能。(2)能对输入的数据进行简单的校验,例如,出版时间必须是一个合法的日期格式,国 际标准书号是唯一的(一个国际标准书号对应一种图书信息)。输出要求:(1)应用程序运行后,要在屏幕上显示一个菜单。(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及 结束方式等。(3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定国际标准书号删除 图书信

5、息时,如果该图书不存在,要提示没能删除,如果删除成功要提示删除成功。实现要求:(1)在程序中使用链表存储图书信息。(2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。4/40 提示:(1)使构体表示图书信息,一个结点保存一条图书信息。扩展功能:(1)提供一些统计功能。例如统计每个出版社的图书种类数,统计每个作者的图书种类数。(2)图书信息从文件读入。1.课程设计目的 1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2)通过课程设计,进一步掌握 C 语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3)通过课程设计,

6、提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4)通过课程设计,培养 C 语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5)通过课程设计,加强了自己的程序分析能力。2.需求分析 2.1 要求 1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用 C 程序解决实际问题的能力。2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试 C 程序等过程。3)学会利用数组、结构体、链表进行相关信息表示。4)功能模块划分清晰,系统结构图符合功能操作要求,且有

7、详尽的功能描述 5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。6)所设计的 C 程序较好的可读性和可靠性;程序书写风格规范,注释清晰。7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入5/40 信息有较完善的值域分析。8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10)掌握编写、调试和测试 C 语言程序的基本技巧,充分理解结构化程序设计的基本方法。11)C 语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。

8、2.2 任务描述 此系统以图书登记管理为背景,提供查询修改删除图书信息并保存信息到本地文件中的功能,并可通过图书的书号、书名、作者查询到图书的具体信息,另外还有一些统计功能,例如统计每个出版社的图书种类数,统计每个作者的图书种类数。具体功能实现如下:一:管理模式功能 1)自动导入功能:从文件中导入所有图输信息。2)键盘输入功能:可以从键盘输入某图书的基本信息。3)信息管理功能:修改、删除学生的信息。二:查询模式功能 4)通过图书书号、书名查询图书的基本信息。三:统计模式功能 5)统计每个出版社的图书种类数。6)统计每个作者的图书种类数。2.3 运行环境 Windows XP/7 系统 6/40

9、 2.4 开发工具 VC+6.0 编译环境 3.总体设计 3.1 系统流设计 本系统的功能模块如图 1 所示,主要有以下模块:文件数据导入界面 程序欢迎进入界面 主菜单界面 从键盘输入图书信息 给定书号修改图书信息 给定书号删除图书信息 显示课设题目信息 退出程序 给定书号显示图书信息 给定书名显示图书信息 显示图书信息 保存图书信息 7/40 3.2 系统模块设计 1)系统欢迎界面:构造函数 void welcome_menu(),显示课程设计名称、作者、软件制作时间、联系方式。2)文件数据导入界面:执行 void input()函数,自动导入图书数据。3)菜单界面:构造函数 int sho

10、uMenu(),实现系统主菜单的显示。4)键盘输入图书信息:构造函数 void inputBook()函数,开始用户手动从键盘输入图书的基本信息,并保存。5)给定书号,显示该图书的信息:构造 void showShuhao()函数,输入某本图书的书号,查询该图书的基本信息。6)给定书名,显示该图书的信息:构造 void showShuming()函数,输入某本图书的书名,查询该图书的基本信息。7)给定书号,修改该图书的信息:构造 void doShuhao()函数,输入某本图书的书号,修改该图书的基本信息。8)给定书号,删除图书的信息:构造 void deletBook()函数,输入某本图书的

11、书号,进行删除功能。9)显示图书信息:构造 void listRec()函数,可显示修改过的图书信息。10)保存图书的信息:void writeInfo()函数,可保存修改过的图书信息。10)题目信息:构造 void timu()函数,显示课设的题目及要求。11)退出界面:构造 void exit0(),退出程序。4.详细设计 4.1 数据结构设计 根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称 数据项系统表示 数据类型 数据长度 图书书号 p1-bookno 字符串 12 个字节 图书书名 p1-name 字符串 16 个字节 8/40 图书作者 p1-writer 字符串

12、10 个字节 出版日期 p1-time 字符串 15 个字节 为了能实现不受限制的增加图书信息,采用链表的结构保存图书所有信息,在增加图书的基本信息时,创建一个图书信息的节点,将其插入到链表中,示意图如下(用一条链表实现)。为此,先声明一个类型为 struct book 的结构体,然后通过对指针、链表、文件等数据结构的操作,实现对图书信息的添加,修改,删除和查询。其中,结构体定义分别如下:学生信息 struct book char bookno12;/*图书书号*/char name16;/*图书书名*/char writer10;/*图书作者*/char time15;/*出版日期*/str

13、uct book*next;4.2 模块接口设计 所有函数模块声明如下:图书信息 图书信息 图书信息 图书信息 9/40 主要函数声明 void timu();/题目信息 void input();/录入文件 void welcome_menu();void inputBook();/*从键盘输入某本图书的信息*/void showShuhao();/*给定书号,显示该图书的信息*/void showShuming();/*给定书名,显示该图书的信息*/void doShuhao();/*给定书号,修改该图书的信息*/void deletBook();/*给定书号,删除图书的信息*/void

14、listRec();/显示图书信息 void writeInfo();/*保存图书的信息*/void exit0();/*退出*/主要模块的实现 系统以主函数 int main()为入口,首先调用 void input()函数,从文件导入图书信息。然后调用 welcome_menu()函数,显示系统欢迎界面。最后调用 shouMenu()函数,显示主菜单界面,并使系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。4.3 以下是几个主要模块的流程图:1)文件读入图书基本信息并打印函数:10/40 2)主菜单函数:否 是 否 是 导入文件信息 欢迎界面 进入主菜单 更改图书信息

15、 保存信息到本地文件 退出程序 打印主菜单 接收用户选项 是否合法 是否为零 调用对应选项函数 退出程序 11/40 3)键盘输入图书信息 否 是 否 是 4)通过书号查询图书信息函数:书名查询同此 否 是 进入 void inputBook()函数 接收用户选项 是否合法 是否保存 重新输入 返回主菜单选项 提示输入书号 接收输入信息 是否有误 显示学生信息 按任意键返回 12/40 5)查询课设信息:6)给定书号修改图书信息:否 否 7)给定书号删除图书信息:是 主菜单 显示课设题目信息 返回主菜单 提示输入书号 接收输入信息 是否有误 任意键返回 返回主菜单 填写需修改信息 保存 提示输

16、入书号 接收输入信息 填写需删除信息 填写信息成功,返回菜单 13/40 5.运行结果 5.1 读取图书信息界面:5.2 欢迎界面:14/40 5.3 主菜单界面:15/40 5.4 给定书号显示图书信息界面:5.5 给定书名显示图书信息界面:16/40 5.6 给定书号修改图书信息界面:5.7:给定书号删除图书信息界面:17/40 5.8:图书信息显示界面:5.9:显示课设题目信息界面:18/40 6.程序调试 6.1 程序调试(一)当文件读入后再从键盘输入图书信息时出现的情况的界面 19/40 (二)欢迎界面不整齐的界面:由于有的语句用空格键有的语句用 Tab 键造成格式不整齐的情况。20

17、/40 7.课设总结 7.1 心得体会 在编程的这段时间里,虽说是独自一人,但却真真切切的感受到了 c 语言的魅力所在,通过它我们可以创建自己想要的界面及效果,每当自己的想法通过它实现时,心中那个兴奋啊。但其中也遇到了一些困难,自己一个人看书查资料,编程序解决,当遇到大难题时和同学一起讨论研究,从其中受益匪浅,特别是刚开始弄课设调试时,错误那多的是散开了花,根本不知从何下手,但随后我就将每个函数单独拿出来调试,这样就可快速的将错误一一找出,在就是从本地文件导入数据时会出现屯屯屯的现象,后来经过不停的尝试终于将根源找出,即本地文件不能有回车或空格,总之,编程让我变得更加细心,编程的成果让我更加喜

18、爱 c 语言。跟大家说几点经验 1.在学习的时候一定要注意这几点,不会的一定要问明 白,不管谁能让他教会你知识就是你的了,要学会让知识为我所用。在看书 的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。2.在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了,不要整天说我不会学不会,其 实是你不想学,只是你下决心抄一个月程序,我保证我能有大的进步,其实 当你抄到一周到两周的时候你就会特想抄,因为你会发现程序你能看懂了,能帮别人调程序了,有一种成就感呀!它会让你更加努力的去学习。3.再一点是我建议大家在上课的时候少看课本,课本要在下课

19、的时候看特别 是上课前一定要先看看课本,上课的时候呢就不要看了,不要老师讲到那个 题了你马上在书上找,这样不好,会影响你的注意力,其实还真不如注意听 老师讲呢?因为你要是一边听一边看课本,你是看到了书上的答案但是老师 的思路你没有听到,而要是你不看的话,你听明白了思路,一定是想迫切的 看到结果,这个时候看课本才是记的最死的时候,学习要的是就是个效率 吗?21/40 4.提醒大家学习要讲效率,我发现有很多同学天天学习,每天最早到教室,走的又最晚,别人玩他在学,别人学他也学,可是别的一天 30%的学习时间 却比他们一天 50%以上的学习时间的效率要高上不仅仅是几倍的问题,所以 我要说的是不要对别人

20、说你天天在学习,要说你天天在进步,学习不是要你 学习了多久是,是要你学了多少东西的,你学一小时还没有别人学一分钟的 效率高,难道自己不是浪费时间吗?不想学的时候就不要学,出去玩一会儿 再来学说不定会有更好的效果。刚开始学 C 语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入 手。但学了一段时间后逐渐对 C 语言有了认识,并能进行简单操作。现在我 们又要开始进行课程设计,我的天空突然彻底 BLACK 了,阿门!不过我不会 放弃,前辈们都说:“坚持到底就是胜利!”,恩!我也是这么认为的。万 事开头难,只要我找到方法,我一定可以的,嘿,嘿,嘿!不过我们都知道,我们是一定会成功的,因为我们有我

21、们的太阳,至于是谁呢,我就不说了,大家都知道了,是吧!还记得刚开始上开始编程时,那个“error”啊,多 得已经无法用“多”来形容了,那是“很多”啊!于是我开始了漫长而繁琐 的地毯式搜查,我累的地暗天黑都已无所谓,那个疯狂的人,是我,是我,还是我!海阔凭鱼跃,天高任我飞!我曾经花了整整一个上午的时间来弄一 个麻烦的闪烁,那做出来后的感觉,就能用一个字来形容,那就是“爽”,人生最幸福的事也就莫过于此,这小小的成功使我的信心十足,我看到希望 了!现代科学技术的飞速发展,改变了人类的生活。作为新世纪的大学生,应当 站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力 结构,以适应社会发

22、展的要求。新世纪需要既有丰富的现代科学知识,能够 独立解决面临的任务,充满活力,有创新意识的新型人才,而掌握计算机知 识是最基础的能力,然而要想学好计算机首先要学好 C 语言。C 语言是国内 外广泛使用的一种计算机语言。C 语言功能丰富、表达能力强、使用灵活方 便、应用面广、目标效率高、可移植性好,既具有高级语言的许多优点,又 具有低级语言的许多特点,因此特别适合于编写系统软件。C 语言之所以能22/40 存在和发展,并具有较强的生命力,总是有其于其他语言的特点 C 语言的主 要特点如下:1.语言简洁,紧凑,使用方便,灵活。2.运算符丰富。3.数据类型丰富,具有现代语言的各种数据结构。4.具有

23、结构化的控制语句。5.语法限制不太严格,程序设计自由度大。6.C 语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部 分功能,可以直接对硬件进行操作。7.生成目标代码质量高,程序执行效率高。8.用 C 语言编写的程序可移植性好(与汇编语言相比)。计算机具有强大的功能,它现已应用于各行各业,在人们生活的各个领域起 着非常重要的作用。它的高速运算能力极大的提高了工作效率,把人们从浩 瀚的计算中解放出来,并且在高、尖的大型科学计算和大型信息处理及运算 需求高的领域发挥着重要的作用。计算机在人们的日常生活中能帮助人们发 送邮件,网上购物,远程学习,休闲娱乐,使人们的生活变得快捷方便,它 推动

24、了人类社会的发展与进步,对人类社会生产生活的各个领域产生了极其 深刻的影响。正是因为计算机有这些强大的功能,学习计算机知识与计算机 交流才显得尤为重要。因此学习 C 语言就显得更为重要,C 语言作为国际上 广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生 命力。C 语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语 言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然 我们 C 语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是 千载难逢的机会,无论如何都要好好把握。23/40 再次回想这段时间多少的欢声笑语都是因你与共同努力的伙伴们唤起的,多

25、 少山穷水尽的困惑与夜深人静久已难眠的双眼都是因你而起,都是你,都是 你,就是你,也是你让我们在键盘中体会到友谊的港湾温情脉脉,友谊的清 风灌满征帆。再见了,我的这学期的课程设计。7.2 问题与不足 程序中存在一些现实中不能实现的功能,例如密码修改功能,删除信息后立 即显示剩余信息功能等等。8.程序源代码 /*头 文 件 及 宏 定 义 */#include /*头文件宏定义*/#include#include#include#include#define LEN sizeof(struct book)/*结构体长度*/struct book /*定义结构体*/char bookno12;/*

26、定义书号*/char name16;/*定义书名*/char writer10;/*定义作者*/char entertime15;/*定义出版日期*/24/40 struct book*next;void mima();void timu();/*题目信息*/void input();/*录入文件*/void welcome_menu();void inputBook();/*从键盘输入某本图书的信息*/void showShuhao();/*给定书号,显示该图书的信息*/void showShuming();/*给定书名,显示该图书的信息*/void doShuhao();/*给定书号,修改

27、该图书的信息*/void deletBook();/*给定书号,删除图书的信息*/void listRec();/显示图书信息 void writeInfo();/*保存图书的信息*/void exit0();/*退出*/int writeinfo_flag,f=0;/*标志变量*/struct book*head=NULL,*p,*p1,*p2,*p3;/*定义结构体指针*/int flag=0;/*功能描述:本函数用于实现菜单显示*/*入口参数:无*/*出口参数:无*/int showMenu()/*主菜单*/int a;printf(ntt*菜单*n);printf(nttt1、从键盘输

28、入某本图书的信息n);printf(nttt2、给定书号,显示该图书的信息n);printf(nttt3、给定书名,显示该图书的所有信息n);25/40 printf(nttt4、给定书号,修改图书的信息n);printf(nttt5、给定书号,删除图书的信息n);printf(nttt6、显示图书信息n);printf(nttt7、保存图书信息n);printf(nttt8、显示题目信息n);printf(nttt0、退出n);printf(nttt 输入你的选择(08):n);scanf(%d,&a);return a;/*主函数*/*功能描述:程序的主体*/*入口参数:无*/*出口参数:

29、无*/int main()mima();input();/*读取文件信息*/welcome_menu();/*欢迎界面函数*/for(;)switch(showMenu()/*主菜单*/case 1:system(cls);inputBook();break;case 2:system(cls);showShuhao();break;case 3:system(cls);showShuming();break;case 4:system(cls);doShuhao();break;case 5:system(cls);deletBook();break;case 6:system(cls);l

30、istRec();break;26/40 case 7:system(cls);writeInfo();break;case 8:system(cls);timu();break;case 0:system(cls);exit0();return 0;default:getchar();printf(n 选择错误,请正确输入你的选择(07),:n);printf(n 按任意键返回.n);getchar();getchar();system(cls);/*清屏*/return 0;/*功能描述:本函数用于程序加密*/*入口参数:无*/*出口参数:无*/void mima()/密码验证 int i

31、,n;printf(ttt 您有三次机会输入密码!ttn);for(i=0;inext=NULL;while(!feof(fp)n+;fscanf(fp,%s%s%s%s,p1-bookno,p1-name,p1-writer,p1-entertime);p2=(struct book*)malloc(LEN);/*开辟一个新单元*/p1-next=p2;p3=p1;p1=p2;p1-next=NULL;free(p2);/*释放 p2*/p3-next=NULL;printf(n%d 项信息输入完毕,按任意键返回.n,n);getchar();system(cls);/*清屏*/writei

32、nfo_flag=0;/*设置保存记录标志*/if(fclose(fp)/*关闭文件 */printf(Can not close the file!n);30/40 exit(0);/*功能描述:本函数用于键盘输入信息*/*入口参数:无*/*出口参数:无*/*从键盘输入某本图书的信息*/void inputBook()int n,i;if(head!=0)p3=head;while(p3-next!=NULL)p3=p3-next;getchar();printf(n 图书信息数据库已存在,新建图书信息将接续在信息库的后面,按任意键继续.:n);getchar();system(cls);/

33、*清屏*/p3-next=p1=(struct book*)malloc(LEN);/*开辟一个新单元*/else head=p1=(struct book*)malloc(LEN);/*开辟一个新单元*/p1-next=NULL;printf(nn 请输入希望建立的图书信息条数 n(n1&n10):n);do 31/40 scanf(%d,&n);if(n10)printf(nn 输入范围有误,请重新输入希望建立的图书基本信息条数 n(n1&n10):n);while(n10);/*开始建立 n 条图书信息*/printf(nn 请每行按 图书书号 图书书名 图书作者 出版时间 的形式输入%

34、d 条图书信息记录:n,n);for(i=0;ibookno,p1-name,p1-writer,p1-entertime);p2=(struct book*)malloc(LEN);/*开辟一个新单元*/p1-next=p2;p3=p1;p1=p2;p1-next=NULL;free(p2);p3-next=NULL;getchar();printf(n%d 项信息输入完毕,按任意键返回.n,n);getchar();system(cls);/*清屏*/writeinfo_flag=1;/*清除保存记录标志*/*功能描述:本函数用于书号查询*/*入口参数:*/32/40/*出口参数:*/vo

35、id showShuhao()/*按书号显示该图书的信息*/char num12;p1=head;if(p1=NULL)printf(nn 图书信息数据库为空 n);printf(n 按任意键返回.n);getch();system(cls);/*清屏*/return;printf(nn 请输入要查找的图书书号号:n);scanf(%s,num);while(p1!=NULL)if(strcmp(p1-bookno,num)=0)printf(书号:%sn,p1-bookno);printf(书名:%sn,p1-name);printf(作者:%sn,p1-writer);printf(出版时

36、间:%sn,p1-entertime);printf(nn);break;else p1=p1-next;if(p1=NULL)printf(nn 找不到图书信息n);33/40 printf(n 按任意键返回.n);getch();system(cls);/*清屏*/*功能描述:本函数用于书名查询*/*入口参数:*/*出口参数:*/void showShuming()/*给定书名,显示该图书的信息*/char a12;if(head=NULL)printf(n 没有图书信息,按任意键返回n);getch();system(cls);return;p1=head;printf(请输入需要查找的

37、书籍:n);scanf(%s,&a);printf(n 图书书号 图书书名 图书作者 出版时间n);while(p1!=NULL)if(strcmp(a,p1-writer)=0)printf(该 图 书 的 信 息:n%s%s%s%s n,p1-bookno,p1-name,p1-writer,p1-entertime);p1=p1-next;printf(n 按任意键返回!.n);getch();34/40 system(cls);/*清屏*/*功能描述:本函数用于给定书号修改信息*/*入口参数:*/*出口参数:*/void doShuhao()/*给定书号,修改该图书的信息*/char

38、num12;if(head=NULL)getchar();printf(n 图书信息数据库为空,不能修改,按任意键返回:n);getchar();system(cls);/*清屏*/return;p1=head;printf(n 请输入要修改记录的图书书号:n);scanf(%s,num);while(strcmp(num,p1-bookno)!=NULL&p1-next!=NULL)p1=p1-next;if(strcmp(num,p1-bookno)=NULL)strcpy(p1-bookno,num);printf(n 请输入要修改的书号:n);scanf(%s,&p1-bookno);

39、printf(n 请输入要修改的书名:n);scanf(%s,&p1-name);printf(n 请输入要修改的图书作者:n);scanf(%s,&p1-writer);35/40 printf(n 请输入要修改的出版日期:n);scanf(%s,&p1-entertime);printf(n 1 项信息修改完毕,);else printf(nn 找不到该图书信息!nn);getchar();printf(按任意键返回:n);getchar();system(cls);/*清屏*/writeinfo_flag=1;/*清除保存记录标志*/return;/*功能描述:本函数用于给定书号删除信息

40、*/*入口参数:*/*出口参数:*/void deletBook()/*给定书号,删除图书*/char num12;if(head=NULL)getchar();printf(nn 图书信息数据库为空,不能删除,按任意键返回:nn);getchar();system(cls);/*清屏*/return;p1=head;printf(nn 请输入要删除图书的书号:nn);scanf(%s,num);while(strcmp(num,p1-bookno)!=0&p1-next!=NULL)36/40 p2=p1;p1=p1-next;if(strcmp(num,p1-bookno)=0)if(he

41、ad-next=NULL)free(head);head=NULL;else if(head=p1)head=p1-next;free(p1);else p2-next=p1-next;/*删除节点*/free(p1);printf(n 删除完毕n);else printf(nn 找不到该图书书号信息!nn);getchar();printf(n 按任意键返回:n);getchar();37/40 system(cls);/*清屏*/writeinfo_flag=1;/*清除保存记录标志*/return;/*功能描述:本函数用于显示所有信息*/*入口参数:*/*出口参数:*/void list

42、Rec()if(head=NULL)printf(n 没有图书信息,按任意键返回。n);getch();system(cls);return;printf(n 全部图书信息如下:n);printf(n 图书书号 图书书名 图书作者 出版时间 n);p1=head;while(p1!=NULL)printf(%s%s%s%s n,p1-bookno,p1-name,p1-writer,p1-entertime);p1=p1-next;printf(n 按任意键返回!.n);getch();system(cls);/*清屏*/38/40/*保存图书记录*/void writeInfo()FILE*

43、fp;/*定义文件指针*/if(head=NULL)printf(n 没有图书信息,按任意键返回。n);getch();system(cls);return;if(writeinfo_flag=0)printf(n 图书信息已保存过,按任意键返回。n);getch();system(cls);return;if(fp=fopen(d:/mc.c.txt,w)=NULL)/*打开文件*/printf(n 图书信息无法保存,按任意键返回。n);getch();system(cls);return;p1=head;while(p1!=NULL)fprintf(fp,%s%s%s%s n,p1-boo

44、kno,p1-name,p1-writer,p1-entertime);p1=p1-next;39/40 fclose(fp);printf(n 图书信息保存完毕,按任意键返回。n);getch();system(cls);writeinfo_flag=0;/*设置保存记录标志*/return;/*退出*/void exit0()if(writeinfo_flag=1)/*修改过记录时,先保存,再退出*/writeInfo();p1=head;while(p1!=NULL)p2=p1;p1=p1-next;free(p2);40/40 9.参考文献(1)廖湖声,C 程序设计案例教程,人民邮电出版社,2010.9(2)何钦铭,C 语言程序设计,高等教育出版社,2009.5(3)谭浩强,C 程序设计(第 2,3,4 版),清华大学出版社,2000.1(4)C 语言程序设计教程,杨路明著,北京邮电大学出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁