C语言程序设计-图书借还系统

  • 需求分析:

1.设计题目:图书借还系统

2.系统功能需求分析:更好的管理图书借还,节省人力资源,信息更准确。

  • 概要设计:

图书借还系统实现图书管理功能,用户分两类,一类是管理员,一类是普通借阅者,管理者只能有一个,借阅者需要注册,由管理员通过验证后,才能登陆到本系统进行书籍的查询和借阅。

  • 详细设计:

管理员的功能设计

管理员的工作有:新书信息的录入,浏览,查询,修改和删除的功能,借阅用户通过验证;借阅者的功能:能够查询相关书籍当前的状态,并借阅,同时要根据借阅的免费时间(30天)的规定进行超时借阅的费用缴纳。

图书信息保存在文件中,再保存在结构体数组中,做到持久化存储。对图书信息的增删改都是基于文件进行操作。图书信息查询做到字符串模糊匹配。用户账号信息保存在文件中,再保存到结构体数组中,做到持久化存储。

管理员的功能模块:

(1)图书信息录入;

(2)图书信息浏览;

(3)图书信息查询;

(4)图书信息删除;

(5)图书信息修改;

(6)用户账号管理。

普通用户的功能设计

借阅者需要注册,由管理员通过验证后,才能登陆到本系统进行书籍的查询和借阅。

在图书归还中有缴纳延期费用的设置,需要由借阅者将超期还书费用缴纳。用户登录创建COOKIE。借阅信息保存文件和结构体数组,做到持久化存储。

普通用户的功能模块:

(1)查询图书;

(2)借阅图书;

(3)当前借阅状态;

(4)图书归还;

  • 测试结果

输入用户名admin登陆成功后选择下一步操作。

选择图书借还

程序代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h>

void startsys();
void userlogin();
void adminlogin();
void userfunction();
void userregister();
void adminregister();

int main() {
	startsys();
}

void startsys() {

	int cmd;
	int end = 0;

	while (1) {

		system("cls");
		printf("\n\n\n\n\n\n\n");
		printf("**************************************************************");
		printf("\n图书馆管理系统\n");
		printf("1.用户登陆\n");
		printf("2.管理员登陆\n");
		printf("3.用户注册\n");
		printf("4.管理员注册\n");
		printf("0.退出\n");
		printf("**************************************************************");
		printf("\n\n\n\n\n\n\n");
		printf("输入你需要进行的操作: ");
		scanf("%d", &cmd);
		getchar();
		switch (cmd)
		{
		case 1:
			userlogin();
			break;
		case 2:
			adminlogin();
			break;
		case 3:
			printf("此功能尚在开发中,请稍后...");
			Sleep(3000);
			break;
		case 4:
			printf("此功能尚在开发中,请稍后...");
			break;
		case 0:
			end = 1;
			break;
		default:
			printf("错误输入!\n");
		}
		if (end == 1)
			break;
	}
}

void userlogin() {

	char username[100];
	char password[100];
	int exist = 0;
	system("cls");
	printf("\n\n\n\n\n\n\n");
	printf("**************************************************************");
	printf("\n输入您的用户信息: \n");
	printf("username: ");
	gets(username);
	printf("userscert: ");
	gets(password);
	printf("**************************************************************");
	printf("\n\n\n\n\n\n\n");

	if (strcmp(username, "admin") == 0) {
		if (strcmp(password, "admin") == 0) {
			exist = 1;
			printf("用户登陆成功!3秒后自动跳转至用户界面...");
			Sleep(3000);
			userfunction();
		}
	}

	if (!exist) {
		printf("不存在此用户名,请先前往注册...\n");
		printf("3秒后自动跳转至主界面...");
		Sleep(3000);
	}
}

void adminlogin() {

	char adminName[100];
	char adminPassword[100];

	system("cls");
	printf("\n\n\n\n\n\n\n");
	printf("**************************************************************");
	printf("\n输入您的管理员信息: \n");
	printf("adminname: ");
	gets(adminName);
	printf("adminscert: ");
	gets(adminPassword);
	printf("**************************************************************");
	printf("\n\n\n\n\n\n\n");

	if (strcmp(adminName, "admin") == 0) {
		if (strcmp(adminPassword, "admin") == 0) {
			printf("管理员%s登陆成功!3秒后自动跳转至用户界面...");
			Sleep(3000);
		}
		else {
			printf("admin password missing");
		}
	}
	else {
		printf("admin account missing");
	}
}

void userfunction() {

	int cmd;
	int end = 0;

	while (1) {
		system("cls");
		printf("\n\n\n\n\n\n\n");
		printf("**************************************************************");
		printf("\n图书馆用户功能系统\n");
		printf("1.借阅书籍\n");
		printf("2.归还书籍\n");
		printf("3.已借阅书籍信息\n");
		printf("0.退出\n");
		printf("**************************************************************");
		printf("\n\n\n\n\n\n\n");
		printf("输入您需要进行的操作: ");
		scanf("%d", &cmd);
		switch (cmd) {
		case 1:
			printf("借阅书籍功能正在开发中......");
			Sleep(3000);
			break;
		case 2:
			printf("归还书籍功能正在开发中......");
			Sleep(3000);
			break;
		case 3:
			printf("已借阅书籍信息功能正在开发中...... ");
			Sleep(3000);
			break;
		case 0:
			end = 1;
			break;
		default:
			printf("错误的输入!\n");
		}
		if (end == 1)
			break;
	}
}

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值