一个管理系统的那种
#include <stdio.h>
#include <stdlib.h>
#include "windows.h"
#include "string.h"
#define S_MAX 50
int user_count=0; //用户信息的总数
int book_count=0;
char ini_path[100]={"\0"}; //数据文件的绝对路径
char user_path[100]={"\0"}; //用户数据文件的绝对路径
char book_path[100]={"\0"};
int book_pos=0; //book数组的计数
int user_pos=0;
struct user_data
{
char name[10];
char book_name[50];
}user[S_MAX];
struct book_data
{
char no[10];
char name[50];
char author[30];
char money[10];
char in_or_out[10];
char user_name[10];
}book[S_MAX];
void read_file() //从文件读取数据
{
user_pos=0;
int i;
for(i=0;i<S_MAX;i++)
{
memset(user[i].name,'\0',10);
memset(user[i].book_name,'\0',50);
memset(book[i].no,'\0',10);
memset(book[i].name,'\0',50);
memset(book[i].author,'\0',30);
memset(book[i].money,'\0',10);
memset(book[i].in_or_out,'\0',10);
memset(book[i].user_name,'\0',10);
}
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);
for(i=0;i<user_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
user_pos++;
}
for(i=0;i<book_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
book_pos++;
}
}
void write_file()
{
int i;
for(i=0;i<user_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);
WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
}
char temp[5]={"\0"};
int temp_count=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);
temp_count=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
}
void search_user_name() //按借书人姓名查询
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书借书人:");
scanf("%s",search_key);
int i;
int s[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
int s_i=0;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].user_name,search_key)==0)
{
find=1;
s[s_i]=i;
s_i++;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
else
{
for(i=0;i<s_i;i++)
{
printf("\n\n第%d本书: %s",i+1,book[i].name);
}
printf("\n\n共%d本",i);
}
fflush(stdin);
getchar();
}
void search_book_author() //按图书作者查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的作者:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].author,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_book_name() //按图书名称查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的名称:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_book_no() //按图书编号查询
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书的编号:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_all_book() //查询所有图书
{
system("cls");
if(book_pos==0)
{
printf("真TM穷,一本书都没有");
}
else
{
int i;
printf("共有%d本书\n",book_pos);
for(i=0;i<book_pos;i++)
{
printf("\n编号:%s 名称:%s 作者:%s 金额:%s 状态:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf(" 借书人:%s",book[i].user_name);
}
}
}
fflush(stdin);
getchar();
}
void search_all_user() //查询所有用户
{
system("cls");
if(user_pos==0)
{
printf("要倒闭了?一个人都没有!");
}
else
{
int i;
printf("共有%d个用户\n",user_pos);
for(i=0;i<user_pos;i++)
{
printf("\n用户名称: %s 借书名称: ",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
{
printf("%s",user[i].book_name);
}
else
{
printf("未借书");
}
}
}
fflush(stdin);
getchar();
}
void No7() //查询
{
int f=1;
int sel;
while(f)
{
system("cls");
printf(" *********************************\n");
printf(" * *\n");
printf(" * 图书管理系统--查询 *\n");
printf(" * *\n");
printf(" * 1.按图书编号查询 *\n");
printf(" * *\n");
printf(" * 2.按图书名称查询 *\n");
printf(" * *\n");
printf(" * 3.按作者查询 *\n");
printf(" * *\n");
printf(" * 4.按借书人姓名查询 *\n");
printf(" * *\n");
printf(" * 5.查询所有图书 *\n");
printf(" * *\n");
printf(" * 6.查询所有用户 *\n");
printf(" * *\n");
printf(" * 0.返回主菜单 *\n");
printf(" * *\n");
printf(" *********************************\n");
printf("请选择:(1,2,3,4,5,6,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
search_book_no();
break;
case 2:
search_book_name();
break;
case 3:
search_book_author();
break;
case 4:
search_user_name();
break;
case 5:
search_all_book();
break;
case 6:
search_all_user();
break;
case 0:
f=0;
break;
default:
break;
}
}
}
void No6() //用户信息删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的用户名称:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,del_key)==0)
{
find=1;
printf("\n姓 名: %s",user[i].name);
if(strlen(user[i].book_name)>0)
{
printf("\n所借书籍: %s",user[i].book_name);
}
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strlen(user[del_pos].book_name)>0)
{
printf("\n\n该用户尚有书籍未归还,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}
void No5() //图书删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的图书的名称或编号:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,del_key)==0 || strcmp(book[i].no,del_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s\n",book[i].in_or_out);
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strcmp("out",book[del_pos].in_or_out)==0)
{
printf("\n\n图书已经借出,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(book[del_pos].no,"");
strcpy(book[del_pos].name,"");
strcpy(book[del_pos].money,"");
strcpy(book[del_pos].author,"");
strcpy(book[del_pos].in_or_out,"in");
strcpy(book[del_pos].user_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}
void No4() //用户信息录入
{
system("cls");
char name[10]={"\0"};
printf("请输入新增用户信息:\n\n");
printf("名称:");
scanf("%s",name);
strcpy(user[user_pos].name,name);
user_pos++;
write_file(); //写入信息文件
printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}
void No3() //图书信息录入
{
system("cls");
char no[10]={"\0"};
char name[50]={"\0"};
char author[30]={"\0"};
char money[10]={"\0"};
char in_or_out[10]={"\0"};
char user_name={"\0"};
printf("请输入新增图书信息:\n\n");
printf("编号:");
scanf("%s",no);
printf("名称:");
scanf("%s",name);
printf("作者:");
scanf("%s",author);
printf("价格:");
scanf("%s",money);
strcpy(book[book_pos].no,no);
strcpy(book[book_pos].name,name);
strcpy(book[book_pos].author,author);
strcpy(book[book_pos].money,money);
book_pos++;
write_file(); //写入信息文件
printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}
void No2() //图书还回
{
system("cls");
printf("\n\n请输入还回图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n\n按任意键进行还回操作");
fflush(stdin);
getchar();
int j;
strcpy(book[i].in_or_out,"in");
for(j=0;j<user_pos;j++)
{
if(strcmp(book[i].user_name,user[j].name)==0)
{
strcpy(user[j].book_name,"");
write_file(); //写入信息文件
break;
}
}
strcpy(book[i].user_name,"");
if(j>=user_pos)
{
printf("\n数据出错");
}
else
{
printf("\n\n图书还回成功");
fflush(stdin);
getchar();
return ;
}
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
}
void No1() //图书借出
{
system("cls");
printf("\n\n请输入出借图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("\n\n该图书已经借出!\n");
fflush(stdin);
getchar();
return;
}
printf("\n\n请输入借书人姓名: ");
char name[10]={"\0"};
scanf("%s",name);
int j,user_i=-1;
for(j=0;j<user_pos;j++)
{
if(strcmp(name,user[j].name)==0)
{
user_i=j;
break;
}
}
if(j>=user_pos)
{
printf("\n找不到该借书人信息,已自动添加");
strcpy(user[user_pos].name,name);
strcpy(user[user_pos].book_name,"");
user_i=user_pos;
user_pos++;
fflush(stdin);
getchar();
}
strcpy(user[user_i].book_name,book[book_i].name);
strcpy(book[book_i].user_name,name);
strcpy(book[book_i].in_or_out,"out");
printf("\n\n图书借出成功");
write_file(); //写入信息文件
fflush(stdin);
getchar();
return;
}
}
if(find==0)
{
printf("\n\n找不到该图书信息\n");
fflush(stdin);
getchar();
return ;
}
}
int flag_exit=0;
void a88()
{
system("cls");
while(1)
{
fflush(stdin);
printf("\n\n真的要退出吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
flag_exit=1;
break;
}
else if(t=='N' || t=='n')
{
flag_exit=0;
return;
}
else
{
continue;
}
}
system("cls");
printf(" oooooooooooooo ooooooooooooooo\n");
printf(" oooooooooooooo ooooooooooooooo\n");
printf(" oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf("oooooooooooooooo oooo\n");
printf("oooooooooooooooo oo oo o\n");
printf(" oo oo ooo oo oo\n");
printf(" oo oooo ooooo ooooooooo\n");
printf(" oo oo oo ooooooo\n");
fflush(stdin);
getchar();
}
void title()
{
int f=1;
int sel;
while(f)
{
system("cls");
printf(" *******************************\n");
printf(" * *\n");
printf(" * 图 书 管 理 系 统 *\n");
printf(" * *\n");
printf(" * 1.图书借出 *\n");
printf(" * *\n");
printf(" * 2.图书还回 *\n");
printf(" * *\n");
printf(" * 3.图书录入 *\n");
printf(" * *\n");
printf(" * 4.用户录入 *\n");
printf(" * *\n");
printf(" * 5.图书删除 *\n");
printf(" * *\n");
printf(" * 6.用户删除 *\n");
printf(" * *\n");
printf(" * 7.查 询 *\n");
printf(" * *\n");
printf(" * 0.退 出 *\n");
printf(" * *\n");
printf(" *******************************\n");
printf("请选择:(1,2,3,4,5,6,7,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
No1();
break;
case 2:
No2();
break;
case 3:
No3();
break;
case 4:
No4();
break;
case 5:
No5();
break;
case 6:
No6();
break;
case 7:
No7();
break;
case 0:
a88();
if(flag_exit==1)
system("exit");
else
{
break;
}
f=0;
break;
default:
break;
}
}
}
int main(int argc, char *argv[]) {
_getcwd(ini_path,100); //取得当前程序的绝对路径
strcpy(user_path,ini_path);
strcat(user_path,"\\user.ini");
strcpy(book_path,ini_path);
strcat(book_path,"\\book.ini");
if(!access(user_path,0))
{
}
else
{
printf("\n用户数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(user_path,"wb");
int re=fputs("[USER]\r\nuser_count=0",fp);
if(re>=0)
{
printf("\n用户数据文件创建成功!");
}
else
{
printf("\n用户数据文件创建失败!");
}
getchar();
fclose(fp);
}
if(!access(book_path,0))
{
}
else
{
printf("\n图书数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(book_path,"wb");
int re=fputs("[BOOK]\r\nbook_count=0",fp);
if(re>=0)
{
printf("\n图书数据文件创建成功!");
}
else
{
printf("\n图书数据文件创建失败!");
}
getchar();
fclose(fp);
}
read_file();
title();
return 0;
}
#include <stdlib.h>
#include "windows.h"
#include "string.h"
#define S_MAX 50
int user_count=0; //用户信息的总数
int book_count=0;
char ini_path[100]={"\0"}; //数据文件的绝对路径
char user_path[100]={"\0"}; //用户数据文件的绝对路径
char book_path[100]={"\0"};
int book_pos=0; //book数组的计数
int user_pos=0;
struct user_data
{
char name[10];
char book_name[50];
}user[S_MAX];
struct book_data
{
char no[10];
char name[50];
char author[30];
char money[10];
char in_or_out[10];
char user_name[10];
}book[S_MAX];
void read_file() //从文件读取数据
{
user_pos=0;
int i;
for(i=0;i<S_MAX;i++)
{
memset(user[i].name,'\0',10);
memset(user[i].book_name,'\0',50);
memset(book[i].no,'\0',10);
memset(book[i].name,'\0',50);
memset(book[i].author,'\0',30);
memset(book[i].money,'\0',10);
memset(book[i].in_or_out,'\0',10);
memset(book[i].user_name,'\0',10);
}
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);
for(i=0;i<user_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
user_pos++;
}
for(i=0;i<book_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
book_pos++;
}
}
void write_file()
{
int i;
for(i=0;i<user_count;i++)
{
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);
WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
}
char temp[5]={"\0"};
int temp_count=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);
temp_count=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,"")==0)
{
continue;
}
char t[5]={"\0"};
sprintf(t,"%d",i+1);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
temp_count++;
}
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
}
void search_user_name() //按借书人姓名查询
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书借书人:");
scanf("%s",search_key);
int i;
int s[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
int s_i=0;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].user_name,search_key)==0)
{
find=1;
s[s_i]=i;
s_i++;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
else
{
for(i=0;i<s_i;i++)
{
printf("\n\n第%d本书: %s",i+1,book[i].name);
}
printf("\n\n共%d本",i);
}
fflush(stdin);
getchar();
}
void search_book_author() //按图书作者查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的作者:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].author,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_book_name() //按图书名称查询
{
system("cls");
char search_key[50]={"\0"};
printf("请输入要查询图书的名称:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_book_no() //按图书编号查询
{
system("cls");
char search_key[10]={"\0"};
printf("请输入要查询图书的编号:");
scanf("%s",search_key);
int i;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].no,search_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n借 书 人: %s\n",book[i].user_name);
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
}
fflush(stdin);
getchar();
}
void search_all_book() //查询所有图书
{
system("cls");
if(book_pos==0)
{
printf("真TM穷,一本书都没有");
}
else
{
int i;
printf("共有%d本书\n",book_pos);
for(i=0;i<book_pos;i++)
{
printf("\n编号:%s 名称:%s 作者:%s 金额:%s 状态:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf(" 借书人:%s",book[i].user_name);
}
}
}
fflush(stdin);
getchar();
}
void search_all_user() //查询所有用户
{
system("cls");
if(user_pos==0)
{
printf("要倒闭了?一个人都没有!");
}
else
{
int i;
printf("共有%d个用户\n",user_pos);
for(i=0;i<user_pos;i++)
{
printf("\n用户名称: %s 借书名称: ",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
{
printf("%s",user[i].book_name);
}
else
{
printf("未借书");
}
}
}
fflush(stdin);
getchar();
}
void No7() //查询
{
int f=1;
int sel;
while(f)
{
system("cls");
printf(" *********************************\n");
printf(" * *\n");
printf(" * 图书管理系统--查询 *\n");
printf(" * *\n");
printf(" * 1.按图书编号查询 *\n");
printf(" * *\n");
printf(" * 2.按图书名称查询 *\n");
printf(" * *\n");
printf(" * 3.按作者查询 *\n");
printf(" * *\n");
printf(" * 4.按借书人姓名查询 *\n");
printf(" * *\n");
printf(" * 5.查询所有图书 *\n");
printf(" * *\n");
printf(" * 6.查询所有用户 *\n");
printf(" * *\n");
printf(" * 0.返回主菜单 *\n");
printf(" * *\n");
printf(" *********************************\n");
printf("请选择:(1,2,3,4,5,6,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
search_book_no();
break;
case 2:
search_book_name();
break;
case 3:
search_book_author();
break;
case 4:
search_user_name();
break;
case 5:
search_all_book();
break;
case 6:
search_all_user();
break;
case 0:
f=0;
break;
default:
break;
}
}
}
void No6() //用户信息删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的用户名称:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<user_pos;i++)
{
if(strcmp(user[i].name,del_key)==0)
{
find=1;
printf("\n姓 名: %s",user[i].name);
if(strlen(user[i].book_name)>0)
{
printf("\n所借书籍: %s",user[i].book_name);
}
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strlen(user[del_pos].book_name)>0)
{
printf("\n\n该用户尚有书籍未归还,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}
void No5() //图书删除
{
system("cls");
char del_key[10]={"\0"};
printf("请输入要删除的图书的名称或编号:");
scanf("%s",del_key);
int i,del_pos;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(book[i].name,del_key)==0 || strcmp(book[i].no,del_key)==0)
{
find=1;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s\n",book[i].in_or_out);
del_pos=i;
break;
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
while(1)
{
fflush(stdin);
printf("\n\n确认要删除该记录吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
if(strcmp("out",book[del_pos].in_or_out)==0)
{
printf("\n\n图书已经借出,不能删除!");
fflush(stdin);
getchar();
return;
}
strcpy(book[del_pos].no,"");
strcpy(book[del_pos].name,"");
strcpy(book[del_pos].money,"");
strcpy(book[del_pos].author,"");
strcpy(book[del_pos].in_or_out,"in");
strcpy(book[del_pos].user_name,"");
write_file();
printf("\n\n删除成功!");
read_file();
fflush(stdin);
getchar();
break;
}
else if(t=='N' || t=='n')
{
printf("\n\n你选择了不删除,按任意键返回!");
fflush(stdin);
getchar();
break;
}
else
{
continue;
}
}
}
void No4() //用户信息录入
{
system("cls");
char name[10]={"\0"};
printf("请输入新增用户信息:\n\n");
printf("名称:");
scanf("%s",name);
strcpy(user[user_pos].name,name);
user_pos++;
write_file(); //写入信息文件
printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}
void No3() //图书信息录入
{
system("cls");
char no[10]={"\0"};
char name[50]={"\0"};
char author[30]={"\0"};
char money[10]={"\0"};
char in_or_out[10]={"\0"};
char user_name={"\0"};
printf("请输入新增图书信息:\n\n");
printf("编号:");
scanf("%s",no);
printf("名称:");
scanf("%s",name);
printf("作者:");
scanf("%s",author);
printf("价格:");
scanf("%s",money);
strcpy(book[book_pos].no,no);
strcpy(book[book_pos].name,name);
strcpy(book[book_pos].author,author);
strcpy(book[book_pos].money,money);
book_pos++;
write_file(); //写入信息文件
printf("\n\n信息录入成功!");
fflush(stdin);
getchar();
}
void No2() //图书还回
{
system("cls");
printf("\n\n请输入还回图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
printf("\n\n按任意键进行还回操作");
fflush(stdin);
getchar();
int j;
strcpy(book[i].in_or_out,"in");
for(j=0;j<user_pos;j++)
{
if(strcmp(book[i].user_name,user[j].name)==0)
{
strcpy(user[j].book_name,"");
write_file(); //写入信息文件
break;
}
}
strcpy(book[i].user_name,"");
if(j>=user_pos)
{
printf("\n数据出错");
}
else
{
printf("\n\n图书还回成功");
fflush(stdin);
getchar();
return ;
}
}
}
if(find==0)
{
printf("\n\n未找到符合条件的信息!");
fflush(stdin);
getchar();
return;
}
}
void No1() //图书借出
{
system("cls");
printf("\n\n请输入出借图书的编号或名称: ");
char temp[50]={"\0"};
scanf("%s",temp);
int i;
int book_i=-1;
int find=0;
for(i=0;i<book_pos;i++)
{
if(strcmp(temp,book[i].no)==0 || strcmp(temp,book[i].name)==0)
{
find=1;
book_i=i;
printf("\n编 号: %s",book[i].no);
printf("\n名 称: %s",book[i].name);
printf("\n作 者: %s",book[i].author);
printf("\n金 额: %s",book[i].money);
printf("\n状 态: %s",book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
{
printf("\n\n该图书已经借出!\n");
fflush(stdin);
getchar();
return;
}
printf("\n\n请输入借书人姓名: ");
char name[10]={"\0"};
scanf("%s",name);
int j,user_i=-1;
for(j=0;j<user_pos;j++)
{
if(strcmp(name,user[j].name)==0)
{
user_i=j;
break;
}
}
if(j>=user_pos)
{
printf("\n找不到该借书人信息,已自动添加");
strcpy(user[user_pos].name,name);
strcpy(user[user_pos].book_name,"");
user_i=user_pos;
user_pos++;
fflush(stdin);
getchar();
}
strcpy(user[user_i].book_name,book[book_i].name);
strcpy(book[book_i].user_name,name);
strcpy(book[book_i].in_or_out,"out");
printf("\n\n图书借出成功");
write_file(); //写入信息文件
fflush(stdin);
getchar();
return;
}
}
if(find==0)
{
printf("\n\n找不到该图书信息\n");
fflush(stdin);
getchar();
return ;
}
}
int flag_exit=0;
void a88()
{
system("cls");
while(1)
{
fflush(stdin);
printf("\n\n真的要退出吗?(y/n):");
char t;
scanf("%c",&t);
if(t=='y' || t=='Y')
{
flag_exit=1;
break;
}
else if(t=='N' || t=='n')
{
flag_exit=0;
return;
}
else
{
continue;
}
}
system("cls");
printf(" oooooooooooooo ooooooooooooooo\n");
printf(" oooooooooooooo ooooooooooooooo\n");
printf(" oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf(" oooooooooooo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf(" oo oo oo oo oo oo\n");
printf("oooooooooooooooo oooo\n");
printf("oooooooooooooooo oo oo o\n");
printf(" oo oo ooo oo oo\n");
printf(" oo oooo ooooo ooooooooo\n");
printf(" oo oo oo ooooooo\n");
fflush(stdin);
getchar();
}
void title()
{
int f=1;
int sel;
while(f)
{
system("cls");
printf(" *******************************\n");
printf(" * *\n");
printf(" * 图 书 管 理 系 统 *\n");
printf(" * *\n");
printf(" * 1.图书借出 *\n");
printf(" * *\n");
printf(" * 2.图书还回 *\n");
printf(" * *\n");
printf(" * 3.图书录入 *\n");
printf(" * *\n");
printf(" * 4.用户录入 *\n");
printf(" * *\n");
printf(" * 5.图书删除 *\n");
printf(" * *\n");
printf(" * 6.用户删除 *\n");
printf(" * *\n");
printf(" * 7.查 询 *\n");
printf(" * *\n");
printf(" * 0.退 出 *\n");
printf(" * *\n");
printf(" *******************************\n");
printf("请选择:(1,2,3,4,5,6,7,0) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case 1:
No1();
break;
case 2:
No2();
break;
case 3:
No3();
break;
case 4:
No4();
break;
case 5:
No5();
break;
case 6:
No6();
break;
case 7:
No7();
break;
case 0:
a88();
if(flag_exit==1)
system("exit");
else
{
break;
}
f=0;
break;
default:
break;
}
}
}
int main(int argc, char *argv[]) {
_getcwd(ini_path,100); //取得当前程序的绝对路径
strcpy(user_path,ini_path);
strcat(user_path,"\\user.ini");
strcpy(book_path,ini_path);
strcat(book_path,"\\book.ini");
if(!access(user_path,0))
{
}
else
{
printf("\n用户数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(user_path,"wb");
int re=fputs("[USER]\r\nuser_count=0",fp);
if(re>=0)
{
printf("\n用户数据文件创建成功!");
}
else
{
printf("\n用户数据文件创建失败!");
}
getchar();
fclose(fp);
}
if(!access(book_path,0))
{
}
else
{
printf("\n图书数据文件不存在, 按任意键将创建文件");
getchar();
FILE* fp;
fp=fopen(book_path,"wb");
int re=fputs("[BOOK]\r\nbook_count=0",fp);
if(re>=0)
{
printf("\n图书数据文件创建成功!");
}
else
{
printf("\n图书数据文件创建失败!");
}
getchar();
fclose(fp);
}
read_file();
title();
return 0;
}
温馨提示:答案为网友推荐,仅供参考