帮我生成一个java代码
时间: 2023-08-08 20:13:34 浏览: 136
好的,以下是一个简单的Java代码,实现了药品信息的存储以及按照不同排序方式的排序:
```
import java.util.*;
public class MedicineManagementSystem {
public static void main(String[] args) {
// 读取数据文件中的药品信息
List<Medicine> medicines = readDataFile("medicines.txt");
// 按照药品编号进行排序
Collections.sort(medicines, new Comparator<Medicine>() {
@Override
public int compare(Medicine m1, Medicine m2) {
return m1.getMedicineCode().compareTo(m2.getMedicineCode());
}
});
// 按照药品单价进行排序
bubbleSortByPrice(medicines);
// 按照销出数量进行排序
quickSortBySalesVolume(medicines, 0, medicines.size() - 1);
// 按照销售额进行排序
heapSortBySalesAmount(medicines);
// 输出排序后的药品信息
for (Medicine m : medicines) {
System.out.println(m);
}
}
// 读取数据文件中的药品信息,返回一个药品列表
private static List<Medicine> readDataFile(String filename) {
// TODO: 从文件中读取药品信息,并返回一个药品列表
return new ArrayList<>();
}
// 冒泡排序:按照药品单价从低到高排序
private static void bubbleSortByPrice(List<Medicine> medicines) {
for (int i = 0; i < medicines.size() - 1; i++) {
for (int j = 0; j < medicines.size() - 1 - i; j++) {
if (medicines.get(j).getPrice() > medicines.get(j + 1).getPrice()) {
Medicine temp = medicines.get(j);
medicines.set(j, medicines.get(j + 1));
medicines.set(j + 1, temp);
}
}
}
}
// 快速排序:按照销出数量从高到低排序
private static void quickSortBySalesVolume(List<Medicine> medicines, int start, int end) {
if (start >= end) {
return;
}
int pivot = partition(medicines, start, end);
quickSortBySalesVolume(medicines, start, pivot - 1);
quickSortBySalesVolume(medicines, pivot + 1, end);
}
private static int partition(List<Medicine> medicines, int start, int end) {
int pivot = medicines.get(end).getSalesVolume();
int i = start;
for (int j = start; j < end; j++) {
if (medicines.get(j).getSalesVolume() >= pivot) {
Medicine temp = medicines.get(i);
medicines.set(i, medicines.get(j));
medicines.set(j, temp);
i++;
}
}
Medicine temp = medicines.get(i);
medicines.set(i, medicines.get(end));
medicines.set(end, temp);
return i;
}
// 堆排序:按照销售额从高到低排序
private static void heapSortBySalesAmount(List<Medicine> medicines) {
PriorityQueue<Medicine> heap = new PriorityQueue<>(new Comparator<Medicine>() {
@Override
public int compare(Medicine m1, Medicine m2) {
return m2.getSalesAmount() - m1.getSalesAmount();
}
});
heap.addAll(medicines);
medicines.clear();
while (!heap.isEmpty()) {
medicines.add(heap.poll());
}
}
}
class Medicine {
private String medicineCode;
private String medicineName;
private float price;
private int salesVolume;
private int salesAmount;
public Medicine(String medicineCode, String medicineName, float price, int salesVolume, int salesAmount) {
this.medicineCode = medicineCode;
this.medicineName = medicineName;
this.price = price;
this.salesVolume = salesVolume;
this.salesAmount = salesAmount;
}
public String getMedicineCode() {
return medicineCode;
}
public String getMedicineName() {
return medicineName;
}
public float getPrice() {
return price;
}
public int getSalesVolume() {
return salesVolume;
}
public int getSalesAmount() {
return salesAmount;
}
public String toString() {
return medicineCode + "\t" + medicineName + "\t" + price + "\t" + salesVolume + "\t" + salesAmount;
}
}
```
请注意,这个代码中的 `readDataFile` 方法还没有实现,需要你自己根据实际需求进行实现。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)