用C语言编写的图书管理系统.docx
《用C语言编写的图书管理系统.docx》由会员分享,可在线阅读,更多相关《用C语言编写的图书管理系统.docx(11页珍藏版)》请在冰点文库上搜索。
用C语言编写的图书管理系统
C
程
序
专
周
报
告
2011/05/30-2011/06/03
辅导老师:
王飞
图书信息管理系统程序设计报告
、程序名称:
图书信息管理系统。
、设计内容:
通过近一个学期的C语言学习,编写一个小程序,以实现对图书的管理。
用各种语句、结构体等,实现图书的输入、输出、修改等多种功能。
、设计目的:
1、系统地对图书进行管理,便于图书管理人员管理。
、设计流程:
、设计要求:
:
1、系统以菜单方式工作。
2、进入系统需要用户名和密码。
3、有图书信息录入功能。
4、有图书信息浏览功能。
5、有图书信息查询功能。
6、有图书借阅次数排序功能。
7、有图书信息的删除和修改功能。
8、系统推出。
、软件使用:
编写该程序使用的是MicrosoftVisualC++。
、心得体会:
通过此次编写图书信息管理系统程序,我学到了很多。
也感触到了很多。
“书上得来终觉浅,要知此事需躬行。
”是呀!
在没亲身动手去编写程序时,我总觉得我会了。
书本上的我都懂了。
可我真的懂了吗?
答案是否定的。
在编写过程中,会出现很多的问题,而这些问题你是在书本上是接触不到的。
只有发现问题,解决问题,你才会有提高。
有谁敢说我对C语言没有一点问题。
没有,就连老师也不敢说这样的大话。
我是打算报考计算机二级的,通过此次编程我看清了我在这方面的水平,那就是,我现在的水平是远远达不到二级的。
但这只是暂时的,下一阶段我会更加努力学习,我相信我会学好这们语言的。
附录1:
参考文献
1、C程序教程教程。
(主编:
孙淑霞)
2、C实验与考级题训精解。
(主编:
戴彦群于春)
3、C程序设计。
(主编:
谭浩强)
附录2:
程序清单
#include
#include
#include
#include
structbooks
{charname[10];
charno[10];
charwriter[10];
charsno[20];
charprice[20];
}con[50];
intk=0;
voidenter();
voident();
voiddisplay();
voidupdate();
voiddel();
voidsave();
voidread();
intmenu();
/********************************主函数***************************************/
voidmain()
{
intc;
while
(1)
{
printf("\n\n\n\n");
printf("欢迎进入图书信息管理系统\n\n\n");
printf("1进入系统\n\n");
printf("0退出系统\n\n");
printf("\n\n\n\n");
printf("10611崔向伟(37)\n\n");
printf("2011-6-1");
printf("请输入您的选择:
\n");
scanf("%d",&c);
switch(c)
{
case1:
ent();
break;
case0:
printf("谢谢使用!
\n");
exit(0);
}
}
}
/*******************登陆函数,进行密码验证*******************/
voident()
{
charkey[10],password[10]="123";
intk=1;
printf("请您输入密码:
\n");
scanf("%s",key);
while(k<=3)
{
if(strcmp(password,key)==0)
{
while
(1)
{
inta;
a=menu();
switch(a)
{
case1:
printf("\n");enter();break;
case2:
printf("\n");display();break;
case3:
printf("\n");update();break;
case4:
printf("\n");del();break;
case5:
printf("\n");save();break;
case6:
printf("\n");exit(0);break;
default:
printf("\nThechoiceisbetween1to6.\n");
}
}
}
else
{
k++;
printf("密码错误!
请再次输入:
");
scanf("%s",key);
if(k>2)
{
if(strcmp(password,key)==0)
continue;
else
{
printf("输入密码错误三次,系统将自动退出!
\n");
exit(0);
}
}
}
}
}
intmenu()
{
inta;
printf("\n\n******************************************************************\n");
printf("*");printf("\t\t欢迎进入图书管理系统");printf("\t\t*");
printf("\n******************************************************************\n");
printf("*");printf("\t1.输入图书信息");printf("\t\t\t\t\t*\n");
printf("*");printf("\t2.显示图书信息");printf("\t\t\t\t*\n");
printf("*");printf("\t3.查询图书信息");printf("\t\t\t\t*\n");
printf("*");printf("\t4.删除图书信息");printf("\t\t\t\t\t*\n");
printf("*");printf("\t5.储存图书信息");printf("\t\t\t\t*\n");
printf("*");printf("\t6.退出");printf("\t\t\t\t\t*\n");
printf("******************************************************************\n");
printf("输入你的选择:
");
scanf("%d",&a);
returna;
}
/******************************输入图书信息***********************************/
voidenter()
{
charch[20];
printf("\n输入图书信息:
\n");
do
{printf("\n书名:
\n");
scanf("%s",con[k].name);
printf("书号:
");
scanf("%s",con[k].no);
printf("\n作者:
");
scanf("%s",con[k].writer);
printf("\n分类号:
");
scanf("%s",con[k].sno);
printf("\n价格:
");
scanf("%s",con[k].price);
k++;
printf("\n是否继续输入图书信息(y/n):
");
scanf("%s",ch);
}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);
}
/****************************显示图书信息*************************************/
voiddisplay()
{inti;
read();
printf("图书信息如下:
\n");
for(i=0;i{printf("%10s%20s%10s%10s%10s",con[i].name,con[i].no,con[i].writer,con[i].sno,con[i].price);
printf("\n");}
}
/*****************************查询与修改图书信息******************************/
voidupdate()
{
inti;
chara[20],ch[10];
printf("\n请输入要查询的书名:
");
scanf("%s",a);
for(i=0;iif(strcmp(con[i].name,a)==0)printf("%10s%20s%10s%10s%10s",con[i].name,con[i].no,con[i].writer,con[i].sno,con[i].price);
printf("\n确定要改变书名?
y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{printf("\n输入要改变的书名:
");
scanf("%s",a);
for(i=0;i{
if(strcmp(con[i].name,a)==0)
{printf("\n确定要改变书名(y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\n书名:
");scanf("%s",con[i].name);}
printf("\n确定要改的书号(y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\n书号");scanf("%s",con[i].no);}
printf("\n确定要改的作者(y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\n作者");scanf("%s",con[i].writer);}
printf("\n确定要改的分类号(y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\n分类号");scanf("%s",con[i].sno);}
printf("\n确定要改的价格(y/n):
");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){printf("\n价格");scanf("%s",con[i].price);}
}
}
}
display();
}
/**********************************删除图书信息*******************************/
voiddel()
{
inti,j;
charc[20];
printf("\n输入要删除的书名:
\n");
printf("书名:
");
scanf("%s",&c);
for(i=0;iif(strcmp(c,con[i].name)==0)break;
for(j=i;j<=2;j++)
con[j]=con[j+1];
printf("\t\t\t已经删除%s\n",c);
k--;
display();
}
/******************************文件写入数据**********************************/
voidsave()
{FILE*fp;inti;
if((fp=fopen("123456.txt","wb"))==NULL)
{
printf("操作文件失败.\n");
exit(0);
}
for(i=0;iif(fwrite(&con[i],sizeof(structbooks),1,fp)!
=1)
{
printf("写入文件失败");
fclose(fp);
exit(0);
}
printf("写入成功");
fclose(fp);
}
/***********************************文件读取数据******************************/
voidread()
{
FILE*fp;
inti;
if((fp=fopen("123456.txt","rb"))==NULL)
{
printf("不能打开文件");
exit(0);
}
for(i=0;iif(fread(&con[i],sizeof(structbooks),1,fp)==1);
else
{
printf("读取文件出错");
fclose(fp);
exit(0);
}
fclose(fp);
return;
}