在menu中实现用c语言编写一个顺序表实现客户消费积分系统并查找所有男客户
时间: 2024-04-02 17:31:34 浏览: 73
好的,以下是菜单中对应的选项及功能:
1. 顺序表实现客户消费积分系统
- 这个功能将会使用 C 语言编写一个基于顺序表的客户消费积分系统,您可以向其中添加客户信息,查询客户信息,修改客户信息,删除客户信息等。
2. 查找所有男客户
- 这个功能将会实现查找所有男客户的功能,即从客户信息中筛选出所有性别为男的客户,并将其信息输出。
请问您需要哪个功能?
相关问题
用C语言实现: 1.编写函数,建立有序表,采用折半查找实现某一已知的关键字的查找(采用顺序表存储结构) 2.编写函数,随机产生一组关键字,利用二叉排序树的插入算法建立二叉排序树 3.编写函数,在以上二叉排序树中删除某一指定关键字元素 4.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法
以下是实现:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 采用顺序表存储结构
typedef struct {
int data[MAX_SIZE];
int length;
} SeqList;
// 折半查找
int BinarySearch(SeqList list, int key) {
int low = 0, high = list.length - 1, mid;
while (low <= high) {
mid = (low + high) / 2;
if (list.data[mid] == key) {
return mid;
} else if (list.data[mid] < key) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
// 二叉排序树结构
typedef struct BiTNode {
int data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
// 插入元素
void InsertBST(BiTree *T, int key) {
if (!(*T)) {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = key;
(*T)->lchild = (*T)->rchild = NULL;
} else if (key < (*T)->data) {
InsertBST(&(*T)->lchild, key);
} else if (key > (*T)->data) {
InsertBST(&(*T)->rchild, key);
}
}
// 找到二叉排序树中的最小值
BiTree FindMin(BiTree T) {
if (!T) {
return NULL;
} else if (!T->lchild) {
return T;
} else {
return FindMin(T->lchild);
}
}
// 删除指定结点
void Delete(BiTree *T, int key) {
if (!(*T)) {
return;
} else {
if (key < (*T)->data) {
Delete(&(*T)->lchild, key);
} else if (key > (*T)->data) {
Delete(&(*T)->rchild, key);
} else {
if ((*T)->lchild && (*T)->rchild) {
BiTree tmp = FindMin((*T)->rchild);
(*T)->data = tmp->data;
Delete(&(*T)->rchild, tmp->data);
} else {
BiTree tmp = *T;
if (!(*T)->lchild) {
(*T) = (*T)->rchild;
} else if (!(*T)->rchild) {
(*T) = (*T)->lchild;
}
free(tmp);
}
}
}
}
// 打印菜单
void printMenu() {
printf("1. 折半查找\n");
printf("2. 插入二叉排序树\n");
printf("3. 删除二叉排序树中的元素\n");
printf("4. 退出程序\n");
printf("请输入选项: ");
}
int main() {
SeqList list;
list.length = 0;
BiTree T = NULL;
int choice, key, index;
while (1) {
printMenu();
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入要查找的关键字: ");
scanf("%d", &key);
index = BinarySearch(list, key);
if (index == -1) {
printf("没有找到关键字为 %d 的元素\n", key);
} else {
printf("找到了关键字为 %d 的元素,它的位置为 %d\n", key, index + 1);
}
break;
case 2:
printf("请输入要插入的关键字: ");
scanf("%d", &key);
InsertBST(&T, key);
printf("插入成功\n");
break;
case 3:
printf("请输入要删除的关键字: ");
scanf("%d", &key);
Delete(&T, key);
printf("删除成功\n");
break;
case 4:
return 0;
default:
printf("无效选项\n");
break;
}
}
return 0;
}
```
注意:本代码仅为示例参考,实际应用中可能需要根据具体需求进行修改。
阅读全文