用C语言建立一个客户数据库,数据包含:客户的姓名、年龄、手机号、公司名、职务。该数据库按客户姓名的首字母进行排序
时间: 2023-10-20 07:33:45 浏览: 84
C语言创建数据库
3星 · 编辑精心推荐
好的,您可以参考以下的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define MAX_PHONE_LEN 20
#define MAX_COMPANY_LEN 50
#define MAX_POSITION_LEN 50
#define MAX_CUSTOMERS 100
// 客户结构体
typedef struct {
char name[MAX_NAME_LEN];
int age;
char phone[MAX_PHONE_LEN];
char company[MAX_COMPANY_LEN];
char position[MAX_POSITION_LEN];
} Customer;
// 数据库结构体
typedef struct {
Customer customers[MAX_CUSTOMERS];
int count;
} CustomerDB;
// 比较函数,用于排序
int cmp(const void *a, const void *b) {
Customer *ca = (Customer *)a;
Customer *cb = (Customer *)b;
return strcmp(ca->name, cb->name);
}
// 初始化数据库
void initDB(CustomerDB *db) {
db->count = 0;
}
// 添加客户
void addCustomer(CustomerDB *db, Customer c) {
if (db->count >= MAX_CUSTOMERS) {
printf("已达到最大客户数量,无法添加!\n");
return;
}
db->customers[db->count] = c;
db->count++;
}
// 显示客户列表
void showCustomers(CustomerDB *db) {
// 先按姓名排序
qsort(db->customers, db->count, sizeof(Customer), cmp);
// 遍历输出
printf("姓名\t年龄\t手机号\t\t公司名\t\t职务\n");
for (int i = 0; i < db->count; i++) {
Customer c = db->customers[i];
printf("%s\t%d\t%s\t%s\t%s\n", c.name, c.age, c.phone, c.company, c.position);
}
}
int main() {
CustomerDB db;
initDB(&db);
// 添加客户
Customer c1 = {"张三", 25, "13888888888", "A公司", "经理"};
Customer c2 = {"李四", 30, "13999999999", "B公司", "主管"};
Customer c3 = {"王五", 28, "13666666666", "C公司", "工程师"};
addCustomer(&db, c1);
addCustomer(&db, c2);
addCustomer(&db, c3);
// 显示客户列表
showCustomers(&db);
return 0;
}
```
其中,我们使用了结构体来表示客户和数据库,用函数来实现添加客户、显示客户列表等功能。在显示客户列表时,我们使用了 `qsort` 函数来对客户按姓名进行排序。
阅读全文