C语言课程设计(图书管理系统)教学文案
- 格式:doc
- 大小:629.00 KB
- 文档页数:29
C语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。
每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。
每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。
每个人的图书馆信息包括借书证号、班级、学号等。
该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。
可以随时添加、删除、修改、查询等相关资料。
b、借贷管理(1)借贷操作(2)还书操作(3)更新治疗提示:以上处理需要相互配合,通过编辑赔偿和违约金金额来完成图书借还业务的各种登记。
例如,读者在还书时,不仅要更新图书的库存信息,还要自动计算图书的罚款金额。
并显示读者当天到期未还图书的所有信息。
c、读者管理读者等级:对借阅的读者进行分类,比如可以分为教师和学生两类。
并定义每类读者可以借阅的图书数量及相关借阅时间等信息。
读者管理:可以录入读者信息,以及挂失或注销读者、查询等服务。
D.统计分析可以随时进行统计分析,及时了解当前的借阅情况和相关数据状态。
统计分析包括借阅列表、数据状态统计、借阅统计等功能分析,显示当日所有到期未还的图书信息。
e系统参数设置:您可以设置相关的系统服务器参数,如违约金金额、最大借用天数等。
根据题目分析这项工作分为六个模块。
1.图书数据2.借款人信息3.借用模块4.还书模块5.照看书籍6.查询模块模块一:书号,书名,作者,出版时间,价格,份数,页数。
模块二:单位、借阅书目、借阅时间模块3:输入书名、书号、借书证。
模块四:登记书号,还书,处理罚款。
模块5:管理书库中的书籍,将新书入库,删除旧书,堆栈查询模块6:图书查询。
数据测试源代码汉字菜单可以参照以下代码编写:#包含“stdio.h”。
主(){ char c;int I;做{clr SCR();for(I = 0;i < 80i++)printf(" * ");printf("\t 1:添加书籍\ n ");printf("\t 2:列出书籍\ n ");printf(" \ t 3:s reach books \ n ");printf("\t 4:借书\ n ");printf("\t 5:返回图书\ n ");printf("\t6:退出\n ")printf(" \ t请选择输入选项[1 \ \ 2 \ \ 3 \ \ 4 \ \ 5 \ \ 6]:\ n ");做{c = getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!='6');getchar();开关(c){事例“1”:输入();打破;案例“2”:del();打破;事例“3”:find();打破;case“4”:arrange();打破;事例“5”:right();打破;案例“6”:出口(0);}Printf("按任意键返回主菜单:\ n ");getchar();clr SCR();} while(1);}#include <stdio.h >定义图书结构*/结构书{int _ id#include <stdlib.h >#include <string.h >#定义借入1#定义NOBORROW 0/*//数字,唯一char _ name[32];//书的名称,不唯一int _ type//书的类型,不唯一int _ status//书的状态,借出/未借出int _ count//图书借出的次数struct Book * _ next//下一本书结构书* _ prev//前一本书};定义书籍类型*/操作目录提示*/操作目录提示1 */添加图书类型并显示用户信息*/添加图书状态并显示用户信息。
c语言书店管理系统课程设计一、课程目标知识目标:1. 掌握C语言基础语法,如变量定义、数据类型、运算符、控制结构等;2. 学会使用数组、字符串、结构体等C语言高级特性;3. 理解并掌握文件操作在C语言中的应用;4. 了解书店管理系统的需求分析、功能模块划分及实现。
技能目标:1. 能够运用C语言编写简单的书店管理系统程序;2. 学会分析问题,运用所学知识解决问题;3. 掌握编程规范,养成良好的编程习惯;4. 提高团队协作能力,通过小组合作完成课程设计。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情;2. 培养学生的创新意识,鼓励他们勇于尝试新方法解决问题;3. 增强学生的责任感,让他们明白编程在生活中的应用和价值;4. 培养学生面对困难时的坚持和毅力,学会克服挫折。
课程性质:本课程为实践性课程,旨在培养学生的编程能力、分析问题和解决问题的能力。
学生特点:学生已经掌握了C语言的基础知识,具备一定的编程能力,但实际应用经验较少。
教学要求:结合实际应用,引导学生运用所学知识完成书店管理系统的设计与实现,注重培养学生的实践能力和团队协作能力。
通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高编程水平。
二、教学内容1. C语言基础回顾:变量定义、数据类型、运算符、控制结构(选择、循环);2. 数组、字符串、结构体等高级特性及应用;3. 文件操作:文件的打开、读取、写入和关闭;4. 书店管理系统需求分析:系统功能模块划分、数据结构设计;5. 书店管理系统功能实现:用户界面设计、功能模块编程实现;- 用户注册与登录模块;- 图书信息管理模块;- 销售管理模块;- 库存管理模块;- 查询统计模块;6. 编程规范与调试技巧:代码风格、调试方法、性能优化;7. 团队协作与项目管理:分工合作、进度控制、问题解决;8. 课程总结与成果展示:项目演示、经验分享、总结反馈。
教学内容安排与进度:1. C语言基础回顾(1课时);2. 数组、字符串、结构体等高级特性及应用(2课时);3. 文件操作(1课时);4. 书店管理系统需求分析(1课时);5. 书店管理系统功能实现(6课时);6. 编程规范与调试技巧(1课时);7. 团队协作与项目管理(2课时);8. 课程总结与成果展示(1课时)。
c语言书籍管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在书籍管理系统中的应用,掌握基本的数据类型、运算符、控制结构等知识;2. 学生能掌握文件操作、指针等C语言高级特性,并应用于书籍管理系统的开发;3. 学生了解并掌握书籍管理系统中的模块划分,如用户模块、书籍模块、借阅模块等。
技能目标:1. 学生能运用C语言编写简单的书籍管理系统程序,实现用户注册、登录、查询书籍、借阅书籍等功能;2. 学生能通过调试和优化程序,提高书籍管理系统的稳定性和性能;3. 学生能运用所学知识解决实际编程问题,具备一定的编程实践能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,提高自主学习能力和团队协作能力;2. 学生在学习过程中,养成认真、严谨、求实的科学态度,勇于面对和解决问题;3. 学生通过书籍管理系统项目实践,培养创新意识,认识到计算机技术在现实生活中的重要作用。
课程性质:本课程为C语言编程实践课程,以项目驱动的方式进行教学,注重培养学生的编程能力和实际应用能力。
学生特点:学生为高中年级,已具备一定的C语言基础,对编程有一定的兴趣,但实践能力有待提高。
教学要求:教师应注重理论与实践相结合,引导学生主动参与项目实践,培养其分析问题、解决问题的能力。
同时,关注学生的个体差异,给予个性化的指导和帮助。
通过课程目标的分解,确保学生达到预期的学习成果。
二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、表达式、控制结构(顺序、选择、循环)。
2. 函数与模块化编程:函数定义、调用、参数传递;模块化编程思想,编写功能独立的模块。
3. 文件操作:文件的打开、关闭、读写操作;文件的随机访问。
4. 指针与数组:指针的概念、运算;指针与数组的关系;动态内存分配。
5. 结构体与共用体:定义和使用结构体、共用体;结构体数组;结构体指针。
6. 书籍管理系统需求分析:分析系统功能模块,如用户管理、书籍管理、借阅管理等。
图书管理系统的设计C 课程设计一、教学目标本课程的设计目标是使学生掌握图书管理系统的设计与实现。
具体目标如下:1.理解图书管理系统的需求和功能。
2.掌握常用的数据结构和算法,并能够应用于图书管理系统的设计。
3.了解数据库的基本概念,并能够使用数据库进行图书管理。
4.能够使用C语言进行程序设计,包括编码、调试和测试。
5.能够使用数据库管理系统进行数据的存储和管理。
情感态度价值观目标:1.培养学生对计算机科学和编程的兴趣和热情。
2.培养学生解决问题的能力和团队合作的精神。
二、教学内容教学内容将按照以下大纲进行:1.图书管理系统需求分析:介绍图书管理系统的功能和需求,包括图书的增删查改等操作。
2.数据结构的选择:介绍常用的数据结构,如数组、链表、树等,并分析其在图书管理系统中的应用。
3.算法的选择:介绍常用的算法,如搜索、排序等,并分析其在图书管理系统中的应用。
4.数据库的设计:介绍数据库的基本概念,并学习如何使用数据库管理系统进行数据的存储和管理。
5.图书管理系统的实现:使用C语言进行图书管理系统的编码、调试和测试。
三、教学方法将采用多种教学方法进行教学,以激发学生的学习兴趣和主动性:1.讲授法:用于讲解基本概念和理论知识。
2.案例分析法:通过分析实际案例,使学生更好地理解和应用所学知识。
3.实验法:通过实际操作和实验,使学生掌握图书管理系统的实现和测试。
四、教学资源将选择和准备以下教学资源:1.教材:选用《C程序设计》作为主教材,用于学习C语言编程基础。
2.参考书:选用《数据结构与算法分析》和《数据库原理》作为参考书,用于深入学习数据结构和算法以及数据库的知识。
3.多媒体资料:制作PPT和教学视频,用于讲解理论知识。
4.实验设备:准备计算机和数据库管理系统,用于实际操作和实验。
五、教学评估教学评估将采用多种方式进行,以全面反映学生的学习成果:1.平时表现:评估学生的课堂参与度、提问回答和小组讨论的表现,以考察学生的学习态度和积极性。
c 图书管理系统课程设计一、课程目标知识目标:1. 让学生理解图书管理系统的基本概念,掌握其主要功能模块和使用方法。
2. 使学生掌握数据库的基本操作,如创建、查询、更新和删除数据。
3. 帮助学生了解软件工程的基本原则,培养良好的编程习惯。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的图书管理系统。
2. 提高学生使用数据库技术进行数据处理和分析的能力。
3. 培养学生运用软件工程方法进行问题分析和系统设计的能力。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣和热情,激发学习动力。
2. 培养学生的团队协作意识,提高沟通与协作能力。
3. 培养学生严谨、认真的工作态度,树立良好的职业道德观念。
课程性质分析:本课程为实践性较强的学科,旨在帮助学生将所学理论知识应用于实际项目中,提高学生的动手能力和问题解决能力。
学生特点分析:学生具备一定的计算机基础和编程能力,对数据库和软件工程有一定了解,但实践经验不足。
教学要求:1. 结合实际案例,引导学生掌握图书管理系统的核心功能和关键技术。
2. 注重实践操作,让学生在实践中提高技能。
3. 强化团队合作,培养学生良好的沟通与协作能力。
4. 关注学生个体差异,提供有针对性的指导。
二、教学内容1. 理论知识:- 图书管理系统概述:介绍图书管理系统的基本概念、功能模块及其在实际应用中的作用。
- 数据库原理:讲解数据库的基本概念、关系型数据库的设计及SQL语言的使用。
- 软件工程:阐述软件工程的基本原则,如需求分析、系统设计、编码、测试等。
2. 实践操作:- 系统设计:指导学生进行图书管理系统的需求分析、功能设计、数据库设计等。
- 编程实现:教授学生运用编程语言(如Java、C#等)实现图书管理系统的核心功能。
- 系统测试:教授学生进行单元测试、集成测试和系统测试,确保系统稳定可靠。
3. 教学大纲:- 第一周:图书管理系统概述,数据库原理学习。
- 第二周:软件工程基本原理,需求分析和系统设计。
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语言图书管理系统课程设计一、课程目标知识目标:1. 理解C语言中数组、结构体和文件操作的基本概念;2. 掌握使用C语言进行图书管理系统的基础功能设计,包括图书信息的增加、删除、查询和修改;3. 学会运用模块化编程思想,将大型程序拆分为功能独立的子程序。
技能目标:1. 能够运用C语言编写出图书管理系统的基本功能模块,并实现模块间的有效连接;2. 能够使用文件操作将图书信息存储到文件中,实现数据的持久化;3. 能够运用调试工具对程序进行调试,找出并修复程序中的错误。
情感态度价值观目标:1. 培养学生的团队协作意识,学会与他人共同分析和解决问题;2. 激发学生对编程的兴趣和热情,提高对计算机编程的主动性和积极性;3. 引导学生认识到编程在解决实际问题中的重要性,培养学生的创新精神和实践能力。
课程性质:本课程为高年级的C语言编程实践课程,注重培养学生运用C语言解决实际问题的能力。
学生特点:学生已具备一定的C语言基础,具有一定的编程能力和问题解决能力。
教学要求:在教学过程中,需注重理论与实践相结合,鼓励学生动手实践,提高编程技能。
同时,关注学生的情感态度,激发学生的学习兴趣,培养其团队协作能力和创新精神。
通过课程学习,使学生能够独立完成一个简单的图书管理系统设计与实现。
二、教学内容1. C语言基础回顾:数组、结构体、函数的定义和用法,以及文件操作的基本原理。
2. 图书管理系统需求分析:讲解图书管理系统的功能模块,明确系统需求。
- 图书信息增加、删除、查询、修改等功能的实现;- 系统界面设计和用户交互;- 数据存储和读取。
3. 教学大纲:- 第一周:C语言基础知识回顾,学习数组、结构体和文件操作;- 第二周:分析图书管理系统需求,设计系统功能模块;- 第三周:编写图书管理系统功能代码,实现模块间通信;- 第四周:系统测试、调试和优化,完成课程项目。
4. 教材章节关联:- 数组、结构体:参考教材第二章;- 函数:参考教材第三章;- 文件操作:参考教材第四章;- 模块化编程:参考教材第五章。
c 图书管理系统课程设计一、教学目标本课程旨在让学生了解和掌握图书管理系统的基本原理和实际应用,培养学生运用计算机技术解决图书管理问题的能力。
具体目标如下:1.知识目标:使学生了解图书管理系统的起源、发展及其基本组成部分,掌握图书管理的基本流程和相关知识点,如图书分类、编号、借阅等。
2.技能目标:通过课程学习,学生能够熟练使用图书管理系统软件,进行图书信息的录入、查询、修改和删除等操作,具备一定的实际操作能力。
3.情感态度价值观目标:培养学生对图书管理工作的热爱和敬业精神,提高学生的人文素养,使学生认识到图书管理在现代社会的重要性。
二、教学内容本课程的教学内容主要包括以下几个部分:1.图书管理系统的基本概念:介绍图书管理系统的起源、发展及其在我国的应用现状。
2.图书管理基本流程:讲解图书的分类、编号、采购、登记、借阅等环节。
3.图书管理系统软件的使用:教授如何使用图书管理系统软件,进行图书信息的录入、查询、修改和删除等操作。
4.实际案例分析:分析典型图书管理案例,使学生能够将所学知识运用到实际工作中。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行授课:1.讲授法:教师讲解图书管理系统的相关概念、基本流程及软件使用方法。
2.案例分析法:分析典型图书管理案例,引导学生运用所学知识解决实际问题。
3.实验法:学生进行上机操作,使学生熟练掌握图书管理系统软件的使用。
4.讨论法:鼓励学生就图书管理中的实际问题进行讨论,培养学生的团队协作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识视野。
3.多媒体资料:制作精美的PPT课件,提高课堂教学效果。
4.实验设备:配置充足的计算机设备,保证学生上机操作的需求。
5.网络资源:利用校园网络,为学生提供丰富的在线学习资源。
五、教学评估本课程的教学评估将采用多元化方式进行,全面、客观地评价学生的学习成果。
图书管理系统c 课程设计报告一、教学目标本课程旨在通过学习图书管理系统的设计与实现,使学生掌握数据库的基本操作、编程语言的应用以及软件工程的实践方法。
在知识目标上,学生应理解数据库的概念、结构及其在图书管理中的应用;掌握至少一种编程语言的基本语法和编程技巧;了解软件开发的流程和规范。
技能目标则要求学生能够独立设计简单的图书管理系统数据库;编写程序实现图书的增删改查等操作;运用软件工程的方法完成一个小型的图书管理项目。
情感态度价值观目标强调培养学生对计算机科学的兴趣,增强创新意识和团队协作精神,同时培养学生的信息素养,使其能够合法、合理地使用信息技术。
二、教学内容本课程的教学内容围绕图书管理系统的设计与实现展开,具体包括以下几个部分:1.数据库基础:介绍数据库的基本概念、数据模型以及SQL语言的使用,让学生掌握如何创建、查询和管理数据库。
2.编程语言应用:通过实例教学,使学生熟悉至少一种编程语言(如C语言)的基本语法,培养学生编写程序解决问题的能力。
3.软件工程实践:讲解软件开发的生命周期,包括需求分析、设计、编码、测试和维护等环节,强调编程规范和团队合作的重要性。
4.项目实现:指导学生利用所学知识设计并实现一个简易的图书管理系统,涵盖图书的录入、查询、借阅等功能。
三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:用于传授数据库理论基础、编程语言的基本语法和软件工程的概念。
2.案例分析法:通过分析具体的图书管理案例,使学生理解数据库设计和程序实现的过程。
3.实验法:安排实验室实践环节,让学生动手编写代码,实际操作数据库,加深理解和实践能力。
4.小组讨论法:学生分组完成项目设计,鼓励学生相互讨论、协作解决问题,培养团队精神和沟通能力。
四、教学资源教学资源将包括:1.教材:《数据库原理与应用》、《C程序设计》等,为学生提供理论学习的坚实基础。
2.多媒体资料:包括教学PPT、案例视频等,增强课堂的互动性和趣味性。
c语言图书管理系统课程设计一、教学目标本课程旨在通过学习C语言实现图书管理系统,让学生掌握C语言编程的基本语法,熟练运用C语言进行简单的系统开发。
具体目标如下:1.知识目标:a.掌握C语言的基本语法和数据结构;b.理解图书管理系统的需求和设计原理;c.学习C语言在文件操作、数据管理等方面的应用。
2.技能目标:a.能够使用C语言编写简单的程序;b.学会使用C语言进行图书信息的增删改查等操作;c.熟练运用C语言进行图书管理系统的开发和维护。
3.情感态度价值观目标:a.培养学生的编程兴趣,提高自主学习能力;b.培养学生解决问题的能力和团队合作精神;c.使学生认识到C语言在现实生活中的应用价值。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:C语言的基本语法、数据类型、运算符、控制语句等。
2.数据结构:数组、链表、栈和队列等基本数据结构。
3.函数:函数的定义、调用、参数传递、返回值等。
4.图书管理系统需求分析:了解图书管理系统的功能需求、性能需求等。
5.图书管理系统设计:系统架构设计、模块划分、功能实现等。
6.文件操作:文件打开、关闭、读写等基本操作。
7.系统测试与调试:测试图书管理系统的功能、性能,查找并修复程序中的错误。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据结构、函数等基础知识。
2.案例分析法:通过分析实际案例,使学生了解图书管理系统的需求分析和设计过程。
3.实验法:让学生动手编写代码,实现图书管理系统的各个功能模块。
4.小组讨论法:分组进行讨论,培养学生的团队合作精神和问题解决能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)等。
2.参考书:《C Primer Plus》、《C语言入门与实践》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
课程报告课程名称:程序设计实践专业班级:计算机科学与技术1205班学生姓名:安龙龙学号: 201216010521任课教师:陈卫东学期:2012-2013学年第二学期课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
成绩评定教师:1 需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。
课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。
本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对图书信息的录入、删除、修改,浏览(即输出),按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。
当然,我们可以根据自己的能力对系统进行完善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。
通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机和通信专业的后续课程打好专业基础。
2 概要设计(1)图书信息及数据格式图书信息:图书信息包括图书编号、图书类别、图书书名、作者、出版社、出版时间、图书价格。
数据格式:本系统采用单向链表来对图书信息进行各项操作。
其中图书的编号为整型数据,价格为双精度浮点型,其余的类别、书名、作者、出版社与出版时间均为字符串类型struct tushu_node{int num;char leibie[20];char name[30];char author[20];char press[20];char time[20];double price;struct tushu_node*next;};一个结点的示意图如下图所示:(2)程序的整体框架(3)模块划分1、int quanxian(); 核查权限的函数2、int inputchioce(); 显示主菜单的函数3、void save(); 保存链表为文件的函数覆盖以前的信息4、void save1(); 保存链表为文件的函数不覆盖以前的信息只在创建时调用5、struct tushu_node* wjtolb();从文件中读取数据并建立图书信息的链表的函数6、int luruxinxi(); 录入学生信息的函数7、struct tushu_node * luruxinxi_chuangjian(); 创建图书信息的函数8、struct tushu_node * luruxinxi_charu(); 插入图书信息的函数9、struct tushu_node * luruxinxi_shanchu(); 删除图书信息的函数10、struct tushu_node * luruxinxi_xiugai(); 修改图书信息的函数11、int liulantushu(); 浏览图书信息的函数12、int chaxuntushu(); 查询图书信息的函数13、void chaxuntushu_num(); 按编号查询图书14、void chaxuntushu_name(); 按书名查询图书15、void chaxuntushu_price(); 按价格查询图书16、void paixutushu(); 为图书排序的函数17、struct tushu_node* paixutushu_price(); 为图书按价格排序的函数18、struct tushu_node* paixutushu_time(); 为图书按出版时间排序的函数19、void sfjx() ; 写个函数判断是否继续排序中使用20、int tongjitushu_shumu(); 统计图书数目的函数21、void shiyongshuoming(); 使用说明的函数3 详细设计程序的主体设计思想是根据结构化程序设计思想分模块进行设计,有一个主函数和多个自定义函数构成。
主函数对于本程序来说,主函数很简单,就是定义了一个变量chioce用来接受核查用户是否有使用该管理系统的权限的函数quanxian()函数返回的值,若为1(即用户获得了使用权限),则调出显示主菜单的函数进行具体操作int main(){int chioce;chioce=quanxian(); 核查用户是否有使用该管理系统的权限的函数if(chioce==1) 若取得权限则返回值为1{system("cls");inputchioce(); 用来显示主菜单的函数}exit(0);}权限函数核查用户权限的函数使用do-while语句来限制用户输入密码的次数仅为三次,并且为了使界面更具亲切感,会在用户输入密码错误时进行提示引起用户注意及提示剩余输入次数。
int quanxian(){int m=1,n=3,flag=0;char mima[20];do{p rintf("\n\n 你好,欢迎使本图书信息管理系统!\n");printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("【现在进行权限核查】 \n--------------------友情提醒:你共有3次输入密码的机会!\n");printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n ");if(n==2||n==1){printf("注意:你已输入错误%d次剩余输入次数: %d 请输入密码:",3-n,n);}if(n==3) printf("剩余输入次数: %d 请输入密码:",n);scanf("%s",mima); //第一次输入和输错密码后再次输入显示的也卖弄不同if(strcmp(mima,"chenbo0916")==0){flag=1;return flag;}m++;n--;system("cls");}while(strcmp(mima,"chenbo0916")!=0&&m<=3) ; // 限制输入次数在3次之内 printf("\n\n对不起,你连续三次输入密码错误,没有使用该图书管理系统的权限!\n");exit(0);}显示主菜单的函数本程序将主菜单单独作为一个函数是为了让用户进入一次系统可以进行多项操作(即为在每次用户完成一个具体的操作后,都会有对是否继续或返回主菜单有相应的询问,让用户在想退出系统时才退出),基本思路是通过函数的嵌套调用来实现多项操作。
这个函数的功能就是显示主菜单并对用户进行的选择调用不同的子菜单函数或进入具体功能int inputchioce() /* 主菜单 */{int mychioce,x=-1;printf("\n++++++++++++++欢迎你++++++++++++++++++\n\n");printf("**+++++++++++++ 主菜单 +++++++++++++++++++++**\n");printf("**1-- 录入(删除修改)图书信息 ** **2--(按规则)查询图书信息**\n");printf("** 3-- 浏览图书信息**** 4-- 为图书(按规则)排序 **\n");printf("** 5-- 统计图书(数目) **** 6-- 帮助 **\n");printf("** 0-- 退出系统 ** ** **\n");printf("**++++++++++++++++++++++++++++++++++++++++++++++++++++++++**\n");printf("\n 恭喜你获得使用权限,请你选择:");scanf("%d",&mychioce);switch(mychioce){case 1:{ luruxinxi();break;}case 2:{ chaxuntushu();break;}case 3:{ liulantushu();break;}case 4:{ paixutushu();break;}case 5:{ tongjitushu_shumu();printf("\n\n是否继续操作? 请选择(继续-1/退出-0)");scanf("%d",&x);if(x==1){ system("cls");inputchioce();}if(x==0){printf("\n\n谢谢你的使用!再见\n");exit (0);}if(x!=1&&x!=0){system("cls");printf("选择有误,默认返回主菜单,请重新选择:\n");inputchioce();}break;}case 6:{ shiyongshuoming();break;}case 0:{ printf(" \n\n 谢谢你的使用!!再见 \n\n");break;} default:{ system("cls");printf("\n 选择有误,请重新选择:\n");inputchioce();}break;}}关于一些录入(删除修改)、查询、排序等子菜单的原理及实现方法与主菜单那类似创建(插入)函数算法如下图:将链表数据保存为文件的函数首先打开文件以可读写(也可以只写的方式打开区别在于是否覆盖以前的信息)的方式,p1作为形参来接受实参head,只要不为空,写入p1 后,下移一个节点void save1(struct tushu_node* p1){ /*将链表保存为文件的函数不覆盖前面信息 */ if( (fpp=fopen("1.txt","a"))==NULL ){printf("打开文件失败!");exit(0);}while(p1!=NULL){fprintf(fpp," %d %s %s %s %s %s %lf\n",p1->num,p1->leibie,p1-> name,p1->author,p1->press,p1->time,p1->price);p1=p1->next;}if(fclose(fpp)){printf("关闭文件失败!\n");exit(0);}}从文件中读出数据并创建链表的函数在调用从文件读取数据创建链表的函数前,先定义head链表指针并赋值为空作为实参。