1、大一C语言课程设计图书信息管理系统312020年4月19日文档仅供参考,不当之处,请联系改正。 高级语言程序设计 课程设计评语: 学 院 班 级 姓 名 学 号 成 绩 指导老师 年 月 日一、目的1 进一步掌握和利用C语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,
2、使之能提供以下功能:系统以菜单方式工作v图书信息录入功能(图书信息用文件保存)输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按书名查询l 按作者名查询图书信息的删除与修改(可选项)v(2)系统功能与分析(填写你所设计的菜单及流程图)截图略流程图: 显示图书记录返回主菜单退出浏览模块流程图按书名查找模块1,2,还是3用户作出选择,输入一整型数值用户作出选择,输入一整型数值1,2,还是3 返回主菜单退出 返回上一层按书名查找模块流程图按作者名称查找模块用户作出选择,输入一整型数值1,2,还是3 返回主菜单 返回上一层退出按作者查找模块流程图删除或修改模块 用户作出选择,
3、输入一整型数值 调用删除或修改函数,调用读取函数用户输入修改或删除信息用户作出选择,输入1或2或31,2或3 2. 返回1.确认 3.返回上一层插入模块流程图(3)数据结构typedef struct book int sort;char book_name15;char author_name15;int vert_number;char publish_unit15;char publish_time10;int price;B(4).模块设计根据功能需要:源文件函数名功能save()保存input()输入get()获取output()输出book_name经过书名查找author_nam
4、e()经过作者查找modify()修改delet()删除(5)总体设计思想:图书信息管理系统数据输入数据浏览数据查找删除和修改退出(6)调试过程: 测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议(8)源程序清单(主要代码)#include#include#include#define LEN sizeof(struct book)typedef struct book int sort;char book_name15;char author_name15;int vert_number;char publish_unit15;char publish_ti
5、me10;int price;B;B *P,*p1,boo;int num=0,f=0;int save();void input();int get();void output();void book_name();void author_name();void modify();void delet();int main() int re=1,t,j=0;int n,choice;while(re=1) t=1;system(cls); printf( *n);printf( 主菜单 nn); printf( 1.录入信息n); printf( 2.查看信息n); printf( 3.查询
6、信息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)case 1:printf(nt1: 录入信息n); input();printf(n t1.返回主菜单;nt 2.退出 ntt请选择: _bb);scanf(%d,&re); break; case 2: printf(nt2.查看信息n); output();printf(nt 1.返回主菜单;nt 2.退
7、出ntt请选择: _bb);scanf(%d,&re); break; case 3:while(t=1)printf(nt3.查询信息n); printf(nt 请选择查询方式:nt 1.按书名nt 2.按作者名nt 3.其余任意数字键返回主菜单 _bb); scanf(%d,&n); if(n=1)book_name(); else if(n=2) author_name(); else re=1; goto lebel; printf(nt 1.返回上一层;nt 2.返回主菜单;nt 3.退出 nt 请选择: _bb); scanf(%d,&t);if(t=1)system(cls);
8、if(t=2) re=1; if(t=3) re=0; lebel: break;case 4:while(t=1|f=1)printf(nt4.删除与修改信息n); printf(nt 请选择:nt 1.删除信息;nt 2.修改信息n t 3.其余任意数字键返回主菜单 _bb); scanf(%d,&n); if(n=1)delet(); else if(n=2)modify(); else re=1; goto lebe; printf(nt 1.返回上一层;nt 2.返回主菜单;nt 3.退出 ntt 请选择: _bb); scanf(%d,&t); if(t=1)system(cls)
9、; if(t=2) re=1; if(t=3) re=0; lebe: break;case 5:re=0; break;default:re=1;j=1;return 0;int save()FILE *fp;int i,n=0,n1=0;if(fp=fopen(book.txt,a+)=NULL)return 0;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
10、.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);else num=0;printf( t输入错误!);void outpu
11、t()int i;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);else printf( t文件打开错误!); void book_name()int i;i
12、nt tag=0; char ch15;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
13、,Pi.price); tag =1;if (tag = 0)printf(n t没有相关信息!n);void author_name()int i;int tag=0; char ch15;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 排列号 书名 作者名 序列号 出版单位 出版时间
14、价格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_num
15、ber=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; else if(x=2) y=1;else y=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;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100