图书管理程序实训报告以及完整的程序代码_第1页
图书管理程序实训报告以及完整的程序代码_第2页
图书管理程序实训报告以及完整的程序代码_第3页
图书管理程序实训报告以及完整的程序代码_第4页
图书管理程序实训报告以及完整的程序代码_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

高级语言程序设计实训题目: 图书管理程序 院系专业: XX学院 XX专业 姓 名: XXX 学 号: XXXXXXX 同组其他学生(学号): 1.问题描述图书管理系统是图书馆用来管理图书的常用工具,它以文件的方式存储管理员存入的数据,并提供查询的功能供管理员及同学们方便的找到相应的书籍。我们将用C语言实现一个简单的图书管理系统,它支持输入、输出、添加、查询和删除图书信息等功能。程序中涉及大量基本块和指针的操作,结构体数据结构的定义,使用,以及文件的读写和定位等。2.功能分析图书管理系统要实现最基本的功能,包括书籍信息的输入、输出、删除、查找和添加,为此需要首先定义记录项的格式,其中属性包括书名、编号、作者、出版社、价格、库存和出版时间。为了实现对所有图书的分组管理,还可以添加组别属性,同时系统还需要记录管理员的所以记录项。功能1. 添加:操作添加新的图书信息2. 删除:删除一条已存在的记录项3. 查询:根据用户输入的属性值查找符合条件的记项4. 排序:根据用户的需求按不同的属性排序,目前支持按编号、库存以及价格排序5. 显示:显示已有图书信息,可按自然和排序两种方式显示依据某一属性可以唯一的地确定一条记录项,故这里按书名和编号两个属性来实现精确查找。6. 说明:图书信息数据一文本形式存储在磁盘上,因此在程序运行中需要对文件进行读取操作。编写时可根据实际需要自定义文件的存储格式,在数据读写是必须精确定位,以免破坏文件的正确性,除此以外,程序中还需要不停的处理用户的输入,对输入数据的容错性进行检查,可以保证书籍信息的合法性,避免恶意和非恶意的操作对数据的破坏。3.设计1.3.1程序总体设计 程序主要包括三大模块:输入输出模块、文件管理模块和文件操作模块。输入输出模块的主要功能为人机交互,包括程序界面显示,用户输入响应,结果输出等;管理模块从输入输出模块中获取数据和命令,让后进行存储文件的读写,最后将结果返回到管理模块。3.1系统模块结构图如下:输入输出终端管理模块输入输出模块文件操作模块存储文件 图3.1-13.2函数功能描述:函数功能描述函数原型函数功能函数处理描述manage_creat.cppvoid creat()建立一个文本提供存储文本void append()增加新的图书信息以添加方式写入信息manage_dele.cppvoid dele()删除主控函数调用其他按不同属性删除函数void dele_name(struct record mag,int *n)按书名删除图书信息查找书名对应一组数据,将其删除void_num(struct record mag,int *n)按编号删除图书信息查找编号对应一组数据,将其删除manage_display.cppvoid display()显示图书信息读取文本中所存储的数据并输出void disp_arr(struct record mag,int n)显示原有图书数据读取文本中所存储的数据并输出void disp_row(struct record mag,int n)显示一组图书信息读取指定数据信息 void disp_table()显示表头文件输出一系列图书信息manage_locate.cppvoid locate()查询图书信息调用其他按指定属性查询函数manage_main.cppvoid main()主菜单控制显示一系列选项信息提供选择void disp_str(char ch,int n)连续输出一个字符连续输出指定字符manage_sort.cppvoid sort()排序主控函数调用其他按不同属性排序函数void sort_num(struct record mag,int n)按编号排序函数比较编号大小并按从大到小排序void sort_save(struct record mag,int n)按库存排序函数比较库存多少并按从多到少排序void sort_prize(struct record mag,int n)按价格排序函数比较价格大小并按从大到小排序4. 流程 4.1流程图如下: 开始清屏显示菜单 输入 显示 排序 查询 删除 建立 退出 编号 价格 数量 按编号 按书名 出版时间 库存 价格 出版社 作者 编号 书名 图4.1-1 4.2处理流程4.1.1图书信息输入 4.1.2图书信息查询 图4.2-14.1.3 图书信息排序 4.1.4 图书信息显示 图4.2-25.界面设计 图5-1 图5-2 图5-3 图5-4 图5-56.运行过程6.1输入 图6-16.2查询6.2.1按书名查询 图6.2.1-1 6.2.2按编号查询 图6.2.2-16.3显示按自然顺序显示 图6.3-16.4按排序顺序显示6.4.1按编号排序 图6.4.1-16.4.2按库存排序图6.4.2-16.4.3按价格排序 图6.4.2-26.分析问题 程序编译过程中一定会遇到许多错误,有一些错误是很常见的,能由电脑指出的错误基本上都好解决,因为都是些语法或逻辑错误,例如少个 ; 号可以导致很多错误,有时候电脑不会把箭头准确指向错误的地方而是它的附近,这时就不能只看它所指的地方,而是应该仔细看周围的代码看是不是有错误,因为它所指的地方有可能没错误。有些时候有错误但电脑不会指出,因为电脑只能指出语法和逻辑上的错误,例如你之前运行了程序而没有关掉,当你再运行时就会提示有一个错误而你的程序其实并没有问题,这是你就应该关掉上一次未关的运行结果。像上面指出的仅是以些较为常见的错误,实际编译中遇到问题我们要靠我们所学的知识和一些经验去解决。7.数据结构设计 图书信息包括书名、编号、作者、出版社、价格、库存以及出版时间七个属性,故需定义如下结构体:struct record()char name20;int num;char write20;char publishcomplay20;int prize;char name20;char time20;8.编程计划第一天:编写输入和添加函数并调试第二天:编写建立文件函数第三天:编写排序函数并调试第四天:编写删除函数并调试第五天:编写查询函数并调试第六天:调试整体程序并运行成功第七天:写word文档第八天:答辩9.编译过程与收获编译过程不是很顺利,因为程序中要运用到大量关于结构体指针和数组的应用,对这些知识没有深入了解的话,编程时会很困难。这不是一个小程序,不可能一气呵成,开始的时候无从下手,不知从什么地方写起,但把菜单一列,脑袋里就会有模块化思想了,按模块来,将一个大的程序分解成许多小的程序,然后每天完成一小部分,程序设计就会简单的多,编程时要灵活的运用数组和指针,这样一些问题会变得很简单。10.心得与体会 通过这接近两周的实训让我深刻体会到程序是一步步调试出来的,完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试

温馨提示

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

评论

0/150

提交评论