#include "string.h" /*字符串函数*/
#include "ctype.h" /*字符函数*/
#include "stdlib.h" /*standard library标准库函数*/
#include "conio.h" /*屏幕函数*/
#include "stdio.h" /*输入输出函数*/
#define M 100
#define N 30
typedef struct /*定义图书类型*/
{
int shuhao;
char shuname[N];
char zuozhe[N];
char chubanshe[N];
int jiage;
int xiaoliang;
int kucun;
char pubtime[N];
}book;
typedef struct /*定义顺序表*/
{
book data[M];
int length;
}SqListbook;
static SqListbook L;
static FILE *fp; /*定义文件类型指针*/
void main() /*主模块*/
{
system("graftabl 936"); /*发出一个dos命令,调用MS-dos中文支持*/
textbackground(2);
textcolor(14);
clrscr();
welcome();
clrscr();
password();
getch();
}
welcome() /*欢迎模块*/
{
gotoxy(36,9);
printf(" 欢迎使用");
gotoxy(16,10);
printf("*****************************************************");
gotoxy(16,12);
printf(" 图书销售系统");
gotoxy(16,14);
printf(" 制作者: 曾德真 任传敏 张晓");
gotoxy(16,16);
printf("*****************************************************");
gotoxy(16,20);
printf(" 按任意键...\n");
getch();
}
password() /*加密模块*/
{
char pass[N];
gotoxy(34,10);
printf("请输入密码!\n");
gotoxy(34,12);
printf("密码:");
scanf("%s",&pass);
if(!strcmp(pass,"admin"))
{
clrscr();
xitongzhujiemian();
}
else
{
clrscr();
gotoxy(30,10);
printf("error password!!!!! ");
}
}
xitongzhujiemian() /*系统主界面*/
{
int t,i;
char c[2];
printf("\n\n\t\t\t\t图书销售系统\n");
printf("\t***************************************************************\n");
printf("\t* 1 初始化图书信息 2 插入 3 修改 4 查询 *\n");
printf("\t* 5 排序 6 删除 7 报警 8 退出 *\n");
printf("\t***************************************************************\n");
printf("请选择操作:");
scanf("%d",&t);
if(t==1)
{
if(getchar()=='\n')
clrscr();
gotoxy(18,10);
printf("初始化后原来的存储信息将全部删除!是否继续?(Y/N)\n");
gotoxy(34,12);
printf("继续:y\t取消:n");
gotoxy(40,14);
scanf("%s",&c);
if(strcmp(c,"y"))
{
clrscr();
xitongzhujiemian(); /*调用系统主界面模块*/
}
else
{
clrscr();
bookdatabase(); /*调用初始化模块*/
if(getchar()=='\n')
clrscr();
xitongzhujiemian();
}
}
if(t==2)
{
clrscr();
insert(); /*调用插入模块*/
}
if(t==3)
{
clrscr();
updata(); /*调用更新模块*/
}
if(t==4)
{
clrscr();
select(); /*调用查询模块*/
}
if(t==5)
{
clrscr();
paixu();
} /*调用排序模块*/
if(t==6)
{
clrscr();
delbook();
}
if(t==7)
{
clrscr();
baojing(); /*调用报警模块*/
}
if(t==8)
{
if(getchar()=='\n')
gotoxy(26,12);
printf("您确定要退出本系统吗?\n");
gotoxy(30,13);
printf("确定:y\t取消:n");
gotoxy(37,14);
scanf("%s",&c);
if(!strcmp(c,"n"))
{
clrscr();
xitongzhujiemian();
}
else
{
clrscr();
gotoxy(28,10);
printf("谢谢您的使用!再见...");
exit(0);
}
}
}
bookdatabase() /*初始化图书信息表*/
{
int n,i,j,a=0;
printf("\n请输入你要输入记录的条数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
j=0;
printf("第 %d 本的信息\n",i+1);
printf("请输入要插入的书号:");
scanf("%d",&a);
while(a!=L.data[j].shuhao&&j<L.length) /*检查书号是否重复*/
{
j++;
}
if(j==L.length)
{
printf("请输入书名 作者 出版社 销量 价格 库存 出版日期(格式:20100101)\n");
scanf("%s%s%s%d%d%d%s",&L.data[i].shuname,&L.data[i].zuozhe,&L.data[i].chubanshe,&L.data[i].xiaoliang,&L.data[i].jiage,&L.data[i].kucun,&L.data[i].pubtime);
L.data[i].shuhao=a;
L.length++;
}
else
{
i--;
printf("已有相同书号,无法插入!\n");
}
}
if(getchar()=='\n')
clrscr();
out();
save();
}
out() /*输出模块*/
{
int i;
printf("\n书号\t书名\t作者\t出版社\t销量\t价格\t库存\t出版日期\n");
for(i=0;i<L.length;i++)
{
printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\t%s\n",L.data[i].shuhao,L.data[i].shuname,L.data[i].zuozhe,L.data[i].chubanshe,L.data[i].xiaoliang,L.data[i].jiage,L.data[i].kucun,L.data[i].pubtime);
}
}
duwenjian() /*读文件*/
{
int i=0;
if((fp=fopen("book.txt","r"))==NULL) /*只读方式打开文件*/
{
printf("读文件出错!");
return;
}
while(!feof(fp)) /*把所有的数据从文件中提取出来*/
{
fscanf(fp,"%d\t%s\t%s\t%s\t%d\t%d\t%d\t%s\n",&L.data[i].shuhao,L.data[i].shuname,L.data[i].zuozhe,L.data[i].chubanshe,&L.data[i].xiaoliang,&L.data[i].jiage,&L.data[i].kucun,L.data[i].pubtime);
i++;
}
fclose(fp); /*文件关闭*/
L.length=i;
}
save() /*数据重新写入文件*/
{
int i;
if((fp=fopen("book.txt","w"))!=NULL) /*以新建方式打开文件,如果已存在同名文件,则先删除之*/
{
for(i=0;i<L.length;i++)
{
fprintf(fp,"%d\t%s\t%s\t%s\t%d\t%d\t%d\t%s\n",L.data[i].shuhao,L.data[i].shuname,L.data[i].zuozhe,L.data[i].chubanshe,L.data[i].xiaoliang,L.data[i].jiage,L.data[i].kucun,L.data[i].pubtime);
printf("\n");
}
}
fclose(fp);
}
insert() /*插入模块*/
{
int a,i,j=0;
int m=L.length;
duwenjian();
printf("\n请输入要插入的书号:");
scanf("%d",&a);
for(i=0;i<m;i++) /*检查书号是否重复*/
{
if(a==L.data[i].shuhao)
{
j=1;
printf("已有相同书号,无法插入!\n");
getch();
break;
}
}
if(j==0)
{
printf("请输入书名 作者 出版社 销量 价格 库存 出版日期(格式:20100101)\n");
scanf("%s%s%s%d%d%d%s",&L.data[m].shuname,&L.data[m].zuozhe,&L.data[m].chubanshe,&L.data[m].xiaoliang,&L.data[m].jiage,&L.data[m].kucun,&L.data[m].pubtime);
L.data[m].shuhao=a;
L.length++;
if(getchar()=='\n')
clrscr();
printf("\n成功插入以下记录:\n");
printf("书号\t书名\t作者\t出版社\t销量\t价格\t库存\t出版日期\n");
printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\t%s\n",L.data[m].shuhao,L.data[m].shuname,L.data[m].zuozhe,L.data[m].chubanshe,L.data[m].xiaoliang,L.data[m].jiage,L.data[m].kucun,L.data[m].pubtime);
save();
}
fclose(fp);
if(getchar()=='\n')
clrscr();
xitongzhujiemian();
}
updata() /*修改模块*/
{
int i,m,n,j=0,t;
clrscr();
duwenjian();
printf("\n请输入你要修改的书号\n");
scanf("%d",&n);
i=0;
while(n!=L.data[i].shuhao&&i<L.length)
{
i++;
}
if(i<L.length)
{
printf("书号-1\t书名-2\t作者-3\t出版社4\t销量-5\t价格-6\t库存-7\t出版日期-8\n");
printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\t%s\n",L.data[i].shuhao,L.data[i].shuname,L.data[i].zuozhe,L.data[i].chubanshe,L.data[i].xiaoliang,L.data[i].jiage,L.data[i].kucun,L.data[i].pubtime);
printf("请输入你要修改的项目 \n");
scanf("%d",&m);
switch(m)
{
case 1:
printf("请