首页 > 其他分享 >“你帮我助”软件开发

“你帮我助”软件开发

时间:2022-10-03 21:45:21浏览次数:56  
标签:const cout 软件开发 int next Item 我助 string

“你帮我助”软件开发

程序语言为C++

首版PSP和代码

第一版代码

第一版代码实现了软件中的4个核心功能,以及比较基本的命令行交互界面。

···
///////////////////////////////////////////////////////////////////
// 文件名:“你帮我助”物品交换软件 //
//功能说明:可以实现添加物品的信息,删除物品的信息,显示物品列表,查找物品的信息//
// 作者:赵鹏飞 //
// 日期:2022.10.3 //
///////////////////////////////////////////////////////////////////

include

using namespace std;

class ItemList
{
private:
struct Item
{
string userName, phoneNumber, itemName, itemWant;
int itemQuantity;
Item* next;
Item(const string& uN, const string& pN, const string& iN,
const string& iW, const int iQ, Item* p = NULL){
userName = uN;
phoneNumber = pN;
itemName = iN;
itemWant = iW;
itemQuantity = iQ;
next = p;
}
Item():next(NULL){}
~Item(){}
};

int itemNumber;
Item* head;

public:
ItemList(int initSize = 10){head = new Item; itemNumber = 0;}
~ItemList(){clear(); delete head;}
void add_item(const string& uN, const string& pN, const string& iN,
const string& iW, int iQ);
void delete_item(int number);
void itemlist_display() const;
void item_search(const string& iN) const;
void clear();
};

void ItemList::add_item(const string& uN, const string& pN, const string& iN,
const string& iW, const int iQ) {
Item* p = head;
if(!p) return;
Item* tmp = new Item(uN, pN, iN, iW, iQ, head->next);
p->next = tmp;

++itemNumber;

}

void ItemList::delete_item(const int number) {
Item* p = head;
for(int i = 0; i < itemNumber-number; ++i) p = p->next;
if(!p || !p->next) return;
Item* tmp = p->next;
p->next = tmp->next;
delete tmp;

--itemNumber;

}

void ItemList::itemlist_display() const {
cout<<"---------------------------------------------------------------------------------"<<endl;
cout<<"| Item List |"<<endl;
cout<<"---------------------------------------------------------------------------------"<<endl;
cout<<"| number |usernames| phone numbers | item names | items want |quantity|"<<endl;

Item* p = head;
if(!p) return;
for(int i = itemNumber; i > 0; --i){
    p = p->next;
    cout<<"---------------------------------------------------------------------------------"<<endl;
    cout<<"| "<<i;
    cout<<" |  "<<p->userName;
    cout<<"  |   "<<p->phoneNumber;
    cout<<"   |   "<<p->itemName;
    cout<<"   |   "<<p->itemWant;
    cout<<"   | "<<p->itemQuantity;
    cout<<" |"<<endl;
}
cout<<"---------------------------------------------------------------------------------"<<endl;

}

void ItemList::item_search(const string& iN) const {
Item* p = head->next;
if(!p) return;
int itemCount = 0;
while(p){
if(p->itemName == iN){
cout<< "Item found:";
cout<<"username:"<< p->userName <<" ";
cout<<"phone number:"<< p->phoneNumber <<" ";
cout<<"item quantity:"<< p->itemQuantity <<" ";
cout<<"items want:"<< p->itemWant <<endl;
++itemCount;
}
p = p->next;
}
cout<<itemCount<<" items found."<<endl;
}

void ItemList::clear() {
Item* p = head->next;
Item* q;
while(p){
q = p->next;
delete p;
p = q;
}
}

int main()
{
cout<<"--------------------------------------------------------------------------"<<endl;
cout<<"| Welcome to 'HELPS'! |"<<endl;
cout<<"--------------------------------------------------------------------------"<<endl;
ItemList a = ItemList();
while(true){
cout<<"--------------------------------------------------------------------------"<<endl;
cout<<"| Please select a function: |"<<endl;
cout<<"| 1:add an item 2:delete an item 3:display all |"<<endl;
cout<<"| 4:search for an item 5:exit and delete the list |"<<endl;
cout<<"--------------------------------------------------------------------------"<<endl;

    int func;
    cin>>func;
    if(func == 5) {a.~ItemList(); break;}

    string uN, pN, iN, iW, itemname;
    int iQ, delnumber;

    switch (func) {
        case 1:
            cout<<"Please input the information listed in order, using space to separate:";
            cout<<"User's name, User's phone number, Item names, Items want, Item quantity:"<<endl;
            cin>>uN>>pN>>iN>>iW>>iQ;
            a.add_item(uN, pN, iN, iW, iQ);
            break;
        case 2:
            cout<<"Please input the number of the item you want to delete";
            cout<<"(tip:you'd better confirm the number by using function 3 first):"<<endl;
            cin>>delnumber;
            a.delete_item(delnumber);
            break;
        case 3:
            a.itemlist_display();
            break;
        case 4:
            cout<<"Please input the item you want to search:"<<endl;
            cin>>itemname;
            a.item_search(itemname);
            break;
        default:
            cout<<"Invalid choice, please input again:"<<endl;
            break;
    }
}
cout<<"Exit successfully, have a great day!"<<endl;
return 0;

}
···

标签:const,cout,软件开发,int,next,Item,我助,string
From: https://www.cnblogs.com/scrape-for-name/p/16751349.html

相关文章

  • 软件开发工具填空汇总
    第三代程序设计语言一般都是(过程化 )语言。进入二十一世纪以来,软件开发工具的发展有两个鲜明的特点,第一个特点是面向网络,另一个特点是(来源软件兴起和运用)。填空题171......
  • 华为软件开发平台 DevCloud 和 流水线(CloudPipeline)使用汇总
    华为软件开发平台DevCloud和流水线(CloudPipeline)使用汇总1.DevCloud产品概述:软件开发平台(DevCloud)是面向开发者提供的一站式云端DevSecOps平台,即开即用,随时随地在云......
  • 直播平台软件开发,Vim自动缩进或保存时自动缩进
    直播平台软件开发,Vim自动缩进或保存时自动缩进一、自动缩进这非常方便,特别是如果正在使用Vim进行快速代码编辑,甚至进行长时间的编码会话。强制执行特定的缩进样式。在~/......
  • 怎么选择软件开发工具?零代码创造工具有什么优势?
    借我借我一双亮眼吧,让我把这些平台彻底看个清清楚楚明明白白!如果低代码平台只是基于定制好的模块来完成模块的拼接或者调用预定义好的存储过程,看上去很美好,实质是一个大坑,......
  • 关于软件开发转数据开发的困惑,自己是否该转型呢?
    干嘛要转型?转型是A变成B,为什么不是A+B?即做软件开发也做数据开发!!!!跨界型复合型人才才最吃香!!!!软件开发水平90%的专长或数据开发水平90%的专长敌不过这二者水平都是80%的人,而事......
  • 美国的软件开发:现在和未来
    美国的软件开发:现在和未来Photoby阿诺德·弗朗西斯卡on不飞溅小号软件开发是一个广义的术语,描述了创建新软件、修改现有软件和/或构建软件组件的过程。美国的软......
  • UMLChina建模竞赛第3赛季第1轮-列举软件开发中的“遮羞布”
    ​​软件方法(下)分析和设计第8章连载[20210723更新]>>​​人为了遮掩某些容易被人批评的东西,会有意无意地做出一些事情来“遮羞”。例如,考生知道自己不努力学习,肯定考不好,可......
  • 软件开发基础
    软件开发模式瀑布模型将软件生命周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品的项目。快速原型模型快速原型模型的第一步是建造......
  • "你帮我助“软件开发-homework
    PSP数据统计PSP2.1PersonalSoftwareProcessStages预估耗时Planning计划 \·Estimate·估计这个任务需要多少时间 10hDeve......
  • 直播平台软件开发,audriod studio 两种弹窗方法
    直播平台软件开发,audriodstudio两种弹窗方法一、根据日期判断软件是否超期,超期弹窗,按钮退出程序,不超期继续运行。方法:调用系统当前时期与设定日期进行比较(compareto),如......