课程设计报告 南航 图书库存管理系统
库存管理系统课程设计

库存管理系统课程设计一、课程目标知识目标:1. 学生理解库存管理系统的基本概念,掌握库存管理的基本流程和功能模块。
2. 学生掌握数据库的基本操作,能运用SQL语句进行库存数据的增、删、改、查。
3. 学生了解库存管理系统的开发环境和工具,掌握一定的编程技巧。
技能目标:1. 学生能够独立设计并实现一个简单的库存管理系统,具备实际操作能力。
2. 学生能够通过分析实际问题,运用所学知识解决库存管理中的问题,具备一定的解决问题的能力。
3. 学生能够进行团队协作,共同完成库存管理系统的设计与实现,提高沟通与协作能力。
情感态度价值观目标:1. 学生通过学习库存管理系统,培养对信息技术的兴趣和爱好,提高学习积极性。
2. 学生在学习过程中,培养认真负责、严谨细致的工作态度,养成良好的编程习惯。
3. 学生通过团队协作,学会尊重他人意见,培养合作精神,提高人际沟通能力。
课程性质分析:本课程为信息技术课程,旨在使学生掌握库存管理系统的基础知识,培养实际操作和解决问题的能力。
学生特点分析:初中年级学生,对计算机技术有一定的基础,好奇心强,喜欢动手实践,但注意力容易分散,需要激发兴趣和引导。
教学要求:1. 注重理论与实践相结合,强化动手实践能力。
2. 教学过程中注重启发式教学,引导学生主动思考、提问和解决问题。
3. 注重团队合作,培养学生的沟通与协作能力。
二、教学内容1. 库存管理系统概述- 库存管理的基本概念- 库存管理的意义和作用- 库存管理系统的发展趋势2. 库存管理系统的功能模块- 商品信息管理- 库存管理- 订单处理- 报表统计与分析3. 数据库基础知识- 数据库的基本概念- 数据库的设计与建立- SQL语句的基本操作(增、删、改、查)4. 编程工具与环境- 编程工具的选择(如:Visual Studio、Eclipse等)- 开发环境搭建(如:安装配置数据库、编程软件等)5. 系统设计与实现- 系统需求分析- 系统模块划分- 编程实现各模块功能6. 系统测试与优化- 系统测试方法与步骤- 常见问题分析与解决- 系统性能优化7. 团队协作与项目管理- 项目分工与协作- 项目进度管理与质量控制- 沟通技巧与团队协作教学内容安排与进度:第1-2周:库存管理系统概述、功能模块介绍第3-4周:数据库基础知识、SQL语句基本操作第5-6周:编程工具与环境、系统设计与实现第7-8周:系统测试与优化、团队协作与项目管理教学内容与教材关联:本教学内容与教材《信息技术》中关于数据库应用、系统设计与实现等相关章节紧密关联,确保学生能够掌握库存管理系统的基础知识和实践技能。
库存管理系统设计报告

数据库应用设计设计报告目录1.系统概述 (2)2.需求分析 (2)2.1需求分析 (2)2.2开发及运行环境 (2)3.总体设计 (3)3.1功能模块划分 (3)3.2系统分析流程图 (3)4.数据库设计 (4)4.1概念结构设计 (4)4.2数据库逻辑结构设计 (5)4.2数据库物理结构设计 (7)5.程序模块设计 (7)5.1功能需求 (7)5.2主界面的设计 (8)5.2.1系统主界面的设计 (8)5.2.3为数据库中每一张表设计类 (9)5.3客户管理模块设计 (10)5.4仓库管理模块设计 (11)5.5产品管理模块设计 (12)5.5库存操作管理模块设计 (14)5.6库存警示管理模块设计 (15)5.7统计查询管理模块设计 (16)5.8数据库的备份和还原设计 (17)6.结论与收获 (18)参考文献 (19)1.系统概述库存管理系统可以全面管理仓库中储存的商品和货物,缩短了库存信息流转的时间,使企业的物料管理层次分明、井然有序,为采购、销售和生产提供依据,从而提高企业的经营效率。
2.需求分析2.1需求分析本系统通过简单的数据库的操作,实现企事业单位的库存信息的管理。
库存盘点管理管理子系统是一个小型的信息管理系统,数据库采用SQL Server 2005。
使用户和项目人员明确系统的功能、应用范围。
本系统具有以下功能:1:基本信息管理。
2:产品信息管理。
3:库存操作管理。
4:库存警示管理。
5:统计查询管理。
2.2开发及运行环境1.硬件环境:CPU:CⅡ1.7G以上,内存在256M以上。
2.软件环境:Windows XP操作系统,Microsoft SQL Servers数据库系统。
软件编程使用Microsoft Visual C++ 6.0 中文版。
3.总体设计3.1功能模块划分本系统将用户划分为两种类型,即系统管理员用户和普通用户。
系统管理员用户为Admin,他可以管理其他用户的信息,在其他方面与所有用户的权限相同。
图书馆管理系统课程设计报告

图书馆管理系统课程设计报告一、引言随着信息技术的不断发展,图书馆管理的信息化已成为必然趋势。
为了提高图书馆的管理效率和服务质量,我们进行了图书馆管理系统的课程设计。
二、需求分析(一)功能需求1、图书信息管理能够对图书的基本信息(如书名、作者、出版社、ISBN 码等)进行录入、修改、查询和删除操作。
2、读者信息管理实现读者信息(如姓名、读者证号、联系方式等)的登记、修改、查询和注销。
3、借阅管理处理图书的借阅、归还、续借等业务,记录借阅历史。
4、库存管理实时掌握图书的库存数量,对库存不足的图书进行预警。
(二)性能需求1、响应时间系统对于常见操作的响应时间应在 3 秒以内,以保证用户体验。
2、稳定性系统应能够长时间稳定运行,不出现频繁的崩溃或错误。
(三)界面需求1、简洁直观操作界面应简洁明了,方便管理员和读者进行操作。
2、导航清晰提供清晰的导航栏,让用户能够快速找到所需的功能。
三、系统设计(一)总体架构采用 B/S 架构,方便用户通过浏览器访问系统。
(二)数据库设计1、设计了图书表(包含图书 ID、书名、作者等字段)、读者表(包含读者 ID、姓名等字段)、借阅表(包含借阅 ID、图书 ID、读者 ID 等字段)等。
2、确定了数据表之间的关联关系,以保证数据的一致性和完整性。
(三)功能模块设计1、图书管理模块实现图书信息的增删改查功能。
2、读者管理模块完成读者信息的相关操作。
3、借阅管理模块处理借阅、归还和续借业务。
4、库存管理模块监控图书库存情况。
四、系统实现(一)开发环境选择了适合的编程语言和开发工具,如 Java 和 MySQL 数据库。
(二)关键技术1、使用了 JDBC 技术连接数据库,实现数据的交互。
2、采用了 Servlet 和 JSP 技术构建 Web 应用程序。
(三)代码实现以图书借阅功能为例,通过获取用户输入的图书 ID 和读者 ID,在数据库中进行查询和更新操作,实现借阅的流程。
五、系统测试(一)功能测试对系统的各个功能模块进行了详细的测试,确保其能够正常工作。
书籍管理系统课程设计报告

书籍管理系统课程设计报告目录第一章可行性研究 (1)1.1问题描述 (1)1.2开发背景 (1)1.3开发环境 (1)1.4应用范围 (1)第二章需求分析 (2)2.1用户需求 (2)2.2功能需求 (2)2.3性能需求 (3)2.4接口需求 (3)2.5书籍管理系统数据流图 (3)2.6登录模块数据字典 (4)2.7 E-R图 (5)第三章概要设计 (5)3.1系统模块划分 (5)3.2登录模块细化 (6)第四章详细设计 (7)4.1数据库设计 (7)4.2登录模块算法设计 (8)第五章主要源代码 (9)5.1登录窗口及编码 (9)5.2系统控制窗口及编码 (11)5.3密码修改编码 (11)第六章登录模块测试 (12)6.1登录界面测试 (12)6.2修改密码界面测试 (13)第七章总结 (14)参考文献 (14)第一章可行性研究1.1问题描述随着科学技术的高速发展,我们已步入数字化、网络化的时代。
由于手动管理书籍的管理手段给给我们自己带来很多操作上的不方便,同时为了提高工作效率和管理水平,并使我们自己从整理书籍庞大的工作量中总结出来,所以我们决定开发该系统。
书籍管理系统内容包括书籍管理模块、查询模块、登陆模块、打印模块,其中登陆模块中,用户输入用户名和密码进入登陆管理界面。
并在登陆管理界面可以对密码进行修改。
1.2开发背景开发软件的名称:个人信息管理系统项目的任务提出者:1.3开发环境WindowsXP系统,Powerbuilder10.0开发软件,sql server数据库。
1.4应用范围我们开发的是书籍管理系统,可以面向广大在校大学生、大学老师,也可用在公司管理员工等方面。
第二章需求分析2.1用户需求本系统是一种比较经济耐用的管理系统,它面向所有在校学生、老师,而且具有比较高的安全性能。
它能够实现书籍管理的基本功能,包括书籍的录入,查询、删除、显示等操作以及后台数据库的备份和恢复。
用户合法注册后必须输入用户账户和密码才能成功进入该系统,以此保证了信息的安全性和个人隐私,进入该系统后可以进入相应的功能模块,进行信息的查询、录入、更新等基本操作。
库存管理管理信息系统课程设计报告(参考三)

管理信息系统课程设计报告设计题目:库存管理管理信息系统专业:工商管理年级班级:姓名:指导教师:小组成员:指导教师评阅:指导教师(签字)成绩:二O一一年月日摘要: 本系统是以计算机软件技术为基础,利用VisualFoxpro编程技术进行编程设计的软件系统。
采用系统结构化开发方法,设计过程主要部分:企业背景调查、需求分析与可行性研究、企业业务流程图绘制、数据结构与数据库设计、数据字典编制、数据流程图绘制,系统总体结构设计。
完成信息的显示代码设计输入/输出设计、模块功能与处理过程设计、系统维护、信息系统安全设计、系统实施、系统运行管理制度、网络系统方案设计。
包括输入、输出、查找、配送等功能。
此系统具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长的优点是一个成本低的现代管理信息系统。
最后通仿真验证企业物资管理信息系统对输入信号进行完整解调。
关键词:结构化开发方法;物资管理Abstract: This paper, based on Computer software technology,and used VisualFoxpro programming technology survey ,Design a software system,which by Structured Approach and design process. Consists of several parts---the company background requirement analysis, and Feasibility study, Enterprise Business flowcharting, and system architecture Design. Complete information is displayed code design,Input / Output Design Module function and Process design,System Maintenance,Design of Information Systems Security,System implementation,System operation management system,Network System Design。
仓储管理系统课程设计报告.doc

仓储管理系统课程设计报告课程设计报告设计的名称:仓库管理系统课程名称:数据库原理中的学生姓名:专业化:计算机科学与技术(网络技术)课程:号码:讲师:日期:XXXX 12月30日。
仓库管理系统摘要仓库管理系统是物资管理系统的核心,是企业不可缺少的一部分。
其内容对企业的决策者和管理者至关重要。
人们一直使用人工方法来管理仓库,这种方法效率低下,并且难以找到、更新和维护。
今天,仓库操作和库存控制操作是多样化和复杂的,并且很难手动处理它们。
如果不能保证正确的采购、检验和交付,将会产生过多的库存,交付时间将会延迟,运营成本将会增加,客户将会流失。
随着科学技术的不断进步,计算机科学技术日趋成熟,仓储管理系统应运而生。
它具有检索迅速、检索方便、可靠性高、存储容量大、保密性好、使用寿命长、成本低等优点。
大大提高了人事和劳动管理的效率。
仓储管理系统是为企业的采购、制造计划、制造执行、客户服务系统以及仓库或配送中心提供的一种管理方法,以满足企业对低成本、快速加工的需求,帮助不同行业的企业解决配送难题,降低订单执行成本。
它已经越来越广泛地应用于各种大型仓库,并随着不断的改进发挥着越来越重要的作用。
目录1.概述 (1)2.课程设计任务的需求分析.........12.1.设计任务..........12.2.设计要求 (1)3.概念结构设计3.1.1设计思想分析.........13.1 .2.概念结构设计工具......23.2.XXX子系统(本地)........33.2。
1.子系统描述.........33.2。
2.分为电子病历图表和.........33.3.图3.x1.完整的.........电子病历图53.x2.总体电子病历图表.........5-省略部分-“销售部门”)从员工姓名中选择*。
derpintotaofromemployeesselect * from aoupdateemployeesettite=' market speciator ' where name='孙林' select * from nawwclassdeletefromsooi where class id=15 select * from schoo1droppetablenewcs6 .2、数据更新操作改变每个用户类型的现有用户l,改变每个用户类型的不存在用户,将具有非空密码的用户改变为每个用户类型的空密码l,将具有空密码的用户改变为每个用户类型的空密码l,改变每个用户类型仅具有一个权限l的用户,改变每个用户类型具有空帐户密码l的用户,更改空帐户但密码不是空的更新临时设置d.=1来自(从临时组中选择a,计数为(a)=1)t此处t . a=临时更新临时设置d=2来自(从临时组中选择a,b,计数为(a)1)a,b,计数为(b)=1)t此处t . a=临时a,t.b=临时更新临时设置d=3来自(选择a,b,c从温度开始,其中a in(从具有计数(a)1的温度组中选择a)和b in(从具有计数(b)1的温度组中选择b)a,b,c具有计数(c)=1)t这里t.a=温度a,t.b=温度b,t.c=温度cupdate温度设置d=0,其中d为空7.收获、经验和建议在完成仓库管理系统的课程设计后,我从中学到了很多。
南航图书馆管理系统课设.docx

南京航空航天大学《C++程序设计》课程设计报告图书馆管理系统姓名:学号:院系:信息科学与技术学院日期:2009.4.8目录目录 (2)一、需求分析 (2)二、系统主要功能 (2)三、系统总框图 (2)四、定义的函数及说明 (3)五、特色算法 (4)六、源程序 (4)一、需求分析在信息技术日益普及的今天,很多事物都在信息技术的帮助下成倍的提高了效率,同样,如果一个图书馆能有一套有效的人事管理系统,这对于图书馆的日常管理是大有益处的。
二、系统主要功能本系统提供了一个图书馆管理的平台可,所提供的功能如下:1.借书2还书3显示书库4添加书籍5删除书籍6编辑书籍7用户登陆8用户注册9显示用户信息三、系统总框图class lib_sys:图书管理的功能部分int input_data();从文件读入数据int output_data();向文件输出数据int user_login();用户登陆int check_user_right();检查用户权限int check_admin_right();检查管理员权限book edit_book_inner(book k);编辑一本书(程序内部使用)book add_book_inner();添加一本书(程序内部使用)int show_book_inner(book k);显示一本书(程序内部使用)int find_book_inner(char *isbn);查找一本书(程序内部使用)int find_student_inner(char *username); 查找一个学生(程序内部使用)int add_book();添加书籍int edit_book(char *isbn);编辑书籍int del_book(char *isbn,int much);删除书籍int show_book();显示书籍int borrow_book();借书int return_book();还书int register_user();用户注册char * get_username();返回当前用户的用户名int show_user_detail();显示用户信息class Manager:界面实现部分int work();显示和实现界面五、特色算法本程序把借书和用户关联在一起,而且出现的权限的概念,普通游客只能观看书籍列表,普通用户只能借书和还书,只有管理员才有权限对书籍信息和数量进行修改。
(库存管理)数据结构课程设计报告库存管理系统

课程设计任务书2011—2012学年第1学期电子与信息工程系计算机科学与技术专业班级课程设计名称:数据结构课程设计设计题目:库存管理系统完成期限:自2012 年 1 月2日至2012 年 1 月 6 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。
凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。
三、设计内容1)问题描述试设计一库存管理系统,产品信息包括产品编号、名称、价格、数量等(产品编号不重复)。
2) 基本要求该系统应具有以下功能:1、产品信息录入功能(产品信息用文件保存)--输入2、产品信息浏览功能--输出3、产品入库4、产品出库5、查询和排序功能:1)按价格从大到小排序2)按名称查询6、产品信息删除、修改功能。
四、参考文献[1]《数据结构》. 王红梅. 清华大学出版社[2]《数据结构学习辅导与实验指导》. 王红梅. 清华大学出版社[3]《C++程序设计》. 钱能. 清华大学出版社[4]《C++程序设计试验指导》. 钱能. 清华大学出版社[5]《C++程序设计》.谭浩强. 清华大学出版社#include<iostream>#include<string>#include<iomanip>#include<fstream>using namespace std;int count=0;class CData //定义数据基类{public:CData(){};virtual int Compare(CData &)=0;virtual void Show()=0;virtual ~CData(){};};class CNode //定义结点基类{private:CData *pData; //用于指向数据类的指针CNode *pNext; //用于指向链表的后向指针public:void InputData(CData *pdata){pData=pdata;} //输入数据void ShowNode(){pData->Show();} //打印一个节点的数据CData *GetData(){return pData;}friend class CList; //定义链表类为基类};class CList{CNode *pHead; //链表头结点指针public:CList(){pHead=0;};~CList(){DeleteList();}void AddNode(CNode *pnode); //在首部添加结点CNode *DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针CNode *Search(CData &); //查找一个指定的数据,返回该数据所在的结点在链表的指针,未找到返回0bool IsExist(CData &);void ShowList(); //打印整个链表void DeleteList(); //删除整个链表CNode *GetListHead(){return pHead;} //返回链表首结点CNode *GetListNextNode(CNode *pnode); //返回链表指定结点的下一个结点};CNode *CList::GetListNextNode(CNode *pnode) //返回链表指定结点的下一个结点{CNode *p1=pnode;return p1->pNext;};void CList::AddNode(CNode *pnode) //在首部添加结点{if (pHead==0) //如果是空链表,插入的结点是唯一的结点{pHead=pnode;pnode->pNext=0;return;}else //否则,插入到链表首部{pnode->pNext=pHead;pHead=pnode;}};CNode *CList::DeleteNode(CNode *pnode) //删除一个指定的结点,返回该结点的指针{CNode *p1,*p2;p1=pHead; //指向首结点while(p1!=pnode&&p1->pNext!=0) //寻找要删除的结点{p2=p1;p1=p1->pNext; //结点p2始终在p1的后面}if (p1==pHead) //如果要删除的是首结点{pHead=pHead->pNext; //将首结点后移return pnode;}p2->pNext=p1->pNext; //p1指向被删除的结点,将p2结点与p1后面的结点连接起来return pnode;}CNode *CList::Search(CData &data) //查找一个指定的数据,返回指针,若未找到返回0 {CNode *p1=pHead;while(p1) //从头结点开始查找{if (p1->pData->Compare(data)==0)return p1; //找到后返回结点指针p1=p1->pNext;}return 0; //搜索完找不到,返回空指针0}void CList::ShowList() //打印整个链表{CNode *p1=pHead;while(p1){p1->pData->Show();p1=p1->pNext;}}void CList::DeleteList() //删除整个链表结点{CNode *p1,*p2;p1=pHead;while(p1){delete p1->pData;p2=p1;p1=p1->pNext;delete p2;}}class Repository:public CData //库存为记录,为数据基类的公有派生类{private :char szName[20]; //库存中数据:商品名、商品数量和入库时间unsigned int szNumber;char szTime[20];char szN;CList ShList;public:Repository(); //构造函数Repository(char *name,int number,char *time);void SetRecord(char *name, int number,char *time); //输入数据函数int Compare(CData &); //比较函数,比较商品名void Show();void AddRecord();void Display();void LookUpRecord();void DeleteRecord();void ModifyRecord();void SaveToFile();void Operate(string &strChoice);void ReadFromFile();void Output();};Repository::Repository(){strcpy(szName,"\0");szNumber=0;strcpy(szTime,"\0");}Repository::Repository(char *name,int number,char *time){strcpy(szName,name);szNumber=number;strcpy(szTime,time);szN=name[0];}void Repository::SetRecord(char *name, int number,char *time) //输入数据函数{strcpy(szName,name);szNumber=number;strcpy(szTime,time);szN=name[0];}int Repository::Compare(CData &data) //比较商品名{Repository &temp=(Repository &)data;return strcmp(szName,temp.szName);}void Repository::Show() //打印一个结点的数据{cout<<setw(15)<<szName<<setw(15)<<szNumber<<setw(15)<<szTime<<endl; }void Repository::AddRecord() //将记录添加到链表中{CNode *pNode;Repository *pSh;char szName[20],szTime[20];unsigned int szNumber;cout<<"请输入新商品名(输入0退出,并进入系统菜单):";cin>>szName;while(strcmp(szName,"0")){cout<<"请输入新商品入库时间: ";cin>>szTime;cout<<"请输入新商品数量: ";cin>>szNumber;pSh=new Repository; //生成新的数据累对象pSh->SetRecord(szName,szNumber,szTime); //数据类对象赋值pNode=new CNode; //生成新的结点pNode->InputData(pSh); //结点插入链表ShList.AddNode(pNode);count++;cout<<"请输入新商品名(输入0退出,并进入系统菜单) ";cin>>szName;}cout<<endl<<endl;}void Repository::Display() //显示全部链表数据{cout<<"当前操作共有"<<count<<"条新商品的添加纪录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i. void showAllBook() 展示所有图书记录,同时每五个分一页,实现分页显示的 功能只需要在 i 被 5 整除的时候暂停即可。
j. void readFromFile(char *fileName) 从文件导入书籍,调用 appendbook 的函数,如果出现重复 书籍,则与原来的数据进行合并。如果没有添加.txt 可以自 动补全。
<< bkNum << endl;
}
void print(ofstream &out) //向文件输出这一条记录
{
out << setw(10) << left << bkNo << setw(20) << left << bkName << setw(10) << left <<
bkNum << endl;
-1-
一、 程序功能
1. 追加图书记录 输入书号、书名和库存量,在库存列表尾部追加一条记录。此功 能每次只能追加一本图书记录,用于初期建立库存记录。
2. 删除图书记录 输入一本书的书号,首先在库表中查询该图书是否存在,若存在, 则显示该图书记录,并提问是否删除该图书,根据回答(y/n)确 定是否删除该图书;若不存在,提示该书不存在。
3. 显示所有图书记录 每行显示一本图书记录信息。
4. 查询图书 输入一本图书的书号,查询该书是否存在,若存在,则显示该书 记录信息,否则提示该书不存在。
5. 图书入库 输入一本书的书号,查询该书是否存在,若存在,则修改已有图 书记录的库存量;若不存在,则追加一条图书记录。
6. 图书销售 输入一本书的书号及销售数量。若该图书存在,并且库存量充足, 则修改库存量;否则提示该书不存在或库存不足等信息。
{
strcpy(this->bkNo, bkNo);
strcpy(this->bkName, bkName);
this->bkNum = bkNum;
}
void show() //展示这一条记录
{
cout << setw(10) << left << bkNo << setw(20) << left << bkName << setw(10) << left
cha;
//数量,整型
public:
int getNum() //得到库存量
{
return bkNum;
}
void setNum(int bkNum)//得到数量
{
this->bkNum = bkNum;
}
void setData(char *bkNo, char *bkName, int bkNum) //设置书名、书号和数量
-5-
2. BookDatebase 类 (1) 私有数据成员 a. Book *bkptr //Book 型的指针 b. int curLen, maxLen // 线性表的最大长度和当前长度 (2) 公有成员函数 a. BookDatebase(int n = 10) 构造函数,用来初始化线性表。并从 bookdata.txt 中导入数 据。 b. ~BookDatebase() 析构函数,用来释放线性表。并把数据导出到 bookdata.txt. c. void setCurLen(int i) 设置现在线性表的长度,在删除全部数据的时候会用到这 个函数。 d. int isIn(char *bkNo) 判断书籍记录是否存在,此功能使用频率较高,主要作用 是数据检查,防止出错。 e. Book &getBook(int i) 返回图书的引用,这一做法有两个好处,一是简化写法, 二是增强程序的可读性。返回值是一个引用,可以直接操 作原来的数据。
-2-
7. 批量导入图书记录 用户输入一个文件名,系统自动地讲该文件中的图书记录追加到 库存列表中,从而实现批量导入图书。
8. 导出图书记录 提示用户输入一个文件名,系统自动将库存表中的全部图书记录 信息写入该文件正文,文件格式与上述导入文件格式相同。
9. 排序 提供六种排序的选择,分别对三个关键字按升序或降序排列。使 用了冒泡法、选择法和插入法几种排序方法。
- 12 -
六、 源程序
#include <iostream> #include <fstream> #include <iomanip> #include <cstring> #include <cstdlib> using namespace std;
class Book
{
char bkNo[10]; //书号,字符串类型
-3-
(2) 菜单五(批量导入图书记录) 批量导入图书记录实际上就是对追加图书记录的批量操作,同 样需要数据检查机制,以防止数据重复。在本程序中,对每一 个批量导入的数据进行检查,如果出现重复,则自动与先前的 数据进行合并。
(3) 系统初始化的时候会自动地从 bookdata.txt 中导入数据,虽然 这个数据中有重复数据的可能性比较小(因为我们是导出的数 据,而这个数据用户是看不到的,对用户来说是透明的),但 是为了避免错位,同样加入数据检查机制,具体操作和菜单五 的相同。
据进行合并
{
if (maxLen == curLen)
- 14 -
{ Book *newPtr = new Book[maxLen + 10]; for (int i = 0; i<curLen; i++) { newPtr[i] = bkPtr[i]; } maxLen += 10; delete[]bkPtr; bkPtr = newPtr;
3. 查询图书时候的分页功能 查询所有图书的时候每 5 条记录一页显示,按任意键后显示下一
-4-
页。 4. 输 入 文 件 的 名 字 如 果 不 包 含 .txt 则 自 动 添 加 , 通 过
return_file_name 函数实现。
三、 数据结构
1. BOOK 类 (1) 私有数据成员 a. char bkNo[10] //书号,字符数组 b. char bkName[20] //书名,字符数组 c. int bkNum //库存量,即数量 (2) 公有成员函数 a. int getNum() //获取库存量 b. void setNum(int bkNum) //设置库存量 c. void setData(char *bkNo, char *bkName, int bkNum)//写入库 存信息 d. void show() //显示一本图书信息 e. void print(ofstream &out) //将库存记录写入文件 (3) 友元的说明 friend class BookDatebase;//通过设置此友元,使访问变得更容 易,但是类的隐蔽性也被破坏。
南京航空航天大学 《C++语言程序设计》课程设计报告
题目: 图书库存管理
班级: 学号: 姓名: 成绩: 指导教师:
0116202 011620231 苏瑞辅
潘梅园
日期:2017 年 5 月 18 日
目录
一、 程序功能 ................................................ - 2 二、 新增功能 ................................................ - 3 三、 数据结构 ................................................ - 5 四、 函数调用关系图 .................................... - 9 五、 精选算法 ................................................ - 9 六、 源程序 .................................................. - 13 七、 典型测试数据 ...................................... - 24 八、 问题的处理方法 .................................. - 35 九、 做课程设计作业的感受 ...................... - 36 -
}
- 13 -
friend class BookDatebase; //将BookDatabase设置成友元,可以直接操作 };
class BookDatebase
{
Book *bkPtr; //Book型指针,用于数据的访问
int curLen, maxLen;
public:
BookDatebase(int n = 10) //构造函数,初始化数组,将bookdata.txt中的数据导入
k. void writeToFile(char *filename) 向文件输出数据,和输入数据的格式相同。如果文件名中 没有添加.txt 可以自动补全。
l. void reverse()
-7-
逆置数组,降序的功能是通过把升序的数组你逆置实现的。 m. void sort(int choice)
排序数组,根据 choice 进行不同的排序选择。 升序是分别通过冒泡法、插入法和选择法实现的。 降序的功能是通过对升序后的数据逆置实现的。
-8-
四、 函数调用关系图