C语言课程设计图书管理系统课程设计报告
C语言课程设计图书管理系统课程设计报告

C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙201 6年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。
–理解图书管理系统的需求和设计原理。
2.技能目标:–能够使用C语言编写简单的程序。
–学会使用C语言实现图书管理系统的功能。
3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。
–增强学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。
具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。
2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。
3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。
四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
2.作业:包括编程练习和理论作业,占总评的30%。
3.考试:包括期中和期末考试,占总评的50%。
期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。
C语言图书管理系统课程设计报告

第三章 图书管理系统的设计与实现 3.1 系统的需求分析
图书登记管理系统作为一个应用软件将为学校的老师和学生提 供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界 面的提示信息对图书馆信息进行查询、初始化等操作
4
系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可 显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作
0
引言
随着社会经济的迅速发展和现代科学技术的进步,人类社 会正逐渐走向现代化。计算机事业的飞速发展,使得以计算机与 通信技术为基础的信息系统正处于蓬勃发展的时期。同时,随着 经济文化水平的显著提高,人们对生活质量及工作环境的要求也 越来越高。图书馆拥有丰富的文献信息资源,是社会系统的重要 组成部分,在信息社会中的作用愈来愈重要。
随着现代社会信息量的不断增加,图书的种类及信息也越来 越多,如何来管理庞大的图书信息成为一大难题,如何以一种便 捷的管理方式加快图书流通信息的反馈速度,提高工作效率,已 经成为学校图书馆管理的关键问题。信息技术的飞速发展给图书 馆的管理带来了全新的变革,采用图书管理系统对图书馆的运作 进行全程管理,不仅是图书馆摆脱了以往人工管理产生的一系列 问题,而且让图书馆提高了管理效率,减少了管理成本。让图书 馆进行更有效的管理。
C语言图书管理系统程序设计报告

目录一、设计任务书 (3)二、本组课题及本人任务 (3)三、程序功能简介 (4)四、主体内容 (4)1.设计分析 (4)2.程序结构 (5)3.各模块的功能及程序说明 (5)4. 源程序 (6)5.操作方法 (17)6.试验结果 (18)7.设计体会 (22)五、附录 (23)1.流程图 (23)2.过程列表 (26)一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
2)系统设计要实用,编程简练,可用,功能全面。
3)说明书、流程图要清楚。
4)记录设计情况(备查,也为编写设计说明书作好准备)。
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。
二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:(至少一种查询方式)--算法。
a. 按书名查。
b.按作者名查询。
本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介本系统是以visual C++ 6.0 环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
图书管理系统c课程设计报告

图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
图书管理系统C语言程序设计实验报告

books[i].price=f;
i++;
flushall();
printf("is Continue(y/n)?:");
scanf("%c",&isCon);
}
printf("\n --%d种图书信息输入完毕!--\n",i);
printf("\n按任意键返回主菜单!");
{
FILE*fp;
int i;
char filename[40];
//clrscr();
printf("\n input SAVE filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "w")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
printf("\n input READ filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "r")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
〔2〕执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。
〔3〕执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。
c语言书籍管理系统课程设计

c语言书籍管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,能够运用C语言实现简单的书籍管理系统。
通过本课程的学习,学生将能够理解C语言的基本语法和数据结构,掌握基本的输入输出操作和文件操作,培养编程思维和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据结构。
2.理解书籍管理系统的需求和设计原理。
技能目标包括:1.能够使用C语言编写简单的书籍管理程序。
2.能够进行基本的输入输出操作和文件操作。
情感态度价值观目标包括:1.培养学生的编程思维和解决问题的能力。
2.培养学生对计算机科学和软件开发的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法和数据结构,以及书籍管理系统的需求分析和设计。
具体来说,教学大纲如下:1.第一章:C语言的基本语法和数据类型。
2.第二章:控制结构和函数。
3.第三章:输入输出操作和文件操作。
4.第四章:书籍管理系统的需求分析和设计。
教学内容将根据教材的章节进行安排和进度,同时结合实际的编程案例进行讲解和练习。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体来说,教学方法如下:1.讲授法:通过讲解和示范,让学生掌握C语言的基本语法和数据结构。
2.讨论法:通过小组讨论和问题解答,培养学生的编程思维和解决问题的能力。
3.案例分析法:通过分析实际的编程案例,让学生理解书籍管理系统的需求和设计原理。
4.实验法:通过编写和调试代码,让学生掌握基本的输入输出操作和文件操作。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备等。
具体来说,教学资源如下:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
c语言图书馆管理系统课程设计报告

C语言图书馆管理系统课程设计报告一、设计背景随着图书馆信息化管理的普及和发展,使用计算机进行图书馆管理已成为必然趋势。
为了提高图书馆管理工作的效率和准确性,本课程设计旨在设计一个基于C语言的图书馆管理系统。
二、设计目标1.实现对图书馆的基本信息进行添加、删除、修改和查询的功能。
2.实现对读者信息的管理,包括添加、删除、修改和查询。
3.实现借书和还书功能,包括借书时的借阅记录的生成和还书时相关操作。
4.实现图书馆管理员的登录和权限管理功能。
三、设计思路基于以上设计目标,我们将采取以下设计思路:1.设计合适的数据结构来存储图书馆、读者和借阅记录等信息。
2.设计相应的函数来实现对数据的增删改查操作。
3.设计用户界面,使用户可以方便地使用各种功能。
4.设计登录和权限管理功能,保证只有授权的管理员才能进行系统管理操作。
四、系统功能设计1. 图书馆管理功能•添加图书馆信息:输入图书馆名称、地址等信息,保存到系统中。
•删除图书馆信息:根据图书馆名称或其他唯一标识,删除相应的图书馆信息。
•修改图书馆信息:根据图书馆名称或其他唯一标识,修改相应的图书馆信息。
•查询图书馆信息:根据图书馆名称或其他唯一标识,查询相应的图书馆信息。
2. 读者管理功能•添加读者信息:输入读者姓名、年龄、性别等信息,保存到系统中。
•删除读者信息:根据读者姓名或其他唯一标识,删除相应的读者信息。
•修改读者信息:根据读者姓名或其他唯一标识,修改相应的读者信息。
•查询读者信息:根据读者姓名或其他唯一标识,查询相应的读者信息。
3. 借还书功能•借书:根据读者ID和图书ID,生成借阅记录,修改相应的图书和读者信息。
•还书:通过借阅记录中的借阅ID,找到相应的借阅记录,修改相应的图书和读者信息。
4. 登录和权限管理功能•管理员登录:输入管理员用户名和密码,验证登录信息。
•管理员权限管理:设置对应管理员的权限,包括“图书馆管理”和“读者管理”等。
五、系统实现本系统的实现将采用C语言作为开发语言,使用相关编程工具进行开发。
C语言图书馆管理系统课程设计报告

《高级语言程序设计》课程设计报告设计题目:**高校图书馆信息管理系统姓名:专业:计算机科学与技术班级:指导老师:2012年01月01日摘要绪论问题定义(或系统分析)总体设计与详细设计调适与测试总结与心得附录附录一源代码附录二参考文献**高校图书馆管理系统摘要【设计题目】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等.试设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)图书信息录入功能(图书信息用文件保存)--输入3)图书信息浏览功能--输出4)查询和排序功能:(至少一种查询方式)--算法5)按书名查询6)按作者名查询7)图书信息的删除与修改(可选项)*绪论【设计目的】1.通过本次课程设计对c语言的充分编程和实际应用进一步熟悉和巩固c语言语法知识和程序设计的基本方法。
2.因为编程具有细致繁琐的特点,训练大家的编程素质,养成耐心细致的习惯。
3.锻炼思维能力,养成多思考的习惯,同时有助于培养团队意识4.了解大型程序的编写过程,为以后编写大型程序和开发软件打下基础。
【设计要求】1.掌握面相对象程序设计的功能抽象和数据抽象方法,掌握类,对象的使用的方法;2.掌握数据类型的使及不同程序方式的应用.3. 掌握函数使用技巧,包括函数类型的选择,含参数的传递方式等;4. 掌握使用数组,指针,引用,文件等编程的方法.5. 掌握C++流类库的使用.6. 掌握C++模板的使用;7. 掌握中小型规模程序的设计,开发,调试的全过程.问题定义(或系统分析)【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
总体设计与详细设计【总体设计】图1 系统功能模块图图书馆管理系统数据输入 数据修改 删除 数据添加 查找 浏览【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】头函数名:#include<stdio.h>#include<stdlib.h>#include<string.h>struct bookinf{int num;//登录号char bname[20];//书名char wname[10];// 作者名char clanum[14];// 分类号char pubcom[10];//出版单位char pubtime[10];// 出版时间float price;//价格};(1)来到图书信息管理系统页面void index(){char input;printf("\n\n\t\t\t*****************************\n"); printf("\t\t\t 图书信息管理系统\n");printf("\t\t\t*****************************\n\n\n"); printf(" ------------------------------------------------------------------------------\n"); printf("\t<按任意键进入>\n\t");input=getchar();}(2)来到功能菜单页面void adm_servelist(){void book_add();void book_view();void change();void del();void book_search();void login();void pwchange();int in;char input;do{printf("\n\n\n\t--欢迎使用信息管理系统--"); printf("\n\n\t1.图书信息录入\n");printf("\t2.图书信息浏览\n");printf("\t3.图书信息查询\n");printf("\t4.图书信息删除\n");printf("\t5.图书信息修改\n");printf("\t6.退出管理模式\n");printf("\n\t请选择服务种类:");scanf("%d",&in);if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6) {printf("\n\t没有这项服务~\n");printf("\t按任意键重新选择");input=getchar();}}while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6); switch (in){case 1: book_add(); break;case 2: book_view(); break;case 3: book_search(); break;case 4: del(); break;case 5: change();break;case 6: login(); break;}}(3)图书信息录入功能模块void book_add(){void adm_servelist();void book_add();int i=0,j;FILE *fp;char input;struct bookinf books;struct bookinf book_taxis[30];printf("\n\n\n\t---请输入图书信息---\n\n");printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);for (j=0;j<=i;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");input=getchar();adm_servelist();break;}}if ((fp=fopen("book.txt","r"))==NULL){fp=fopen("book.txt","w");}else{fclose(fp);fp=fopen("book.txt","a");}fwrite(&books,sizeof(struct bookinf),1,fp); fclose(fp);printf("\n\n\n\t信息输入完毕~按任意键继续\n");input=getchar();adm_servelist();}(4)图书信息浏览功能模块void book_view(){void adm_servelist();void book_view();int inp,i=0,n=0;FILE *fp;char input;struct bookinf bookview[20];if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~\n");printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{fread(&bookview[i],sizeof(struct bookinf),1,fp);i=i+1;}while (!feof(fp));fclose(fp);do{printf("\n\t--------共有%d条记录--------",i-1);printf("\n\n\t登录号: %d\n",bookview[n].num);printf("\n\t书名: %s\n",bookview[n].bname);printf("\n\t作者名: %s\n",bookview[n].wname);printf("\n\t分类号: %s\n",bookview[n].clanum);printf("\n\t出版单位: %s\n",bookview[n].pubcom);printf("\n\t出版时间: %s\n",bookview[n].pubtime);printf("\n\t价格: %f\n",bookview[n].price);printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n");printf("\n\t请选择:");scanf("%d",&inp);switch (inp){case 1:{if (n==0){printf("\n\t已到达首页\n\t按任意键重新选择");input=getchar();}else n=n-1; break;}case 2:{if (n==i-2){printf("\n\t已到达最末页\n\t按任意键重新选择");input=getchar();}else n=n+1; break;}case 3:{adm_servelist();break;}default:{printf("\n\t没有这项服务\n\t按任意键重新选择");input=getchar();}}}while (inp!=3);}}(5)图书信息修改与删除功能模块修改:void change(int x){int inp,i=0,j;void book_search();FILE *fp,*fp1;char input;struct bookinf books,book_taxis[20];do{printf("\n\n\n\t注意:您确定要修改该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){printf("\n\n\n\t---请输入图书信息---\n\n"); printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp1=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp1);i=i+1;}while(!feof(fp1));fclose(fp1);for (j=0;j<x;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");printf("0");input=getchar();book_search();break;}for (j=x+1;j<i-2;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("1");printf("\t按任意键返回管理菜单~");input=getchar();book_search();break;}}book_taxis[x]=books;fp=fopen("book.txt","w");for (j=0;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);printf("\n\n\t信息修改完成!按任意键返回");input=getchar();book_search();}}删除:void del(int y){char input;FILE *fp;int inp,i=0,j;struct bookinf book_taxis[20];void book_search();void adm_servelist();do{printf("\n\n\n\t注意:您确定要删除该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);}if (i>2){fp=fopen("book.txt","w");for (j=0;j<y;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);fp=fopen("book.txt","a");for (j=y+1;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);}else{remove("book.txt");}printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t");input=getchar();adm_servelist();}}(6)图书信息查询功能模块void book_search(){void adm_servelist();void id_search();void wr_search();void bn_search();char input;FILE *fp;int inp;if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{printf("\n\n\n\t1.按图书登录号查询\n");printf("\n\t2.按图书作者查询\n");printf("\n\t3.按图书名查询\n");printf("\n\t4.回到主菜单\n");printf("\n\n\t请选择查询类别:");scanf("%d",&inp);if (inp!=1&&inp!=2&&inp!=3&&inp!=4){printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");input=getchar();}}while (inp!=1&&inp!=2&&inp!=3&&inp!=4);fclose(fp);switch (inp){case 1: id_search(); break;case 2: wr_search(); break;case 3: bn_search(); break;case 4: adm_servelist(); break;}}}调试与测试总结与心得对程序的设计要有充分的逻辑性,将该程序的大纲罗列出来,同时要充分了解该程序所需的编程语言,通过这次课程设计我们能把课本上的知识充分的应用到实践中来。
图书管理系统c语言课程设计

图书管理系统c语言课程设计一、课程目标知识目标:1. 学生能够理解图书管理系统的基本概念,掌握C语言实现数据结构(如链表)的基本方法。
2. 学生能够运用C语言编写程序,实现图书管理系统的基本功能,如图书的增删改查。
3. 学生能够理解文件操作在图书管理系统中的应用,实现数据的持久化存储。
技能目标:1. 学生能够运用所学知识,独立完成图书管理系统的需求分析、设计、编码和测试。
2. 学生通过课程设计,提高问题分析能力,培养解决实际问题的编程能力。
3. 学生能够运用调试工具,找出并修正程序中的错误,提高程序调试能力。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,树立正确的计算机科学观念。
2. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。
3. 学生在解决实际问题的过程中,体会编程带来的成就感,增强自信心。
课程性质:本课程为C语言程序设计课程的实践环节,旨在让学生将所学理论知识应用于实际项目中,提高编程实践能力。
学生特点:学生已具备C语言基础知识,具有一定的编程能力,但实际项目经验较少。
教学要求:注重理论联系实际,引导学生独立思考,培养学生解决实际问题的能力。
通过课程设计,使学生能够将所学知识综合运用,提高编程实践技能。
二、教学内容1. 数据结构基础:回顾教材中关于数据结构的基础知识,重点复习链表的结构及其操作,为图书管理系统设计打下基础。
- 教材章节:第三章 数据结构,第四节 链表2. 文件操作:学习C语言文件操作相关知识,掌握文件读写方法,为图书信息持久化提供支持。
- 教材章节:第五章 文件,第一节 文件的打开与关闭,第二节 文件的读写3. 系统需求分析:引导学生学习如何分析图书管理系统的功能需求,明确课程设计目标。
- 教材章节:第二章 程序设计基础,第三节 结构化程序设计4. 系统设计与实现:根据需求分析,设计系统功能模块,使用C语言实现图书管理系统的增删改查等功能。
C语言课程设计报告图书管理系统

...... C语言课程设计报告院系:学号:班号:姓名:标题:图书管理系统目录第一部分题目要求 (3)第二部分需求分析 (3)第三部分总体设计 (4)第四部分详细设计 (4)1)主函数 (4)2)各功能模块设计 (6)3)公共函数 (16)第五部分上机操作 (17)第六部分总结 (20)附录(源代码) (22)第一部分题目要求图书管理系统包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等,是设计一图书管理系统,使之能够提供以下功能:1. 新图书基本信息的输入。
2. 图书基本信息的查询。
3. 对撤销图示基本信息的删除。
4. 办理借书手续。
5. 办理换书手续。
第二部分需求分析根据题目的要求,需要建立一个文件来保存图书信息,每本书的信息用一个结构体来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号,结构体中的存在状态可设为整型,用不同数字代表借还状态;在借书和还书手续中,要注意结构体的成员变量存在状态的值,使用指针会比较方便。
程序中需要对图书信息实现输入、查询、删除、借书和还书的功能,首先要使用菜单进行各项功能的选择;其次需要有文件的输入、输出功能,提供显示、查找等操作。
在程序的运行过程中,注意各功能在使用完毕后返回菜单的设置,以方便运行。
第三部分总体设计根据上面的需求分析,可以将整个图书管理系统分为输入模块、查找模块、删除模块、借书模块和还书模块(如图3-1所示)。
图3-1 系统功能模块图第四部分 详细设计4.1 数据结构在这个程序里,每本书的信息用一个结构体book 来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号,结构体中的存在状态设为整型,用不同数字代表库中高本书的数量。
struct book{ char title[30];int number;char author[30];float price;int store;char borrower_name[20];char borrower_gender[5];int borrower_number;}s[N];其中的N定义为该系统所管理书籍的最大值。
图书馆管理系统C语言课程设计报告(原创)

课程报告任务书1需求分析开发一个图书管理系统。
一、图书信息包括图书编号、书名、作者、价格、出版社、出版日期、类别、馆藏地址、库存量。
二、系统功能包括1 新建图书信息库2查询图书信息●全部查询●按书名查询●按作者查询●按类别查询3 图书排序●按编号排序●按价格排序4 图书信息插入(插入后仍按编号顺序排放的)5 图书信息删除(按书名查找删除)6 图书信息修改(按书名查询到书后可以进行选择对各项信息进行修改)7 图书数目统计8 图书信息保存在文件中三、在主函数里设计各个功能选项,然后调用相应的自定义子函数来实现功能。
2 概要设计(1) 数据结构主要数据结构:单链表//图书信息结构体struct book{char num[L]; //图书编号char name[M]; //书名char writer[M]; //作者char publisher[M]; //出版社char time[N]; //出版日期char category[n]; //类别char room[N]; //馆藏地址double price; //价格int amount; //库存量struct book *next;};(2) 模块划分主函数void main()自定义子函数即功能函数struct book * create(); // 新建图书信息库struct book * scanf1_(); //输入单本书的信息void printf1_(struct book *); //输出单本书的信息void chaxun_(struct book *); //综合查询void chaxun_all(struct book *); //全部信息浏览void chaxun_name(struct book *); //按书名查询void chaxun_writer(struct book *); //按作者查询void chaxun_category(struct book *); //按类别查询struct book *num_order(struct book *); //按编号排序struct book *price_order(struct book *); //按价格排序struct book *delete_(struct book *); //图书信息删除void change(struct book *,char a[]); //图书信息修改struct book *insert(struct book *); //图书信息插入int count(struct book *); //图书数目统计void save(struct book *); //保存到文件struct book *load(); //从文件读取信息到链表int quit(struct book *); //退出函数(3) 程序总体框架(4) 主界面是如下3 详细设计一main()主函数程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调整,均由主函数控制。
图书管理系统c课程设计报告

图书管理系统c 课程设计报告一、课程目标知识目标:1. 让学生掌握C语言中面向对象程序设计的基本原理,能够运用类与对象的概念构建图书管理系统的基本框架。
2. 学生能够运用结构体数组、文件操作等C语言知识实现图书的增加、删除、修改和查询功能。
3. 学生了解并掌握C语言中模块化编程的方法,将图书管理系统划分为合理的功能模块。
技能目标:1. 培养学生运用C语言解决实际问题的能力,能够根据需求独立设计并实现图书管理系统。
2. 提高学生的编程实践能力,使其能够熟练使用C语言进行代码编写、调试和优化。
3. 培养学生的团队协作能力,学会与他人共同分析问题、讨论解决方案并分工合作。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣和热情,培养其主动探究、勇于创新的精神。
2. 培养学生严谨、踏实的学术态度,养成良好的编程习惯,注重代码的可读性和可维护性。
3. 通过课程学习,使学生认识到计算机技术在图书管理等领域的重要应用,增强其社会责任感和使命感。
课程性质:本课程为高级编程语言课程,以C语言为基础,结合面向对象程序设计思想,培养学生解决实际问题的能力。
学生特点:学生已具备C语言基础,具有一定的编程能力和问题分析能力,但对面向对象程序设计尚不了解。
教学要求:教师应注重理论与实践相结合,引导学生通过案例分析和实践操作,逐步掌握图书管理系统的设计与实现方法。
同时,关注学生的个体差异,提供有针对性的指导和帮助,确保每位学生都能达到课程目标。
在教学过程中,注重培养学生的团队协作能力和创新精神。
二、教学内容1. 面向对象程序设计基本原理- 类与对象的概念- 封装、继承、多态性2. 图书管理系统需求分析- 功能模块划分- 数据结构设计3. C语言实现图书管理系统- 结构体数组的使用- 文件操作- 函数封装与模块化编程4. 图书管理系统功能实现- 图书的增加、删除、修改和查询- 界面设计及用户交互5. 项目实践与团队协作- 分组讨论与分工合作- 代码编写、调试与优化- 项目展示与评价教学内容安排与进度:1. 第1周:面向对象程序设计基本原理学习2. 第2周:图书管理系统需求分析,制定项目计划3. 第3-4周:C语言实现图书管理系统,完成功能模块开发4. 第5周:项目实践与团队协作,完成项目整合与优化5. 第6周:项目展示与评价,总结与反思教材章节及内容:1. 《C语言程序设计》第十章 面向对象程序设计2. 《C语言项目实践》第三章 结构体与文件操作3. 《计算机编程基础》第七章 函数与模块化编程教学内容确保科学性和系统性,结合课程目标,以实践为导向,培养学生解决实际问题的能力。
c语言课程设计报告图书管理系统

C语言课程设计报告: 图书管理系统1. 引言本报告旨在介绍一个基于C语言的图书管理系统的设计与实现。
图书管理系统是一个用于管理图书馆图书的软件,它能够方便地进行图书的借阅、归还、查询等操作,提高图书馆的管理效率。
2. 系统需求分析在设计图书管理系统之前,我们首先需要明确系统的需求。
根据需求分析,该系统需要具备以下功能:•图书的录入与管理:管理员可以添加、修改和删除图书信息,包括书名、作者、出版社、ISBN等。
•读者的管理:管理员可以添加、修改和删除读者信息,包括姓名、学号、联系方式等。
•图书借阅与归还:读者可以借阅图书,并在归还时完成相应的操作。
•图书查询:管理员和读者都可以通过关键字查询图书信息。
•预约图书:读者可以预约图书,待图书可用时通知读者。
•罚款管理:系统可以自动计算读者逾期归还图书的罚款金额,并进行相应的处理。
3. 系统设计与实现3.1 数据结构设计为了实现图书管理系统的各项功能,我们需要设计合适的数据结构来存储图书信息、读者信息等。
以下是我们设计的数据结构:•图书结构体:包括书名、作者、出版社、ISBN等信息;•读者结构体:包括姓名、学号、联系方式等信息;•借阅记录结构体:包括图书信息、读者信息、借阅日期、归还日期等信息;3.2 系统模块设计根据系统需求,我们可以将图书管理系统划分为以下几个模块:•图书管理模块:包括图书的添加、修改和删除功能;•读者管理模块:包括读者的添加、修改和删除功能;•图书借阅模块:包括图书的借阅和归还功能;•图书查询模块:包括关键字查询功能;•预约图书模块:包括图书的预约功能;•罚款管理模块:包括读者逾期归还图书的罚款管理功能;3.3 系统实现根据系统设计,我们使用C语言编写相应的代码来实现整个图书管理系统。
我们使用结构体来存储图书、读者和借阅记录的信息,并使用文件来存储这些数据。
我们可以通过菜单方式来实现用户和管理员的交互,用户可以根据需求选择相应的功能。
C语言图书管理系统课程设计报告

第三章图书管理系统的设计与实现3.1系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。
根据系统界面的提示信息对图书馆信息进行查询、初始化等操作系统功能需求分析描述如下:(1)系统主菜单:进入系统和退出系统(2)功能菜单:显示可以进行的操作(3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息(4)借还书主菜单:可以进行借书和还书等操作3.2系统的设计3.2.1 系统的总统设计下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。
(1)总体思想本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。
系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
(2)系统模块结构图根据需求分析结果,图书管理系统可以分为三大模块:查询图书模块、借书功能模块、还书功能模块。
系统模块结构如图:3.2.2 系统的概要设计㈠系统主菜单。
显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:退出系统、查询图书、借书、还书。
㈡查询图书信息进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。
图书查询模块流程如图:3.3 测试结果系统主界面功能菜单查询系统菜单借还系统菜单3.4 源代码# include <stdio.h> # include <stdlib.h> # include <string.h>typedef struct link {char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100];float price;char status[100]; struct link *next; }link;link *Cbook(){int n=0;link *p,*q,*head;FILE *fp;fp=fopen("图书信息.txt","r+");if(fp==NULL)printf("没有找到文件,请检查……");p=(link *)malloc(sizeof(link));if(p==NULL)printf("申请内存出错!!!\n");fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p ->publish,p->time);fscanf(fp,"%f",&p->price);fscanf(fp,"%s",p->status);while(feof(fp)==0){n++;if(n==1){head=p;}else{q=p;p=(link *)malloc(sizeof(link));if(p==NULL)printf("申请内存出错!!!\n");fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p ->publish,p->time);fscanf(fp,"%f",&p->price);fscanf(fp,"%s",p->status);q->next=p;}}p->next=NULL;fclose(fp);printf("信息已录入!!!");return head;}void mainmenu(){printf("\n*****************************************\n"); printf("\n** 欢迎使用图书管理系统 **\n"); printf("\n** 1.进入系统 0.退出系统 **\n"); printf("\n*****************************************\n"); printf("\n 请选择");}void menu1(){printf("\n*****************************************\n"); printf("\n** 1.进入图书查询系统 **\n"); printf("\n** 2.进入图书借还系统 **\n"); printf("\n** 3.保存所有图书信息 **\n"); printf("\n** 4.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择");}void cxmenu(){printf("\n*****************************************\n"); printf("\n** 1.显示所有图书信息 **\n"); printf("\n** 2.按编号查询图书 **\n"); printf("\n** 3.按书名查询图书 **\n"); printf("\n** 4.按作者查询图书 **\n"); printf("\n** 5.返回上级菜单 **\n"); printf("\n****************************************\n"); printf("\n请选择");}void jhmenu(){printf("\n*****************************************\n"); printf("\n** 1.借书 **\n"); printf("\n** 2.还书 **\n"); printf("\n** 3.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择");}void print(link *head){link *p;p=head;printf("\n");printf("\n****************************************** ********\n");printf("\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n");while(p!=NULL){printf("\n");printf("%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time);printf("\t\t%.2f",p->price);printf("\t\t%s",p->status);printf("\n");p=p->next;}}void hold(link *head){link *p;FILE *fp;fp=fopen("图书信息.txt","w+");if(fp==NULL){printf("文件操作出错!!!");exit(1);}p=head;for(;p!=NULL;p=p->next){fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->booknam e,p->author,p->publish,p->time);fprintf(fp,"\t\t%.2f",p->price);fprintf(fp,"\t\t%s",p->status);fprintf(fp,"\n");}fclose(fp);printf("信息已保存。
c语言图书管理系统课程设计报告

C语言图书管理系统课程设计报告一、项目介绍本项目是一个基于C语言的图书管理系统,旨在提供一个管理图书信息的平台,包括图书的增删查改、借还管理等功能。
二、功能需求本项目的主要功能需求如下:1.用户登录/注册:用户可以输入用户名和密码登录系统,也可以进行注册。
2.图书增删查改:管理员可以录入图书信息,包括书名、作者、出版社、ISBN、分类、价格、剩余数量等。
管理员可以根据图书名称、作者等信息查询图书信息,也可以对图书进行修改或删除。
3.借还管理:用户可以进行借书、还书,系统将会记录借书人信息、图书信息以及借书时间、归还时间等信息。
4.归还提醒:系统将会在借书过期且未归还的情况下自动发送邮件或短信提醒用户归还图书。
三、开发环境及相关技术本项目的开发环境为Windows10,使用的开发工具是Visual Studio Code。
在开发该项目时,我们主要使用了C语言和相关库函数。
四、开发流程本项目的开发流程如下:1.需求分析:根据用户需求,进行需求分析,确定系统需求。
2.概要设计:初步设计出系统的结构框架、数据模型等。
3.详细设计:根据概要设计,进一步详细设计出系统的各个功能模块的具体实现方法。
4.编码实现:根据详细设计,使用C语言和相关库函数编写代码实现各个功能模块。
5.测试调试:在编写完代码后,进行测试调试,找出问题并进行修复和优化。
6.部署实施:完成测试调试后,进行项目上线和部署。
五、实现效果展示以下是系统的主界面和功能界面展示:1.登录/注册界面登录/注册界面登录/注册界面2.主界面主界面主界面3.图书管理界面图书管理界面图书管理界面4.借阅管理界面借阅管理界面借阅管理界面六、总结与展望本项目基于C语言,使用了相关库函数开发了一个图书管理系统。
通过该项目的开发,我们深刻理解了系统开发的整个流程。
同时,我们也了解到了C语言在系统开发上的应用及其局限性。
未来,我们还可以继续完善该系统,增加其他功能模块,如图书推荐、借阅排行等,从而进一步完善该系统,提高用户体验。
原创c语言图书管理系统课程设计报告总结

原创C语言图书管理系统课程设计报告总结1. 引言图书管理系统是一种常见的信息管理系统,它可以帮助图书馆或书店高效地管理图书借阅、归还和查询等操作。
本报告总结了我们小组在C语言课程设计中实现的图书管理系统的设计和实现过程,并对系统的功能、性能和改进进行了评估和总结。
2. 系统设计2.1 功能需求我们设计的图书管理系统主要包含以下功能:•图书信息管理:包括图书的录入、修改、删除和查询等操作。
•借阅管理:支持借阅图书和归还图书的操作,并提供相关的借阅历史查询功能。
•用户管理:包括用户的注册、登录和密码修改等功能。
•权限管理:不同类型的用户具有不同的权限,例如管理员可以对图书信息进行修改,而普通用户只能借阅和归还图书。
2.2 系统架构我们的图书管理系统采用了客户端-服务器架构,其中客户端是用户界面,服务器负责处理客户端的请求并维护数据。
•客户端:使用C语言编写,提供交互式的图形用户界面,用户可以通过菜单选择各种功能,并输入相应的数据。
•服务器:也使用C语言编写,负责处理客户端发送的请求,包括对数据库的读写操作和权限验证。
2.3 数据库设计为了存储图书信息、用户信息和借阅历史等数据,我们使用了MySQL数据库。
设计了以下几个表格:•图书信息表:存储图书的编号、名称、作者、出版社等信息。
•用户信息表:存储用户的用户名、密码、姓名、学号等信息。
•借阅历史表:存储借阅记录的图书编号、借阅时间、归还时间等信息。
3. 系统实现3.1 客户端实现客户端使用C语言编写,使用了C语言提供的控制台窗口和输入输出函数库,通过菜单和输入框等控件与用户进行交互。
具体实现了以下几个模块:•图书信息管理模块:实现图书的录入、修改、删除和查询等功能。
•借阅管理模块:实现借阅和归还图书的操作,并提供借阅历史查询功能。
•用户管理模块:实现用户的注册、登录和密码修改等功能。
•权限管理模块:根据用户类型进行权限验证,并限制特定操作的访问权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
它引用了一个顺序表SL。
其他函数调用时只需传入顺序表头即可。
(3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。
menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。
Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。
cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。
jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。
操作完成后按提示信息进行文件的保存操作。
(4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。
、(5)、void Book_Borrow(struct SqList &SL);这个函数为保存信息到文件的函数,使用时将顺序表的头传给函数,函数可将整个顺序表的所有信息存入到磁盘文件中。
并覆盖掉源文件,以便以后调用。
(9)、void Book_Borrow(struct SqList &SL)、void Book_Return(struct SqList &SL);这两个函数是借书还书的函数,在借还后系统会修改图书的在库信息。
调用时将顺序表参数带回到主函数。
并会出提示信息让用户返回菜单保存信息。
3.实现注释:这个实用的小型图书管理程序程序以顺序表操作完成,并实现文件信息的录入和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。
实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。
查询时可按书名、编号、作者等方式查询,找到后输出这本书的所有信息。
在添加图书信息后,还增加了顺序表排序操作,并输出整个顺序表,方便用户检查信息。
可查询图书的在库状态,方便用户进行借书、还书操作。
在借书还书成功后图书的在库状态改变,并有提示信息让用户保存信息。
系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、在库状态等,在处理过程中各项可以作为一本图书的不同属性来进行处理。
4.结构体系设计:图书管理系统主界面流程图开始图书借还系统主界面流程图5.设计过程中的想法与程序中的不足:作为学期末的一项课程,主要靠编出来的系统来考察我们所掌握的基本理论知识及实际解决问题的能力,通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。
利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。
总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。
比如,没有对界面进行操作,只是实现了简单的功能,程序写的有点繁琐,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确,对于数据的错误输入处理不是很完善等等。
这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。
我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。
事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。
我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。
三、用户手册:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面,然后可以选择 1.进入系统,2.退出系统。
选择1后进入系统,然后显示功能菜单按数字键选择所需服务。
功能菜单中,1录入所有书籍信息,2进入图书管理系统,3进入图书查询系统,4进入图书借还系统,5保存所有图书信息,6显示菜单,7返回上级菜单。
当出现"请选择"时,需要输入选项前的数字,输完之后按回车(下同)。
首次运行系统需要先选择1录入库存书籍信息,然后再选择其他操作。
当选择2时会进入图书管理系统,在这里可以选择添加、修改信息等操作,需要注意的是每次执行完添加、修改等操作后需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变(下同)。
返回上级菜单进入图书查询系统、图书借还系统的操作和管理系统的差不多,用户可自己尝试使用,所有信息最后均以磁盘文件方式保存,而且格式固定,在输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。
四、调试与测试:上机操作(截图)系统主界面(选择数字进入相应的选项)选择1进入系统,然后出现图书初始化菜单;选择4进入查询系统,然后出现查询库存信息;选择2输入图书编号,借书功能并且显示库存;选择3输入图书编号,还书功能并且显示库存;选择4进入查询系统,然后出现查询库存信息;五、小节:在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。
将理论和实践结合在一起,用先进的计算机工具方便人们的生活。
C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。
编写的程序从理论上来说并没有错,但以上机就问题不断。
甚至有些课本上的知识照搬不变,也不能得到正确的结果。
有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。
经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。
我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。
不管什么系统,只用运用到实际应用中,才具有先现实意义。
所以c语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。
参考文献:[1] 黄明等编著《C语言课程设计》北京:电子工业出版社[2] 郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。
2000年6月第1版[4] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版[5] 谭浩强编著《C程序设计题解与上机指导(第3版) 》北京:清华大学出版社[6] 谭浩强编著《C程序设计(第3版) 》北京:清华大学出版社附录:源程序代码/*** 任务:C语言课程设计* 班级:13计转本* 学号:140* 姓名:张朝柱* 实验时间:2016-3-22* 本程序的功能是:图书管理系统*/#include<>#include<>#include<>#define BOOKNUMBER 5#define LIST_SIZE 10 ook_id; ook_name;cin>>[i].book_author;cin>>[i].book_number;++; ook_id==ID)&&[i].book_number>=1)) ook_id<<" "<<[i].book_name<<" "<<[i].book_author<<" "<<[i].book_number<<endl;[i].book_number--;cout<<"成功提示: 借书成功!"<<endl;cout<<"图书信息为:";cout<<[i].book_id<<" "<<[i].book_name<<" "<<[i].book_author<<" "<<[i].book_number<<endl;return ;}}cout<<"错误提示: 没有你所要借的图书!"<<endl;}void Book_Return(struct SqList &SL){int i=0,ID=0;cout<<"请输入你所还书的编号:";cin>>ID;for(i=0;i<;i++){if[i].book_id==ID) ook_id<<" "<<[i].book_name<<" "<<[i].book_author <<" "<<[i].book_number<<endl;[i].book_number++;cout<<"成功提示: 还书成功!"<<endl;cout<<"图书信息为:";cout<<[i].book_id<<" "<<[i].book_name<<" "<<[i].book_author<<" "<<[i].book_number<<endl;return ;}}cout<<"错误提示: 你所还书籍不在本书库中!"<<endl;}void Book_Inquire(struct SqList &SL){int i,ID;cout<<"请输入你要查询图书的库存(图书的编号):";cin>>ID;for(i=0;i<;i++){if[i].book_id==ID) ook_id<<" "<<[i].book_name<<" "<<[i].book_author ook_number<<endl;cout<<"该书的库存为:"<<[i].book_number<<endl;return ;}}cout<<"错误提示: 您查询的书籍不在本书库中!"<<endl;}int main(void){struct SqList SL; //SL 表示顺序表的类型的变量名;struct BOOK_SYSTEM Book; //Book 结构体类型名=NULL;=(struct BOOK_SYSTEM *)malloc(sizeof(struct BOOK_SYSTEM)*LIST_SIZE); //开辟10个struct BOOK_SYSTEM 这个类型的顺序表if==NULL){cout<<"错误提示: 内存申请失败!"<<endl;return 0;}else{=0;=LIST_SIZE;}int command=0; //命令字变量GUI_human_computer();while(1){cout<<"请输入你要进行操作的命令字:";cin>>command;switch(command){case 1:Book_Entering(SL); //五本书的录入函数break;case 2:Book_Borrow(SL);break;case 3:Book_Return(SL);break;case 4:Book_Inquire(SL);break;default: cout<<"错误提示: 命令字有误!"<<endl;break;}}return 0;}。