C语言课程设计报告图书信息管理系统.docx

上传人:b****5 文档编号:27657189 上传时间:2023-07-03 格式:DOCX 页数:20 大小:46.86KB
下载 相关 举报
C语言课程设计报告图书信息管理系统.docx_第1页
第1页 / 共20页
C语言课程设计报告图书信息管理系统.docx_第2页
第2页 / 共20页
C语言课程设计报告图书信息管理系统.docx_第3页
第3页 / 共20页
C语言课程设计报告图书信息管理系统.docx_第4页
第4页 / 共20页
C语言课程设计报告图书信息管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告图书信息管理系统.docx

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

C语言课程设计报告图书信息管理系统.docx

C语言课程设计报告图书信息管理系统

C语言课程设计报告

图书信息管理系统设计

55071-13

陈杰

指导老师:

刘文中

C语言程序设计

编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。

学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。

1、题目要求

设计“图书信息管理系统”

要求:

图书信息包括:

登录号,书名,作者名,分类号,出版单位,出版时间,价格等。

使之提供以下功能:

(1)系统以菜单方式工作。

(2)图书信息录入功能。

(图书信息用文件保存)。

(3)图书信息浏览功能。

(4)图书信息查询功能。

(5)图书信息的删除和修改。

2、分析:

根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

3、总体设计:

根据题目要求,可以将系统分为六个模块:

(1)管理员登录系统模块。

(2)菜单选择模块。

(3)图书信息录入功能模块。

(4)图书信息浏览功能。

(5)图书信息查询功能。

(6)图书信息的删除和修改。

第1页

4、详细设计:

头函数名:

#include

#include

#include

/*********图书信息结构体*********/

/***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/

structbookinf

{intnum;******************************************************登录号

charbname[20];***************************************书名

charwname[10];***************************************作者名

charclanum[14];***************************************分类号

charpubcom[10];***************************************出版单位

charpubtime[10];***************************************出版时间

floatprice;*********************************************价格

};

一管理员登录系统模块:

(1)来到图书信息管理系统页面

voidindex()

{

charinput;注释:

运行时

printf("\n\n\t\t\t*****************************\n");直接进入

printf("\t\t\t图书信息管理系统\n");这个页面

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

printf("------------------------------------------------------------------------------\n");

printf("\t<按任意键进入>\n\t");

input=getchar();

}

(2)管理员登陆进入功能菜单页面

第2页

FILE*fp;

structmanagepswd;

if((fp=fopen("password.txt","r"))==NULL)

{

printf("\n\n\n\tCannotopenfile!

\n\t");

}

else

{

do

{

printf("\n\n\t请输入管理员帐号:

");

scanf("%s",name);

printf("\n\n\t请输入管理员密码:

");

scanf("%s",password);

fp=fopen("password.txt","r");

fread(&pswd,sizeof(structmanage),1,fp);

fclose(fp);

w=strcmp(pswd.manage_name,name);

k=strcmp(pswd.password,password);

adm_servelist();

}

while(w!

=0||k!

=0);

adm_servelist();

}

}

(3)来到功能菜单页面

第3页

voidadm_servelist()

{

voidbook_add();

voidbook_view();

voidchange();

voiddel();

voidbook_search();

voidlogin();

voidpwchange();

intin;注释:

菜单列出的服务种类

charinput;从1,2,3,4,5,6

do所对应的功能进行选择

{

printf("\n\n\n\t--欢迎使用信息管理系统--");

printf("\n\n\t1.图书信息录入\n");

printf("\t2.图书信息浏览\n");

printf("\t3.图书信息查询\n");

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

printf("\t5.图书信息修改\n");

printf("\t6.退出管理模式\n");

printf("\n\t请选择服务种类:

");

scanf("%d",&in);

if(in!

=1&&in!

=2&&in!

=3&&in!

=4&&in!

=5&&in!

=6)

{

printf("\n\t没有这项服务~\n");

printf("\t按任意键重新选择");

input=getchar();

}

}

while(in!

=1&&in!

=2&&in!

=3&&in!

=4&&in!

=5&&in!

=6);

switch(in)

{

case1:

book_add();break;注释:

选择自己所需要

case2:

book_view();break;后摁下数字键则

case3:

book_search();break;则进入此功能页面

case4:

del();break;

case5:

change();break;

case6:

login();break;

}

}

(3)图书信息录入功能模块

voidbook_add()

{

第4页

voidadm_servelist();

voidbook_add();

inti=0,j;

FILE*fp;

charinput;注释:

输入的图书信息

structbookinfbooks;是通过文件进行

structbookinfbook_taxis[30];保存的

printf("\n\n\n\t---请输入图书信息---\n\n");

printf("\t登录号:

");

scanf("%d",&books.num);

printf("\n\t书名:

");

scanf("%s",books.bname);

printf("\n\t作者名:

");

scanf("%s",books.wname);

printf("\n\t分类号:

");

scanf("%s",books.clanum);

printf("\n\t出版单位:

");

scanf("%s",books.pubcom);

printf("\n\t出版时间:

");

scanf("%s",books.pubtime);

printf("\n\t价格:

");

scanf("%f",&books.price);

if((fp=fopen("book.txt","r"))!

=NULL)

{

do

{

fread(&book_taxis[i],sizeof(structbookinf),1,fp);

i=i+1;

}

while(!

feof(fp));

fclose(fp);

for(j=0;j<=i;j++)

if(books.num==book_taxis[j].num)

{

printf("\n\n\n\t对不起,这个编号已经使用过了~\n");

printf("\t按任意键返回管理菜单~");

input=getchar();

adm_servelist();

break;

}

}

if((fp=fopen("book.txt","r"))==NULL)

{

第5页

fp=fopen("book.txt","w");

}

else

{

fclose(fp);

fp=fopen("book.txt","a");

}

fwrite(&books,sizeof(structbookinf),1,fp);

fclose(fp);

printf("\n\n\n\t信息输入完毕~按任意键继续\n");

input=getchar();

adm_servelist();

}

(4)图书信息浏览功能模块

voidbook_view()

{

voidadm_servelist();

voidbook_view();

intinp,i=0,n=0;

FILE*fp;

charinput;

structbookinfbookview[20];

if((fp=fopen("book.txt","r"))==NULL)

{

printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");

printf("\n\t<按任意键返回管理菜单>\n\t");

input=getchar();

adm_servelist();

}

else

{

do

{

fread(&bookview[i],sizeof(structbookinf),1,fp);

i=i+1;

}

while(!

feof(fp));

fclose(fp);

do

{

printf("\n\t--------共有%d条记录--------",i-1);

printf("\n\n\t登录号:

%d\n",bookview[n].num);

第6页

printf("\n\t书名:

%s\n",bookview[n].bname);

printf("\n\t作者名:

%s\n",bookview[n].wname);

printf("\n\t分类号:

%s\n",bookview[n].clanum);

printf("\n\t出版单位:

%s\n",bookview[n].pubcom);

printf("\n\t出版时间:

%s\n",bookview[n].pubtime);

printf("\n\t价格:

%f\n",bookview[n].price);

printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n");

printf("\n\t请选择:

");

scanf("%d",&inp);

switch(inp)

{

case1:

{

if(n==0)

{

printf("\n\t已到达首页\n\t按任意键重新选择");

input=getchar();

}

elsen=n-1;break;

}

case2:

{

if(n==i-2)

{

printf("\n\t已到达最末页\n\t按任意键重新选择");

input=getchar();

}

elsen=n+1;break;

}

case3:

{

adm_servelist();

break;

}

default:

{

printf("\n\t没有这项服务\n\t按任意键重新选择");

input=getchar();

}

}

}

while(inp!

=3);

第7页

}

}

(5)图书信息修改与删除功能模块

修改:

voidchange(intx)

{

intinp,i=0,j;

voidbook_search();

FILE*fp,*fp1;

charinput;

structbookinfbooks,book_taxis[20];

do

{

printf("\n\n\n\t注意:

您确定要修改该记录吗\n");

printf("\n\t1.是\t2.否\n");

printf("\n\t请输入:

");

scanf("%d",&inp);

if(inp!

=1&&inp!

=2)

{

printf("\n\t对不起~没有这项服务~\n");

printf("\t按任意键重新选择\n\t");

input=getchar();

}

}

while(inp!

=1&&inp!

=2);

if(inp==2)

book_search();

if(inp==1)

{

printf("\n\n\n\t---请输入图书信息---\n\n");

printf("\t登录号:

");

scanf("%d",&books.num);

printf("\n\t书名:

");

scanf("%s",books.bname);

printf("\n\t作者名:

");

scanf("%s",books.wname);

printf("\n\t分类号:

");

scanf("%s",books.clanum);

printf("\n\t出版单位:

");

scanf("%s",books.pubcom);

printf("\n\t出版时间:

");

scanf("%s",books.pubtime);

第8页

printf("\n\t价格:

");

scanf("%f",&books.price);

if((fp1=fopen("book.txt","r"))!

=NULL)

{

do

{

fread(&book_taxis[i],sizeof(structbookinf),1,fp1);

i=i+1;

}

while(!

feof(fp1));

fclose(fp1);

for(j=0;j

if(books.num==book_taxis[j].num)

{

printf("\n\n\n\t对不起,这个编号已经使用过了~\n");

printf("\t按任意键返回管理菜单~");

printf("0");

input=getchar();

book_search();

break;

}

for(j=x+1;j

if(books.num==book_taxis[j].num)

{

printf("\n\n\n\t对不起,这个编号已经使用过了~\n");

printf("1");

printf("\t按任意键返回管理菜单~");

input=getchar();

book_search();

break;

}

}

book_taxis[x]=books;

fp=fopen("book.txt","w");

for(j=0;j

fwrite(&book_taxis[j],sizeof(structbookinf),1,fp);

fclose(fp);

printf("\n\n\t信息修改完成!

按任意键返回");

input=getchar();

book_search();

第9页

}

}

S删除:

voiddel(inty)

{

charinput;

FILE*fp;

intinp,i=0,j;

structbookinfbook_taxis[20];

voidbook_search();

voidadm_servelist();

do

{

printf("\n\n\n\t注意:

您确定要删除该记录吗\n");

printf("\n\t1.是\t2.否\n");

printf("\n\t请输入:

");

scanf("%d",&inp);

if(inp!

=1&&inp!

=2)

{

printf("\n\t对不起~没有这项服务~\n");

printf("\t按任意键重新选择\n\t");

input=getchar();

}

}

while(inp!

=1&&inp!

=2);

if(inp==2)

book_search();

if(inp==1)

{

if((fp=fopen("book.txt","r"))!

=NULL)

{

do

{

fread(&book_taxis[i],sizeof(structbookinf),1,fp);

i=i+1;

}

while(!

feof(fp));

fclose(fp);

}

if(i>2)

{

fp=fopen("book.txt","w");

第10页

for(j=0;j

fwrite(&book_taxis[j],sizeof(structbookinf),1,fp);

fclose(fp);

fp=fopen("book.txt","a");

for(j=y+1;j

fwrite(&book_taxis[j],sizeof(structbookinf),1,fp);

fclose(fp);

}

else

{

remove("book.txt");

}

printf("\n\n\t记录已删除!

\n\n\t按任意键返回\n\t");

input=getchar();

adm_servelist();

}

}

(6)图书信息查询功能模块

voidbook_search()

{

voidadm_servelist();

voidid_search();

voidwr_search();

voidbn_search();

charinput;

FILE*fp;

intinp;

if((fp=fopen("book.txt","r"))==NULL)

{

printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");

printf("\n\t<按任意键返回管理菜单>\n\t");

input=getchar();

adm_servelist();

}

else

{

do

{

printf("\n\n\n\t1.按图书登录号查询\n");

printf("\n\t2.按图书作者查询\n");

第11页

printf("\n\t3.按图书名查询\n");

printf("\n\t4.回到主菜单\n");

printf("\n\n\t请选择查询类别:

");

scanf("%d",&inp);

if(inp!

=1&&inp!

=2&&inp!

=3&&inp!

=4)

{

printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");

input=getchar();

}

}

while(inp!

=1&&inp!

=2&&inp!

=3&&inp!

=4);

fclose(fp);

switch(inp)

{

case1:

id_search();break;

case2:

wr_search();break;

case3:

bn_search();break;

case4:

adm_servelist();break;

}

}

}

5运行与测试报告:

第12页

第13页

三后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。

这次课程设计让我掌握了许多的有用知识。

首先通过不断地学习和锻炼更加熟练地掌握应用软件MicrosoftVisualC++6.0了。

设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。

同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。

在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的建立设计模块,不会修改出现的错误等等,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。

不可避免地程序中肯定依然存在者某些问题,我希望在以后的学习和应用中不断提高自己的能力,攻克遇到的困难。

第14页

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

当前位置:首页 > 初中教育 > 英语

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

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