逆向软件工程
作者:互联网
下面我将从原有软件功能和改进功能两部分来介绍我这次的工作。
第一部分(原有软件功能):
原有软件是一款利用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