主要内容
开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:
(1)图书信息录入功能(图书信息用文件保存)--输入
(2)图书信息浏览功能--输出
(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):
①按书名查询 ②按作者名查询 按照价钱排序 按出版时间排序等等
(4)图书信息的删除与修改
扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等。
【概要设计】
1 图书录入可以录入图书名,作者,出版社,出版日期,价格!录入图书编号时函数就会判断此编号是否存在,若存在不能成功录入!
2 图书浏览可以浏览全部图书!
3 图书查询提供按图书编号模糊查询,按图书名关键字查询,按图书编号精确查询,按图书名精确查询!模糊查询和关键字查询事通过比价字符串的相似度而实现的!
4 修改删除图书可以通过图书查询来查询操作的图书编号,通过编号操作!函数会提示用户是否调用图书查询来找到自己想要操作的图书的编号。如果某一本图书已经被借阅那么用户就不能删除该图书!
5 借阅图书通过学号和图书编号进行借阅!如果该学号是第一次借阅那么会提示用户输入自己的姓名,并存入student.txt,方便以后借阅与归还!
6 归还图书先提供学号,然后程序会输出该学号借阅的所有图书,然后再通过编号归还!
7 借阅查询可查询某个学生已借但未归还的图书!
部分源码:
先建立图书结构体
typedef struct book
{
char num[10];
char name[10];
char auth[10];
int count;
int sum;
}Book;
图书的添加
void add(blink l)
{
Bnode *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;
textcolor(RED);
gotoxy(25,4);
cputs("INPUT THE MESSAGE about BOOK");
gotoxy(31,10);
textcolor(YELLOW);
cputs("Book ID:");
scanf("%s",num);
p=(Bnode *)malloc(sizeof(Bnode));
while(s)
{
if(strcmp(s->data.num,num)==0)
{
textcolor(WHITE);
gotoxy(25,15);
cputs("This ID:");
printf("'%s'",num);
cputs("is exist!");
gotoxy(25,22);
cputs("please Press any key to continue...");
gotoxy(255,252);
getch();
return;
}
s=s->next;
}
strcpy(p->data.num,num);
gotoxy(31,12);
textcolor(YELLOW);
cputs("Input Book name:");
scanf("%s",p->data.name);
gotoxy(31,14);
cputs("input your Book auth:");
scanf("%s",p->data.auth);
gotoxy(31,16);
cputs("input your Book count:");
scanf("%d",&p->data.count);
bookcount=p->data.count+bookcount;
p->data.sum=0;
p->next=NULL;
r->next=p;
r=p;
gotoxy(30,22);
textcolor(RED);
cputs("Add Book Success !!!");
getch();
textcolor(YELLOW);
}
图书的删除
void del(blink l)
{
int sel;
Bnode *p,*r;
char findmess[20];
if(!l->next)
{
gotoxy(25,4);
textcolor(RED);
cputs("=====>not thing could delete!n");
getch();
return;
}
textcolor(RED);
gotoxy(25,4);
puts("Please Select Delete Type !");
gotoxy(10,8);
textcolor(WHITE);
cputs("1.Delete by Book ID");
gotoxy(10,10);
cputs("2.Delete by Book Name");
gotoxy(10,12);
cputs("Please Select 1 or 2:");
scanf("%d",&sel);
if(sel==1)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the delete ID:");
scanf("%s",findmess);
p=locate(l,findmess,"num");
if(p)
{
bookcount=bookcount-p->data.count;
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Delete success!n");
textcolor(YELLOW);
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
}
}
else if(sel==2)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the delete name:");
scanf("%s",findmess);
p=locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Delete success!n");
bookcount--;
textcolor(YELLOW);
}
else
{
gotoxy(25,18);
cputs("Not find!!");
}
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
}
getch();
textcolor(YELLOW);
}
借书管理
void borrow()
{
while(1)
{
int flag;
BBlink l,p,r;
FILE *fp;
int count=0;
l=(BBnode*)malloc(sizeof(BBnode));
l->next=NULL;
r=l;
fp=fopen(bfile,"rb");
if(fp==NULL)
{
fp=fopen(bfile,"wb");
}
while(!feof(fp))
{
p=(BBnode*)malloc(sizeof(BBnode));
if(fread(p,sizeof(BBnode),1,fp))
{
p->next=NULL;
r->next=p;
r=p;
count++;
}
borrowcount=count;
}
while(1)
{
textbackground(179);
clrscr();
textcolor(YELLOW);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(3,2);
textcolor(RED);
cputs("B");
textcolor(BLUE);
cputs("orrow book ");
textcolor(RED);
cputs("R");
textcolor(BLUE);
cputs("eturn book ");
textcolor(RED);
cputs("S");
textcolor(BLUE);
cputs("earch borrow ");
textcolor(YELLOW);
printf("count: (borrow=%d)",borrowcount);
textcolor(RED);
gotoxy(50,50);
flag=getch();
switch(flag)
{
case 'b':
Add_borrow(l);
break;
case 'r':
Del_borrow(l);
Save_borrow(l);
break;
case 's':
Qur_borrow(l);
break;
case 27:
return;
}
}
}
}
想要完整免费源码的赶快的来加群1083227756!!!
来领取百度网盘免费资料!!!!!



