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

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

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

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

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

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

一.课程设计的内容**************************************************3

二.需求分析**********************************************************3

三.概要设计**********************************************************3

3.1软件运行开发平台*******************************************************3

3.2数据结构**************************************************************4

3.3系统结构图*************************************************************5

四.详细设计***********************************************************5

4.1头文件,变量定义,函数**************************************************5

4.2管理员登录,新用户注册模块**********************************************6

4.3菜单模块设计************************************************************9

4.4输入模块设计************************************************************9

4.5浏览模块设计***********************************************************10

4.6查询模块设计***********************************************************11

4.7删除模块设计***********************************************************12

4.8修改模块设计***********************************************************13

五.测试,结果分析**************************************************15

5.1数据分析***************************************************************15

5.2测试截图***************************************************************16

六.总结****************************************************************22

七.参考文献***********************************************************22

八.附源程序***********************************************************22

1、课程设计的内容

图书信息包括:

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

试设计一图书信息管理系统,使之能提供以下功能:

系统以菜单方式工作

图书信息录入功能(图书信息用文件保存)

图书信息浏览功能

图书信息查询功能(按书名查询,按作者名查询,按登录号查询)

图书信息的删除与修改(可选项)

扩展功能(管理员登录,新用户注册,并且每个用户都有独立的文件来保存他的信息,用户之间通过密码识别,互不影响)

2、需求分析

根据题目要求,应把图书信息用结构体形式输入,再存放入文件中储存。

所以应该提供一个结构体和文件的输入输出操作。

在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

还有,应该有管理员登录用户密码识别的模块和新用户注册的模块,以实现多用户同时使用该系统的目的,而通过用户名来保存相应的信息,用户之间互不干扰。

3、概要设计

3.1软件运行与开发平台

VisualC++简介

这个系统前台所用的开发工具是VisualC++6.0,它是Microsoft公司开发的基于C/C++的集成开发工具,是VisualStudio中功能最为强大,代码效率最高的开发工具.

VisualC++6.0跟以前的版本相比,它的编译器,调试器,连接器,编辑器,资源编辑器都有所加强,在编辑器中还提供了自动语句生成功能,编辑器会像VisualBasic那样自动提示函数的参数,对象成员.另外,VisualC++6.0还提供了许多的向导.在MFC中新增了一些类,提供了更加强大的数据访问功能.

程序员可以利用VisualC++6.0以基于WindowsAPI的C编程方式或基于MFC的C++编程方式,也可混合编程,使工作效率相对提高,开发工作量减少,源代码效率高.从面使VisualC++6.0成为目前开发Windows应用程序最好、最高效的开发工具之一。

同时在数据库系统开发方面也有很大的优势.

3.2数据结构

本系统定义了两个结构体变量,分别用来储存管理员信息与图书信息。

各模块的数据结构如下:

3.2.1菜单选择模块:

给出信息提示;

绘制菜单(包含输入、显示、查询、修改、删除、退出、排序);

提示菜单选择并读入到变量;

根据读入变量的值调用不同的模块函数;)

3.2.2   信息输入模块:

打开职工信息文件;

发出输入提示信息;

输入职工信息;

 提示是否继续输入;

读入到变量;

根据读入变量的值进入菜单或输入函数模块;)

3.2.3  信息输出模块:

输出所有图书的所有信息。

3.2.4  信息查询模块:

调用switch函数;

给出信息提示;

提示菜单选择并读入到变量;

根据读入变量的值进入不同的case;

Case1给出信息提示;

提示菜单选择并读入到变量;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息;否则,提示出错。

Case2给出信息提示;

提示菜单选择并读入到变量;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息;否则,提示出错。

3.2.5信息修改模块:

给出信息提示;

提示菜单选择并读入到变量;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并提示输入新的图书信息;否则,提示出错。

3.2.6信息删除模块:

给出信息提示;

提示菜单选择并读入到变量;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并删除该图书的图书信息;否则,提示出错。

3.2.7文件保存模块(

看文件能不能读;否则提示出错。

看文件的长度符不符合要求;否则提示出错。

保存文件)

3.3系统结构图

如图3-3

图3-3

 

4、详细设计

4.1头文件,变量定义,函数

#include

#include

#include

#defineN10

charadministrator[20];/********管理员名字**********/

structmanage

{charmanage_name[20];

charpassword[20];

};

structlibrary

{

intnum;/********登录号**********/

charbook_name[30];/********书名************/

charwriter[30];/********作者************/

charsort_num[6];/********分类号**********/

charpub_company[30];/********出版单位********/

charpub_time[30];/********出版时间********/

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

};

typedefstructlibraryLIB;

LIBlib[N];

FILE*fp;

intall=0;

voidmenu();/*菜单函数*/

voidenter();/*输入模块*/

voidbrowse();/*浏览函数*/

voidsearch();/*查询函数*/

voiddel(inty);/*删除函数*/

voidmodify(intx);/*修改函数*/

voidprintf_back();/*一个任务结束时选择浏览还是返回函数***/

voidwr_search();/********按图书作者查询函数************/

voidbn_search();/********按图书名查询函数**************/

voidid_search();/********按图书登录号查询函数**********/

voidindex();/********显示登录界面函数**************/

voidlogin();/********管理员进入函数****************/

voidbyebye();/********离开界面函数******************/

voidadm_view();/********输入登录帐号密码界面函数******/

voidnew_adm_view();/********新用户注册界面函数************/

4.2管理员登录,新用户注册模块的算法设计

4.2.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();

}

voidlogin()

{

intinput;

charinput_1;

do

{printf("\t1.管理员进入\n");

printf("\t2.新用户注册\n");

printf("\t3.退出本系统\n\n\n");

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

");

scanf("%d",&input);

switch(input)

{

case1:

{

adm_view();break;/********管理员进入界面函数************/

}

case2:

{

new_adm_view();break;/********新用户注册界面函数************/

}

case3:

{

byebye();break;/********离开界面函数************/

}

default:

{

printf("\n\t输入出错!

请重新选择~\n");

printf("\n\t按任意键返回选择页面~\n\t");

input_1=getchar();

}

}

}

while(input!

=1&&input!

=2&&input!

=3);

}

voidbyebye()

{

printf("\n\n\n\t\t*感谢您的使用*\n\n\t\t");

printf("按任意键退出本系统\n\t\t");

getchar();

exit(0);

}

4.2.2管理员进入

图4-2-2

4.2.3新用户注册

图4-2-3

 

4.3菜单模块的算法设计

开始

 

 

图4-3

首先,运行程序,进入菜单,然后选择操作(运用swith语句),调用各子函数。

在返回操作中运用while语句进行控制返回菜单。

4.4输入模块算法设计

图4-4

 

4.5浏览模块算法设计

图4-5

voidbrowse()首先,输出所有图书的信息,并输出图书记录数,然后调用辅助函数进行菜单选择,操作完成后返回主菜单。

4.6查询模块算法设计

图4-6

voidsearch()选择查询方式,1按图书登录号查询,2按作者查询,3按图书名查询然后定位,再调用输出函数;

 

4.7删除模块算法设计

/*******************删除模块**************************/

voiddel(inty)

{

charinput,ad1[20],ad2[20],ad3[20],ad4[20];

FILE*fp;

intinp,i=0,j;

LIBbook_taxis[20];

strcpy(ad1,administrator);

strcpy(ad2,administrator);

strcpy(ad3,administrator);

strcpy(ad4,administrator);

if(y==N+1)

search();

else

{

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对不起,没有该项服务~");

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

input=getchar();

}

}

while(inp!

=1&&inp!

=2);

if(inp==2)

search();

if(inp==1)

{

if((fp=fopen(strcat(ad1,".c"),"r"))!

=NULL)

{

do

{

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

i=i+1;

}

while(!

feof(fp));

fclose(fp);

}

if(i>2)

{

fp=fopen(strcat(ad2,".c"),"w");

for(j=0;j

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

fclose(fp);

fp=fopen(strcat(ad3,".c"),"a");

for(j=y+1;j

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

fclose(fp);

}

else

{

remove(strcat(ad3,".c"));

}

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

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

input=getchar();

printf_back();

}

}

}

 

4.8修改模块算法设计

/**************************修改模块**********************/

voidmodify(intx)

{

intinp,i=0,j;

FILE*fp,*fp1;

charinput,ad1[20],ad2[20];

LIBbooks,book_taxis[20];

strcpy(ad1,administrator);

strcpy(ad2,administrator);

if(x==N+1)

search();

else

{

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(i==2)

search();

if(inp==1)

{

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

printf("\t登录号:

");

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

printf("\n\t书名:

");

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

printf("\n\t作者名:

");

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

printf("\n\t分类号:

");

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

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

");

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

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

");

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

printf("\n\t价格:

");

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

if((fp1=fopen(strcat(ad1,".c"),"r"))!

=NULL)

{

do

{

fread(&book_taxis[i],sizeof(structlibrary),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();

printf_back();

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();

printf_back();

break;

}

}

book_taxis[x]=books;

fp=fopen(strcat(ad2,".c"),"w");

for(j=0;j

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

fclose(fp);

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

按任意键返回");

input=getchar();

printf_back();

 

}

}

}

 

五、测试、结果进行分析

5.1.数据分析

5.1.1实现程序:

首先进入如下界面:

1.图书信息录入

2.浏览全部

3.查询

4.删除数据

5.修改数据

6.退出

5.1.2输入“1”,后按“num登陆号”,book_name书名,writer作者名,sort_num分类号,出版社pub_conpany,出版时间pub_time,价钱price顺序输入两组数据:

“1,we,er,1,as,1234,34”

“2,ew,re,2,sa,4321,43”

5.1.3.输入“2”输出数据:

“1,we,er,1,as,1234,34”

“2,ew,re,2,sa,4321,43”

5.1.4.输入“3”查找,“请选择按书名或作者名或登录号查询:

1:

登录号

2.作者名

3.书名

输入“1“或“2”或“3”分别查询。

输入“3“和“we“,输出“1,we,er,1,as,1234,34”;输入2和“re“,输出“2,ew,re,2,sa,4321,43”,输入“1”和“1”,输出“1,we,er,1,as,1234,34”;符合要求

5.1.5输入”4”或“5“进行修改或删除。

输入修改的书名“we”显示“1,we,er,1,as,1234,34”及“pleaseinputxiugai'stheinformations”,后输入新信息。

5.1.6输入6退出。

5.2.测试截图

 

登录界面

 

图5-1

菜单界面

图5-2

输入信息界面

图5-3

浏览界面

图5-4

查询界面

图5-5

 

查询结果界面

图5-6

删除界面

图5-7

 

删除成功界面

图5-8

修改界面

图5-9

退出界面

图5-10

6、总结

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

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

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

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

在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的

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

当前位置:首页 > 高等教育 > 院校资料

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

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