- 需求分析:
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;
}
}