其他分享
首页 > 其他分享> > 逆向软件工程

逆向软件工程

作者:互联网

下面我将从原有软件功能和改进功能两部分来介绍我这次的工作。

第一部分(原有软件功能):

原有软件是一款利用C++编写的购书系统,系统共有6个主要功能:

1、个人信息查询

2、现有图书查询

3、折扣等级查询

4、购书所需费用查询

5、显示并打印订单信息

6、用户账号登录

 

 整体上来说购书系统的元素是有了,但这个系统也存在不少缺点,如:

1、图书是保存于源代码中,不易于后续的系统维护

2、用户不可以自由注册,系统开放度不够

(以下图片对应缺点1,2)

3、系统没有营业统计功能,雇员难以统计营业额

4、系统没有书籍的存量统计,极有可能发生库存耗尽的可能

针对系统重点,我增加了书籍的添加功能,我将在第二部分详细分析我的改进思路。

 

 

第二部分(功能改进)

我设计了book类下的Save函数吗,这样书籍就可以以规定的格式存储于文档中。该文档支持系统关闭后,任可保存售卖书籍的信息。

void book::Save()
{
ofstream ofs;
ofs.open(FILENAME, ios::out);
string k;
for (int i = 0; i < m_num; i++)
{
ofs << m_array[i]->book_ID << " "
<< m_array[i]->book_name << " "
<<m_array[i]->author<<" "
<< m_array[i]->publishing<< " "
<< m_array[i]->price<< endl;

}
ofs.close();
}

 

我设计了book类下的Add函数,该函数可以任意的将书籍添加至文档内。

void book::Add()
{
cout << "增加新书籍" << endl;
int new_size = b_num + 1;
Goods** array = new Goods * [new_size];
Goods* p = NULL;
Book* p1=new Book;
cin >> *p1;


array[m_num] = (Book*)(p1);
for (int i = 0; i < m_num; i++)
{

cout<<"请输入书号"<<endl; 
cin>>m_array[i]->book_ID;

cout<<"请输入书名"<<endl;

cin>>m_array[i]->book_name;

cout<<"请输入作者"<<endl;
cin>>m_array[i]->author;

cout<<"请输入出版社"<<endl;
cin>> m_array[i]->publishing;

 cout<<"请输入定价"<<endl;
cin>> m_array[i]->price;
}
delete[]m_array;
m_array = array;
IsFile = 1;
m_num++;
cout << "成功增加新书!" << endl;
}

 

 

以下我将展示两个函数在程序中的具体运行表现:

 

 

 

 

 

 

 

 

 

 

 

 

 

 以下是当地的文档

 

 小结心得

 由于时间有限,就简单增加了一个功能,顺便复习了下大一C++文件读写的知识,温故而知新。

 

标签:逆向,num,ofs,coutcin,软件工程,new,array,book
来源: https://www.cnblogs.com/BlackSheepWall/p/15953065.html