图书信息管理系统实验报告书
课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : 信息类1006 学 生 姓 名 : 学 号 : 201046830605 任 课 教 师 : 徐振强 学 期 :2010-2011学年其次学期 课程报告任务书 题 目 图书信息管理系统 主要 内容 开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以依据自己状况进行扩充,比如是否借出、库存量等)。使之能供应以下基本功能: (1)图书信息录入功能(图书信息用文件保存)--输入v (2)图书信息阅读功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l ①按书名查询 ②按作者名查询 ③ 依据价钱排序 ④按出版时间排序等等 (4)图书信息的删除与修改 扩展功能:可以依据自己的程度进行扩展。比如(1)简洁的权限处理 (2)报表打印功能(3)甚至依据自己状况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等,总之,可以依据自己需求进行分析功能。 任务 要求 一、提交材料应包括:(1)系统源代码 (2)课程报告 二、整个设计过程具体要求 (1)需求分析 要求学生对案例系统进行分析,设计出须要完成的功能,完善各个模块的调用关系; (2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细微环节(函数名、参数、返回值等) (3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试; (4)总结阶段 依据要求完成系统设计和实现报告,并进行总结、答辩。 成果 评定 报告撰写状况(30分) 系统完成状况(30分) 答辩状况(40分) 总分 内容 20分 规范程度 5分 程序测试 5分 基本功能20分 扩展功能10分 自述状况10分 答辩状况 30分 成果评定老师: 一. 需求分析 本次C语言程序设计以“图书馆管理系统”为题,题目要求开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以依据自己的当前实力进行扩充)。 基本功能包括: (1)图书信息录入功能(图书信息用文件保存)--输入v (2)图书信息阅读功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l ①按书名查询 ②按作者名查询 ③ 依据价钱排序 ④按出版时间排序等等 (4)图书信息的删除与修改 当然,也可以依据个人的状况进行适当的扩展:比如权限处理啊,报表打印功能,模糊查询,统计功能,或 筛选出小于指定数量库存的图书等等。 测试数据有ASCII文件tushu_list.txt供应: tushu_list.txt文件结构:(无序) 图书编号 书名 作者 出版社 类别 出版社时间 价格 -------------------------------------------------------------------- 1001 三国演义 罗贯中 民族文学出版社 小说 1585 55.5 1008 孟子 孟子 人民教化出版社 古籍 1981 23.33 1002 水浒传 施耐庵 民族文学出版社 小说 1582 48.36 1003 西游记 吴承恩 民族文学出版社 小说 1602 46.38 1006 线性代数 同济 同济高校出版社 教化 2010 19.98 1010 新视野 郑树棠 外研社 教化 2009 32.90 1007 春秋 孔子 人民教化出版社 古籍 1980 22.22 1009 时间简史 霍金 外研社 科普 1977 35.31 1004 红楼梦 曹雪芹 民族文学出版社 小说 1621 49.59 1005 高等数学 同济 同济高校出版 教化 2010 29.6 二概要设计 (1).数据结构 依据题目给定的图书信息和数据格式可知道,链表结点必需用结构体实现。故:首先建立结构体数组: struct tushu{ char num[10]; 字符型图书编号 char name[20]; 字符型书名 char writer[20]; 字符型作者 char press[20]; 字符型出版社 char kind[20]; 字符型类别 double time; 双精度实型出版时间 double price; 实型价格 struct tushu *next; 用与构建连表指向下一结点 }; FILE *fp; 定义全局变量fp (2).模块划分 定义全局变量: FILE *fp; /* 定义全局变量fp*/ 函数原型清单: /*密码验证*/ void secret(); /*主菜单*/ void menu(); /*录入图书信息*/ struct tushu * (); /*将信息导入文件可追加*/ void fprint(struct tushu *head); /*将信息导入文件只写(可覆盖)*/ void fprint_(struct tushu *head); /*从tushu_list中读取数据构建链表*/ struct tushu * create(struct tushu * head,int *n); /*阅读全部图书信息*/ void Browse(struct tushu *head); /*统计图书数目*/ void count(struct tushu *head); /*按书名查询图书*/ void Findofname(struct tushu *head); /*按作者查询图书*/ void Findofwriter(struct tushu *he