用c语言写一个图书信息管理系统,其中首页面只有登录,注册,退出功能,登录成功后跳转到菜单,菜单界面包括录入图书信息,查找图书信息,修改图书信息,统计图书数量等功能
时间: 2024-03-26 15:34:46 浏览: 80
好的,这是一个比较典型的图书信息管理系统,我可以为您提供一个基本的程序框架,您可以在此基础上进行开发和完善。请注意,以下代码仅供参考,您需要根据具体需求进行修改和补充。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书结构体
typedef struct Book {
char name[50]; // 书名
char author[20]; // 作者
char press[30]; // 出版社
char ISBN[20]; // ISBN编码
float price; // 价格
int num; // 数量
} Book;
// 定义用户结构体
typedef struct User {
char username[20]; // 用户名
char password[20]; // 密码
int type; // 用户类型:0表示普通用户,1表示管理员
} User;
// 定义全局变量
Book books[1000]; // 图书数组
int book_count = 0; // 当前图书数量
User users[100]; // 用户数组
int user_count = 0; // 当前用户数量
User current_user; // 当前登录用户
// 函数声明
void login(); // 登录函数
void register_user(); // 注册函数
void menu(); // 菜单函数
void add_book(); // 录入图书信息函数
void search_book(); // 查找图书信息函数
void modify_book(); // 修改图书信息函数
void count_book(); // 统计图书数量函数
int main() {
int choice;
do {
printf("欢迎使用图书信息管理系统!\n");
printf("1. 登录\n");
printf("2. 注册\n");
printf("3. 退出\n");
printf("请选择功能:");
scanf("%d", &choice);
switch (choice) {
case 1:
login();
break;
case 2:
register_user();
break;
case 3:
printf("谢谢使用!\n");
exit(0);
default:
printf("输入有误,请重新选择!\n");
break;
}
} while (1);
return 0;
}
// 登录函数
void login() {
char username[20];
char password[20];
int i;
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
for (i = 0; i < user_count; i++) {
if (strcmp(username, users[i].username) == 0 && strcmp(password, users[i].password) == 0) {
printf("登录成功!\n");
current_user = users[i];
menu();
return;
}
}
printf("用户名或密码错误!\n");
}
// 注册函数
void register_user() {
char username[20];
char password[20];
int i;
printf("请输入用户名:");
scanf("%s", username);
for (i = 0; i < user_count; i++) {
if (strcmp(username, users[i].username) == 0) {
printf("用户名已存在,请重新输入!\n");
return;
}
}
printf("请输入密码:");
scanf("%s", password);
strcpy(users[user_count].username, username);
strcpy(users[user_count].password, password);
users[user_count].type = 0;
user_count++;
printf("注册成功!\n");
}
// 菜单函数
void menu() {
int choice;
do {
printf("\n");
printf("欢迎%s使用图书信息管理系统!\n", current_user.type == 0 ? "用户" : "管理员");
printf("1. 录入图书信息\n");
printf("2. 查找图书信息\n");
printf("3. 修改图书信息\n");
printf("4. 统计图书数量\n");
printf("5. 退出登录\n");
printf("请选择功能:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_book();
break;
case 2:
search_book();
break;
case 3:
modify_book();
break;
case 4:
count_book();
break;
case 5:
printf("注销成功!\n");
return;
default:
printf("输入有误,请重新选择!\n");
break;
}
} while (1);
}
// 录入图书信息函数
void add_book() {
if (current_user.type == 0) {
printf("您没有权限进行此操作!\n");
return;
}
Book book;
printf("请输入书名:");
scanf("%s", book.name);
printf("请输入作者:");
scanf("%s", book.author);
printf("请输入出版社:");
scanf("%s", book.press);
printf("请输入ISBN编码:");
scanf("%s", book.ISBN);
printf("请输入价格:");
scanf("%f", &book.price);
printf("请输入数量:");
scanf("%d", &book.num);
books[book_count] = book;
book_count++;
printf("录入成功!\n");
}
// 查找图书信息函数
void search_book() {
char keyword[50];
int i;
printf("请输入要查找的关键字:");
scanf("%s", keyword);
printf("符合条件的图书有:\n");
for (i = 0; i < book_count; i++) {
if (strstr(books[i].name, keyword) || strstr(books[i].author, keyword) || strstr(books[i].press, keyword) || strstr(books[i].ISBN, keyword)) {
printf("%s\t%s\t%s\t%s\t%.2f\t%d\n", books[i].name, books[i].author, books[i].press, books[i].ISBN, books[i].price, books[i].num);
}
}
}
// 修改图书信息函数
void modify_book() {
if (current_user.type == 0) {
printf("您没有权限进行此操作!\n");
return;
}
char ISBN[20];
int i;
printf("请输入要修改的图书的ISBN编码:");
scanf("%s", ISBN);
for (i = 0; i < book_count; i++) {
if (strcmp(ISBN, books[i].ISBN) == 0) {
printf("请输入新的书名:");
scanf("%s", books[i].name);
printf("请输入新的作者:");
scanf("%s", books[i].author);
printf("请输入新的出版社:");
scanf("%s", books[i].press);
printf("请输入新的价格:");
scanf("%f", &books[i].price);
printf("请输入新的数量:");
scanf("%d", &books[i].num);
printf("修改成功!\n");
return;
}
}
printf("未找到该图书!\n");
}
// 统计图书数量函数
void count_book() {
int i;
int total = 0;
for (i = 0; i < book_count; i++) {
total += books[i].num;
}
printf("当前图书总数为:%d\n", total);
}
```
以上是一个基本的图书信息管理系统的程序框架,您可以根据具体需求进行修改和完善,例如添加删除图书、借阅归还等功能。祝您开发愉快!
阅读全文