程序课程设计图书管理系统.docx

上传人:b****7 文档编号:25675607 上传时间:2023-06-11 格式:DOCX 页数:23 大小:304.86KB
下载 相关 举报
程序课程设计图书管理系统.docx_第1页
第1页 / 共23页
程序课程设计图书管理系统.docx_第2页
第2页 / 共23页
程序课程设计图书管理系统.docx_第3页
第3页 / 共23页
程序课程设计图书管理系统.docx_第4页
第4页 / 共23页
程序课程设计图书管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

程序课程设计图书管理系统.docx

《程序课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《程序课程设计图书管理系统.docx(23页珍藏版)》请在冰豆网上搜索。

程序课程设计图书管理系统.docx

程序课程设计图书管理系统

 

程序设计课程设计报告

图书管理系统

专业

计算机科学与技术

学生姓名

于露

班级

B计123

学号

指导教师

张静林

完成日期

2013年6月

 

1.课程设计的目的

1.加强对《c语言程序设计》课程知识的理解,掌握c语言应用程序的开发方法和步骤

2.进一步掌握和利用c语言进行程序设计的能力

3.进一步理解和运用结构化程序设计的思想和方法

4.初步掌握开发一个小型实用系统的基本方法

5.学会调试一个较长程序的基本方法

6.学会利用流程图或N-S图表示算法

7.掌握书写程序设计开发文档的能力(书写课程设计报告)

2.课程设计任务

3.课程设计课题

课题1:

图书管理系统

总体程序框图

系统的总体流程图

 

程序

#include

#include

#include

structlist{

charnum[20];/*图书编号*/

charname[40];/*书名*/

charauthor[40];/*作者*/

charpublish[40];/*出版社*/

doubleprice;/*价格*/

};

structlistb[40];

intw=0;/*定义一个全局变量,用来记录bookinfo.txt文件中的数据个数*/

voidsearch_allinformation(structlistb[]);/*查看全部图书信息*/

voidcheck_bookinformation(structlistb[]);/*查找图书信息*/

voidadd_bookinformation(structlistb[]);/*添加图书信息*/

voiddelete_bookinformation(structlistb[]);/*删除图书信息*/

voidborrow_book(structlistb[]);/*借阅图书*/

intmain()

{

inti=0;

intchoice1;

FILE*fp;

printf("********************************\n");

printf("*欢迎进入图书馆信息管理系统*\n");

printf("********************************\n");

fp=fopen("e:

\\BookInfo.txt","r");

if(fp==NULL)

{printf("Cannotopenthefile!

\n");

exit(0);

}

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s%lf",/*调用函数将文件中的数据读入结构变量中*/

b[i].num,b[i].name,b[i].author,b[i].publish,&b[i].price);

i++;

}

w=i-1;

fclose(fp);

do{

printf("################################################################################");

printf("功能选项:

\n");

printf("1:

查看全部图书信息\n");

printf("2:

查找图书信息\n");

printf("3:

添加图书信息\n");

printf("4:

删除图书信息\n");

printf("5:

借阅图书\n");

printf("0:

退出系统\n");

printf("################################################################################");

printf("请选择操作:

");

scanf("%d",&choice1);

switch(choice1)

{

case1:

search_allinformation(b);

break;

case2:

check_bookinformation(b);

break;

case3:

add_bookinformation(b);

break;

case4:

delete_bookinformation(b);

break;

case5:

borrow_book(b);

break;

case0:

break;

}

}while(choice1!

=0);

printf("谢谢使用!

\n");

return0;

}

/*查看全部图书信息*/

voidsearch_allinformation(structlistb[])

{

inti;

printf("####################################\n");

printf("#查看全部图书信息!

#\n");

printf("####################################\n");

printf("图书的相关信息:

编号书名作者出版社价格\n");

for(i=0;i

{

printf("%s%s%s%s%.2f\n",/*将数据输出到屏幕中*/

b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price);

}

printf("%d",w);

printf("################################################################################\n");

}

/*查找图书信息*/

voidcheck_bookinformation(structlistb[])

{

inti,flag=0;

chars[20];

printf("输入编号:

\n");/*提示输入图书编号*/

scanf("%s",s);

printf("#####################################\n");

printf("#查找图书信息!

#\n");

printf("#####################################\n");

for(i=0;i

if(strcmp(s,b[i].num)==0)

{

printf("该图书的相关信息:

编号书名作者出版社价格\n");

printf("%s%s%s%s%.2f\n",

b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price);

flag=1;

break;

}

if(flag==0)

{

printf("该图书编号不存在!

\n");

printf("是否要继续查找?

y:

是;n:

否\n");

getchar();

switch(getchar())

{

case'y':

check_bookinformation(b);/*调用函数本身继续查找*/

case'n':

break;

}

}

printf("################################################################################\n");

}

/*添加图书信息*/

voidadd_bookinformation(structlistb[])

{

inti,count=0,choice3;

structlistp;

FILE*fp2;

printf("#####################################\n");

printf("#添加图书信息!

#\n");

printf("#####################################\n");

printf("请输入该图书的相关信息:

\n");

printf("编号书名作者出版社价格\n");

scanf("%s%s%s%s%lf",

p.num,p.name,p.author,p.publish,&p.price);

printf("添加成功!

\n");

printf("是否显示添加后的信息?

1:

是;2:

否\n");

printf("请选择:

");

scanf("%d",&choice3);

switch(choice3)

{

case1:

{

for(i=0;i

if(strcmp(p.num,b[i].num)>0)

count++;

for(i=w;i>count;i--)

b[i]=b[i-1];

b[i]=p;

w++;/*每添加一本图书,图书数目都会增加一个*/

fp2=fopen("e:

\\BookInfo.txt","w");

if(fp2==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

for(i=0;i

fprintf(fp2,"%s%s%s%s%.2f\n",

b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price);

fclose(fp2);

for(i=0;i

printf("%s%s%s%s%.2f\n",

b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price);

}

case2:

break;

}

printf("################################################################################\n");

}

/*删除图书信息*/

voiddelete_bookinformation(structlistb[])

{

inti,flag=0,choice4;

chars[20];

printf("#####################################\n");

printf("#删除图书信息#\n");

printf("#####################################\n");

printf("请输入图书编号:

");

scanf("%s",s);

for(i=0;i

if(strcmp(s,b[i].num)==0)

{

printf("删除成功!

\n");

printf("是否显示删除后的信息?

1:

是;2:

否\n");

printf("请选择:

");

scanf("%d",&choice4);

switch(choice4)

{

case1:

{

printf("删除后的图书信息:

编号书名作者出版社价格\n");

for(i=0;i

{

if(strcmp(s,b[i].num)!

=0)

printf("%s%s%s%s%.2f\n",

b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price);

}

case2:

break;

}

}

flag=1;

break;

}

if(flag==0)

printf("该图书编号不存在!

\n");

printf("################################################################################\n");

}

/*借阅图书*/

voidborrow_book(structlistb[])

{

inti=0,n=0,flag=0,x=0;

intm;/*定义一个变量用来记录sendinfo.txt文件中的数据个数*/

structlistq;

structstudent{

charname[20];

charnumber[40];

};

structstudentstu[50];

FILE*fp;

FILE*fp4;

printf("#####################################\n");

printf("#借阅图书#\n");

printf("#####################################\n");

A:

printf("输入图书编号:

");

scanf("%s",q.num);

fp=fopen("e:

\\BookInfo.txt","a");

if(fp==NULL)

{printf("Cannotopenthefile!

\n");

exit(0);

}

for(i=0;i

{

if(strcmp(q.num,b[i].num)==0)

flag=1;

}

if(flag==0)

{

printf("该图书编号不存在,请重新输入!

\n");

borrow_book(b);

}

fclose(fp);

if(flag==1)

{

fp4=fopen("e:

\\SentInfo.txt","r");

if(fp4==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

while(!

feof(fp4))

{

fscanf(fp4,"%s%s",/*调用函数将文件中的数据读入结构变量中*/

stu[i].number,stu[i].name);

i++;

}

n=i-1;

fclose(fp4);

fp=fopen("e:

\\SentInfo.txt","a");

if(fp==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

for(i=0;i

if(strcmp(q.num,stu[i].number)==0)

{

printf("该图书已借出!

");

printf("是否继续续借?

yorn\n");

getchar();

if(getchar()=='y')

gotoA;

elsex=1;

}

}

if(x==0)/*若该图书未借出,则执行以下操作*/

printf("请输入学号:

");

scanf("%d",&m);

if((fp=fopen("e:

\\SendInfo.txt","a"))==NULL)

{

printf("Fileopenerror!

\n");

exit(0);

}

fprintf(fp,"%s%d",q.num,m);

fclose(fp);

printf("借阅成功!

\n");

printf("################################################################################\n");

}

功能模块的调试及测试

主菜单运行界面

图4.1主菜单运行界面图

查询所有图书信息模块运行界面

按1操作查询所有图书信息,

(1)打开源程序,编译程序,单击Compile按钮,出现错误,如图:

(2)错误均指向55行,经检查发现调用函数时调用的是整个结构体,而非某一个,所以应该为search_allinformation(b).

(3)改正后重新运行,即的如下所示的界面如下:

图4.2查询所有图书信息模块界面

查找某一本图书信息模块运行界面

按2选择按书名查询某一本图书信息,

若图书编号存在则界面如下:

图4.3按编号查询图书信息界面

若图书编号不存在,

(1)输入y,没有进行继续查找的操作

(2)调试程序,可查出输入的y对程序无影响,由于输入的是一个字符,而”\0”本身也是一个字符,则可将scanf(“%s”,&a)改为getchar()即可。

该后则界面如下

图4.4图书编号查询图书界面

添加图书信息模块运行界面

按3选择,输入编号,界面如下:

图4.5按图书编号添加图书界面

删除图书信息模块运行界面

按4选择,输入编号,

如果编号不存在,界面如下:

图4.6按图书编号删除图书界面

如果编号存在,界面如下:

图4.7按图书编号删除图书界面

借阅图书模块信息运行界面

按5选择,输入编号,

出现如下界面:

图4.8借阅图书界面(有错误)

调试后找出错误为文件SendInfo.txt扩展名是隐藏的,应将文件名改为SendInfo,得到如下正确界面:

图4.9借阅图书界面

如果编号不存在,界面如下:

图4.10借阅图书界面

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1