课程论文
软件工程
题 目: 图书资料信息管理系统 学院(系): 信息工程学院 专业班级: 通信工程 学生姓名: 指导教师: 魏洪涛
2010年 11月 17日
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 摘 要
图书资料管理系统主要是以高校的系部或院部作为使用对象而开发的。其系统开发的任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用Microsoft公司的Visual C++ 6。0作为前端开发工具.利用其提供的集成开发环境及各种控件,尤其是对DAO的支持完成对数据库的各种操作,达到对图书资料管理的目的。设计时首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统.
关键词: 图书资料、管理、设计、程序设计
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- Abstract
Library data Management System, Department of the Ministry of mainly university or hospital department as developed using the object。 The main task of system development including database design and maintenance, the client application development and other aspects. The former required the database has integrity and consistency, and has a data security such as user need a password to use, etc., while the latter claims process for the friendly interface, complete functions and so on. After detailed analysis, use Microsoft's Visual C 6。0 as the front-end development tools。 The use of its integrated development environment and a variety of controls, especially for DAO support to complete the various operations on the database to achieve the purpose of library information management. Design prototype application system first, and then prototype system needs to constantly revise and improve until users are satisfied with the practical system.
Keywords: library, management, design, programming
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 目录
摘 要 ............................................................................................................................................................. 2 Abstract ........................................................................................................................................................... 3 1 绪论 ............................................................................................................................................................. 5
1.1 软件工程的概念 .............................................................................................................................. 5
1.2 图书资料信息管理的意义 .............................................................................................................. 5 2 系统的设计 ................................................................................................................................................. 6 2.1 系统需求分析 .................................................................................................................................. 6 2.2 功能需求描述 .................................................................................................................................. 6 3 概要设计 ..................................................................................................................................................... 7
3.1项目采用的技术路线,支持软件 ................................................................................................... 7 3。2系统整体框架图 ............................................................................................................................ 7 3.3项目实现的功能点 ........................................................................................................................... 7 4 详细设计 ..................................................................................................................................................... 8
4.1类的原型描述 ................................................................................................................................... 8 4.2函数的描述 ..................................................................................................................................... 16 5 测试分析 ................................................................................................................................................... 17
5。1系统存在的问题 .......................................................................................................................... 17 5.2黑盒测试 ......................................................................................................................................... 17 5.3白盒测试 ......................................................................................................................................... 18 6 心得体会 ................................................................................................................................................... 19 7 参考文献 ................................................................................................................................................... 20
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 1 绪论
1.1 软件工程的概念
为了解决软件的开发和维护过程遇到的问题,人们提出了“软件工程\"的思想。软件工程是一种层次化的技术(如图1—1所示)。任何工程方法必须以有组织的质量保证为基础。全面的质量管理理类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程的方法的不断出现。支持软件软件工程的根基就在于对质量的关注。
软件工程的基层是过程层.软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域的框架,关键过程区域构成了软件项目的管理控制的基础,并确立了上下各区域之间的关系,其中规定了技术方法的采用,工程产品的产生,里程碑的建立,质量的保证以及变化的适当管理。
软件工程的方法层提供了建造软件在技术上需要“如何做”方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护.软件工程方法依赖于一组基本原则,这些基本原则控制了每一个技术区域,且包含建模活动和其他描述技术。
软件工程的工具层对过程和方法提供了自动的或半自动的支持.当这些工具被集成起来使得一个工具产生的信息可被另一个工具使用时,一个支持软件开发的系统就建立了,成为计算机辅助软件工程.
图 1-1 软件工程层次图
1。2 图书资料信息管理的意义
图书资料的管理是高校内每一个系部或院部都必须切实面对的工作,但一直以来人们使用传统的人工方式管理图书资料。这种管理方式存在着许多缺点,如效率低、保密性差且较为繁琐。另外,随着图书资料数量的增加,其工作量也将大大增加,这必然增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 了很多困难.
经过详细的调查,目前我国各类高等院校中有相当一部分单位图书资料管理还停留在人工管理的基础上,尤其是中、小学的图书资料的管理更是如此,这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代.
图书资料管理作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高图书资料管理的效率.因此,开发一套能够为用户提供充足的信息和快捷的查询手段的设计的题目,正好可以充分利用几年来在校所学的各种专业知识开发一个图书管理系统来帮助相关部门进行有效的资料管理。
2 系统的设计
2.1 系统需求分析
该项目为图书资料信息管理系统。由于经济水平的不断提高,图书馆也逐渐增多,为方便用户借书还书,图书资料信息管理系统的要求也在逐年提高。特此编写了一个图书资料信息管理系统的代码程序,它的功能主要是完成系统基本功能和要求,统计功能,查找功能。
2.2 功能需求描述
经过详细调查,并多次与负责图书管理的老师进行研讨后,加深了对现行图书资料管理业务的深刻了解,与此同时,将整个图书资料管理的业务流程抽象描述如下:
①新的图书购进后,分门别类地进行归并汇总,并加以编号。 ②新书经过编号后,上到书架以备教师借阅。
③如某位教师需要借阅图书,则在其本人的借阅登记表上进行登记,记录相关借阅信息与借阅日期。
④教师借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 3 概要设计
3。1项目采用的技术路线,支持软件
该项目是在Visual C++ 6.0的平台下用c++语言实现,创建对象,程序运行开始,打开文件并将其分别链入链表之中;程序结束关闭并保存文件。整体系统功能全部由链表实现。
在系统中,函数之间采用级联调用,即一个函数里调用另一个函数,每个函数实现一个单独的功能,可被一次或多次调用.
整个系统采用的是多文件结构系统,文件结构框图设计。
3.2系统整体框架图
系统的整体框图如3—1所示
图书资料管理系统 源文件 主函数文件 头文件包含 头文件 类定义定义 函数声明 结构定义 子函数文件 图3-1
3。3项目实现的功能点
基本功能
(1)
系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有
相应的帮助,菜单之间能够灵活的切换。
用户分三种权限:一般的读者用户,图书管理员。 (2)
根据登陆方式,选择相应的操作方式;
如果是图书管理员,除了可以查看数据外还能编辑图书数据以及修改图书数据等功能,同时可以维护图书的采购信息。
如果是读者用户,可添加、删除、查看个人信息,能浏览图书信息。
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- (3) 能够对图书基本信息、图书采购信息、图书的借阅人信息进行统计,统计的结果能够以表格的形式来表示.
(4) 图书基本信息、图书采购信息、图书的借阅人信息存储在相应的文件中。数据的组织形式要求必须使用链表或者二叉树来实现。
(5) 系统界面友好,易操作.
统计功能
(1)统计、已借出数据总数、在馆书籍数等。 (3)统计借阅次数最多的10本书。 (4)图书资料信息其它方面的统计。 (5)统计某个单位的借阅数目的情况 查找功能
(1) 可以根据图书的编号查找。 (2) 可以根据图书的名称查找。
(3) 可以根据读者的姓名来查找读者的信息。 (4)可以根据读者的编号查找读者的信息。 系统的操作
(1) 有文件的保存和另存为 (2) 有文件的打开和载入
(3) 系统在退出时,要有相应的提示 类的设计 1。Reader读者类 2.RDatabase 读者库类 3.Book 图书类
4。BDatabase 图书库类
4 详细设计
4.1类的原型描述
class Reader {
int tag; int no;
//删除标记1:已删0:未删
//读者编号
//读者类
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
char name[10];
//读者姓名 //所借图书
int borbook[Maxbor]; Reader() {} char *getname() {
return name;
} {
return tag;
} {
return no;
public:
//获取姓名
int gettag()
//获取删除标记
int getno()
} //获取读者编号 void setname(char na[]) //设置姓名 {
strcpy(name,na); }
void delbook() {
tag=1;
} //设置删除标记 void addreader(int n,char *na); //增加读者 void borrowbook(int bookid); //借书操作 int retbook(int bookid); //还书操作
void disp(); //输出读者信息 };
void Reader::addreader(int n,char *na) //增加读者
{
tag=0; no=n;
strcpy(name,na);
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
for (int i=0;i for (int i=0;i〈Maxbor;i++) if (borbook[i]==0) borbook[i]=bookid; return; { { void Reader::borrowbook(int bookid) //借书操作 } } //还书操作 } { for(int i=0;i { { int Reader::retbook(int bookid) } } return 0; } { cout 〈< setw(5) 〈< no <〈 setw(10) <〈 name 〈< ” 借书编号:[”; for (int i=0;i〈Maxbor;i++) if (borbook[i]!=0) -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- void Reader::disp() //输出读者信息 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- cout 〈〈borbook[i] 〈〈\"|\"; cout〈〈\"]”<〈endl; } //读者库类 class RDatabase { private: 中 { } void clear() { } top=—1; Reader s; top=—1; int top; // 读者记录指针 // 读者记录 Reader read[Maxr]; RDatabase() public: //构造函数,将reader.txt读到read[] fstream file(\"reader。txt\::in); while (1) { file.read((char *)&s,sizeof(s)); if (!file) break; top++; read[top]=s; } file。close(); //删除所有读者信息 int addreader(int n,char *na) //增添读者信息 { Reader *p=query(n); if (p==NULL) { top++; -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- } } read[top]。addreader(n,na); save(); cout<<”读者添加成功”<〈endl; return 1; return 0; //按编号查找 Reader *query(int readerid) { for (int i=0;i〈=top;i++) } void disp() { for (int i=0;i<=top;i++) } int Readernum() { } void readerdata(); ~RDatabase() { return top; read[i].disp(); if(read[i]。getno()==readerid&& read[i]。gettag()==0) return &read[i]; return NULL; //输出所有读者信息 //读者库维护 // 析构函数,将read[]写入reader。txt 文件中 fstream file(\"reader。txt”,ios::out); for (int i=0;i<=top;i++) -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- if(read[i]。gettag()==0) file.write((char *)&read[i],sizeof(read[i])); else file。close(); -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- } //图书类 }; class Book { private: int tag; int no; //删除标记1:已删0:未删 //图书编号 //书名 //是否在架1:在架0:已借 char name[20]; int onshelf; Book() {} char *getname() { return name; } { return no; } { return tag; } { public: //获取姓名 int getno() //获取图书编号 int gettag() //获取删除标记 //设置书名 void setname(char na[]) strcpy(name,na); } void delbook() { tag=1; } { tag=0; no=n; //删除图书 //增加图书 void addbook(int n,char *na) -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- strcpy(name,na); onshelf=1; //借书操作 } int borrowbook() { if(onshelf==1) { onshelf=0; return 1; } return 0; //还书操作 } void retbook() { onshelf=1; //输出图书 } void disp() { cout〈〈setw(6)<〈no< }; class BDatabase { private: int top; //图书记录指针 //图书记录 //构造函数,将book.txt读到book[]中 //全删 Book book[Maxb]; BDatabase() ; void clear() { top=—1; } int addbook(int n,char *na) //增加图书 //图书库类 public: -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- { Book *p=query(n); if (p==NULL) } Book *query(int bookid) { for(int i=0;i<=top;i++) } void disp() { } void bookdata(); ~BDatabase() { fstream file(”book。txt”,ios::out); for (int i=0;i<=top;i++) if(book[i]。gettag()==0) file.write((char*)&book[i],sizeof(book[i])); file.close(); //图书库维护 //析构函数,将book[]写入book。txt文 for(int i=0;i<=top;i++) if(book[i].gettag()==0) book[i].disp(); if(book[i].getno()==bookid && book[i]。gettag()==0) return &book[i]; //查找图书 { top++; book[top].addbook(n,na); save(); cout〈〈\"图书信息增添成功\"〈 return NULL; 件中 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- } }; 4。2函数的描述 void MainMenuinterface();//主菜单 void MainMenufun();//主菜单功能实现函数 void Admininterface();//管理员界面 void Adminfun();//管理员功能实现函数 void Readerinterface();//读者信息界面 void Readerfun();//读者功能实现函数 void bookdatainterface();//图书信息界面 char FunExit();//系统退出函数 Void setname(char na[]); //设置姓名 Void addreader(int n,char *na); Void delbook(); //设置删除 Void borrowbook(int bookid); //借书操作 Void retbook(int bookid); //还书操作 Void RDatabase(); //构造函数 void disp() //输出读者信息 void clear() //删除所有读者信息 Void Reader *query(int readerid); //按编号查找 Void readerdata(); //读者库维护 Void setname(char na[]); //设置书名 void addbook(int n,char *na) //增加图书 Book *query(int bookid) //查找图书 void bookdata(); //图书库维护 ~BDatabase() //析构函数 save();//文件的保存 //增加读者 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 5 测试分析 5。1系统存在的问题 1) 未设登录密码保护系统,是整个图书管理系统失去了安全性; 2) ************************************** *********************** 欢迎进入图书维护界面 1。 新增图书信息 2. 更改图书信息 3. 删除图书信息 4. 查找图书 5。 浏览图书信息 6。 删除全部图书信息 h. 返回上一级菜单 q。 退出 ************************************************************** 此界面运行时选择4有时会出现内存读取错误; 3)当输入错的数据类型时 可能导致内存错误; 4)读者、图书信息不完善; 5)命名不是很规范; 6)信息存储有限; 5.2黑盒测试 目的 本方案主要实施产品程序代码的黑盒测试.保证软件的功能能正常进行,保证用户可以安全、快捷进行操作 测试项 软件的登陆 查找 排序 统计 部分的功能 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 测试步骤 序号 T1 T2 T4 T5 T6 T7 T8 测试项 登陆功能 查找功能 统计功能 创建文件 清除文件 添加文件 删除文件 质量保证标准 无 根据软件说明书,实现查找图书的功能 根据软件说明书,实现图书、读者信息完备 统计的功能 根据软件说明书,创建一个文件夹 根据软件说明书,清除一个文件夹 根据软件说明书,往文件夹中添加文件 根据软件说明书,产出文件夹中的文件 测试内容 问题属性 缺陷 缺陷 缺陷 缺陷 缺陷 出错频率 问题:当输入错的数据类型时 可能导致内存错误 解决方案:无 5。3白盒测试 目的 本方案主要实施产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行.保证局部模块功能完备性,运行正确性与稳定性. 测试项 所要测试的类: Class Reader读者类 Class RDatabase 读者库类 Class Book 图书类 Class BDatabase 图书库类 所要测试的函数: void MainMenuinterface();//主菜单 void MainMenufun();//主菜单功能实现函数 void Admininterface();//管理员界面 void Adminfun();//管理员功能实现函数 void Readerinterface();//读者信息界面 void Readerfun();//读者功能实现函数 void bookdatainterface();//图书信息界面 char FunExit();//系统退出函数 Void setname(char na[]); //设置姓名 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- Void addreader(int n,char *na); Void delbook(); //设置删除 Void borrowbook(int bookid); //增加读者 //借书操作 Void retbook(int bookid); //还书操作 Void RDatabase(); //构造函数 void disp() //输出读者信息 void clear() //删除所有读者信息 Void Reader *query(int readerid); //按编号查找 Void readerdata(); //读者库维护 Void setname(char na[]); //设置书名 void addbook(int n,char *na) //增加图书 Book *query(int bookid) //查找图书 void bookdata(); //图书库维护 ~BDatabase() //析构函数 save();//文件的保存 通过的准则 1。 界面测试通过的标准:界面的样式、大小、整体布局的设置;各种标签控件的使用及主题描述以及事件源控件的使用、快捷键使用。 2。 程序代码通过的标准:创建的类、接口、方法、属性应与详细设计保持一致;程序的各种命名、注释、代码行的格式等应符合命名标准和编码规范;程序模块能独立稳定运行。 6 心得体会 时间飞逝,不知不觉间《软件工程》的学习已经接近尾声。在这将近半学期的学习中,虽然我不能说我将《软件工程》学习的有多么的好,但是通过学习,我还是受益良多。 在以前,我一直对软件存在一些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,一切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了。 但是通过了《软件工程》这门课的学习,使我认识到了我以前的错误。软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品. -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 经过这次的设计任务,深刻感受到我们所学到的c++语言到现在为止也只不过是冰山一角。我们所编程序极其简单,但出错率却极高,编程过程中经常因为自己的马虎大意使程序混乱且错误很多。对于c++的编程,我们还远达不到要求,以后我们会多加练习,在错误中吸取经验。 7 参考文献 张海藩,等。软件工程。人民邮电出版社,2002年3月。 马垣。关系数据库理论.清华大学出版社,1999 蔡希尧,陈平.面向对象技术。西安电子科技大学出版社,1997 陈志华。Delphi案例教程.中科多媒体电子出版社,2001 薛华成.管理信息系统,清华大学出版社,1999 Ron Patton.软件测试。机械工业出版社,2002 吴斌,赵有珍.SQL Server 7应用于提高.科学出版社,2000 -------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-------------- 因篇幅问题不能全部显示,请点此查看更多更全内容