分享
分销 收藏 举报 申诉 / 19
播放页_导航下方通栏广告

类型C语言图书管理系统课程设计论文.doc

  • 上传人:二***
  • 文档编号:4496064
  • 上传时间:2024-09-25
  • 格式:DOC
  • 页数:19
  • 大小:156KB
  • 下载积分:5 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 图书 管理 系统 课程设计 论文
    资源描述:
    第三章 图书管理系统的设计与实现 3.1系统的需求分析 图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作 系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作 3.2系统的设计 3.2.1 系统的总统设计 下面从系统的整体流程的功能模块、系统界面与数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆的情况。 (2)系统模块结构图 根据需求分析结果,图书管理系统可以分为三大模块:查询图书模块、借书功能模块、还书功能模块。 系统模块结构如图: 图书管理系统 还书功能系统 借书功能系统 图 书 管理主菜单 图书查询系统 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。 ㈡查询图书信息 进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。 图书查询模块流程如图: 开始 提示输入图书编号、书名、作者 输入正确 查询 否 是 重新输入 是 退出系统 否 3.3 测试结果 系统主界面 功能菜单 查询系统菜单 借还系统菜单 3.4 源代码 # include <stdio.h> # include <stdlib.h> # include <string.h> typedef struct link { char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100]; float price; char status[100]; struct link *next; }link; link *Cbook() { int n=0; link *p,*q,*head; FILE *fp; fp=fopen("图书信息.txt","r+"); if(fp==NULL) printf("没有找到文件,请检查……"); p=(link *)malloc(sizeof(link)); if(p==NULL) printf("申请存出错!!!\n"); fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p->publish,p->time); fscanf(fp,"%f",&p->price); fscanf(fp,"%s",p->status); while(feof(fp)==0) { n++; if(n==1) { head=p; } else { q=p; p=(link *)malloc(sizeof(link)); if(p==NULL) printf("申请存出错!!!\n"); fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p->publish,p->time); fscanf(fp,"%f",&p->price); fscanf(fp,"%s",p->status); q->next=p; } } p->next=NULL; fclose(fp); printf("信息已录入!!!"); return head; } void mainmenu() { printf("\n*****************************************\n"); printf("\n** 欢迎使用图书管理系统 **\n"); printf("\n** 1.进入系统 0.退出系统 **\n"); printf("\n*****************************************\n"); printf("\n 请选择"); } void menu1() { printf("\n*****************************************\n"); printf("\n** 1.进入图书查询系统 **\n"); printf("\n** 2.进入图书借还系统 **\n"); printf("\n** 3.保存所有图书信息 **\n"); printf("\n** 4.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择"); } void cxmenu() { printf("\n*****************************************\n"); printf("\n** 1.显示所有图书信息 **\n"); printf("\n** 2.按编号查询图书 **\n"); printf("\n** 3.按书名查询图书 **\n"); printf("\n** 4.按作者查询图书 **\n"); printf("\n** 5.返回上级菜单 **\n"); printf("\n****************************************\n"); printf("\n请选择"); } void jhmenu() { printf("\n*****************************************\n"); printf("\n** 1.借书 **\n"); printf("\n** 2.还书 **\n"); printf("\n** 3.返回上级菜单 **\n"); printf("\n*****************************************\n"); printf("\n请选择"); } void print(link *head) { link *p; p=head; printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t\t\t出版时间\t\t价格\t\t状态\n"); while(p!=NULL) { printf("\n"); printf("%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); printf("\t\t%.2f",p->price); printf("\t\t%s",p->status); printf("\n"); p=p->next; } } void hold(link *head) { link *p; FILE *fp; fp=fopen("图书信息.txt","w+"); if(fp==NULL) { printf("文件操作出错!!!"); exit(1); } p=head; for(;p!=NULL;p=p->next) { fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); fprintf(fp,"\t\t%.2f",p->price); fprintf(fp,"\t\t%s",p->status); fprintf(fp,"\n"); } fclose(fp); printf("信息已保存。"); } void holdcx(link *t) { link *p=NULL; FILE *fp; fp=fopen("查询.txt","a+"); p=t; fprintf(fp,"查询到的信息为:\n"); fprintf(fp,"\n"); fprintf(fp,"\n**************************************************\n"); fprintf(fp,"\n编号\t\t书名\t\t作者\t\t\t\t出版时间\t\t价格\t\t状态\n"); fprintf(fp,"\n"); fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time); fprintf(fp,"\t\t%.2f",p->price); fprintf(fp,"\t\t%s",p->status); fprintf(fp,"\n"); fclose(fp); printf("信息已保存!!!"); } link *findnumber(link *head) { char key[100]; link *h,*t1=NULL; printf("请输入图书的编号:"); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->number)==0) { t1=h; break; } } return t1; } link *findboookname(link *head) { char key[100]; link *h,*t2=NULL; printf("请输入图书的书名:"); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->bookname)==0) { t2=h; break; } } return t2; } link *findauthor(link *head) { char key[100]; link *h,*t3=NULL; printf("请输入 "); getchar(); gets(key); for(h=head;h!=NULL;h=h->next) { if(strcmp(key,h->author)==0) { t3=h; break; } } return t3; } link *sortnumber(link *head) { link *p,*q,*temp; temp=(link *)malloc(sizeof(link)); if(temp==NULL) { printf("申请存出错!!!"); exit(1); } for(p=head;p!=NULL;p=p->next) { for(q=p->next;q!=NULL;q=q->next) { if(strcmp(p->number,q->number)>0) { strcpy(temp->number,p->number); strcpy(temp->bookname,p->bookname); strcpy(temp->author,p->author); strcpy(temp->publish,p->publish); strcpy(temp->time,p->time); temp->price=p->price; strcpy(temp->status,p->status); strcpy(p->number,q->number); strcpy(p->bookname,q->bookname); strcpy(p->author,q->author); strcpy(p->publish,q->publish); strcpy(p->time,q->time); p->price=q->price; strcpy(p->status,temp->status); strcpy(q->number,temp->number); strcpy(q->bookname,temp->bookname); strcpy(q->author,temp->author); strcpy(q->publish,temp->publish); strcpy(q->time,temp->time); q->price=temp->price; strcpy(q->status,temp->status); } } } return head; } link *borrowbook(link *head) { link *h,*p; char ch,ch1[100]="在库",ch2[100]="不在库"; h=head; printf("\n**************************************************\n"); printf("\t\t欢迎使用借书系统!!!\n"); p=findboookname(h); if(p==NULL) printf("借书失败,书库中没有这本书!!!"); else if(strcmp(p->status,ch2)==0) printf("借书失败,图书不在库!!!"); else { printf("确认借出?Y/N:"); scanf("%c",&ch); getchar(); if(ch=='Y'||ch=='y') { strcpy(p->status,ch2); printf("借书成功,请返回上级菜单保存信息!!!"); } if(ch=='N'||ch=='n') { printf("你没有借任何书!!!"); } } return head; } link *returnbook(link *head) { link *h,*p; char ch,ch1[100]="在库",ch2[100]="不在库"; h=head; printf("\n**************************************************\n"); printf("\t\t欢迎使用还书系统!!!\n"); p=findboookname(h); if(p==NULL) printf("还书失败,这不是本书库的书!!"); else { printf("确认还书?Y/N:"); scanf("%c",&ch); getchar(); if(ch=='Y'||ch=='y') { strcpy(p->status,ch1); printf("还书成功,请返回上级菜单保存信息!!!"); } if(ch=='N'||ch=='n') { printf("你没有还书!!!"); } } return head; } void main() { int a,b,c,d; link *h,*t; L:system("cls"); mainmenu(); while(1) { scanf("%d",&a); switch(a) { case 1: { B: system("cls"); menu1(); while(1) { scanf("%d",&b); switch(b) { case 1: { system("cls"); cxmenu(); while(1) { scanf("%d",&c); switch(c) { case 1: { print(h); }break; case 2: { t=findnumber(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } }break; case 3: { t=findboookname(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } }break; case 4: { t=findauthor(h); if(t==NULL) printf("没有要查询的图书!!!"); if(t!=NULL) { printf("查询的图书为:"); printf("\n"); printf("\n**************************************************\n"); printf("\n编号\t\t书名\t\t作者\t\t\t\t出版时间\t\t价格\t\t状态\n"); printf("\n"); printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time); printf("\t\t%.2f",t->price); printf("\t\t%s",t->status); printf("\n"); } } break; case 5: { goto B; }break; } } }break; case 2: { system("cls"); jhmenu(); while(1) { scanf("%d",&d); switch(d) { case 1: { borrowbook(h); }break; case 2: { returnbook(h); }break; case 3: { goto B; }break; } } }break; case 3: { hold(h); }break; case 4: { goto L; }break; } } }break; case 0: { printf("\t\t\t感使用,再见!!!"); exit(0); } } } } 第四章 心得体会 经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。 通过该课程设计,掌握了编译程序工作的基本过程与其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程与其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。 课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以与充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。 参考文献 谭洁强 《C程序设计》 清华大学 基温 《C程序设计案例教程》 清华大学 王宏 《C#程序设计案例教程》 清华大学 18 / 19
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:C语言图书管理系统课程设计论文.doc
    链接地址:https://www.zixin.com.cn/doc/4496064.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork