1、大一C语言课程设计图书信息管理系统 高级语言程序设计 课程设计评语: 学 院 班 级 姓 名 学 号 成 绩 指导老师 年 月 日一、目的1 进一步掌握和利用C语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作 图书信息录入功能(图
2、书信息用文件保存)输入 图书信息浏览功能输出 查询和排序功能:(至少一种查询方式)算法 按书名查询 按作者名查询图书信息的删除与修改(可选项) (2)系统功能与分析(填写你所设计的菜单及流程图)截图略流程图:浏览模块流程图按书名查找模块流程图按作者查找模块流程图插入模块流程图(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).模块设计根据功能需要:源文
3、件函数名功能save()保存input()输入get()获取output()输出book_name通过书名查找author_name()通过作者查找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_n
4、umber; char publish_unit15; char publish_time10; 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);
5、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) case 1: printf(nt1: 录入信息n); input(); printf(n t1.返回主菜单;nt 2.退出 ntt请选择: _bb); scanf(%d,&re); break; case
6、2: printf(nt2.查看信息n); output(); printf(nt 1.返回主菜单;nt 2.退出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.返
7、回主菜单;nt 3.退出 nt 请选择: _bb); scanf(%d,&t); if(t=1) system(cls); 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.返回上一层
8、;nt 2.返回主菜单;nt 3.退出 ntt 请选择: _bb); scanf(%d,&t); if(t=1) system(cls); 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
9、(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(
10、 t录入信息失败!n); num = 0; if(result=1) printf( t成功录入信息!n); else num=0; printf( t输入错误!); void output() 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
11、.publish_unit, Pi.publish_time,Pi.price); printf(n); else printf( t文件打开错误!); void book_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;inum;i+) if(strcmp(Pi.book_name,ch)=0) printf(ntt 排列号 书名 作者名 序列号 出版单位 出版时间 价格n); prin
12、tf(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(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) f
13、or(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); sc
14、anf(%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; 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( nt删除信息失败!n); z=0; if(result=1) printf( nt成功删除信息!n); z=0; return;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1