欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新C语言《图书借阅管理系统》课程设计报告.doc

    • 资源ID:34715980       资源大小:508KB        全文页数:82页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新C语言《图书借阅管理系统》课程设计报告.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言图书借阅管理系统课程设计报告C语言课程设计课 程 设 计 报 告课程名称 C语言程序设计 课题名称 图书借阅管理系统 专 业 机械设计 班 级 15机械二班 学 号 2015030220 姓 名 指导教师 2016年 6 月 14日西安理工大学高科学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 图书借阅管理系统 专业班级 网络工程1002班 学生姓名 学 号 201003120224 指导老师 唐北平、陈淑红、谭小兰审 批 任务书下达日期 2011 年 6 月20 日任务完成日期 2011 年 7 月 03 日一、设计内容与设计要求1设计内容:对一个有N本图书的图书馆,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。(2)、本系统显示这样的菜单:a. 图书基本信息录入b. 图书基本信息显示c. 图书基本信息删除d. 图书基本信息修改e. 图书基本信息查询(按书号查询、书名等) g. 退出系统(3)、执行一个具体的功能之后,程序将重新显示菜单。2设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5. 上机演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 二、进度安排第 十八 周 星期1 8时00分11时30分星期2 14时00分18时15分 星期3 8时00分11时30分 星期4 8时00分11时30分 第 十九 周 星期1 8时00分11时30分星期2 14时00分18时15分 三、课程设计报告1.程序设计准备做系统前,首先,自己详细看了C程序设计(教科书),基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。2.程序设计说明根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。3.程序的主要功能 图书管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图书信息的显示、图书信息的删除、图书信息的修改、图书信息的查询。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、图书基本信息录入:对新到图书馆的图书的信息(编号、书名、出版社、作者、价格)进行录入。2、图书基本信息显示:显示已被录入图书的所有信息。3、图书基本信息删除:通过输入书名,判断此图书是否存在,若存在, 则删除该图书所有信息,若不存在则提示用户重新输入图书书名。4、图书基本信息修改:通过输入书名,判断此图书是否存在,若不存在则提示用户重新输入图书书名,若存在,则可对图书各项信息进行修改。 5、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、价格等显示在屏幕上。6、退出系统:即退出图书借阅管理系统。使用模块化编程的方法每项功能有一个或多个函数组合来完成,其中菜单选项模块对应如下: 图书基本信息录入=> void insert() 图书基本信息显示=> void print()图书基本信息删除=> void del() 图书基本信息修改=> void modify() 图书基本信息查询=> void find()这份代码中各个变量的定义如下: num 图书编号 name 书名 author 作者 pub 出版社 where 出版日期 count 单价四.功能模块的划分1.主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。2.图书基本信息显示模块 当用户选择图书基本信息显示时,程序会将所有图书信息列出。3.图书基本信息输入模块在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号(编号为0时结束输入),然后继续输入图书书名,作者,出版社,出版日期,单价等信息。结束输入时提示用户图书输入完成4.图书基本信息查询模块用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。 5.图书基本信息删除模块用户输入所要删除的图书书名,先查找该图书是否存在,若存在,则删除该图书所有信息,若不存在则提示无此图书信息。 6.图书基本信息录入模块首先输入图书录入的编号(不为0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。 7.图书基本信息修改模块用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。8.读文件模块 在运行该程序时,程序会自动检测是否存在图书信息,若存在,则会显示图书信息,若不存在,则会提示用户创建文件库,录入图书信息。9.文件保存模块 当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和新的图书信息。五.主要功能的实现 程序运行流程:但每个模块运行完即会回到主函数,然后选择其他或退出。六.程序调试1.第一次运行程序时,库文件不存在图书信息,于是录入图书信息。图书编号书名作者出版社出版日期单价1英语张三人民教育出版社2011.06302.主界面。3. 在主界面选择1,开始录入新的图书信息。图书编号书名作者出版社出版日期单价2数学李四高等教育出版社2011.06284. 在主界面选择2,查询图书信息,按1或2分别选择按书名或书号查询。(以英语为例)选择2,按书号查找,输入书号:1,即可查询图书英语所有信息。选择1,按书名查找,输入书名:英语,即可获得图书英语所有信息。5.在主界面选择3,对图书资料进行删除(以数学为例),在后续图书信息显示时无数学图书信息。6.在主界面选择4,对图书进行修改(以英语为例,修改图书作者,将作者更换为王五),在后续图书基本信息显示时,作者不将是张三,而是王五。7.在主界面选择5,图书基本信息显示,此时图书信息经过删除和修改,和初始信息不同。七.总结通过为期一周的课程设计,对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们网络工程专业的学习中占据着十分重要的地位。自己C语言编程的能力有了提高,特别是在文件、指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。循环是C语言的重要方法,也是本程序的灵魂,它在本程序中既有“穿针引线”的作用,也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用循环过程中对循环进行了多方法的应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本程序中有很大的好处。 函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,但也有了一定的联系性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会,有了很大提高。结构体的使用,为本程序提供了很大方便,也提高了程序的可读性,结构数组方便了对数据的管理。 这个程序的结构大体是从网络上借鉴的,但是大部分功能模块与任务要求不同,只能自己修改,最后终于调试通过,同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。同时提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。八附件原代码清单及注释#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #define N sizeof(struct book)#define PT "%-5d %10s %6s %6s %8s %3d n",p->num,p->name,p->author,p->pub,p->where,p->countstruct book /*图书信息*/ int num; /*书号*/ char name10; /*书名*/ char where10; /*出版日期*/ char author15; /*作者*/ char pub20; /*出版社*/ int count; /*单价*/ struct book *next;void find1 (struct book *p0);void find2 (struct book *p0);/*输出模块*/void print(struct book *p0) struct book *p; system("cls"); p=p0->next; printf("nn图书信息表"); printf("nn图书编号-图书名称-作者-出版社-出版日期-单价nn"); while(p!=NULL) printf(PT); p=p->next; getch(); /输入任意值返回 system("cls");/*输入模块*/struct book *creat() struct book *head,*p1,*p2; int i=0; head=p2=(struct book *)malloc(N);/分配新的内存给p2 head->next=NULL; printf("nntt录入图书信息"); printf("n-"); while(1) p1=(struct book *)malloc(N); printf("n 请输入图书编号(书号0为结束): "); scanf("%d",&p1->num); if(p1->num!=0) printf("nn书名 作者 出版社 出版日期 单价nnn"); scanf("%s%s%s%s%d",p1->name,p1->author,p1->pub,p1->where,&p1->count); p2->next=p1; p2=p1; i+; else break; p2->next=NULL; free(p1); printf("n-"); printf("ntt %d 种书录入完毕",i); getch(); system("cls"); return head;/*查找模块*/void find(struct book *p0)int v; system("cls"); printf("1.按书名查找nnn"); printf("2.按书号查找n"); scanf("%d",&v); switch(v) case 1 : find1(p0);break; case 2:find2(p0);break; default: ; void find1 (struct book *p0) system("cls"); char name10; int flag=1; struct book *p; p=p0->next; printf("请输入要查找的书名:n"); scanf("%s",&name); for(p=p0;p;p=p->next) if(strcmp(p->name,name)=0) printf("nn图书编号-图书名称-作者-出版社-出版日期-单价nn"); printf(PT); flag=0; break; if(flag) printf("n 暂无此图书信息n");/当flag=1时执行 getch(); void find2 (struct book *p0) system("cls"); int num; int flag=1; struct book *p; p=p0->next; printf("请输入要查找的书号:n"); scanf("%d",&num); for(p=p0;p;p=p->next) if(p->num=num) printf("nn图书编号-图书名称-作者-出版社-出版日期-单价nn"); printf(PT); flag=0; break; if(flag) printf("n 暂无此图书信息n"); getch(); /*删除模块*/void del(struct book *p0)system("cls"); char name10; int flag=1; struct book *p; p=p0; printf("请输入要删除的书名:n"); scanf("%s",name); while(p!=NULL) if(strcmp(p->name,name)=0) p0->next=p->next; /后续结点连接到前驱结点之后 free(p); printf("t该书资料已删除."); flag=0; break; p0=p; p=p->next; if(flag) printf("nt无此图书信息。"); getch(); system("cls"); /*录入模块*/void insert(struct book *p0) struct book *p; system("cls"); p=(struct book *)malloc(N); while(1) printf("n 请输入要录入的图书编号(书号0为退出): "); scanf("%d",&p->num); if(p->num!=0) if(p0->next!=NULL&&p0->next->num=p->num) /找到重号 p=p->next; free(p); printf("t该书已存在"); else printf("nn书名 作者 出版社 出版日期 单价nnn"); scanf("%s%s%s%s%d",p->name,p->author,p->pub,p->where,&p->count); p->next=p0->next; p0->next=p; printf("t已成功录入."); else break; getch(); system("cls");/*修改模块*/void modify(struct book *p0) system("cls"); char name10; int flag=1; int choice; struct book *p; p=p0->next; printf("请输入要修改的书名:nn"); scanf("%s",name); while(p!=NULL&&flag=1) if(strcmp(p->name,name)=0) printf("nt请选择要修改的项:"); printf("nt 1.修改图书编号n"); printf("nt 2.修改图书出版日期n"); printf("nt 3.修改图书作者n"); printf("nt 4.修改图书出版社n"); printf("nt 5.修改图书单价n"); scanf("%d",&choice); switch(choice) case 1: printf("n 请输入新的图书编号:"); scanf("%d",p->num); break; case 2: printf("n 请输入新的图书出版日期:"); scanf("%s",p->where); break; case 3: printf("n 请输入新的图书作者:"); scanf("%s",p->author); break; case 4: printf("n 请输入新的图书出版社:"); scanf("%s",p->pub); break; case 5: printf("n 请输入新的图书单价:"); scanf("%d",p->count); break; printf("nt该项已成功修改。nt 新的图书信息:"); printf("nn图书编号-图书名称-作者-出版社-出版日期-单价nn"); printf(PT); flag=0; p0=p; p=p0->next; if(flag) printf("nt暂无此图书信息。"); getch(); system("cls");/*读文件*/struct book *read_file() int i=0; struct book *p,*p1,*head=NULL; FILE *fp; if(fp=fopen("library.txt","rb")=NULL)/以只读的方式打开文件 printf("nn t*库文件不存在,请创建!*"); getch(); return NULL; head=(struct book *)malloc(N); p1=head; head->next=NULL; printf("n 已有图书信息:"); printf("nn图书编号-图书名称-作者-出版社-出版日期-单价nn"); while(!feof(fp) p=(struct book *)malloc(N); while(fscanf(fp,"%d%s%s%s%s%d",&p->num,p->name,p->author,p->pub,p->where,&p->count)!=EOF) printf(PT); i+; p1->next=p; p1=p; p1->next=NULL; fclose(fp); printf("n 共种%d 图书信息",i); printf("nnn 文件中的信息以正确读出。按任意键返回。"); getch();system("cls"); return (head); /*保存文件*/void save(struct book *head) FILE *fp; struct book *p; fp=fopen("library.txt","wb"); /以只写方式打开二进制文件 if(fp=NULL) /打开文件失败 printf("n=>打开文件失败!n"); getch(); return ; else for(p=head->next;p!=NULL;p=p->next) fprintf(fp,"%d %s %s %s %s %dn",p->num,p->name,p->author,p->pub,p->where,p->count); fclose(fp); printf("nt保存文件成功!n");void main() struct book *head=NULL; int choice=1; head=read_file(); if(head=NULL) printf("ntt*"); getch(); head=creat(); do system("cls"); printf("-Welcome-n"); printf("欢迎您,图书管理员nnnn"); printf("*nn"); printf("n 请选择:"); printf("n 1.图书基本信息录入n"); printf("n 2.图书基本信息查询n"); printf("n 3.图书基本信息删除n"); printf("n 4.图书基本信息修改n"); printf("n 5.图书基本信息显示n"); printf("n 0.退出系统n"); printf("*n"); scanf("%d",&choice); switch(choice) case 2: find(head); break; case 4: modify(head); break; case 1: insert(head); break; case 3: del(head); break; case 5: print(head); break; case 0: system("cls"); break; while(choice!=0); save(head); 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。计算机科学与技术系课程设计评分表课题名称: 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: (注:1此页附在课程设计报告之后;2综合成绩按优、良、中、及格和不及格五级评定。)-

    注意事项

    本文(最新C语言《图书借阅管理系统》课程设计报告.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开