《C语言程序设计》图书信息管理系统.doc_第1页
《C语言程序设计》图书信息管理系统.doc_第2页
《C语言程序设计》图书信息管理系统.doc_第3页
《C语言程序设计》图书信息管理系统.doc_第4页
《C语言程序设计》图书信息管理系统.doc_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课程设计报告题 目: 图书信息管理系统 设 计 者: 王 亚 专业班级: 08微机五班 学 号: 208210550 指导教师: 李 彦 勤 所属系部: 信息管理系 2009-年6 月25 日目 录1.1概述31.2系统分析31.2.1 需求分析31.2.2 开发工具选择31.3总体设计31.3.1 项目规划31.3.2 系统业务流程分析41.3.3 系统功能结构41.4 系统设计51.4.1 设计目标51.4.2 开发及运行环境51.4.3 数据库设计51.4.4 系统主要N-S流程图71.5 技术准备71.5.1 DEV C+ 开发平台常用函数71.6 公共模块设计81.6.1 文件及文件夹模块设计81.7 主要功能模块设计91.7.1 系统登录设计91.7.2 软件系统主界面设计91.7.3 图书管理界面设计101.8 疑难问题分析与解决101.8.1 信息录入后对记录的修改101.8.2 程序运行情况 111.9 总 结121.9.1 经验总结121.1概述图书信息管理系统是图书馆日常管理中十分重要的组成部分,传统的手工文献管理方式弊端很多,入库、统计、汇总处理时的工作量及其繁重,处理效率极低,管理者也无法了解整个馆藏图书的借用的实际情况。越来越多的图书馆文献管理者意识到:只有采用信息化的管理系统,才能满足适应现代型的管理工作的需要。本项目中的图书信息管理系统是一个控制台应用程序,它不仅可以有效管理图书馆的文献,还能够运用汇总技术分析当前的实时的文献的库存情况,给管理者的工作提供更高的效率。1.2系统分析图书信息管理系统是图书信息管理的基础。图书信息管理系统主要通过对图书的入库的管理和维护,及时反映图书的库存、流向情况,为管理者和成本核算提供依据。并通过库存图书的分析,为管理及决策人员提供库存资金占用情况、图书短缺情况等不同的分析信息。同时为计划及决策人员提供实时准确的存书信息,以便及时调整,保证各项活动的顺利进行。通过图书信息管理信息化,可以全面监控图书的进、出、存、等各种状况,满足现代型的图书管理信息的需要。1.2.1 需求分析通过实际调查,要求本系统具有以下功能: 由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面。 如果系统的使用对象较多,则要求有较好的权限管理。 方便的数据查询。 在相应的权限下,可以方便地删除数据。 数据计算自动完成,尽量减少人工干预。1.2.2 开发工具选择本系统后台数据库采用文件的方式存储,前台采用颖思设计工作室的DEV C+做为主要的开发工具,该工具可以完美的支持C的ANSIC标准及汉化开发。1.3总体设计1.3.1 项目规划图书信息管理系统主要有图书管理、查询统计、系统维护和帮助等模块组成,具体规划如下: 图书管理模块该模块主要用于实现图书信息添加、修改图书信息、删除图书信息和保存图书信息等功能。 查询统计模块该模块主要用于实现按图书的信息的各种条件查询和图书量的统计、分类统计等功能。 系统维护模块该模块主要用于实现数据的备份、还原等功能。 帮助模块该模块主要用于实现用户管理、更改密码、关于本系统、重新登陆和退出系统等功能。1.3.2 系统业务流程分析库存管理系统的业务流程如图1.1所示。系统登陆是否登陆图书信息图书统计新增图书修改信息删除信息否是图1.1图书信息管理系统业务流程图1.3.3 系统功能结构图书信息管理系统的功能结构如图1.2所示。1.4 系统设计1.4.1 设计目标本系统属于小型的数据库管理系统,可以对图书馆的图书进行有效地管理。通过本系统可以达到以下目标: 灵活的数据录入,使信息传递更快捷。 系统采用人机交互方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。 实施强大的后台监控功能。 实现各种查询,如定位查询。 实现对图书入库的分析与统计,图书出库明细记录等功能。 对用户输入的数据,系统进行严格的数据检验,尽可能避免人为错误。 系统最大限度地实现了易安装性、易维护性和易操作性。1.4.2 开发及运行环境 系统开发平台: DEV C+ 4.9.5。 系统开发语言: C。 运行平台: Microsoft Windows XP (SP2) 。 运行环境: Micorsoft Windows。 分辨率: 最佳效果 1024 * 768。1.4.3 数据库设计本系统采用文件存储的方式实现后台的数据存储,数据库名称为tb_bookdata.dat,其中包含了7个字段,下面分别介绍:1. 数据表概要说明为了对数据表的结构视图有一个更清晰的认识,在次特别设计了一个数据表树状结构图,该结构图包括系统所有数据表,如图1.3。- 系统日志 - 图书信息数据库- 用户信息数据库- 临时文件图1.3 数据表结构视2. 数据表E-R图。根据上面的设计,可以规划出的实体主要有图书信息实体、用户信息实体。图书信息管理系统主要实体间关系E-R图如图1.4所示。图书信息表(tb_bookdata)入库编号书名作者名图书价格出版时间分类出版单位图1.4 图书信息管理系统图书信息实体关系E-R图用户信息表(tb_UserData)用户ID用户名密码图1.5 用户信息实体关系E-R图3. 主要的数据表结构。次部分给出了本系统的全部的数据表,该表的结构如表1.5.1所示。 tb_BookData (图书信息表)表tb_BookData用于保存图书的基本信息,该表的结构如表1.5.1所示。表1.5.1 图书信息表字 段 名数 据 类 型长 度主 键 否描 述IDInt8主键入库编号NameBookChar20否书名NameChar10否作者名BaseClassChar10否分类CompanyChar50否出版单位OutDataChar10否出版时间PriceFloat8否价格 tb_UserData (用户信息表)表tb_UserData用于保存用户的基本信息,该表的结构如表1.5.2所示。表1.5.2 用户信息表字 段 名数 据 类 型长 度主 键 否描 述IDuserInt8主键用户编号UserChar10否用户名称PasswordChar15否用户密码1.4.4 系统主要N-S流程图 为了更加生动的表示程序的执行过程,此处给出了系统主要的N-S系统的流程图,以便更清楚的理解程序执行流程。1. 系统登录流程N-S流程图。此部分说明了系统登录模块的执行流程,程序的执行流程如图1.5.3所示。定义变量 char u10, p15; 初始化while(1)循环 判断用户/密码Strcmp(u, p);真 假goto A; 进入主界面 system(cls);清除屏幕继续循环while(0) 不成立时执行图 1.5.3系统登录流程N-S流程图2. 系统主界面N-S流程图。此部分说明了系统主界面模块的执行流程,程序的执行流程如图1.5.4所示。登录模块成功返回处,初始化while(1)循环, int c;c = getch(); 选择功能。case T :图书管理 case L : 查询统计case S : 系统维护 case H : 帮 助图书管理 系统维护 查询统计 帮 助while(0) 不成立时执行图 1.5.4系统主界面N-S流程图3. 图书管理N-S流程图。此部分说明了图书管理界面模块的执行流程,程序的执行流程如图1.5.5所示。主界面模块调用处,图书管理功能模块.初始化while(1)循环 int c;C = getch(); 根据输入选项选择功能项。case N :新增图书 c = = ? case X : 修改信息case D : 删除信息 case S :保存信息case Z : 返回主菜单goto N; goto D; goto A; goto S; goto X;新增图书 删除信息 返回主菜单 保存信息 修改信息图1.5.5 图书管理N-S流程图1.5 技术准备1.5.1 DEV C+ 开发平台常用函数此部分给出了常用的系统函数如下所示:函 数 名 称原 型返回值功 能 说 明chdirint chdir(char *path)0-成功,-1 失败改变当前工作目录为pathgetcwdchar getcwd(char *dir, int len)指向dir的指针得到当前路径名称strcatchar strcat(char dest, const char src)指向dest的指针字符串连接,将src连接到dest的尾部strcmpint strcmp(charstr1, char str2)小于0:str1str2strcpychar *strcpy(char *dest, const char *src)指向dest的指针将字符串src拷贝到字符串dest中去strlenint strlen(const char *s)字符串的长度得到字符串长度eofint eof(int handle)1-文件结尾,0-不在结尾位置,-1 操作出错检测文件指针是否已在尾部1.6 公共模块设计1.6.1 文件及文件夹模块设计1.文件夹架构在开发图书信息管理系统之前,首先设计了如图1.6所示的文件夹构图,在开发时只需要将相应文件保存到对应文件夹下即可。Bak /文件夹(备份数据)数据库备份系统日志备份Data /数据库文件夹系统日志图书信息数据库用户信息数据库临时文件Include /包含文件目录 图书信息结构体 用户信息结构体| 图书信息管理模块| 登录模块| 查询统计模块| 系统主程序文件| 系统维护模块| 用户帮助模块图1.6 文件夹架构图2.程序文件架构主文件架构如图1.7所示。系统登录(Login.c)图书管理(BookInformation.c)查询统计(Lookandsam.c)系统维护(SystemManage.c)帮助(Userhelp.c)1.7 主要功能模块设计1.7.1 系统登录设计系统登录主要用于对进入图书信息管理系统的用户进行安全性检查,以防止非法用户进入该系统。在登陆时,只有合法的用户,才可以进入该系统,同时,系统还根据登陆用户的级别,给与其不同的操作权限。系统登录的界面运行结果如图1.8所示。图1.8系统登录界面1.7.2 软件系统主界面设计软件系统主界面主要用来对图书信息管理系统的整体布局,系统功能的集中化管理,给用户以清晰良好的交互界面。通过对主界面都可以让用户对图书管理系统有一个大方向的了解,使用户清晰快捷的进行操作。系统主界面运行结果如图1.9所示。图1.9 系统主界面运行结果1.7.3 图书管理界面设计图书管理界面主要用来对图书信息管理,功能模块可以分为图书信息的增添、信息的修改、保存和返回等功能。图书管理界面运行结果如图2.0所示图2.0 图书管理界面1.8 疑难问题分析与解决 1.8.1 信息录入后对记录的修改信息录入完成后,对记录进行修改首先要查找到要修改的记录,调用系统的查找功能,确定要修改的记录,将要修改的记录显示出来。确定当前要修改的记录在内存中的编号,然后跟据记录在内存中唯一确定的编号来进行修改。实现此功能时,要对记录在内存中进行唯一编号,如果进行编号错误,将直接导致要修改记录的错误。并且还要考虑记录数在内存中的占用问题。该功能实现起来非常复杂,这里可以通过全局中间变量来对内存中的记录进行唯一编号,来确定记录在内存中的占用数。该功能的实现代码如下:/ 修改信息 /X:printf(n以下为数据库的全部信息:n);printf(顺序t编号t书名t作者t分类t出版单位t出版时间t图书单价n); for(j=0; j=jsq; j+)printf(%dt%dt%st%st%st%st%st%.2fn,j+1,bokj.Id,bokj.Nambook,bokj .Name,bokj.Baseclass,bokj.Company,bokj.Outdata,bokj.Price);printf(n请输入要修改的记录的编号:);scanf(%d, &j);printf(n您要修改的记录是:n);printf(顺序t编号t书名t作者t分类t出版单位t出版时间t图书单价n); printf(%dt%dt%st%st%st%st%st%.2fn, j, bokj-1.Id, bokj-1.Namebook, bokj-1.Name, bokj-1.Baseclass, bokj-1.Company, bokj-1.Outdata, bokj-1.Price);getch(); /修改图书信息 printf(n输入图书的入库编号:); scanf(%d, &bokj-1.Id); printf(输入书名:);scanf(%s, &bokj-1.Namebook); printf(输入作者名:);scanf(%s, &bokj-1.Name); printf(输入分类编号:);scanf(%s, &bokj-1.Baseclass); printf(输入出版单位:);scanf(%s, &bokj-1.Company); printf(输入出版时间:);scanf(%s, &bokj-1.Outdata); printf(输入图书单价:);scanf(%f, &bokj-1.Price); /显示修改后的记录printf(n修改后的记录是:n);printf(顺序t编号t书名t作者t分类t出版单位t出版时间t图书单价n); printf(%dt%dt%st%st%st%st%st%.2fn, j, bokj-1.Id, bokj-1.Namebook, bokj-1.Name, bokj-1.Baseclass, bokj-1.Company, bokj-1.Outdata, bokj-1.Price);getch(); goto Z; /程序调用结束返回1.8.2 程序运行情况程序编译完成后,经测试数据的测试,一切运行正常,程序运行结果下所示:1. 修改记录功能测试结果如图2.1所示。图2.1 修改记录功能测试结果2. 查询功能测试结果如图2.2所示。图2.2 查询功能测试结果1.9 总 结1.9.1 经验总结开发一个系统之前,一定要先弄清楚该系统的目的是什么,并将其业务流程图画出来,然后根据所做的需求分析对系统进行可行性分析、总体设计和系统设计,在这些前期工作完善之后,最后进行编码,这时您将会发现自己的编程思路非常明确。附录: 程序清单ProgramMain.c 文件/* Copyright (C), 2009, 河南经贸职业学院-信息管理系 All right reserred. 文件名称:ProgramMain.c 文件标识:见配置管理计划书。 摘 要:系统程序主文件。 当前版本:1.1 作 者:王亚 杜小丽 完成日期:28-12-08 08:15*/#include #include #include / 项目所有的函数说明 /void Bookinformation(); /说明图书信息函数。void SystemManage(); /系统维护函数说明。void Login(); /用户登陆函数。void Lockandsam(); /查询统计函数说明。void Userhelp(); /用户帮助函数说明。void Templog(int s); /系统日志记录函数。 int main() char c; Login(); /调用登陆界面。 system(cls); while(1) system(color 1e); /设置系统颜色 蓝低黄字 printf(nt 图); sleep(200); printf(书); sleep(200); printf(信); sleep(200); printf(息); sleep(200); printf(管); sleep(200); printf(理); sleep(200); printf(系); sleep(200); printf(统); sleep(200); printf(V ); sleep(180); printf(1.0ttt ); sleep(500); printf(制作者:); sleep(200); printf(王亚 杜小丽n); printf(tn); printf(t 图书信息管理系统 =n); printf(t n); printf(t n); printf(t T.图书管理 L.查询统计 n); printf(t n); printf(t n); printf(t n); printf(t S.系统维护* H.帮 助* n); printf(t n); printf(t n); printf(t n); printf(t n); printf(t=n); printf(tn); printf(t注意:使用本程序功能前首先确保程序未关闭过。n); printf(t说明:程序中带*项为系统保留功能,暂时不能使用。n); printf(t提示: 为了减少程序中代码书写量对于重复的功能,将给出一个成功的操n); printf(t 作演示功能,其他的不予给出!n); printf(t请选择功能*:n); c = getch(); switch(c) case T : Templog(1); Bookinformation(); break; case L : Templog(2); Lockandsam(); break; case S : Templog(3); printf(t您选择的是系统维护模块!部分功能将无法正常使用.n); getch(); SystemManage(); break; case H : Templog(4); printf(t您选择的是帮助模块!部分功能将无法正常使用.n); getch(); Userhelp(); break; default : printf(t选择了错误的选项,检查大小写是否错误!n); getch(); break; system(cls); /清楚屏幕. /while()循环结束 system(PAUSE); return 0;/ 操作日志记录函数 / void Templog(int s) FILE *Temp; /日志文件记录指针函数。 char dir255, *p; p = dir; getcwd(p, 255); /得到当前程序工作的路径。 strcat(dir, Data); /将路径改变为dir+Data; chdir(dir); /重新设置当前的工做路径。 Temp = fopen(Systemlog.txt, a+); /打开日志文件函数. if(Temp = NULL) printf(日志文件打开失败!n); /判断文件是否打开。 getch(); /将事件写入日志。 switch(s) case 1 : fprintf(Temp, 系统执行了 图书信息管理 的功能。n); break; case 2 : fprintf(Temp, 系统执行了 查询统计 的功能。n); break; case 3 : fprintf(Temp, 系统执行了 系统维护 的功能。n); break; case 4 : fprintf(Temp, 系统执行了 帮助 的功能。n); break; case 5 : fprintf(Temp, 系统执行了 图书信息管理 - 新增图书 的功能。n); break; case 6 : fprintf(Temp, 系统执行了 图书信息管理 - 修改信息 的功能。n); break; case 7 : fprintf(Temp, 系统执行了 图书信息管理 - 删除信息 的功能。n); break; case 8 : fprintf(Temp, 系统执行了 图书信息管理 - 保存信息 的功能。n); break; case 9 : fprintf(Temp, 系统执行了 图书信息管理 - 返回主菜单 的功能。n); break; case 10 : fprintf(Temp, 系统执行了 查询 - 按书名查询 的功能。n); break; case 11 : fprintf(Temp, 系统执行了 查询 - 按作者查询 的功能。n); break; case 12 : fprintf(Temp, 系统执行了 查询 - 按分类查询 的功能。n); break; case 13 : fprintf(Temp, 系统执行了 查询 - 按价格查询 的功能。n); break; case 14 : fprintf(Temp, 系统执行了 查询 - 按出版时间 的功能。n); break; case 15 : fprintf(Temp, 系统执行了 查询 - 按出版单位 的功能。n); break; case 16 : fprintf(Temp, 系统执行了 统计 - 按 作 者 的功能。n); break; case 17 : fprintf(Temp, 系统执行了 统计 - 按 分 类 的功能。n); break; case 18 : fprintf(Temp, 系统执行了 统计 - 按 价 格 的功能。n); break; case 19 : fprintf(Temp, 系统执行了 统计 - 按出版单位 的功能。n); break; case 20 : fprintf(Temp, 系统执行了 统计 - 按出版时间 的功能。n); break; case 21 : fprintf(Temp, 系统执行了 统计 - 返回主菜单 的功能。n); break; case 22 : fprintf(Temp, 系统执行了 系统维护 - 数据备份 的功能。n); break; case 23 : fprintf(Temp, 系统执行了 系统维护 - 数据还原 的功能。n); break; case 24 : fprintf(Temp, 系统执行了 系统维护 - 日志备份 的功能。n); break; case 25 : fprintf(Temp, 系统执行了 系统维护 - 清除日志 的功能。n); break; case 26 : fprintf(Temp, 系统执行了 系统维护 - 返回主菜单 的功能。n); break; case 27 : fprintf(Temp, 系统执行了 帮助 - 重新登陆 的功能。n); break; case 28 : fprintf(Temp, 系统执行了 帮助 - 修改口令 的功能。n); break; case 29 : fprintf(Temp, 系统执行了 帮助 - 添加用户 的功能。n); break; case 30 : fprintf(Temp, 系统执行了 帮助 - 删除用户 的功能。n); break; case 31 : fprintf(Temp, 系统执行了 帮助 - 退出系统 的功能。n); break; case 32 : fprintf(Temp, 系统执行了 帮助 - 关于系统 的功能。n); break; case 33 : fprintf(Temp, 系统执行了 帮助 - 返回主菜单 的功能。n); break; case 34 : fprintf(Temp, ); break; default : fprintf(Temp, 系统出现了一个意外的错误!n); break; fclose(Temp); /关闭文件. Login.c 文件/* Copyright (C), 2009, 河南经贸职业学院-信息管理系 All right reserred. 文件名称:Login.c 文件标识:见配置管理计划书。 摘 要:用户登陆系统源代码。 当前版本:1.1 作 者:王亚 杜小丽 完成日期:28-12-08 08:15*/#include #include #include StructUser.hvoid Login() char u10, p15; /用户输入的用户名和密码. system(cls); while(1) system(color 5e); /设置系统颜色 蓝低黄字 printf(n); printf(t 用户登陆 n); printf(t=n); printf(t n); printf(t n); printf(t n); printf(t 系统文件加载,请稍后. n); printf(t n); printf(t n); printf(t n); printf(t n); printf(t 信息验证成功方能进入 =n); printf(tn); sleep(1500); printf(t文件加载完毕,任意键继续.n); getch(); printf(t初始用户:admin 密码:adminn); printf(t请输入用户名:); gets(u); printf(t请输入密码:); gets(p); printf(t系统正在验证,请稍后.n); sleep(1500); /系统暂停等待1500毫秒. /判断是否与输入的用户名密码相等 if (strcmp(u, admin) != 0) & (strcmp(p, admin) != 0) printf(t系统验证失败,原因:用户名或密码错误!); getch(); else goto A; /正确则进入主程序 system(cls); /while() 结束 A: /用户登陆主窗体断点 . printf(t系统验证成功,执行任意键继续.n); getch();BookInformation.c 文件/* Copyright (C), 2009, 河南经贸职业学院-信息管理系 All right reserred. 文件名称:BookInformation.c 文件标识:见配置管理计划书。 摘 要:图书信息管理源文件。 当前版本:1.1 作 者:王亚 杜小丽 完成日期:28-12-08 08:15*/#include #include #include StructBook.hvoid del(); /说明删除信息函数 void disp(); /说明显示信息函数 struct book bok1024; /定义图书信息结构体数组。struct book x; /定义图书信息结构体变量。int jsq=0; /全局变量计数器 / 图书信息管理函数 / void Bookinformation() FILE *FP; /定义文件指针FP。 FILE *tempfp; int i=1, j; /循环判断标志。 char d, locate50; /字符输入判断:locate用户查找的信息 Z: /公共返回头部断点 system(cls); char c; while(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论