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

大一大一C语言课程设计图书信息管理系统语言课程设计图书信息管理系统高级语言程序设计课程设计评语:
学院班级姓名学号成绩指导老师年月日一、目的1进一步掌握和利用C语言进行程设计的能力;2、?
进一步理解和运用结构化程设计的思想和方法;3、?
初步掌握开发一个小型实用系统的基本方法;4、?
学会调试一个较长程序的基本方法;5、?
学会利用流程图或N-S图表示算法;6、?
掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。
(1)题目:
图书信息包括:
登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:
系统以菜单方式工作?
图书信息录入功能(图书信息用文件保存)输入?
图书信息浏览功能输出?
查询和排序功能:
(至少一种查询方式)算法?
按书名查询?
按作者名查询图书信息的删除与修改(可选项)?
(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;charbook_name15;charauthor_name15;intvert_number;charpublish_unit15;charpublish_time10;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(主菜单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请选择:
_bb);scanf(%d,&re);break;case2:
printf(nt2.查看信息n);output();printf(nt1.返回主菜单;nt2.退出ntt请选择:
_bb);scanf(%d,&re);break;case3:
while(t=1)printf(nt3.查询信息n);printf(nt请选择查询方式:
nt1.按书名nt2.按作者名nt3.其余任意数字键返回主菜单_bb);scanf(%d,&n);if(n=1)book_name();elseif(n=2)author_name();elsere=1;gotolebel;printf(nt1.返回上一层;nt2.返回主菜单;nt3.退出nt请选择:
_bb);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(nt4.删除与修改信息n);printf(nt请选择:
nt1.删除信息;nt2.修改信息nt3.其余任意数字键返回主菜单_bb);scanf(%d,&n);if(n=1)delet();elseif(n=2)modify();elsere=1;gotolebe;printf(nt1.返回上一层;nt2.返回主菜单;nt3.退出ntt请选择:
_bb);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,%dn,num);for(i=0;i0)P=(B*)malloc(LEN*num);for(i=0;i0)P=(B*)malloc(LEN*num);for(i=0;inum;i+)Pi.sort=i+1;printf(ntNO.%d,Pi.sort);printf(n);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);printf(n);result=save();if(result=0)printf(t录入信息失败!
n);num=0;if(result=1)printf(t成功录入信息!
n);elsenum=0;printf(t输入错误!
);voidoutput()inti;get();if(get()=1)printf(ntt成功获取信息!
n);for(i=0;inum;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);printf(n);elseprintf(t文件打开错误!
);voidbook_name()inti;inttag=0;charch15;printf(t请输入书名:
_bb);scanf(%s,ch);if(get()=0)printf(t无法查询!
);return;if(get()=1)for(i=0;inum;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没有相关信息!
n);voidauthor_name()inti;inttag=0;charch15;printf(t请输入作者名:
_bb);scanf(%s,ch);if(get()=0)printf(t无法查询!
);return;if(get()=1)for(i=0;i=1&n=num)for(i=0;i=1&n=num)for(i=0;inum;i+)if(Pi.sort=n)printf(nt您即将删除以下信息:
n);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);scanf(%d,&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删除信息失败!
n);z=0;if(result=1)printf(nt成功删除信息!
n);z=0;return;