大一C语言课程设计图书信息管理系统Word下载.docx
《大一C语言课程设计图书信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《大一C语言课程设计图书信息管理系统Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
系统以菜单方式工作?
图书信息录入功能(图书信息用文件保存)输入?
图书信息浏览功能输出?
查询和排序功能:
(至少一种查询方式)算法?
按书名查询?
按作者名查询图书信息的删除与修改(可选项)?
(2)系统功能与分析(填写你所设计的菜单及流程图)截图略流程图:
显示图书记录浏览模块流程图按书名查找模块流程图按作者查找模块流程图插入模块流程图(3)数据结构typedefstructbookintsort;
charbook_name15;
charauthor_name15;
intvert_number;
charpublish_unit15;
charpublish_time10;
intprice;
B(4).模块设计根据功能需要:
源文件函数名功能save()保存input()输入get()获取output()输出book_name通过书名查找author_name()通过作者查找modify()修改delet()删除(5)总体设计思想:
(6)调试过程:
测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议(8)源程序清单(主要代码)#include#include#include#defineLENsizeof(structbook)typedefstructbookintsort;
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(主菜单nn);
printf(1.录入信息n);
printf(2.查看信息n);
printf(3.查询信息n);
printf(4.删除与修改信息n);
printf(5.退出n);
printf(*);
printf(n);
if(j=1)printf(nt选择错误!
);
printf(nt请选择1-5:
_bb);
scanf(%d,&
choice);
switch(choice)case1:
printf(nt1:
录入信息n);
input();
printf(nt1.返回主菜单;
nt2.退出ntt请选择:
re);
break;
case2:
printf(nt2.查看信息n);
output();
case3:
while(t=1)printf(nt3.查询信息n);
printf(nt请选择查询方式:
nt1.按书名nt2.按作者名nt3.其余任意数字键返回主菜单_bb);
n);
if(n=1)book_name();
elseif(n=2)author_name();
elsere=1;
gotolebel;
printf(nt1.返回上一层;
nt2.返回主菜单;
nt3.退出nt请选择:
t);
if(t=1)system(cls);
if(t=2)re=1;
if(t=3)re=0;
lebel:
case4:
while(t=1|f=1)printf(nt4.删除与修改信息n);
printf(nt请选择:
nt1.删除信息;
nt2.修改信息nt3.其余任意数字键返回主菜单_bb);
if(n=1)delet();
elseif(n=2)modify();
gotolebe;
nt3.退出ntt请选择:
lebe:
case5:
re=0;
default:
re=1;
j=1;
return0;
intsave()FILE*fp;
inti,n=0,n1=0;
if(fp=fopen(book.txt,a+)=NULL)return0;
fprintf(fp,%dn,num);
for(i=0;
i0)P=(B*)malloc(LEN*num);
inum;
i+)Pi.sort=i+1;
printf(ntNO.%d,Pi.sort);
printf(t请按序输入:
书名作者名分类号出版单位出版时间价格ntt);
scanf(%s%s%d%s%s%d,Pi.book_name,Pi.author_name,&
Pi.vert_number,Pi.publish_unit,Pi.publish_time,&
Pi.price);
result=save();
if(result=0)printf(t录入信息失败!
num=0;
if(result=1)printf(t成功录入信息!
elsenum=0;
printf(t输入错误!
voidoutput()inti;
get();
if(get()=1)printf(ntt成功获取信息!
i+)printf(nttNO.t%dn,Pi.sort);
printf(tt书名作者名序列号出版单位出版时间价格n);
printf(tt%s%s%d%s%s%d,Pi.book_name,Pi.author_name,Pi.vert_number,Pi.publish_unit,Pi.publish_time,Pi.price);
elseprintf(t文件打开错误!
voidbook_name()inti;
inttag=0;
charch15;
printf(t请输入书名:
scanf(%s,ch);
if(get()=0)printf(t无法查询!
return;
if(get()=1)for(i=0;
i+)if(strcmp(Pi.book_name,ch)=0)printf(ntt排列号书名作者名序列号出版单位出版时间价格n);
printf(tt%d%s%s%d%s%s%dn,Pi.sort,Pi.book_name,Pi.author_name,Pi.vert_number,Pi.publish_unit,Pi.publish_time,Pi.price);
tag=1;
if(tag=0)printf(nt没有相关信息!
voidauthor_name()inti;
printf(t请输入作者名:
i=1&
n=num)for(i=0;
i+)if(Pi.sort=n)printf(nt您即将删除以下信息:
printf(tt排列号书名作者名序列号出版单位出版时间价格n);
printf(tt%d%s%s%d%s%s%d,Pi.sort,Pi.book_name,Pi.author_name,Pi.vert_number,Pi.publish_unit,Pi.publish_time,Pi.price);
printf(nnt确认请按1;
返回请按2;
返回上一层请按3_bb);
x);
if(x=1)for(j=i;
jnum-1;
j+)strcpy(Pj.book_name,Pj+1.book_name);
strcpy(Pj.author_name,Pj+1.author_name);
Pj.vert_number=Pj+1.vert_number;
strcpy(Pj.publish_unit,Pj+1.publish_unit);
strcpy(Pj.publish_time,Pj+1.publish_time);
Pj.price=Pj+1.price;
num=num-1;
y=0;
z=1;
elseif(x=2)y=1;
elsey=0;
f=1;
elseprintf(t输入错误,请重新输入:
y=1;
while(z=1)result=save();
if(result=0)printf(nt删除信息失败!
z=0;
if(result=1)printf(nt成功删除信息!