C语言课程设计-书籍借阅系统

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void Menu()//菜单1

{

printf(" -------------------------------\n");

printf("| 请输入数字查询 |\n");

printf("| 1.查询图书/用户基本情况 |\n");

printf("| 2.借/还书 |\n");

printf("| 3.图书排序 |\n");

printf("| 0.退出 |\n");

printf(" -------------------------------\n");

}

void Menu_1() {//菜单2

printf(" -------------------------------\n");

printf(" | 请输入查询字母 |\n");

printf(" |A.查询图书 |\n");

printf(" |B.查询用户 |\n");

printf(" -------------------------------\n");

}

void Menu_2() {//菜单3

printf(" -------------------------------\n");

printf(" | 请输入查询字母 |\n");

printf(" |A.借书 |\n");

printf(" |B.还书 |\n");

printf(" -------------------------------\n");

}

struct borrow {//用户借书信息

char book_num[4];

char book_name[20];

double book_price;

}Borrow;

struct user {//用户基本信息

int book_id;

char user_name[10];

char user_sex[5];

int borrow_num;

int borrow_max;

borrow inf[8];

}User;

struct book {//图书基本信息

char book_num[4];

char book_name[20];

double book_price;

int book_sum;

int exist_num;

}Book, tmp;//tmp结构体用于图书排序时存储图书信息

int main() {

user User[6] = { {1,"杨凯","男",1,8,{"A01","Java 程序设计",36}},

{2,"吕何","女",1,6,{"A01","Java 程序设计",36}},

{3,"刘江","女",1,6,{"A01","Java 程序设计",36}},

{4,"肖燕","男",2,4,{{"A01","Java 程序设计",36},{"B03","J2EE 编程指南",28}}},

{5,"章征","男",1,4,{"A01","Java 程序设计",36}},

{6,"刘宝","男",2,4,{{"C01","C 程序设计",20.5},{"B03","J2EE 编程指南",28}}} };

book Book[4] = { {"A01","Java 程序设计",36,4,4},

{"B03","J2EE 编程指南",28,1,1},

{"B04","CSS 手册",25,9,9},

{"C01","C 程序设计",20.5,26,26} };

while (1) {

loop6:Menu();//loop6:程序起始位置,主菜单

int choose_1;

int m;//m==图书证号

char u[10];//u==输入的图书编号

char choose_2;

char book_num[4];

int p = 0;

intp1 = 0;//p==循环4次

int p2 = 0;

char choose_3;

int i = 0;

loop0:scanf("%d", &choose_1);//loop0:重新输入选择

getchar();

if (choose_1 >= 0 && choose_1 <= 3) {

switch (choose_1) {//选择主菜单功能

case 1:

Menu_1();//调用菜单1

scanf("%c", &choose_2);//选择菜单1功能

if (choose_2 != 'A' && choose_2 != 'B') {

printf("请输入正确的字母\n");

}

else {

if (choose_2 == 'A') {//进入查书功能

printf("请输入查找的图书编号\n");

getchar();

loop7:scanf("%s", book_num);

for (i = 0; i < 4; i++) {

if (strcmp(book_num, Book[i].book_num) == 0) {//判断并输出所查图书信息

printf("图书编号:%s\t图书名称:%s\t图书价格:%lf\t", Book[i].book_num, Book[i].book_name, Book[i].book_price);

printf("图书总数:%d\t现存数量:%d\n", Book[i].book_sum, Book[i].exist_num);

break;

}

}

if (i==4) {

printf("请输入正确的图书编号\n");

goto loop7;

}

}

else {

printf("请输入图书证编号\n");

loop8:scanf("%d", &m);

if (m > 0 && m < 7) {//判断查询借书情况

printf("图书证号:%d\t姓名:%s\n共借书%d册,", User[m - 1].book_id, User[m - 1].user_name, User[m - 1].borrow_num);

printf("借书情况如下:\n", User[m - 1].borrow_max - User[m - 1].borrow_num);

for (p = 0; p <= User[m - 1].borrow_num; p++) {

if (User[m - 1].inf[p].book_price != 0) {

printf("图书编号:%s\t图书名称:%s\t", User[m - 1].inf[p].book_num, User[m - 1].inf[p].book_name);

printf("图书价格:%lf\n", User[m - 1].inf[p].book_price);

}

}

}

else {

printf("请输入正确的图书编号\n");

goto loop8;

}

}

}

break;

case 2:

Menu_2();

loop3:scanf("%c", &choose_3);//loop3:重新输入选择

if (choose_3 == 'A') {

printf("请输入您的图书证号\n");

loop1:scanf("%d", &m);

if (m > 0 && m < 7) {

printf("请选择所借书编号\n");

loop2: scanf("%s", u);

p = 0;

for (p = 0; p < 4; p++) {//借书功能

if (strcmp(u, Book[p].book_num) == 0) {

if (Book[p].exist_num > 0 && User[m - 1].borrow_num < User[m - 1].borrow_max && User[m - 1].borrow_num >= 0) {

Book[p].exist_num = Book[p].exist_num - 1;

User[m - 1].borrow_num = User[m - 1].borrow_num + 1;

for (p2 = 0; p2 < 8; p2++) {

if (User[m - 1].inf[p2].book_price == 0) {

strcpy(User[m - 1].inf[p2].book_num, Book[p].book_num);

strcpy(User[m - 1].inf[p2].book_name, Book[p].book_name);

User[m - 1].inf[p2].book_price = Book[p].book_price;

printf("借书成功,您借的书是%s,您还可以借%d本书\n", Book[p].book_name, User[m - 1].borrow_max - User[m - 1].borrow_num);

break;

}

}

break;

}

else {//借书失败

printf("此书已无存货或您已到达最大借书数量\n");

goto loop6;

}

}

}

if (p == 4) {

printf("请输入正确的图书编号\n");

goto loop2;

}

}

else {

printf("请输入正确的图书证号\n");

goto loop1;

}

}

else {

if (choose_3 == 'B') {

printf("请输入您的图书证号\n");

loop4:scanf("%d", &m);

if (m > 0 && m < 7) {

printf("请选择所还书编号\n");

loop5: scanf("%s", u);

for (p = 0; p < 4; p++) {

if (strcmp(u, Book[p].book_num) == 0) {//判断能否还书

if (User[m - 1].borrow_num > 0) {

User[m - 1].borrow_num--;

Book[p].exist_num++;

for (p2 = 0; p2 < 8; p2++) {//还书功能

if (strcmp(u, User[m - 1].inf[p2].book_num) == 0) {

User[m - 1].inf[p2].book_price = 0;

printf("还书成功,您还的是%s,您还有%d本书待还\n", Book[p].book_name, User[m - 1].borrow_num);

break;

}

}

break;

}

else {

printf("您未借此书\n");

goto loop5;

}

}

}

if (p == 4) {

printf("请输入正确的图书编号\n");

goto loop5;

}

}

else {

printf("请输入正确的图书证号\n");

goto loop4;

}

}

else {

printf("请输入正确的字母(A/B)\n");

goto loop3;

}

}

break;

case 3://图书排序

for (p = 0; p <= 2; p++) {

for (p1 = 0; p1 <= 2; p1++) {

if (Book[p1].book_price > Book[p1 + 1].book_price) {

tmp = Book[p1];

Book[p1] = Book[p1 + 1];

Book[p1 + 1] = tmp;

}

}

}

for (p = 0; p <= 3; p++) {//输出排序

printf("图书编号:%s\t图书名称:%s\t", Book[p].book_num, Book[p].book_name);

printf("图书价格:%lf\t图书总数:%d\t现存数量:%d\n", Book[p].book_price, Book[p].book_sum, Book[p].exist_num);

}

break;

case 0:exit(0);

break;

}

}

else {

printf("请输入正确的数字\n");

goto loop0;

}

}

return 0;

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值