@SuHongjun
2020-06-15T09:41:34.000000Z
字数 5247
阅读 326
C语言
2020春季学期
封面和Logo各小组八仙过海、各显神通,加油,我看好你们 :)
/*
###系统分析:
- 书的信息:
书号、书名、作者、出版日期、价格、捐赠人<会员号>、状态(借出、在馆、报废)
- 会员信息:
会员号、姓名、手机、email、QQ、微信, 可借数量(动态计算), 捐赠列表(动态查询),当前借阅列表(动态查询), 借阅历史(可选)
- 捐赠信息(总捐赠列表):
会员号 -- 书号,捐赠日期
- 借阅信息(总借阅列表):
会员号 -- 书号,借出日期,应还日期(假定可借60天,计算得到),还书日期
上述信息的录入、保存、读取、查询显示、修改
*/
#include "stdio.h"
#include "string.h"
#define BOOK_FILE "E:\\Try\\C\\004\\综合设计\\books.dat"
#define MEMBER_FILE "E:\\Try\\C\\004\\综合设计\\members.dat"
#define JZ_LIST_FILE "E:\\Try\\C\\004\\综合设计\\jz_list.dat"
#define JY_LIST_FILE "E:\\Try\\C\\004\\综合设计\\jy_list.dat"
struct DATE
{
int year;
int month;
int day;
};
struct BOOK
{
char sh[30];
char bookName[200];
char author[200];
struct DATE publishDate; //结构体嵌套
float price;
char hyh[30];
int status; //0:在馆、1:借出、-1:报废
};
struct MEMBER
{
char hyh[30];
char hyName[200];
char cell[15];
char email[100];
char QQ[30];
char wx[100];
int kjsl;
//捐赠列表(动态查询),???
//当前借阅列表(动态查询) ????
};
struct JUAN_ZEN_INFO
{
char hyh[30];
char sh[30];
struct DATE jzDate;
};
struct JIE_YUE_INFO
{
char hyh[30];
char sh[30];
struct DATE jcDate;
struct DATE yhDate;
struct DATE hsDate;
};
//......................函数原型声明:.........................
void InputMember();
void SaveAll();
void LoadAll();
void DisplayMembers();
void Welcome();
int DisplayMainMenu();
void ByeBye();
int DisplayMemberMenu();
//......................全局变量:...............................
struct BOOK g_books[10000];
struct MEMBER g_members[5000];
int g_members_count;
struct JUAN_ZEN_INFO g_jz_list[30000];
struct JIE_YUE_INFO g_jy_list[1000000];
//.........................................
main()
{
int iMainMenu, iSubMenu_1;
Welcome();
LoadAll();
do
{
iMainMenu = DisplayMainMenu();
switch(iMainMenu)
{
case 1:
do
{
iSubMenu_1 = DisplayMemberMenu();
switch(iSubMenu_1)
{
case 1: DisplayMembers();
break;
case 2: InputMember();
break;
case 3: ;
break;
case 4: ;
break;
}
}while(iSubMenu_1 != 9);
break;
case 2:
;
break;
case 3:
;
break;
case 4:
;
break;
}
}while(iMainMenu != 999);
ByeBye();
SaveAll();
}
void DisplayMembers()
{
int i;
char jx = 'Y', buf[10];
printf("\n会员信息:\n");
printf("会员号\t\t姓名\t手机\t\temail\tQQ\t微信\t可借数量\n");
printf("-----------------------------------------------------\n");
for(i=0; i<5000;i++)
{
if(strcmp(g_members[i].hyh, "")!=0)
printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\n",
g_members[i].hyh,
g_members[i].hyName,
g_members[i].cell,
g_members[i].email,
g_members[i].QQ,
g_members[i].wx,
g_members[i].kjsl
);
else
break;
}
printf("-----------------------------------------------------\n");
}
int DisplayMemberMenu()
{
int iSel=0;
char buf[100];
printf("\n\t\t … 会员信息管理功能选择:…\n");
printf("\t\t ------------------------------\n");
printf("\t\t| |\n");
printf("\t\t| 1.显示会员信息 |\n");
printf("\t\t| |\n");
printf("\t\t| 2.录入会员信息 |\n");
printf("\t\t| |\n");
printf("\t\t| 3.查询会员信息 |\n");
printf("\t\t| |\n");
printf("\t\t| 4.修改会员信息 |\n");
printf("\t\t| |\n");
printf("\t\t| ** 9. 退 出 ** |\n");
printf("\t\t| |\n");
printf("\t\t ------------------------------\n");
printf("\t\t 请选择对应功能:");
scanf("%d", &iSel);
gets(buf);
return iSel;
}
void ByeBye()
{
printf("\t欢迎下次使用!\t Bye bye!!\n");
}
int DisplayMainMenu()
{
int iSel=0;
char buf[100];
printf("\n\t\t ***** 主菜单 *****\n");
printf("\t\t ==============================\n");
printf("\t\t|| ||\n");
printf("\t\t|| 1.会员信息管理 ||\n");
printf("\t\t|| ||\n");
printf("\t\t|| 2.书籍信息管理 ||\n");
printf("\t\t|| ||\n");
printf("\t\t|| 3.捐 赠 管 理 ||\n");
printf("\t\t|| ||\n");
printf("\t\t|| 4.借 阅 管 理 ||\n");
printf("\t\t|| ||\n");
printf("\t\t|| ** 999. 退 出 ** ||\n");
printf("\t\t|| ||\n");
printf("\t\t ==============================\n");
printf("\t\t 请选择对应功能:");
scanf("%d", &iSel);
return iSel;
}
void Welcome()
{
printf("\t******************************************************\n");
printf("\t******************************************************\n");
printf("\t** **\n");
printf("\t** **\n");
printf("\t** 小书虫书友会管理系统 **\n");
printf("\t** **\n");
printf("\t** 开发人员: **\n");
printf("\t** 张文定 13258479658 **\n");
printf("\t** 李 明 13258479668 **\n");
printf("\t** 赵志国 13258479688 **\n");
printf("\t** **\n");
printf("\t******************************************************\n");
printf("\t******************************************************\n\n");
}
void LoadAll()
{
FILE *fp;
fp = fopen(BOOK_FILE,"rb");
if(fp !=NULL)
{
fread(g_books,sizeof(struct BOOK),10000,fp);
fclose(fp);
}
fp = fopen(MEMBER_FILE,"rb");
if(fp !=NULL)
{
fread(&g_members_count,sizeof(g_members_count),1,fp);
fread(g_members,sizeof(struct MEMBER),5000,fp);
fclose(fp);
}
fp = fopen(JZ_LIST_FILE,"rb");
if(fp !=NULL)
{
fread(g_jz_list,sizeof(struct JUAN_ZEN_INFO),30000,fp);
fclose(fp);
}
fp = fopen(JY_LIST_FILE,"rb");
if(fp !=NULL)
{
fread(g_jy_list,sizeof(struct JIE_YUE_INFO),1000000,fp);
fclose(fp);
}
}
void SaveAll()
{
FILE *fp;
fp = fopen(BOOK_FILE,"wb");
if(fp !=NULL)
{
fwrite(g_books,sizeof(struct BOOK),10000,fp);
fclose(fp);
}
fp = fopen(MEMBER_FILE,"wb");
if(fp !=NULL)
{
fwrite(&g_members_count,sizeof(g_members_count),1,fp);
fwrite(g_members,sizeof(struct MEMBER),5000,fp);
fclose(fp);
}
fp = fopen(JZ_LIST_FILE,"wb");
if(fp !=NULL)
{
fwrite(g_jz_list,sizeof(struct JUAN_ZEN_INFO),30000,fp);
fclose(fp);
}
fp = fopen(JY_LIST_FILE,"wb");
if(fp !=NULL)
{
fwrite(g_jy_list,sizeof(struct JIE_YUE_INFO),1000000,fp);
fclose(fp);
}
}
void InputMember()
{
int i;
char jx = 'Y', buf[10];
printf("请录入会员信息:\n");
for(i=g_members_count; i<5000;i++)
{
printf("会员号:");
gets(g_members[i].hyh);
printf("姓名:");
gets(g_members[i].hyName);
printf("手机:");
gets(g_members[i].cell);
printf("email:");
gets(g_members[i].email);
printf("QQ:");
gets(g_members[i].QQ);
printf("微信:");
gets(g_members[i].wx);
g_members[i].kjsl = -1;
printf("是否继续录入?(y/n):");
jx = getchar();
if(jx != 'y' && jx != 'Y')
{
g_members_count = i + 1;
break;
}
gets(buf);
}
}
//.........???????