图书信息管理系统设计任务书.docx

上传人:b****7 文档编号:8982383 上传时间:2023-02-02 格式:DOCX 页数:23 大小:75.22KB
下载 相关 举报
图书信息管理系统设计任务书.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

图书信息管理系统设计任务书

图书信息管理系统设计任务书

一、目的

1.进一步掌握和利用C语言进行程设计的能力;

2、 进一步理解和运用结构化程设计的思想和方法;

3、 初步掌握开发一个小型实用系统的基本方法;

4、 学会调试一个较长程序的基本方法;

5、 学会利用流程图或N-S图表示算法;

6、 掌握书写程设计开发文档的能力(书写课程设计报告);

二、内容与设计思想。

(1)题目:

图书信息包括:

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

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

系统以菜单方式工作

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

图书信息浏览功能--输出

查询和排序功能:

(至少一种查询方式)--算法

按书名查询

按作者名查询

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

(2).系统功能与分析(填写你所设计的菜单及流程图)

截图略

流程图:

 

浏览模块流程图

 

1,2,还是3

 

按书名查找模块流程图

 

 

按作者查找模块流程图

 

插入模块流程图

(3)数据结构

typedefstructbook

{

intsort;

charbook_name[15];

charauthor_name[15];

intvert_number;

charpublish_unit[15];

charpublish_time[10];

intprice;

}B

(4).模块设计

根据功能需要:

源文件

函数名

功能

 

save()

保存

input()

输入

get()

获取

output()

输出

book_name

通过书名查找

 

author_name()

通过作者查找

modify()

修改

delet()

删除

(5)总体设计思想:

 

(6)调试过程:

测试数据及结果,出现了哪些问题

截图略

 

(7)程序有待改进的地方及本次实习的收获和建议

……

(8)源程序清单(主要代码)

#include

#include

#include

#defineLENsizeof(structbook)

typedefstructbook

{

intsort;

charbook_name[15];

charauthor_name[15];

intvert_number;

charpublish_unit[15];

charpublish_time[10];

intprice;

}B;

B*P,*p1,boo;

intnum=0,f=0;

intsave();

voidinput();

intget();

voidoutput();

voidbook_name();

voidauthor_name();

voidmodify();

voiddelet();

intmain()

{

intre=1,t,j=0;

intn,choice;

while(re==1)

{

t=1;

system("cls");

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

printf("主菜单\n\n");

printf("1.录入信息\n");

printf("2.查看信息\n");

printf("3.查询信息\n");

printf("4.删除与修改信息\n");

printf("5.退出\n");

printf("*****************************");

printf("\n");

if(j==1)printf("\n\t选择错误!

");

printf("\n\t请选择1-5:

_\b\b");

scanf("%d",&choice);

switch(choice)

{

case1:

{

printf("\n\t1:

录入信息\n");

input();

printf("\n\t1.返回主菜单;\n\t2.退出\n\t\t请选择:

_\b\b");

scanf("%d",&re);

break;

}

case2:

{

printf("\n\t2.查看信息\n");

output();

printf("\n\t1.返回主菜单;\n\t2.退出\n\t\t请选择:

_\b\b");

scanf("%d",&re);

break;

}

case3:

{

while(t==1)

{

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

printf("\n\t请选择查询方式:

\n\t1.按书名\n\t2.按作者名\n\t3.其余任意数字键返回主菜单_\b\b");

scanf("%d",&n);

if(n==1)

book_name();

elseif(n==2)

author_name();

else

{

re=1;

gotolebel;

}

printf("\n\t1.返回上一层;\n\t2.返回主菜单;\n\t3.退出\n\t请选择:

_\b\b");

scanf("%d",&t);

if(t==1)

system("cls");

if(t==2)

re=1;

if(t==3)re=0;

}

lebel:

break;

}

case4:

{

while(t==1||f==1)

{

printf("\n\t4.删除与修改信息\n");

printf("\n\t请选择:

\n\t1.删除信息;\n\t2.修改信息\n\t3.其余任意数字键返回主菜单_\b\b");

scanf("%d",&n);

if(n==1)

delet();

elseif(n==2)

modify();

else

{

re=1;

gotolebe;

}

printf("\n\t1.返回上一层;\n\t2.返回主菜单;\n\t3.退出\n\t\t请选择:

_\b\b");

scanf("%d",&t);

if(t==1)

system("cls");

if(t==2)re=1;

if(t==3)re=0;

}

lebe:

break;

}

case5:

{

re=0;

break;

}

default:

{

re=1;

j=1;

}

}

}

return0;

}

intsave()

{

FILE*fp;

inti,n=0,n1=0;

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

return0;

fprintf(fp,"%d\n",num);

for(i=0;i

{

fprintf(fp,"%d%s%s%d%s%s%d",P[i].sort,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);

fprintf(fp,"\n");

}

fclose(fp);

return1;

}

intget()

{

FILE*fp;

inti;

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

if(fp==NULL)

return0;

else

{

fscanf(fp,"%d",&num);

if(num>0)

{

P=(B*)malloc(LEN*num);

for(i=0;i

{

fscanf(fp,"%d%s%s%d%s%s%d",&P[i].sort,P[i].book_name,

P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].price);

}

fclose(fp);

return1;

}

else

{

fclose(fp);

return0;

}

}

}

voidinput()

{

intresult;

inti;

printf("\t\t要录入信息的书籍数量为:

__本\b\b");

scanf("%d",&num);

if(num>0)

{

P=(B*)malloc(LEN*num);

for(i=0;i

{

P[i].sort=i+1;

printf("\n\tNO.%d",P[i].sort);

printf("\n");

printf("\t请按序输入:

书名作者名分类号出版单位出版时间价格\n\t\t");

scanf("%s%s%d%s%s%d",P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,

P[i].publish_time,&P[i].price);

printf("\n");

}

result=save();

if(result==0)

{

printf("\t录入信息失败!

\n");

num=0;

}

if(result==1)

{

printf("\t成功录入信息!

\n");

}

}

else

{

num=0;

printf("\t输入错误!

");

}

}

voidoutput()

{

inti;

get();

if(get()==1)

{

printf("\n\t\t成功获取信息!

\n");

for(i=0;i

{

printf("\n\t\tNO.\t%d\n",P[i].sort);

printf("\t\t书名作者名序列号出版单位出版时间价格\n");

printf("\t\t%s%s%d%s%s%d",P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf("\n");

}

}

elseprintf("\t文件打开错误!

");

}

voidbook_name()

{

inti;

inttag=0;

charch[15];

printf("\t请输入书名:

_\b\b");

scanf("%s",ch);

if(get()==0)

{

printf("\t无法查询!

");

return;

}

if(get()==1)

{

for(i=0;i

{

if(strcmp(P[i].book_name,ch)==0)

{

printf("\n\t\t排列号书名作者名序列号出版单位出版时间价格\n");

printf("\t\t%d%s%s%d%s%s%d\n",P[i].sort,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);

tag=1;

}

}

if(tag==0)

{

printf("\n\t没有相关信息!

\n");

}

}

}

voidauthor_name()

{

inti;

inttag=0;

charch[15];

printf("\t请输入作者名:

_\b\b");

scanf("%s",ch);

if(get()==0)

{

printf("\t无法查询!

");

return;

}

if(get()==1)

{

for(i=0;i

if(strcmp(P[i].author_name,ch)==0)

{

printf("\n\t\t排列号书名作者名序列号出版单位出版时间价格\n");

printf("\t\t%d%s%s%d%s%s%d\n",P[i].sort,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);

tag=1;

}

if(tag==0)

{

printf("\t没有相关信息!

");

}

}

}

voidmodify()

{

intt,n,i,y=1;

intresult,z,x;

t=get();

if(t==0)

{

printf("\n\t打开文件错误,无法修改!

");

return;

}

elseif(y==1)

{

printf("\n\t您要修改信息的图书排列号为(1-%d):

_\b\b",num);

scanf("%d",&n);

if(n>=1&&n<=num)

{

for(i=0;i

{

if(P[i].sort==n)

{

printf("\n\t您即将修改以下信息:

\n");

printf("\t\t排列号书名作者名序列号出版单位出版时间价格\n");

printf("\t\t%d%s%s%d%s%s%d",P[i].sort,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf("\n\n\t确认请按1;返回请按2;返回上一层请按3_\b\b");

scanf("%d",&x);

if(x==1)

{

//p1=&boo;

printf("\t您要将信息修改为:

\n");

printf("\t\t书名:

_\b\b");

scanf("%s",P[i].book_name);

printf("\t\t作者名:

_\b\b");

scanf("%s",P[i].author_name);

printf("\t\t序列号:

_\b\b");

scanf("%d",&P[i].vert_number);

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

_\b\b");

scanf("%s",P[i].publish_unit);

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

_\b\b");

scanf("%s",P[i].publish_time);

printf("\t\t价格:

_\b\b");

scanf("%d",&P[i].price);

strcpy(P[i].book_name,P[i].book_name);

strcpy(P[i].author_name,P[i+1].author_name);

P[i].vert_number=P[i+1].vert_number;

strcpy(P[i].publish_unit,P[i+1].publish_unit);

strcpy(P[i].publish_time,P[i+1].publish_time);

P[i].price=P[i+1].price;

y=0;

z=1;

}

else

if(x==2)

{

y=1;z=0;

}

else

{

y=0;

f=1;

}

}

}

}

else

{

printf("\t输入错误,请重新输入:

");

y=1;

}

while(z==1)

{

result=save();

if(result==0)

{

printf("\n\t修改信息失败!

\n");

z=0;

}

if(result==1)

{

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

\n");

z=0;

}

}

}

return;

}

voiddelet()

{

intt,n,i,j,y=1;

intresult,z=0,x;

t=get();

if(t==0)

{

printf("\n\t打开文件错误,无法删除!

");

return;

}

else

while(y==1)

{

printf("\n\t您要删除信息的图书排列号为(1-%d):

_\b\b",num);

scanf("%d",&n);

if(n>=1&&n<=num)

{

for(i=0;i

{

if(P[i].sort==n)

{

printf("\n\t您即将删除以下信息:

\n");

printf("\t\t排列号书名作者名序列号出版单位出版时间价格\n");

printf("\t\t%d%s%s%d%s%s%d",P[i].sort,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf("\n\n\t确认请按1;返回请按2;返回上一层请按3_\b\b");

scanf("%d",&x);

if(x==1)

{

for(j=i;j

{

strcpy(P[j].book_name,P[j+1].book_name);

strcpy(P[j].author_name,P[j+1].author_name);

P[j].vert_number=P[j+1].vert_number;

strcpy(P[j].publish_unit,P[j+1].publish_unit);

strcpy(P[j].publish_time,P[j+1].publish_time);

P[j].price=P[j+1].price;

}

num=num-1;

y=0;

z=1;

}

else

if(x==2)

{

y=1;

}

else

{

y=0;

f=1;

}

}

}

}

else

{

printf("\t输入错误,请重新输入:

");

y=1;

}

while(z==1)

{

result=save();

if(result==0)

{

printf("\n\t删除信息失败!

\n");

z=0;

}

if(result==1)

{

printf("\n\t成功删除信息!

\n");

z=0;

}

}

}

return;

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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