软件工程实习报告Word文件下载.docx

上传人:b****2 文档编号:1116904 上传时间:2023-04-30 格式:DOCX 页数:19 大小:174.09KB
下载 相关 举报
软件工程实习报告Word文件下载.docx_第1页
第1页 / 共19页
软件工程实习报告Word文件下载.docx_第2页
第2页 / 共19页
软件工程实习报告Word文件下载.docx_第3页
第3页 / 共19页
软件工程实习报告Word文件下载.docx_第4页
第4页 / 共19页
软件工程实习报告Word文件下载.docx_第5页
第5页 / 共19页
软件工程实习报告Word文件下载.docx_第6页
第6页 / 共19页
软件工程实习报告Word文件下载.docx_第7页
第7页 / 共19页
软件工程实习报告Word文件下载.docx_第8页
第8页 / 共19页
软件工程实习报告Word文件下载.docx_第9页
第9页 / 共19页
软件工程实习报告Word文件下载.docx_第10页
第10页 / 共19页
软件工程实习报告Word文件下载.docx_第11页
第11页 / 共19页
软件工程实习报告Word文件下载.docx_第12页
第12页 / 共19页
软件工程实习报告Word文件下载.docx_第13页
第13页 / 共19页
软件工程实习报告Word文件下载.docx_第14页
第14页 / 共19页
软件工程实习报告Word文件下载.docx_第15页
第15页 / 共19页
软件工程实习报告Word文件下载.docx_第16页
第16页 / 共19页
软件工程实习报告Word文件下载.docx_第17页
第17页 / 共19页
软件工程实习报告Word文件下载.docx_第18页
第18页 / 共19页
软件工程实习报告Word文件下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程实习报告Word文件下载.docx

《软件工程实习报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程实习报告Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。

软件工程实习报告Word文件下载.docx

其成员函数有:

LIB();

//LIB构造函数

voidadd(intn,Stringna,Stringa,Stringpu,floatpr);

//添加图书

voidadd(BOOKb);

voiddel_num(intn);

//按图书编号进行删除

voiddel_nam(Stringn);

//按图书名字进行删除

voidfind_num(intn)const;

//按图书编号进行查找

voidfind_nam(Stringn)const;

//按图书名字进行查找

voidfind_act(Stringn)const;

//按图书作者进行查找

voidfind_pub(Stringn)const;

//按图书出版社进行查找

voidfind_act_pub(Stringn,Stringn1)const;

//按图书作者和出版社进行组合查找

voidfind_pub_nam(Stringn,Stringn1)const;

//按图书出版社和书名进行组合查找

voidfind_act_nam(Stringn,Stringn1)const;

//按图书作者和书名进行组合查找

voidfind_pub_act_nam(Stringn,Stringn1,Stringn2)const;

//按图书作者、书名和出版社进行组合查找

voidfind_act_m(Stringn)const;

//按图书作者进行模糊查找

voidfind_nam_m(Stringn)const;

//图书名字进行模糊查找

voidfind_pub_m(Stringn)const;

//按图书出版社进行模糊查找

intsize();

//获取图书数目

voidoutput();

//显示所有图书

主函数

主函数主要是把图书管理功能有机结合起来,起到方便使用的作用。

其流程图如下:

4、详细设计

图书数据结构定义

structBOOK

{

intnum;

BOOK();

};

图书管理类的定义

classLIB

private:

List<

intall;

public:

LIB()

{初始化all}

voidadd(intn,Stringna,Stringa,Stringpu,floatpr)

{判断图书编号是否已存在

若存在,则添加失败

否则,添加成功

将图书信息保存到文本文件}

voidadd(BOOKb)

{和上述类似的算法};

voiddel_num(intn)

{判断图书是否存在

若存在,将其删除

否则,删除失败

voiddel_nam(Stringn)

{同上}

voidfind_num(intn)const

{循环检测是否存在该图书编号的图书

若存在,将其图书信息输出

否则,查找失败}

voidfind_nam(Stringn)const

{同上,只是将编号换成书名}

voidfind_act(Stringn)const

{同上,只是将编号换成作者}

voidfind_pub(Stringn)const

{同上,只是将编号换成出版社}

voidfind_act_pub(Stringn,Stringn1)const

{同上,只是将编号换成作者和出版社的组合}

voidfind_pub_nam(Stringn,Stringn1)const

{同上,只是将编号换成出版社和书名}

voidfind_act_nam(Stringn,Stringn1)const

{同上,只是将编号换成作者和书名的组合}

voidfind_act_nam_pub(Stringn,Stringn1,Stringn2)const

{同上,只是将编号换成作者、书名和出版社的组合}

voidfind_act_m(Stringn)const

{循环检测是否存在该图书作者子串的图书

{同上,只是将图书换成书名}

voidfind_pub_m(Stringn)const

{同上,只是将图书换成出版社}

intsize()

{返回图书管理系统的图书数目}

voidoutput()

{输出所有图书}

voidoutput_file()

{将图书保存到文本文件}

5、调试分析

本图书管理系统的函数比较多,我在每完成一个函数时,就用驱动函数来执行一下。

这样子做有助于及时发现问题并更正。

6、使用说明

运行程序,在显示主菜单之前,程序已经把文本文件的一些图书信息读入内存了(为了方便测试)。

之后显示菜单:

1:

插入图书记录

2:

删除图书记录

3:

查找图书记录

4:

显示图书记录

0:

退出系统

请选择:

输入1,则进入添加图书的分支。

即程序会收集图书信息,然后插入到系统。

输入2,进入删除图书的分支。

程序会提示:

按编号删除

按书名删除

输入1,将会提示要输入编号;

输入2,将会提示要输入书名。

输入3,进入查找图书分支。

精确查找

模糊查找

组合查找

输入1,进入精确查找,程序提示:

按作者查找

按出版社查找

按书名查找

按图书编号查找

输入1,程序会提示要输入图书作者,回车,输出查找结果

输入2,程序会提示要输入图书出版社,回车,输出查找结果

输入3,程序会提示要输入图书名字,回车,输出查找结果

输入4,程序会提示要输入图书编号,回车,输出查找结果

输入2,进入模糊查找,程序提示:

输入1,程序会提示要输入图书作者,回车,输出模糊查找结果

输入2,程序会提示要输入图书出版社,回车,输出模糊查找结果

输入3,程序会提示要输入图书名字,回车,输出模糊查找结果

输入3,进入组合查找,程序提示:

按作者和出版社查找

按出版社和书名查找

按作者和书名查找

按作者、书名和出版社查找

输入1,程序会提示要输入作者和出版社,回车,输出组合查找结果

输入2,程序会提示要输入出版社和书名,回车,输出组合查找结果

输入3,程序会提示要输入作者和书名,回车,输出组合查找结果

输入4,程序会提示要输入作者、书名和出版社,回车,输出组合查找结果

输入4,程序会把所有图书信息显示到屏幕

在以上的每一个菜单选择中,如果输入的是非法命令,程序会停留在该菜单界面,直到用户输入的命令是合法的。

以上没执行完一个操作,程序会跳回到主菜单,让用户选择。

7、测试结果

程序开始时,已经从文本文件读入以下信息:

111111shujujiegoulimingdianzigongyechubanshe32.6

111112suanfashejihudongrenminchubanshe23.5

111113lisanshuxuechenhongyoudiandaxuechubanshe25.0

111114ruanjianshixibinyuandongfangjiaoyuchubanshe12.3

111115美国文化戴特斯曼(美)世界图书出版公司48.0

111116高等数学(上册)吴赣昌中国人民大学出版社39.0

111117高等数学(下册)吴赣昌中国人民大学出版社33.0

111118C语言设计教程谭浩强清华大学出版社25.0

111119数字电子技术教程余孟尝高等教育出版社41.7

111120C++面向对象程序设计姚全珠电子工业出版社29.0

1)插入图书记录

输入:

111666程序设计谭老电子工业出版社30.2

输出:

插入成功!

111111程序设计谭老电子工业出版社30.2

111111已经存在!

2)删除图书记录

111111

删除成功。

111111

111111不存在!

美国文化

美国文化不存在!

3)查找图书记录

精确查找:

吴赣昌

李勇

李勇的记录不存在!

高等教育出版社

C语言设计教程

111118

模糊查找:

出版社

111116高等数学(上册)吴赣昌中国人民大学出版社39.0

111120C++面向对象程序设计姚全珠电子工业出版社29.0

111666程序设计谭老电子工业出版社30.2

教程

数子

数子的记录不存在!

组合查找:

谭老程序设计

老谭程序设计

老谭和程序设计的记录不存在!

谭老电子工业出版社

高等教育出版社数据电子技术教程

吴赣昌高等数学(上)中国人民大学出版社

吴赣昌高等数学(上)高等教育出版社

吴赣昌和高等数学和(上)高等教育出版社的记录不存在!

4)显示图书信息

选择显示图书记录命令

4

111114ruanjianshixibinyuandongfangjiaoyuchubanshe2.3

5)退出系统

退出系统

 

实验二

假设表达式中允许有两种括号:

圆括号和方括号,其嵌套的顺序随意,即(()[])或

[([][])]等为正确格式,[()]或((()均为不正确的格式。

用户输入一个括号串,程序输出该括号串是否匹配正确。

本程序要用到自编的数据结构字符串和单链表

所以要包含头文件:

#include”String.h”

除了主函数之外,还有一个函数boolmatch(charc1,charc2),其作用是判断c1和c2是否为相互匹配的括号对。

本程序所用的变量:

Strings;

//存储用户输入的括号串

Stack<

char>

st;

//存储待匹配的括号

以下是本主程序的流程图:

4、详细设计

函数定义

boolmatch(charc1,charc2)

{如果c1为‘(‘并且c2为’),返回真

如果c1为‘[‘并且c2为’],返回真

如果c1为‘{‘并且c2为’},返回真

如果c1为‘<

‘并且c2为’>

,返回真

返回假}

intmain()

{定义变量s和st

输入括号串

求括号串长度len

i=0;

如果i<

len,进行循环

如果栈为空,s[i]入栈

否则,s[i]与栈顶元素匹配

若匹配,删除栈顶元素

否则,s[i]入栈

循环结束后

判断栈是否为空

为真,则括号匹配

否则,括号不匹配

return0;

}

本程序做简单的括号匹配,算法实现也比较简单。

主要思想是先匹配好后输入的左括号,再匹配先输入的左括号。

其中,待匹配的左括号压入栈中。

最后判断栈是否为空,为空,则说明完全匹配,否则匹配失败。

本程序使用简单

运行程序,程序提示用户输入要匹配的括号串

回车,程序输出运行结果

程序提示是否继续

7、测试结果

{[]()}

括号匹配

{}[}

括号比配不合法

实验三

建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。

从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进行遍历(先序、中序、后序),将遍历结果打印输出。

本程序用到数据结构

structnode

{data//存储节点数值

leftnode//存储左子节点的地址

rightnode//存储右子节点的地址}

二叉树类定义

classbnrtree

{root//存储二叉树根节点的地址

all//记录节点个数

add()//创建二叉树

xianxu()//先序遍历二叉树

zhongxu()//中序遍历二叉树

houxu()//后序遍历二叉树}

主函数流程图如下:

节点结构体

{chardata;

node*leftnode;

node*rightnode;

二叉树类

{private:

node*root;

intall;

public:

voidadddata()

{调用函数add(),把返回值赋值给root}

node*add()

{输入字符c

判断c是否代表空节点

是,则不用动态分配节点内存

否,则动态分配节点内存

把c赋值给新节点的data数据成员

调用函数add(),把返回值赋值给新节点的leftnode

调用函数add(),把返回值赋值给新节点的rightnode}

voidxianxu()

{调用函数xianxu(root)}

voidxianxu(node*n)

{输出n->

data

如果n->

leftnode不为空,则调用函数xianxu(n->

leftnode)

rightnode不为空,则调用函数xianxu(n->

rightnode)}

voidzhongxu()

{调用函数zhongxu(root)}

voidzhongxu(node*n)

{如果n->

leftnode不为空,则调用函数zhongxu(n->

输出n->

rightnode不为空,则调用函数zhongxu(n->

voidhouxu()

{调用函数houxu(root)}

voidhouxu(node*n)

leftnode不为空,则调用函数houxu(n->

rightnode不为空,则调用函数houxu(n->

data}

本程序运用递归的方法进行插入和遍历的,这样子实现比较简单,代码量也少。

但如果二叉树很大,其对内存的要求较大,即运行空间大。

本程序操作简单。

运行本程序,程序提示输入要建立的二叉树

按规则输入二叉树,回车

程序输出该二叉树的先序遍历、中序遍历和后序遍历的结果

程序结束

7、测试数据

abc##d##e#fg###

先序遍历二叉树

abcdefg

中序遍历二叉树

cbdaegf

后序遍历二叉树

cdbgfea

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2