当前位置:首页 >> 教学研究 >>

C语言图书管理系统报告


HUNAN

UNIVERSITY

程序设计训练 报 告

设计题目 学生姓名 学生学号 专业班级 指导老师 起止时间 2011年6月16 日 ----2011年7月10日

湖南大学程序设计训练报告

目录

一 目的分析..................................................................2 二 系统简介..................................................................2 三 设计过程..................................................................3 四 本人完成的主要工作 ......................................................3 五 实训设计 ........................................................... ...6 ....................7

六 实训分析 ......................................... 七 调试过程所遇到的问题及解决方案 八 实训总结

.........................................7

....... ......................................................7

附录 1 源代码................................................................8 附录 2 截图.................................................................37

1

湖南大学程序设计训练报告
一、 目的分析
今天, 计算机的价格已经十分低廉, 性能却有了长足的进步。 它已经被应用于许多领域, 计算机之所以如此流行的原因主要有以下几个方面: 首先,计算机可以代替人工进行许多繁杂的劳动; 其次,计算机可以节省许多资源; 第三,计算机可以大大的提高人们的工作效率; 第四,计算机可以使敏感文档更加安全,等等。 在单位图书室使用计算机管理图书的意义: 现在我国的很多单位图书室图书馆中图书的管理水平还停留在纸介质的基础上, 这样的 机制已经不能适应时代的发展, 因为它浪费了许多人力和物力, 在信息时代这种传统的 管理方法必然被计算机为基础的信息管理所取代。 归纳起来,好处大约有以下几点: (1) 可以存储所有的图书档案,安全、高效; (2) 只需一到二名图书录入员即可操作系统,节省大量人力; (3) 可以迅速查到所需信息。

二、 系统简介
1. 管理员系统
(1)增加用户:增添一个新的用户。 (2)增加书籍:添加新的书籍包括出版社、本数、价格、书号、分类、作者、书名等信息。 (3)删除书籍:将已经存在的书籍信息删除。 (4)查询书籍:按书名,类别,书号,作者,出版社对书本信息进行查找。 (5)显示全部记录:将所有存在系统中的书籍记录显示出来。

2. 用户系统
(6)查询书本:按书名,类别,作者,出版社对书本信息进行查找。 (7) 借书:如果书还有库存且用户借书小于 10 本则可借书。 (8) 还书:归还用户所借的书。

三、 设计过程
首先搜集相关资料,了解一个图书管理系统应该有哪些功能。

2

湖南大学程序设计训练报告
画出相应的主界面流程图和人机界面图。 在了解了应有功能之后根据自己的实际能力选择一些能够编写的模块, 对模块的功能进行分析和制定相应的编写计划。 画出相应模块的流程图。 对相应模块进行编写之后插入程序中进行调试。 对调试中出现的问题进行修改。 将所有功能组合在一起,对整个程序的各个功能再多输入一些数据进行 调试。检查是否有功能的错误,各个模块在调用其他模块的数据时是否会出 错,检查一个模块调用完后是否会影响其他模块运行和文件中保存的数据是 否被某个模块破坏。 检查系统的容错性,检查在输入数据非法的情况下程序是否能做出应有 的正确反映。 对系统的外观界面进行优化,并对在运行时发现的不符合操作习惯的功 能进行修改,提高运行时的界面友好性。

四、 本人完成的主要工作
前期搜集图书管理系统应有的相应功能,程序应有功能模块的分析,策 划。程序相关信息的查找和功能模块的组合。错误的修正,流程图的绘制, 借还书模块和显示用户全部信息、显示全部用户信息代码的功能分析编写, 查找内容、用户,显示全部书籍信息,创建新图书、新用户模块的修改。报 告的编辑,流程图手工版本的绘制。

五、 实训设计
1.开发平台:vc++6.0 企业版。 2.工具:记事本。 3.使用系统:winXP 以上。 4.核心数据结构设计: typedef struct bookinfo//将 bookinfo 类型定义为 BOOKINFO { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在状态*/

3

湖南大学程序设计训练报告
char sort[20];/*书籍类别*/ char published[30];/*出版社*/ int bookcount;/*剩余书籍数量*/ } typedef struct student /*借书卡的数据类型*/ { int studentnum; //学号 int cardnum;//卡号 char studentname[10];//会员姓名 char studentclass[10]; //会员班级 char lendbook[10]; //存临时书名 int count;//借书数组 最多借书十本 char bookname[11][10];//存放书名 } 5.基本运行原理:
通过主菜单调用菜单函数输出菜单 b) 根据所选择的选项用 case 语句进行判断 c) 通过 case 语句调用相应函数 d) 将文件的内容存入数组进行查找修改 e) 操作完毕后将数组里的内容写回文件 f) 询问是否继续操作否的话则返回主菜单继续选择 g) 通过主菜单调用菜单函数输出菜单 h) 根据所选择的选项用 case 语句进行判断 i) 通过 case 语句调用相应函数 j) 将文件的内容存入数组进行查找修改 k) 操作完毕后将数组里的内容写回文件 l) 询问是否继续操作否的话则返回主菜单继续选择 2.函数设计 a) 函数原型 void input_newp() void input_new() void search_according_name() void search_according_auther() void search_according_sort() void search_according_published() void delete_according_name() void lendbook() void returnbook() void displayuser() void displaylend() void display_all() 输入新用户信息 输入新进的图书信息 根据图书名称显示图书的信息 根据图书作者显示图书的信息 根据图书类别显示图书的信息 根据图书出版社显示图书的信息 根据图书名称对图书信息进行删除 借书 还书 显示所有用户信息 显示所有借的书 显示全部图书信息 函数功能

4

湖南大学程序设计训练报告
void menu1() void searchbook() void menu2() void menu3() void main() 主菜单 图书查询系统函数 用户界面 管理员界面 主函数

3.核心算法描述(程序流程图)
查询书籍 借书 还书 显示全部图书 修改密码



会员

开始



密码是否正确

管理员



会员管理

修改密码

图书管理

增加书籍

删除书籍

查询书籍

显示全部 书籍

增加用户

显示全部 用户

显示用户 所借书本

5

湖南大学程序设计训练报告
开始

输入号码

开始

卡号是否存在

卡号是否存在

书是否存在

有无此书存在





有无借满十本



此人有无 借本书







借书并保存记录

还书并删除记录

结束

结束

六、 实训分析
设计并实现该课程设计的目的主要在于: 1) 对一定规模的综合软件编程有一定的经历与认识。在做的过程中,我们 发现,提前的规划即分析与设计重要过编程过程,否则会走很多弯。 2) 综合并结合现实应用使用 C 语言的知识。这个设计会用到 C 语言这门 课的全部知识,其中以文件、数组与函数为主,书中提到的主要及重点

6

湖南大学程序设计训练报告
算法都会使用到。 3) 不仅涉及编程,还涉及到功能分析、模块规划等方面的知识,这些知识 在后续课程学习时, 会经常使用。而且这些知识在今后单片机编程过程 中,都会用到。 4) 每项功能的实现, 一般有多种方法,这在这里我们并没有在所有模块中 采用最简单的方法, 而是采用了自己平时最常用最熟悉的方法,以尽可 能保证程序的正常运行,在此基础之上使算法尽可能简化。 5) 涵盖了图书管理所需要的几个最基本功能, 让我们对今后一个系统的整 体分析设计与完成有了一个初步的了解。

七、 调试过程所遇到的问题及解决方案
6) 一:在调试过程中发现在进行过一次输入之后,缓冲区会有内容存在。 当选择继续添加或选择其他内容进行输入时, 系统会直接将缓冲区的内 容给 gets 函数,造成输入错误。 解决方法:用 fflush()函数在 每次输入前清空缓冲区。 7) 二: 在调试过程中发现缺少对用户是否借了书本的验证,在还书时只要 书名在书库中存在即可还书,在操作不当时会导致错误。解决方案:在 还书增加了对用户借书数组中书名的校对。 8) 三: 在输出所有用户信息时不知因何原因会输出空的信息列表,而且增 加的数目(用户)越多所输出的空信息列表也越多。 解决方法:采 取了在输出前先判断,屏蔽掉那些空信息。 9) 四:在要对文件某项进行修改时无法准确地将指针定位到那一项内容。 解决方法: 采取先将文件内容全部存至数组,在对数组进行修改后整体 重新写回文件。

八、 实训结论
经过一个多月的设计和开发,《图书管理系统》已经基本开发完成。其功能基本符合 用户需求。我认为在这次课程设计的过程中,通过将所的理论知识与实际情况相结合,独立 思考, 全面分析, 灵活运用所学知识, 解决具体问题, 将有力地促进理论水平的进一步提高。 同时,对心理素质的锻炼和工作作风的培养,将有助于今后的工作与生活。但是,由于课程 设计时间较短, 工作任务繁重, 加上本人能力有限, 所以该系统还有许多不尽如人意的地方, 比如:文档比较少,用户界面不够美观,出错处理机制不够等一些问题,这些都有待进一步 的改善。 非常感谢我的同学们我的老师们当我在毕业设计过程中遇到问题和困难时,是你们给 我提出许多关键性的意见和建议, 使我对整个毕业设计的思路有了总体的把握, 并耐心的帮 我解决了许多实际问题,使我获益良多。是你们教授了我丰富的知识,教会了我学习知识的 能力。

7

湖南大学程序设计训练报告

九、 附录 1:源代码

十、 附录 2:截图

8

湖南大学程序设计训练报告

9

湖南大学程序设计训练报告

10

湖南大学程序设计训练报告

11


相关文章:
图书管理系统(含源代码)c语言_数据结构课程设计报告
图书管理系统(含源代码)c语言_数据结构课程设计报告 - 数据结构大作业 121279044 伍杨 数据结构大作业 图书管理系统 工程管理 121279044 伍杨 目录 一、 二、 三...
C语言图书管理系统
C语言图书管理系统 - 唐山学院课程设计 一 引言 随着计算机及网络技术的飞速发展,Internet/Intranet 应用在全球范围内日益普及, 当今社会正快速向信息化社会前进,信息...
用c语言实现图书管理系统
c语言实现图书管理系统 - #include<stdio.h> #include<string.h> struct book{ int num; char name[10]; int char...
C语言课程设计报告 图书管理系统
C语言课程设计报告 图书管理系统 - C 语言课程设计 图书管理系统 摘要:本设计系统主要运用了结构体、结构体指针、数据结 构、双向链表等 C 语言知识,实现了图书...
c语言程序设计 图书信息管理系统
c语言程序设计 图书信息管理系统 - 实验题目:图书管理系统 实验题目 图书管理系统 图书 一、 实验目的 1. 熟悉 c 语言的编译连接和运行过程。 2. 掌握 c 语言...
C语言图书管理系统
C语言图书管理系统 - 课程设计说明书 图书管理系统 图书管理系统 1.课程设计的目的 1.课程设计的目的 No 1 一直以来人们使用传统的人工方式管理图书馆的日常工作,...
c语言实习 图书信息管理系统报告
c语言实习 图书信息管理系统报告_其它_高等教育_教育专区。c语言实习 课程设计报告 图书信息管理系统 C 语言课程设计报告课程名称 教师名称 姓学专班类日名号业...
c语言 图书管理系统 上机实验报告
c语言 图书管理系统 上机实验报告_IT/计算机_专业资料。大一 c语言 图书管理系统 上机实验报告 成都信息工程大学计算机系 成都信息工程大学计算机系 大学课 程实验...
C语言图书管理系统
C语言图书管理系统 - 山东大学威海分校 机电与信息工程学院 课题名称: 课题名称: 学号: 学号: 姓名: 姓名: 图书销售管理系统 200900800355 苏清江 1、实验题目: ...
图书管理系统C语言
图书管理系统C语言 - 重庆科技学院《C 语言程序设计》课程设计报告 重庆科技学院 课程设计成果 院(系): 电子信息工程学院 学生姓名: 陈诚班级: 学号: 测控普 08...
更多相关标签: