c语言课程设计报告及源代码_图书馆管理系统剖析

合集下载

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码

#include〈stdio.h〉#include<windows.h〉#include〈string。

h〉#include<conio。

h>#define M 100struct books{char tsmc[12];inttsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];intxh; }s[M];int N;bool flag;intmain (){intsele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl”);printf("\n\n");printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n");printf(” ************************\n"); while(1){printf(”\n\n请输入功能序号:");scanf (”%d",&sele);if(sele>=0 && sele<=5){switch(sele){case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf(”\n\n");printf(” ************************\n”); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n”);printf(” ************************\n”);}else{printf(”输入错误请再次输入|\n\n");printf("\n\n");printf(” ************************\n”);printf(" 1:输入2:查询3:删除\n”);printf(”4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n”);} //wr_file();}/******主函数***//*********输入*********/void sr(){intn,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf(”图书名称:”);scanf(”%s",s[N-n-1+i]。

c语言课程设计报告及源代码_图书馆管理系统剖析

c语言课程设计报告及源代码_图书馆管理系统剖析

1 设计内容、任务及基本要求 (2)1.1 设计内容 (2)1.2 设计任务 (2)1.3 设计基本要求 (2)2 总体设计思路 (4)2.1 系统功能 (4)2.2 各个模块之间的主要关系 (4)2.3 总体程序框图 (5)2.4 系统的总体流程图 (5)3 功能模块的具体设计 (7)3.1 main() 函数模块 (7)3.2查询所有图书信息函数模块 (8)3.3查询一本图书信息函数模块 (8)3.4添加图书信息函数模块 (9)3.5删除图书信息函数模块 (10)3.6 借阅图书模块 (12)4 功能模块的调试与测试 (13)4.1主菜单运行界面 (13)4.2查询所有图书信息模块运行界面 (13)4.3查找某一本图书信息模块运行界面 (14)4.4 添加图书信息模块运行界面 (16)4.5 删除图书信息模块运行界面 (17)4.6 借阅图书模块信息运行界面 (79)5 总结 (22)6 致谢 (23)7 参考文献 (24)9 程序清单 (25)1.设计内容、任务以及基本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。

操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。

1.2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。

1.3基本要求(1)通过提示菜单选择可以进行的操作。

(2)将图书的信息存入文件中,并命名为BookInfo.txt。

原创c语言图书馆管理系统源代码

原创c语言图书馆管理系统源代码

原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。

使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。

本文将介绍一个原创的C语言图书馆管理系统的源代码。

功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。

- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。

- 归还管理:可以进行归还操作,并更新图书的可借状态。

- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。

数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。

2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。

3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。

系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。

2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。

3. 根据用户选择的功能,进入相应的功能界面。

4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。

5. 用户完成操作后,可以选择返回主菜单或退出系统。

代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。

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

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课程设计报告

图书管理系统c课程设计报告

图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。

在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。

技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。

情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。

二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。

2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。

3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。

4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。

三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。

2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。

3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。

4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。

四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。

2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。

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

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

C语言图书馆管理系统课程设计报告一、设计背景随着图书馆信息化管理的普及和发展,使用计算机进行图书馆管理已成为必然趋势。

为了提高图书馆管理工作的效率和准确性,本课程设计旨在设计一个基于C语言的图书馆管理系统。

二、设计目标1.实现对图书馆的基本信息进行添加、删除、修改和查询的功能。

2.实现对读者信息的管理,包括添加、删除、修改和查询。

3.实现借书和还书功能,包括借书时的借阅记录的生成和还书时相关操作。

4.实现图书馆管理员的登录和权限管理功能。

三、设计思路基于以上设计目标,我们将采取以下设计思路:1.设计合适的数据结构来存储图书馆、读者和借阅记录等信息。

2.设计相应的函数来实现对数据的增删改查操作。

3.设计用户界面,使用户可以方便地使用各种功能。

4.设计登录和权限管理功能,保证只有授权的管理员才能进行系统管理操作。

四、系统功能设计1. 图书馆管理功能•添加图书馆信息:输入图书馆名称、地址等信息,保存到系统中。

•删除图书馆信息:根据图书馆名称或其他唯一标识,删除相应的图书馆信息。

•修改图书馆信息:根据图书馆名称或其他唯一标识,修改相应的图书馆信息。

•查询图书馆信息:根据图书馆名称或其他唯一标识,查询相应的图书馆信息。

2. 读者管理功能•添加读者信息:输入读者姓名、年龄、性别等信息,保存到系统中。

•删除读者信息:根据读者姓名或其他唯一标识,删除相应的读者信息。

•修改读者信息:根据读者姓名或其他唯一标识,修改相应的读者信息。

•查询读者信息:根据读者姓名或其他唯一标识,查询相应的读者信息。

3. 借还书功能•借书:根据读者ID和图书ID,生成借阅记录,修改相应的图书和读者信息。

•还书:通过借阅记录中的借阅ID,找到相应的借阅记录,修改相应的图书和读者信息。

4. 登录和权限管理功能•管理员登录:输入管理员用户名和密码,验证登录信息。

•管理员权限管理:设置对应管理员的权限,包括“图书馆管理”和“读者管理”等。

五、系统实现本系统的实现将采用C语言作为开发语言,使用相关编程工具进行开发。

图书馆管理系统C语言课程设计报告(原创)

图书馆管理系统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、题目与要求 (2)2、系统总体设计(要给出必要的文字说明及必要的图示) (3)2.1 功能需求分析(明确选题的功能需求) (3)2.2 系统功能模块划分(要给出系统功能模块图) (4)3、详细设计 (4)3.1重要数据的数据结构设计(即结构体的声明、变量的定义、文件) 4 3.2 函数的规划和设计(即根据分析需要设计哪些函数及其之间的调用关系) (5)3.3 主控模块(main函数)的流程分析与设计(要画出主函数的流程图) 6 3.4 主要功能模块的流程分析与设计(分别要画出各主要功能模块实现的流程图) (7)4、课程设计小结 (11)4.1 运行结果 (11)4.2设计中的难点及其解决方法 (18)4.3 不足之处 (19)5、小组人员分工说明(明确各个组员的具体分工及实际完成情况)19 评语及成绩 (20)6、附录(源代码) (21)1、题目与要求(标题的字体格式、段落格式照此,以下同!)题目:图书馆管理系统要求:能够完成图书馆日常操作,数据要能够保存,能够随时取出,并在任何操作后都能保持信息完整性,图书的原始数据需保存到磁盘文件中。

2、系统总体设计(要给出必要的文字说明及必要的图示)主要分为四大部分:1、图书查找(包括按书名或作者查找)2、借阅图书3、归还图书4、管理系统(包括添加图书、修改图书、删除图书、图书统计、学生管理、职工管理等)2.1 功能需求分析(明确选题的功能需求)具体功能:①图书查找⏹按书名查找。

⏹按作者查找。

②图书借还⏹借书●判断所借书籍号是否存在,若不存在重新输入书籍号。

●判断该借书证号是否存在,若不存在重新输入借书证号(即办卡功能)。

●判断该书籍是否已借出,若是则不允许执行借书操作。

●借书处理包括在“借还书登记”中增加该借书情况,在该图书信息中加上“已借”标记。

⏹还书●判断所借书是否存在,若不存在重新输入书籍。

●判断该书是否已借出,若不是则不允许执行还书操作。

图书管理系统(含源代码)c语言_数据结构课程设计报告

图书管理系统(含源代码)c语言_数据结构课程设计报告

数据结构大作业图书管理系统工程管理121279044 伍杨目录一、题目要求 (2)二、总体设计 (2)三、编码实现 (3)1) 定义图书结构体 (3)2) 登记操作 (4)3) 查看操作 (8)4) 删除操作 (11)5) Main函数 (20)四、调试与测试 (26)五、五心得体会 (28)六、用户手册 (28)一、题目要求1)目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。

2)题目要求实现图书管理信息系统的设计。

要求实现图书添加、显示全部图书、查询、借阅和归还。

主要考查利用文件的操作!二、总体设计三、编码实现1)定义图书结构体struct book{char bookname[20]; //书名int NO; //书编号char type[20]; //类型int date; //到书日期};struct person{char name[10]; //姓名char classes[20]; //班级int number; //学号char telephone[12]; //联系电话int NO; //书编号char bookname[20]; //书名int borrowdate; //借书日期int returndate; //还书日期2)登记操作void new_book() //登记新书{FILE *fp;struct book b;int i,j;if((fp=fopen("shuku.txt","a"))==NULL){printf("File open error!\n");exit(0);}printf("请朱老师输入此次收到的书本总数:");scanf("%d",&i);for(j=0;j<i;j++){printf("请朱老师输入书名:");scanf("%s",b.bookname);fprintf(fp,"%s",b.bookname);printf("请朱老师输入书编号:");scanf("%d",&b.NO);fprintf(fp," %d",b.NO);printf("请朱老师输入类型:");scanf("%s",b.type);fprintf(fp," %s",b.type);printf("请朱老师输入到书日期:");scanf("%d",&b.date);fprintf(fp," %d",b.date);}if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}void new_person() //登记借书{FILE *fp;struct person p;char choice;if((fp=fopen("jieshujilu.txt","a"))==NULL){ printf("File open error!\n");exit(0);}printf("请朱老师输入借书人姓名:"); scanf("%s",);fprintf(fp,"%s",);printf("请朱老师输入借书人班级:"); scanf("%s",p.classes);fprintf(fp," %s",p.classes);printf("请朱老师输入借书人学号:"); scanf("%d",&p.number);fprintf(fp," %d",p.number);printf("请朱老师输入借书人联系电话:"); scanf("%s",p.telephone);fprintf(fp," %s",p.telephone);printf("请朱老师输入书编号:");scanf("%d",&p.NO);fprintf(fp," %d",p.NO);printf("请朱老师输入书名:");scanf("%s",p.bookname);fprintf(fp," %s",p.bookname); printf("请朱老师输入借书日期:"); scanf("%d",&p.borrowdate);fprintf(fp," %d",p.borrowdate);printf("请朱老师输入还书日期:");scanf("%d",&p.returndate);fprintf(fp," %d",p.returndate);printf("\n\t您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");new_person();}if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}实现程序对文件的读取void Read(){int i=0;int j=0;ifstream in("Libra.txt",ios::out);in>>i;all=i;if(i>0&&i<=Max){for(j=1;j<=i;j++){in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].cou nt;}}in.close();}3)查看操作v void see_book() //查看书库记录{FILE *fp;long NO;char bookname[20];char type[20];long date;if((fp=fopen("shuku.txt","r"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%ld%s%ld",bookname,&NO,type,&date);printf("%-10s %-10ld %-10s %ld\n",bookname,NO,type,date);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}void see_person() //查看所有借书记录{FILE *fp;char name[10];char classes[20];int number;char telephone[20];int NO;char bookname[20];int borrowdate;int returndate;if((fp=fopen("jieshujilu.txt","r"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %ld %s %ld %s %ld %ld",name,classes,&number,telephon e,&NO,bookname,&borrowdate,&returndate);printf("%-5s %-5s %ld %-5s %ld %-5s %ld %ld\n",name,classes,number,tel ephone,NO,bookname,borrowdate,returndate);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}4)删除操作void delete_books() //删除旧书{FILE *fp;struct book b;int number;void deletebooks();printf("请输入您要删除的书编号:");scanf("%d",&number);if((fp=fopen("shuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);if(b.NO==number){printf("\n\n\t***************图书信息*******************\n");printf("\n\t图书书名:%25s",b.bookname);printf("\n\t-----------------------------------------");printf("\n\t图书编号:%25d",b.NO);printf("\n\t-----------------------------------------");printf("\n\t图书类型:%23s",b.type);printf("\n\t-----------------------------------------");printf("\n\t到书日期:%25d",b.date);printf("\n\t-----------------------------------------");deletebooks();}}}void deletebooks(){FILE *fp,*fp1,*fp2,*fp3;int number;struct book b;printf("\n\n确认删除?请再次输入书编号:");scanf("%d",&number);if((fp=fopen("shuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp1=fopen("tempshuku.txt","w"))==NULL){ //建立一个临时文件printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);if(b.NO==number)continue;elsefprintf(fp1,"%s %d %s %d",b.bookname,b.NO,b.type,b.date); }fclose(fp);fclose(fp1);if((fp2=fopen("tempshuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp3=fopen("shuku.txt","w"))==NULL){ //清空书库printf("不能打开此文件!\n");exit(0);}while(!feof(fp2)){ //将临时文件的内容写人源文件fscanf(fp2,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);fprintf(fp3,"%s %d %s %d",b.bookname,b.NO,b.type,b.date);}fclose(fp2);fclose(fp3);printf("\n 删除成功!\n");}void delete_returnbook() //删除借书记录{FILE *fp;int numbers;struct person p;void deletereturnbook();char choice;printf("\n请输入所还书本的书编号:");scanf("%d",&numbers);if((fp=fopen("jieshujilu.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %ld %s %ld %s %ld %ld",,p.classes,&p.number,p.telep hone,&p.NO,p.bookname,&p.borrowdate,&p.returndate);if(p.NO==numbers){printf("\n\t***************图书信息*******************\n");printf("\n\t借书人姓名:%20s",);printf("\n\t-----------------------------------------");printf("\n\t借书人班级:%20s",p.classes);printf("\n\t-----------------------------------------");printf("\n\t借书人学号:%20d",p.number);printf("\n\t-----------------------------------------");printf("\n\t借书人联系电话:%20s",p.telephone);printf("\n\t-----------------------------------------");printf("\n\t图书编号:%24d",p.NO);printf("\n\t-----------------------------------------");printf("\n\t图书名称:%23s",p.bookname);printf("\n\t-----------------------------------------");printf("\n\t借书日期:%25d",p.borrowdate);printf("\n\t-----------------------------------------");printf("\n\t还书日期:%25d",p.returndate);printf("\n\t-----------------------------------------");deletereturnbook();printf("\n\t您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");delete_returnbook();}}}fclose(fp);}void deletereturnbook(){FILE *fp,*fp1,*fp2,*fp3;struct person p;int numbers;printf("\n\n确认删除?请再次输入书编号:");scanf("%d",&numbers);if((fp=fopen("jieshujilu.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp1=fopen("tempbook.txt","w"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %d %s %d %s %d %d",,p.classes,& p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate,&p .returndate);if(p.NO==numbers)continue;elsefprintf(fp1,"%s %s %d %s %d %s %d %d",,p. classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate);}fclose(fp);fclose(fp1);if((fp2=fopen("tempbook.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp3=fopen("jieshujilu.txt","w"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp2)){ //将临时文件写人源文件fscanf(fp2,"%s %s %d %s %d %s %d %d",,p.classes, &p.number,p.telephone,&p.NO,p.bookname,&p.borrowdate, &p.returndate);fprintf(fp3,"%s %s %d %s %d %s %d %d",,p.classes,p.number,p.telephone,p.NO,p.bookname,p.borrowdat e,p.returndate);}fclose(fp2);fclose(fp3);printf("\n 删除成功!\n");}5)Main函数int main(void){int choice;char choice2;struct book;struct person;do{printf("\n\n\n 图书馆管理系统\n\a");printf(" *******************************************************\n");printf(" ***朱老师您好吖********功能选项:登记******请按1,******\n"); printf(" ******************************* 查看/查询*请按2 ******\n"); printf(" ******************************* 删除***** 请按3 ******\n"); printf(" ******************************* 退出***** 请按0 ******\n"); printf(" *******************************************************\n\n\n"); printf(" 请选择功能:");scanf("%d",&choice);switch(choice){case 1:printf(" 登记选项:新书登记请按1,借书登记请按2,返回请按3\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls"); //清屏printf("新书资料登记:\n\n");new_book(); //新书登记printf("登记完毕!\n");printf("\n");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");printf("借书资料登记:\n\n");new_person(); //借书登记printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");break;}break;case 2:printf(" 查看/查询选项:书库查看请按1,总借书记录查看请按2,到期记录查询请按3,返回请按4\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls");printf("欢迎朱老师进入书库!\n\n");printf("书名书编号类型到书日期\n");printf("------------------------------------------\n");see_book(); //书库显示printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");printf("欢迎朱老师进入借书记录!\n\n");printf("姓名班级学号联系电话书编号书名借书日期到书日期\n");printf("--------------------------------------------------------\n");see_person(); //借书记录显示printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");search_person(); //显示符合记录printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 4:system("cls");break;}break;case 3:printf(" 删除选项:旧书删除请按1,借书记录删除请按2,返回请按3\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls");delete_books(); //删除ingprintf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");delete_returnbook(); //删除ingprintf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");break;}break;case 0:system("cls");}}while(choice != 0);return 0;}四、调试与测试主菜单登记查看删除生成的文件内信息五、五心得体会经过这次大作业,我觉得代码的编写,最主要的的是编程思想,语言其实不是太重要,思路最重要!六、用户手册程序执行文件为lib sys.exe,打开执行文件后按提示操作即可。

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

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

C语言课程设计报告: 图书管理系统1. 引言本报告旨在介绍一个基于C语言的图书管理系统的设计与实现。

图书管理系统是一个用于管理图书馆图书的软件,它能够方便地进行图书的借阅、归还、查询等操作,提高图书馆的管理效率。

2. 系统需求分析在设计图书管理系统之前,我们首先需要明确系统的需求。

根据需求分析,该系统需要具备以下功能:•图书的录入与管理:管理员可以添加、修改和删除图书信息,包括书名、作者、出版社、ISBN等。

•读者的管理:管理员可以添加、修改和删除读者信息,包括姓名、学号、联系方式等。

•图书借阅与归还:读者可以借阅图书,并在归还时完成相应的操作。

•图书查询:管理员和读者都可以通过关键字查询图书信息。

•预约图书:读者可以预约图书,待图书可用时通知读者。

•罚款管理:系统可以自动计算读者逾期归还图书的罚款金额,并进行相应的处理。

3. 系统设计与实现3.1 数据结构设计为了实现图书管理系统的各项功能,我们需要设计合适的数据结构来存储图书信息、读者信息等。

以下是我们设计的数据结构:•图书结构体:包括书名、作者、出版社、ISBN等信息;•读者结构体:包括姓名、学号、联系方式等信息;•借阅记录结构体:包括图书信息、读者信息、借阅日期、归还日期等信息;3.2 系统模块设计根据系统需求,我们可以将图书管理系统划分为以下几个模块:•图书管理模块:包括图书的添加、修改和删除功能;•读者管理模块:包括读者的添加、修改和删除功能;•图书借阅模块:包括图书的借阅和归还功能;•图书查询模块:包括关键字查询功能;•预约图书模块:包括图书的预约功能;•罚款管理模块:包括读者逾期归还图书的罚款管理功能;3.3 系统实现根据系统设计,我们使用C语言编写相应的代码来实现整个图书管理系统。

我们使用结构体来存储图书、读者和借阅记录的信息,并使用文件来存储这些数据。

我们可以通过菜单方式来实现用户和管理员的交互,用户可以根据需求选择相应的功能。

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语言图书管理系统课程设计报告一、项目介绍本项目是一个基于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语言图书管理系统课程设计报告总结

原创C语言图书管理系统课程设计报告总结1. 引言图书管理系统是一种常见的信息管理系统,它可以帮助图书馆或书店高效地管理图书借阅、归还和查询等操作。

本报告总结了我们小组在C语言课程设计中实现的图书管理系统的设计和实现过程,并对系统的功能、性能和改进进行了评估和总结。

2. 系统设计2.1 功能需求我们设计的图书管理系统主要包含以下功能:•图书信息管理:包括图书的录入、修改、删除和查询等操作。

•借阅管理:支持借阅图书和归还图书的操作,并提供相关的借阅历史查询功能。

•用户管理:包括用户的注册、登录和密码修改等功能。

•权限管理:不同类型的用户具有不同的权限,例如管理员可以对图书信息进行修改,而普通用户只能借阅和归还图书。

2.2 系统架构我们的图书管理系统采用了客户端-服务器架构,其中客户端是用户界面,服务器负责处理客户端的请求并维护数据。

•客户端:使用C语言编写,提供交互式的图形用户界面,用户可以通过菜单选择各种功能,并输入相应的数据。

•服务器:也使用C语言编写,负责处理客户端发送的请求,包括对数据库的读写操作和权限验证。

2.3 数据库设计为了存储图书信息、用户信息和借阅历史等数据,我们使用了MySQL数据库。

设计了以下几个表格:•图书信息表:存储图书的编号、名称、作者、出版社等信息。

•用户信息表:存储用户的用户名、密码、姓名、学号等信息。

•借阅历史表:存储借阅记录的图书编号、借阅时间、归还时间等信息。

3. 系统实现3.1 客户端实现客户端使用C语言编写,使用了C语言提供的控制台窗口和输入输出函数库,通过菜单和输入框等控件与用户进行交互。

具体实现了以下几个模块:•图书信息管理模块:实现图书的录入、修改、删除和查询等功能。

•借阅管理模块:实现借阅和归还图书的操作,并提供借阅历史查询功能。

•用户管理模块:实现用户的注册、登录和密码修改等功能。

•权限管理模块:根据用户类型进行权限验证,并限制特定操作的访问权限。

图书馆管理系统论文及源代码(C语言)

图书馆管理系统论文及源代码(C语言)

课程设计论文一、论文题目:“程序设计方法课程设计”论文二、引言C语言作为面向结构的高级程序设计语言,有着强大的编程功能。

它具有语言简洁、紧凑、方便、灵活等特点。

而且,C语言运算符和数据结构丰富语法自由度大,是一种强大的程序编辑工具,适用范围很大。

图书馆管理系统与学生的日常学习和生活有着密切的关系。

本次试验课题“设计图书馆管理系统”充分的发挥了C语言的功能特点,很好的锻炼了学生学习应用C语言的能力,这对今后从事软件开发、研究和应用都有很大的帮助。

三、论文内容:设计一个图书馆的图书管理,具体要求如下:1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面;2.查询各种图书的基本信息,设计出良好的查询界面;3.按图书编号进行排序,将排好序的图书信息输出到文件book.out中。

4.统计各类图书册数、图书馆的图书总册数。

5.统计图书的借阅情况。

四、正文1、需求分析(1)能进行简单的图书馆管理功能操作。

(2)通过图书馆信息界面进入管理系统。

(3)在管理系统中完成图书的录入、查找、借阅、统计等功能。

(4)得到及时的信息引导和错误提示。

2、需求框图3、设计分析(1)定义book结构体,用来储存图书的信息(包括书号、书名、作者、数量)。

(2)设计图书馆信息界面和图书查询界面,定义两个对应的函数用来调用这两个界面。

(3)将录入的新书的内容写进文件bookin中。

(4)从文件bookin中读出图书的信息(读到tnum、tname、tauther、tamount中),并与查询时输入的数据信息(ttnum、ttname、ttauther )进行比较,当有一项相同时打印处该图书信息(tnum、tname、tauther、tamount)。

(5)当选择借阅当前图书时(选Y)时,tamount减一。

4、设计框图5、系统设计6、主要数据结构(1)结构体:用来储存图书信息。

(2)文件:用来存储录入图书的信息。

(3)数组:用来存储字符串。

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

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

第一章§题目描绘图书管理系统设计:【要求】图书管理信息包含:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。

试设计一图书管理系统,使之能供给以下功能:(1)新图书基本信息的输入;(2)图书基本信息的查问;(3)对撤除图书信息的删除;(4)办理借书手续;(5)办理还书手续;【提示】成立图书室里信息构造体,构造体成员包含图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。

存在状态设为整型,可用不一样数字代表借还状态。

借书和还书手续要注意改正构造体的成员变量存在状态的值。

§算法设计1.设计思想:在整个系统编写的过程中,波及了许多 C语言知识点,关于不一样的数据种类、程序控制构造、数据构造作以剖析和总结,并联合这个课题进行综合的应用,在必定程度上做到了对所学知识举一反三。

由此进一步加深、稳固了所学的课程的基本理论知识,培育了综合剖析问题、解决问题的能力。

在设计程序时,参照了学校图书室的图书管理系统,实现了程序的模块化、构造化。

在主函数中调用各样函数,操作界面简单,易操作,人机互动性较强。

2.实现说明:这个适用的小型图书管理系统程序以构造体数组指针操作达成,并实现文件信息的录入、改正和保留等功能,全部信息以磁盘文件方式保留,方便用户使用。

本图书管理系统分为管理员和学生两个部分,其基本功能包含了对图书信息的储存、查问、增添、删除和借书、还书手续办理等。

查问时可按书名、编号等方式查问,找到后输出这本书的全部信息。

可查问图书的在库状态,方便用户进行借书、还书操作。

在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。

系统中主要的数据构造就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。

在办理过程中各项能够作为一本图书的不一样属性来进行办理。

3.构造系统设计图:主函数构造;图:新书信息录入流程;图:图书信息查问(管理员)流程;图:图书信息查问(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程;§程序设计及代码剖析1.程序设计:下边,我大概介绍一下我的系统的主要功能和注意事项:当运转此程序时,第一进入系统主界面,而后能够选择[1].管理员登岸(密码:123), [2].陆, [0].退出系统;选择 [1] 后进入管理员系统,考证密码成功后显示管理员功能菜单,按数字键选择所需服务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 设计内容、任务及基本要求 (2)1.1 设计内容 (2)1.2 设计任务 (2)1.3 设计基本要求 (2)2 总体设计思路 (4)2.1 系统功能 (4)2.2 各个模块之间的主要关系 (4)2.3 总体程序框图 (5)2.4 系统的总体流程图 (5)3 功能模块的具体设计 (7)3.1 main() 函数模块 (7)3.2查询所有图书信息函数模块 (8)3.3查询一本图书信息函数模块 (8)3.4添加图书信息函数模块 (9)3.5删除图书信息函数模块 (10)3.6 借阅图书模块 (12)4 功能模块的调试与测试 (13)4.1主菜单运行界面 (13)4.2查询所有图书信息模块运行界面 (13)4.3查找某一本图书信息模块运行界面 (14)4.4 添加图书信息模块运行界面 (16)4.5 删除图书信息模块运行界面 (17)4.6 借阅图书模块信息运行界面 (79)5 总结 (22)6 致谢 (23)7 参考文献 (24)9 程序清单 (25)1.设计内容、任务以及基本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。

操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。

1.2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。

1.3基本要求(1)通过提示菜单选择可以进行的操作。

(2)将图书的信息存入文件中,并命名为BookInfo.txt。

(3)将图书借阅情况信息存入文件中,并命名为SendInfo.txt。

(4)在本系统中可以进行管理系统包含的基本操作,其中包括a)查看所有图书的信息。

b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息。

c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置。

d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在。

e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。

(5)图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。

(6)图书信息文件中每一行存放一本图书的信息。

(7)借阅信息文件中每一行存放一本书的借阅情况。

2 总体设计思路2.1系统功能图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。

此程序包含了图书信息的录入、图书信息的浏览、图书的查询和排序、图书信息的删除与修改,借书,还书,统计等。

通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。

1、查询所有图书信息:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。

2、查找一本图书的信息:通过输入图书编号完成图书信息的查找,并在屏幕上显示。

3、修改图书信息:通过输入编号,判断此图书是否存在,若不存在则提示用户重新输入图书编号。

4、删除图书信息:通过输入编号,判断此图书是否存在,若存在,则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书编号。

5、借书:通过输入图书编号,判断此图书是否存在,若不存在则提示用户重新输入图书编号,若图书已借出则提示用户是否继续借书,若没借出则将此图书的编号和学生的学号存入图书借阅文件中。

6、退出系统:返回主页面。

2.2各个模块之间的主要关系图书信息管理系统可划分为5个模块:查询所有图书模块、查找一本图书信息模块、修改图书信息模块、删除图书信息模块、借阅图书模块。

各模块之间均有着或多或少的联系,比如:查找一本图书信息模块、修改信息模块、删除信息模块、借阅图书模块都需要先判断该图书是否存在,然后再进行其它操作。

理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读和调试。

2.3总体程序框图图2.1 系统总框架图2.4图2.2 系统总流程图3 功能模块的具体设计3.1 main() 函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。

在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。

通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。

运用fscanf语句在主函数中将文件中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。

具体如下:在主函数中定义一个存放图书信息的结构体struct list{char num[20] ; /*图书编号*/char name[40] ; /*书名*/char author[40] ; /*作者*/char publish [40]; /*出版社*/double price; /*价格*/};以及各函数的申明void search_allinformation(struct list b[]) ; /*查看全部图书信息*/void check_bookinformation (struct list b[] ); /*查找图书信息*/void add_bookinformation (struct list b[] ); /*添加图书信息*/void delete_bookinformation (struct list b[] ); /*删除图书信息*/void borrow_book (struct list b[] ) ; /*借阅图书*/ 通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。

switch (choice1){ case 1 : search_allinformation (b);break ;case 2 : check_bookinformation( b );break ;case 3 : add_bookinformation (b );break ;case 4 : delete_bookinformation( b);break ;case 5 : borrow_book( b);break ;case 0 : break ;}3.2查询所有图书信息函数模块void search_allinformation (struct list b[])通过printf()语句将所有的图书信息包括包括编号、书名、出版社、作者、价格等信息显示在屏幕上。

运用for语句加printf()实现图书信息的循环输出显示。

3.3 查询一本图书信息函数模块void check_bookinformation(struct list b[] )用户先输入图书编号后,先用strcmp(s1, s2)函数进行比较两个字符串数组的大小,从而查找出该图书是否存在,若不存在则提示用户是否要继续查找,运用switch语句,若继续则再次调用函数本身进行第二次查找,直到找到为止,若否则结束循环,不再进行查找。

通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。

运用fscanf语句在主函数中将文件中的内容赋给结构体。

其主要流程图如下:关键代码:strcmp(比较字符串) case ….break(判断) printf (输出信息)switch(实现选择功能分支)3.4 添加图书信息函数模块void add_bookinformation(struct list b[] )输入图书的基本信息包括编号、书名、出版社、作者、价格,由于原有的图书信息是按照编号的大小顺序排列的,所以只需运用for 循环 和strcmp 函数找出输入的图书 应该插入的位置,再将所添加的图书信息插入即可。

其主要流程图如下:关键代码: printf(输出信息)scanf (输入信息)switch(实现多分支结构程序设计)case-break (实现功能的选择)3.5删除图书信息函数模块void delete_bookinformation (struct list b[] )用户输入所要删除的图书编号,先查找该图书编号是否存在,若存在,这提示用户是否要显示删除后的信息,若不存在则提示重新输入。

关键代码switch(实现多分支结构程序设计)if(条件选择)3.6 借阅图书模块void borrow_book(struct list b[] )用户先输入所借图书的编号,调用函数查找该图书有没有借出,若已借出,则提示用户该图书已借出,并提示用户是否继续借阅其他书籍。

若继续,则继续进行新的查找。

关键代码:if-else(实现分支选择)getchar (从键盘上输入一个字符)goto (使程序的执行流程直接转接到标号对应的那条语句)strcmp (比较两个字符串的大小)4功能模块的调试及测试4.1主菜单运行界面图4.1 主菜单运行界面图4.2查询所有图书信息模块运行界面按1操作查询所有图书信息,(1)打开源程序,编译程序,单击Compile按钮,出现错误,如图:(2)错误均指向55行,经检查发现调用函数时调用的是整个结构体,而非某一个,所以应该为 search_allinformation (b) .(3)改正后重新运行,即的如下所示的界面如下:图4.2查询所有图书信息模块界面4.3查找某一本图书信息模块运行界面按2选择按书名查询某一本图书信息,若图书编号存在则界面如下:图4.3 按编号查询图书信息界面若图书编号不存在,(1)输入y ,没有进行继续查找的操作(2)调试程序,可查出输入的y对程序无影响,由于输入的是一个字符,而”\0”本身也是一个字符,则可将scanf(“%s” , &a) 改为getchar ()即可。

该后则界面如下:图4.4图书编号查询图书界面4.4 添加图书信息模块运行界面按3选择,输入编号,界面如下:图4.5按图书编号添加图书界面4.5 删除图书信息模块运行界面按4选择,输入编号,如果编号不存在,界面如下:图4.6按图书编号删除图书界面如果编号存在,界面如下:图4.7按图书编号删除图书界面4.6 借阅图书模块信息运行界面按5选择,输入编号,出现如下界面:图4.8借阅图书界面(有错误)调试后找出错误为文件SendInfo.txt扩展名是隐藏的,应将文件名改为SendInfo,得到如下正确界面:图4.9借阅图书界面如果编号不存在,界面如下:图4.10借阅图书界面总结通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,所以后在学习过程中,我会更加注视实践操作。

相关文档
最新文档