用C语言设计超市管理系统源代码。
时间: 2024-03-09 11:50:22 浏览: 78
很抱歉,由于篇幅限制,无法在此处提供完整的超市管理系统源代码。但是,我可以给您提供一个基本的框架和思路,供您参考:
1. 用户登录模块
- 采用结构体存储用户名和密码信息,可以通过文件进行读写
- 用户登录时,输入用户名和密码,进行验证
- 验证成功后,根据用户类型跳转到不同的菜单界面
2. 商品管理模块
- 采用链表结构存储商品信息,可以通过文件进行读写
- 管理员可以进行商品信息的录入、修改、删除等操作
- 商品分类、库存、销售统计等信息也可以通过文件来存储和管理
3. 会员管理模块
- 采用链表结构存储会员信息,可以通过文件进行读写
- 管理员可以进行会员信息的录入、修改、删除等操作
- 会员等级、消费记录统计等信息也可以通过文件来存储和管理
4. 购物结算模块
- 采用数组存储购物车信息
- 用户选择商品后加入购物车,可修改商品数量和删除商品
- 计算折扣和应付金额
- 支付方式包括现金、银行卡等,支付成功后打印小票
5. 数据备份模块
- 采用文件备份数据库
- 可以手动或自动备份数据库
- 数据库恢复时根据备份文件进行恢复
以上是一个简单的超市管理系统的框架,您可以根据实际需求进行修改和完善。以下是一个简单的用户登录模块的代码示例,供您参考:
```c
#include <stdio.h>
#include <string.h>
#define MAX_USERS 100 // 最大用户数量
#define MAX_NAME_LEN 20 // 用户名最大长度
#define MAX_PWD_LEN 20 // 密码最大长度
typedef struct user {
char name[MAX_NAME_LEN]; // 用户名
char pwd[MAX_PWD_LEN]; // 密码
int type; // 用户类型,0表示管理员,1表示收银员
} User;
User users[MAX_USERS]; // 存储用户信息的数组
int num_users = 0; // 当前用户数量
// 从文件中读取用户信息
int load_users() {
FILE* fp = fopen("users.txt", "r");
if (fp == NULL) {
return 0;
}
int i = 0;
while (fscanf(fp, "%s %s %d", users[i].name, users[i].pwd, &users[i].type) == 3) {
i++;
}
num_users = i;
fclose(fp);
return 1;
}
// 将用户信息写入文件
int save_users() {
FILE* fp = fopen("users.txt", "w");
if (fp == NULL) {
return 0;
}
for (int i = 0; i < num_users; i++) {
fprintf(fp, "%s %s %d\n", users[i].name, users[i].pwd, users[i].type);
}
fclose(fp);
return 1;
}
// 用户登录
int login() {
char name[MAX_NAME_LEN];
char pwd[MAX_PWD_LEN];
printf("请输入用户名:");
scanf("%s", name);
printf("请输入密码:");
scanf("%s", pwd);
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].name, name) == 0 && strcmp(users[i].pwd, pwd) == 0) {
printf("登录成功!\n");
return users[i].type;
}
}
printf("用户名或密码错误,请重新输入!\n");
return -1;
}
// 添加用户
void add_user() {
if (num_users >= MAX_USERS) {
printf("用户数量已达上限,无法添加新用户!\n");
return;
}
printf("请输入用户名:");
scanf("%s", users[num_users].name);
printf("请输入密码:");
scanf("%s", users[num_users].pwd);
printf("请输入用户类型(0表示管理员,1表示收银员):");
scanf("%d", &users[num_users].type);
num_users++;
save_users();
printf("用户添加成功!\n");
}
// 修改密码
void change_pwd(int type) {
char name[MAX_NAME_LEN];
char old_pwd[MAX_PWD_LEN];
char new_pwd[MAX_PWD_LEN];
printf("请输入用户名:");
scanf("%s", name);
printf("请输入旧密码:");
scanf("%s", old_pwd);
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].name, name) == 0 && strcmp(users[i].pwd, old_pwd) == 0) {
if (users[i].type <= type) {
printf("您的权限不足,无法修改该用户的密码!\n");
return;
}
printf("请输入新密码:");
scanf("%s", new_pwd);
strcpy(users[i].pwd, new_pwd);
save_users();
printf("密码修改成功!\n");
return;
}
}
printf("用户名或密码错误,请重新输入!\n");
}
int main() {
load_users();
int type = login();
if (type == 0) {
printf("欢迎管理员!\n");
add_user();
change_pwd(0);
change_pwd(1); // 验证权限不足
} else if (type == 1) {
printf("欢迎收银员!\n");
change_pwd(1); // 验证权限不足
}
return 0;
}
```
以上代码实现了用户登录、添加用户和修改密码等功能。您可以根据需要进行修改和完善。
阅读全文