c语言编程笔录

首页 >   > 笔记大全

笔记大全

项目实战 医药箱APP

更新时间:2023-10-05
第一段:需求概述 本次项目是一个医药箱APP。主要功能有两个:一是方便用户管理自己的药箱,及时补充药品和查看过期药品;二是提供药品的购买服务,便捷用户购买药品。因此,我们需要设计两个主要模块:药箱管理模块和购药模块。 第二段:药箱管理模块设计 药箱管理模块有以下功能: 1.添加药品到药箱 2.从药箱删除药品 3.查看药箱中的药品 4.查看药箱中即将过期的药品 5.搜寻特定的药品 为实现以上功能,我们需要创建一个药品类,包含药品的名称、数量、生产日期、过期日期等属性。具体代码如下:

class Drug {
  constructor(name, quantity, productionDate, expirationDate) {
    this.name = name;
    this.quantity = quantity;
    this.productionDate = productionDate;
    this.expirationDate = expirationDate;
  }
}

let drug = new Drug('头孢', 5, '2020-02-01', '2021-02-01');
接下来,我们可以创建一个药箱类,包含管理药箱的方法。具体代码如下:

管理药箱的类


class MedicineBox {
 constructor() {
  this.drugs = new Array();
 }

 addDrug(drug) {
  if (this.drugs.find(item => item.name === drug.name)) {
    return '该药品已经存在,请检查药品名称';
  } else {
    this.drugs.push(drug);
    return '添加成功';
  }
 }

 deleteDrug(drugName) {
  let index = this.drugs.findIndex(item => item.name === drugName);

  if (index === -1) {
    return '该药品不存在,请检查药品名称';
  } else {
    this.drugs.splice(index, 1);
    return '删除成功';
  }
 }

 showDrugs() {
  let result = '';
  for (let i = 0; i < this.drugs.length; i++) {
    result += `药品名称:${this.drugs[i].name},数量:${this.drugs[i].quantity},生产日期:${this.drugs[i].productionDate},过期日期:${this.drugs[i].expirationDate}\n`;
  }
  return result;
 }

 showSoonExpireDrugs() {
  let result = '';
  const date = new Date();
  const today = `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;

  for (let i = 0; i < this.drugs.length; i++) {
    if (this.drugs[i].expirationDate < today) {
      result += `药品名称:${this.drugs[i].name},剩余有效期:${this.drugs[i].expirationDate - today}\n`;
    }
  }
  return result;
 }

 searchDrug(drugName) {
  let searchedDrug = this.drugs.find(item => item.name === drugName);
  if (searchedDrug) {
    return `药品名称:${searchedDrug.name},数量:${searchedDrug.quantity},生产日期:${searchedDrug.productionDate},过期日期:${searchedDrug.expirationDate}`;
  } else {
    return '该药品不存在,请检查药品名称';
  }
 }
}

let medicineBox = new MedicineBox();
medicineBox.addDrug(drug);
medicineBox.showDrugs();
第三段:购药模块设计 购药模块需要提供以下功能: 1.显示所有药品信息 2.筛选特定类型的药品 3.购买药品并更新药箱中药品数量 4.查看购买记录 为实现以上功能,我们需要设计一个药品列表类和一个购买记录类。具体代码如下:

管理药品列表的类


class DrugList {
  constructor() {
    this.drugs = [
      {name: '感冒药', type: 'OTC', price: 10, quantity: 100},
      {name: '头疼药', type: 'OTC', price: 8, quantity: 50},
      {name: '退烧药', type: 'OTC', price: 7, quantity: 60},
      {name: '胃药', type: 'OTC', price: 15, quantity: 80},
      {name: '维生素C片', type: '保健食品', price: 20, quantity: 150},
      {name: '钙片', type: '保健食品', price: 25, quantity: 100},
      {name: '维生素E软胶囊', type: '保健食品', price: 40, quantity: 200},
      {name: '降压药', type: '处方药', price: 30, quantity: 30},
      {name: '降血脂药', type: '处方药', price: 50, quantity: 20},
      {name: '抗生素', type: '处方药', price: 70, quantity: 10}
    ];
  }

  showDrugs() {
    let result = '';
    for (let i = 0; i < this.drugs.length; i++) {
      result += `药品名称:${this.drugs[i].name},类型:${this.drugs[i].type},价格:${this.drugs[i].price}元,数量:${this.drugs[i].quantity}\n`;
    }
    return result;
  }

  findDrug(drugName) {
    return this.drugs.find(item => item.name === drugName);
  }

  filterType(type) {
    return this.drugs.filter(item => item.type === type);
  }
}

let drugList = new DrugList();
drugList.showDrugs();

管理购买记录的类


class PurchaseRecord {
  constructor() {
    this.records = new Array();
  }

  addRecord(drugName, quantity, totalPrice) {
    const date = new Date();
    const purchaseDate = `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
    const record = {
      drugName: drugName,
      purchaseDate: purchaseDate,
      quantity: quantity,
      totalPrice: totalPrice
    };
    this.records.push(record);
  }

  showRecords() {
    let result = '';
    for (let i = 0; i < this.records.length; i++) {
      result += `药品名称:${this.records[i].drugName},购买日期:${this.records[i].purchaseDate},购买数量:${this.records[i].quantity},购买总价:${this.records[i].totalPrice}元\n`;
    }
    return result;
  }
}

let purchaseRecord = new PurchaseRecord();
purchaseRecord.addRecord('感冒药', 5, 50);
purchaseRecord.showRecords();
第四段:总结 本次项目实战是个医药箱APP,需要实现药箱管理和购药两个主要模块的功能。为实现这两个模块,我们分别设计了药品类、药箱类、药品列表类、购买记录类。这些类的方法使得药品的管理和购买变得非常便捷。药品类和药箱类是本项目的核心类,它们实现了药品的增删改查、药箱药品的查询、过期药品提醒等多种功能。药品列表类和购买记录类使得药品的购买和管理变得更加高效。通过以上几个类的组合,我们可以为用户提供一个易用、高效的医药箱APP。