收藏 分销(赏)

C语言专业课程设计报告图书信息标准管理系统.doc

上传人:快乐****生活 文档编号:4409203 上传时间:2024-09-19 格式:DOC 页数:32 大小:1.36MB 下载积分:12 金币
下载 相关 举报
C语言专业课程设计报告图书信息标准管理系统.doc_第1页
第1页 / 共32页
C语言专业课程设计报告图书信息标准管理系统.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
C语言专业课程设计报告图书信息标准管理系统 C语言课程设计报告 图书信息管理系统设计 55071-13 陈 杰 20071001797 指导老师:刘文中 C 语言程序设计 编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。 1、题目要求 设计“图书信息管理系统” 要求: 图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能: (1) 系统以菜单方式工作。 (2) 图书信息录入功能。(图书信息用文件保存)。 (3) 图书信息浏览功能。 (4) 图书信息查询功能。 (5) 图书信息的删除和修改。 2、分析: 根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。 3、总体设计: 根据题目要求,可以将系统分为六个模块: (1) 管理员登录系统模块。 (2) 菜单选择模块。 (3) 图书信息录入功能模块。 (4) 图书信息浏览功能。 (5) 图书信息查询功能。 (6) 图书信息的删除和修改。 第1页 管理员登录系统模块 菜单选择模块。 菜单选择模块。 菜单选择模块。 菜单菜单选择模块。 (1) 择模块。 图书信息录入功能模块 图书信息浏览功能模块 图书信息查询功能模块 图书信息的删除和修改 图书信息管理系统 4、详细设计: 头函数名: #include<> #include<> #include<> /*********图书信息结构体*********/ /***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/ struct bookinf { int num; ******************************************************登录号 char bname[20];*************************************** 书名 char wname[10];*************************************** 作者名 char clanum[14];*************************************** 分类号 char pubcom[10];*************************************** 出版单位 char pubtime[10];*************************************** 出版时间 float price;********************************************* 价格 }; 一管理员登录系统模块: (1) 来到图书信息管理系统页面 void index() { char input; 注释:运行时 printf("\n\n\t\t\t*****************************\n"); 直接进入 printf("\t\t\t 图书信息管理系统\n"); 这个页面 printf("\t\t\t*****************************\n\n\n"); printf(" ------------------------------------------------------------------------------\n"); printf("\t<按任意键进入>\n\t"); input=getchar(); } (2) 管理员登陆进入功能菜单页面 第2页 开始 输入管理员帐号和密码 输入正确与否 进入功能菜单页面 结束 N FILE *fp; struct manage pswd; if ((fp=fopen("","r"))==NULL) { printf("\n\n\n\tCannot open file!\n\t"); } else { do { printf("\n\n\t请输入管理员帐号:"); scanf("%s",name); printf("\n\n\t请输入管理员密码:"); scanf("%s",password); fp=fopen("","r"); fread(&pswd,sizeof(struct manage),1,fp); fclose(fp); w=strcmp(,name); k=strcmp(,password); adm_servelist(); } while (w!=0||k!=0); adm_servelist(); printf("\\n"); printf("\\n"); printf("\\n"); printf("\\n"); printf("\\n"); printf("\n\t请选择服务种类:"); scanf("%d",&in); if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6) { printf("\n\t没有这项服务~\n"); printf("\t按任意键重新选择"); input=getchar(); } } while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6); switch (in) { case 1: book_add(); break; 注释:选择自己所需要 case 2: book_view(); break; 后摁下数字键则 case 3: book_search(); break; 则进入此功能页面 case 4: del(); break; case 5: change();break; case 6: login(); break; } } (3) 图书信息录入功能模块 void book_add() { 第4页 void adm_servelist(); void book_add(); int i=0,j; FILE *fp; char input; 注释:输入的图书信息 struct bookinf books; 是通过文件进行 struct bookinf book_taxis[30]; 保存的 printf("\n\n\n\t---请输入图书信息---\n\n"); printf("\t登录号:"); scanf("%d",&); printf("\n\t书名:"); scanf("%s",); printf("\n\t作者名:"); scanf("%s",); printf("\n\t分类号:"); scanf("%s",); printf("\n\t出版单位:"); scanf("%s",); printf("\n\t出版时间:"); scanf("%s",); printf("\n\t价格:"); scanf("%f",&); if ((fp=fopen("","r"))!=NULL) { do { fread(&book_taxis[i],sizeof(struct bookinf),1,fp); i=i+1; } while(!feof(fp)); fclose(fp); for (j=0;j<=i;j++) if (==book_taxis[j].num) { printf("\n\n\n\t对不起,这个编号已经使用过了~\n"); printf("\t按任意键返回管理菜单~"); input=getchar(); adm_servelist(); break; } } if ((fp=fopen("","r"))==NULL) { 第5页 fp=fopen("","w"); } else { fclose(fp); fp=fopen("","a"); } fwrite(&books,sizeof(struct bookinf),1,fp); fclose(fp); printf("\n\n\n\t信息输入完毕~按任意键继续\n"); input=getchar(); adm_servelist(); } (4) 图书信息浏览功能模块 void book_view() { void adm_servelist(); void book_view(); int inp,i=0,n=0; FILE *fp; char input; struct bookinf bookview[20]; if ((fp=fopen("","r"))==NULL) { printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t"); input=getchar(); adm_servelist(); } else { do { fread(&bookview[i],sizeof(struct bookinf),1,fp); i=i+1; } while (!feof(fp)); fclose(fp); do { printf("\n\t--------共有%d条记录--------",i-1); printf("\n\n\t登录号: %d\n",bookview[n].num); 第6页 printf("\n\t书名: %s\n",bookview[n].bname); printf("\n\t作者名: %s\n",bookview[n].wname); printf("\n\t分类号: %s\n",bookview[n].clanum); printf("\n\t出版单位: %s\n",bookview[n].pubcom); printf("\n\t出版时间: %s\n",bookview[n].pubtime); printf("\n\t价格: %f\n",bookview[n].price); printf("\n\n\\\\n"); printf("\n\t请选择:"); scanf("%d",&inp); switch (inp) { case 1: { if (n==0) { printf("\n\t已到达首页\n\t按任意键重新选择"); input=getchar(); } else n=n-1; break; } case 2: { if (n==i-2) { printf("\n\t已到达最末页\n\t按任意键重新选择"); input=getchar(); } else n=n+1; break; } case 3: { adm_servelist(); break; } default: { printf("\n\t没有这项服务\n\t按任意键重新选择"); input=getchar(); } } } while (inp!=3); 第7页 } } (5) 图书信息修改与删除功能模块 修改: void change(int x) { int inp,i=0,j; void book_search(); FILE *fp,*fp1; char input; struct bookinf books,book_taxis[20]; do { printf("\n\n\n\t注意:您确定要修改该记录吗?\n"); printf("\n\\\n"); printf("\n\t请输入:"); scanf("%d",&inp); if (inp!=1&&inp!=2) { printf("\n\t对不起~没有这项服务~\n"); printf("\t按任意键重新选择\n\t"); input=getchar(); } } while (inp!=1&&inp!=2); if (inp==2) book_search(); if (inp==1) { printf("\n\n\n\t---请输入图书信息---\n\n"); printf("\t登录号:"); scanf("%d",&); printf("\n\t书名:"); scanf("%s",); printf("\n\t作者名:"); scanf("%s",); printf("\n\t分类号:"); scanf("%s",); printf("\n\t出版单位:"); scanf("%s",); printf("\n\t出版时间:"); scanf("%s",); 第8页 printf("\n\t价格:"); scanf("%f",&); if ((fp1=fopen("","r"))!=NULL) { do { fread(&book_taxis[i],sizeof(struct bookinf),1,fp1); i=i+1; } while(!feof(fp1)); fclose(fp1); for (j=0;j<x;j++) if (==book_taxis[j].num) { printf("\n\n\n\t对不起,这个编号已经使用过了~\n"); printf("\t按任意键返回管理菜单~"); printf("0"); input=getchar(); book_search(); break; } for (j=x+1;j<i-2;j++) if (==book_taxis[j].num) { printf("\n\n\n\t对不起,这个编号已经使用过了~\n"); printf("1"); printf("\t按任意键返回管理菜单~"); input=getchar(); book_search(); break; } } book_taxis[x]=books; fp=fopen("","w"); for (j=0;j<i-1;j++) fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp); fclose(fp); printf("\n\n\t信息修改完成!按任意键返回"); input=getchar(); book_search(); 第9页 } } S删除: void del(int y) { char input; FILE *fp; int inp,i=0,j; struct bookinf book_taxis[20]; void book_search(); void adm_servelist(); do { printf("\n\n\n\t注意:您确定要删除该记录吗?\n"); printf("\n\\\n"); printf("\n\t请输入:"); scanf("%d",&inp); if (inp!=1&&inp!=2) { printf("\n\t对不起~没有这项服务~\n"); printf("\t按任意键重新选择\n\t"); input=getchar(); } } while (inp!=1&&inp!=2); if (inp==2) book_search(); if (inp==1) { if ((fp=fopen("","r"))!=NULL) { do { fread(&book_taxis[i],sizeof(struct bookinf),1,fp); i=i+1; } while(!feof(fp)); fclose(fp); } if (i>2) { fp=fopen("","w"); 第10页 for (j=0;j<y;j++) fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp); fclose(fp); fp=fopen("","a"); for (j=y+1;j<i-1;j++) fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp); fclose(fp); } else { remove(""); } printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t"); input=getchar(); adm_servelist(); } } (6) 图书信息查询功能模块 void book_search() { void adm_servelist(); void id_search(); void wr_search(); void bn_search(); char input; FILE *fp; int inp; if ((fp=fopen("","r"))==NULL) { printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t"); input=getchar(); adm_servelist(); } else { do { printf("\n\n\n\\n"); printf("\n\\n"); 第11页 printf("\n\\n"); printf("\n\\n"); printf("\n\n\t请选择查询类别:"); scanf("%d",&inp); if (inp!=1&&inp!=2&&inp!=3&&inp!=4) { printf("\n\n\t没有这项服务~\n\t按任意键重新选择~"); input=getchar(); } } while (inp!=1&&inp!=2&&inp!=3&&inp!=4); fclose(fp); switch (inp) { case 1: id_search(); break; case 2: wr_search(); break; case 3: bn_search(); break; case 4: adm_servelist(); break; } } } 5运行与测试报告: 第12页 第13页 三 后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。 这次课程设计让我掌握了许多的有用知识。首先通过不断地学习和锻炼更加熟练地掌握应用软件Microsoft Visual C++ 了。设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。 在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的建立设计模块,不会修改出现的错误等等,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。不可避免地程序中肯定依然存在者某些问题,我希望在以后的学习和应用中不断提高自己的能力,攻克遇到的困难。 第14页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服