目录
课程报告
课程名称:程序设计实践
专业班级:计算机科学与技术1205班 学生姓名:安龙龙 学号:201216010521 任课教师:陈卫东
学期:2012-2013学年第二学期
课程报告任务书
题目 图书信息管理系统 开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能: (1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出 主要 内 等等容 (4)图书信息的删除与修改 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按书名查询②按作者名查询③按照价钱排序④按出版时间排序 页脚内容1
目录
一、提交材料应包括:(1)系统源代码(2)课程报告 二、整个设计过程具体要求 务 任(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系; (2)设计过程要求学生进一步明确各模块调用关系,进一步完善模要块函数细节(函数名、参数、返回值等) (3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试; 求 辩。 报告撰写情况(30分) 内容 规范程度 成绩 20分 5分 评定 (4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答程序测试 5分 系统完成情况(30答辩情况(40分) 分) 基本功扩展功自述情答辩情能20分 能10分 况10分 况 总分 30分 成绩评定教师:
页脚内容2
目录
1需求分析
经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程
序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。
本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有
对图书信息的录入、删除、修改,浏览(即输出),按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。
通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟
悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机和通信专业的后续课程打好专业基础。 2概要设计
(1) 图书信息及数据格式
图书信息:
图书信息包括图书编号、图书类别、图书书名、作者、出版社、出版时间、图书价格。 数据格式:
本系统采用单向链表来对图书信息进行各项操作。其中图书的编号为整型数据,价格为双精度浮点型,其余的类别、书名、作者、出版社与出版时间均为字符串类型
structtushu_node{ intnum;
charleibie[20]; charname[30]; charauthor[20]; charpress[20]; chartime[20]; doubleprice;
structtushu_node*next;
页脚内容3
目录
};
一个结点的示意图如下图所示:
num leibie name author press time price next (2)程序的整体框架
录入(删除按不同方修改) 修式查询创删编书 价 建 除 改 号 名 格 (3)模块划分 浏览 主菜单 按不同方式排序 价出格 版子菜单 统计图书数目 帮助 退出 1、intquanxian();核查权限的函数
2、intinputchioce();显示主菜单的函数
3、voidsave();保存链表为文件的函数覆盖以前的信息
4、voidsave1();保存链表为文件的函数不覆盖以前的信息只在创建时调用
5、structtushu_node*wjtolb();从文件中读取数据并建立图书信息的链表的函数
6、intluruxinxi();录入学生信息的函数
7、structtushu_node*luruxinxi_chuangjian();创建图书信息的函数 8、structtushu_node*luruxinxi_charu();插入图书信息的函数 9、structtushu_node*luruxinxi_shanchu();删除图书信息的函数 10、structtushu_node*luruxinxi_xiugai();修改图书信息的函数
11、intliulantushu();浏览图书信息的函数 12、intchaxuntushu();查询图书信息的函数
13、voidchaxuntushu_num();按编号查询图书 14、voidchaxuntushu_name();按书名查询图书 15、voidchaxuntushu_price();按价格查询图书 16、voidpaixutushu();为图书排序的函数
页脚内容4
目录
17、structtushu_node*paixutushu_price();为图书按价格排序的函数 18、structtushu_node*paixutushu_time();为图书按出版时间排序的函数 19、voidsfjx();写个函数判断是否继续排序中使用 20、inttongjitushu_shumu();统计图书数目的函数
21、voidshiyongshuoming();使用说明的函数 3详细设计
程序的主体设计思想是根据结构化程序设计思想分模块进行设计,有一个主函数和多
个自定义函数构成。
主函数
对于本程序来说,主函数很简单,就是定义了一个变量chioce用来接受核查用户是否
有使用该管理系统的权限的函数quanxian()函数返回的值,若为1(即用户获得了使用权限),则调出显示主菜单的函数进行具体操作
intmain() {
intchioce;
chioce=quanxian();核查用户是否有使用该管理系统的权限的函数 if(chioce==1)若取得权限则返回值为1 {
system(\
inputchioce();用来显示主菜单的函数
} exit(0); } 权限函数
核查用户权限的函数使用do-while语句来限制用户输入密码的次数仅为三次,并且
为了使界面更具亲切感,会在用户输入密码错误时进行提示引起用户注意及提示剩余输入次数。
intquanxian()
页脚内容5