版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称课题名称图书借阅管理系统专业班级学号姓名指导教师网络工程1002j5201003120224唐北平、陈淑红、谭小兰2011年6月20日湖南工程学院课程设计任务书课程名称c语言程序设计课 题图书借阅管理系统网络工程1002班201003120224陈淑红、专业班级 学生姓名 学 号 指导老师 审 批任务书下达日期2011年6月20日任务完成日期 2011年7月03日一、设计内容与设计要求1. 设计内容:对一个冇n本图书的图书馆,通过该系统实现对该班 级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。(1)、本系统采用一个包含n个数据的结构休数组,每个数据
2、的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等(2)、本系统显示这样的菜单:a.图巧基本信息录入b.图书基本信息显示c.图书基本信息删除d.图巧基本信息修改e.图书基本信息查询(按书号查询、书名等)g.退出系统(3)、执行一个具体的功能之后,程序将重新显示菜单。2. 设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求 精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的 案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清 单及程序框图。5. 上机
3、演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的c源 程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告(word文档格式)。并用a4的复印纸打印并装订;二、进度安排第十八周星期18时00分11时30分星期214时00分18时15分星期3 8时00分11时30分星期4 8时00分11时30分第十九周 星期18时00分11时30分星期214时00分18时15分三、课程设计报告1. 程序设计准备做系统前,首先,自己详细看了c程序设计(教科书),基本自学会了文 件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多
4、相关资料, 述冇找了很多相关的系统,都详细的看了一遍,加深了对c的理解以及对文件的 相关内容进一步理解。学习了c语言的内容,图书信息管理系统有助于c语言学 习的进一步巩固,在本系统可以增强对指针、文件、函数、结构体变量等基本知 识的进一步理解。另外图书信息管理系统也是学校常用的基本系统它冇助 j:学校对图书馆书籍的基本管理。2. 程序设计说明根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和 文件指针进行整个程序的运行,然后把图书信息送到文件屮去,所以应该提供下 个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询, 删除和修改等功能的操作,所以需要建立相应的模
5、块来实现:另外还需提供选择 菜单实现功能,在运行吋达到所要求的口的。3. 程序的主要功能图书管理在生活中运用非常广泛,因此需要用许多的程序來对它们进行管 理。图书借阅管理系统是对图书信息的基本管理,它包括:图书信息的录入、图 书信息的显示、图书信息的删除、图书信息的修改、图书信息的杳询。通过编译一个c语言函数,其中包含一个主函数,多个子函数,主函数调用 其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、图书基木信息录入:对新到图书馆的图书的信息(编号、书名、出版社、 作者、价格)进行录入。2、图书基本信息显示:显示已被录入图书的所有信息。3、图书基本信息删除:通过输入书
6、名,判断此图书是否存在,若存在,则 删除该图书所有信息,若不存在则提示用户重新输入图书书名。4、图书基本信息修改:通过输入书名,判断此图书是否存在,若不存在则 提示用户重新输入图书书名,若存在,则可对图书各项信息进行修改。5、图书基本信息查询:将所有图书信息包括编号、书名、出版社、作者、 价格等显示在屏幕上。6、退出系统:即退出图书借阅管理系统。使用模块化编程的方法每项功能冇一个或多个函数组合来完成,其屮菜单选项模块对应如下:图帖基本信息录入二二图书基本信息显示二二图书基本信息删除二二图帖基本信息修改二二图书基本信息查询二二void insert () void print () void d
7、el () void modify() void find()这份代码屮各个变量的定义如下:num图书编号name书名author作者pub出版社where出版ri期count单价四功能模块的划分1主函数模块根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定 义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一 个函数,而属于一个源程序文件,在整个程序内可以多次被引用。2.图书基本信息显示模块当用户选择图书基木信息显示时,程序会将所有图书信息列出。3图书基本信息输入模块在程序开始运行,创建文件库时,调动此模块,提示用户输入新的图书编号 (编号为0时结束输入),
8、然后继续输入图书书名,作者,出版社,出版日期, 单价等信息。结束输入吋提示用户图书输入完成4 图书基本信息查询模块用户先选择图书杳询方式(按书名杳找或按书号杳找)输入图书书名或书号 后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则捉示用户 无此图书信息。5 图书基本信息删除模块用户输入所耍删除的图书书名,先查找该图书是否存在,若存在,则删除该 图书所有信息,若不存在则提示无此图书信息。6 图书基本信息录入模块首先输入图书录入的编号(不为0)判断是否冇重复的编号,若冇,则捉示 用户该书已存在,若无则继续录入书名、作者、出版社、单价。7 图书基本信息修改模块用户输入耍修改的书名,判断
9、该书是否存在,若不存在,则捉示用户无此 图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。&读文件模块在运行该程序时,程序会自动检测是否存在图书信息,若存在,则会显示 图书信息,若不存在,则会提示用户创建文件库,录入图书信息。9.文件保存模块当用户对图书信息有录入,修改,删除等操作时,程序会自动保存操作和 新的图书信息。五主要功能的实现程序运行流程:但每个模块运行完即会冋到主函数,然后选择其他或退出。六. 程序调试1 第一次运行程序时,库文件不存在图书信息,于是录入图书信息。图书编号卩名作者出版社出版fi期单价1英语张三人民教育出版社2011.06302.主界面。
10、3.在主界面选择1,开始录入新的图书信息。图书编号书名作者出版社出版日期单价2数学李四高等教育岀版社2011.06284在主界面选择2,查询图书信息,按1或2分别选择按书名或书号查询。(以英 语为例)选择2,按书号查找,输入书号:1,即可杳询图书英语所有信息。 选择1,按书名查找,输入书名:英语,即可获得图书英语所冇信息。5.在主界面选择3,对图书资料进行删除(以数学为例),在后续图书信息显 示时无数学图书信息。6.在主界面选择4,对图书进行修改(以英语为例,修改图书作者,将作者 更换为王五),在后续图书基木信息显示时,作者不将是张三,而是王五。7在主界面选择5,图书基本信息显示,此时图书信息
11、经过删除和修改,和初始 信息不同。七. 总结通过为期一周的课程设计,对c语言这门课程有了更深一步的了解。它 是计算机程序设计的重要理论技术基础,在我们网络工程专业的学习屮占据着十 分重要的地位。自己c语言编程的能力有了提高,特别是在文件、指针、数组、 函数和结构体方面有了很大提高,另外还学习了课木没有讲到的知识,学会了使 用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。 循环是c语言的重要方法,也是本程序的灵魂,它在本程序中既冇“穿针引线” 的作用,也起到了对数据进行分析、存贮、读取等重耍的作用,本程序在使用循 环过程屮对循环进行了多方法的应用也是一个“亮点”,它使程序变得
12、结构合理, 通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重耍的作用, 木程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入, 数组的的使用在本程序中有很大的好处。函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很人作 用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的 独立性,但也冇了一定的联系性,一个函数的错误,不会导致整个程序的失败(主 函数除外),对函数的良好应用时在木程序中又以深刻的体会,有了很大提高。 结构体的使用,为木程序提供了很大方便,也提高了程序的可读
13、性,结构数组方 便了对数据的管理。这个程序的结构人体是从网络上借鉴的,但是人部分功能模块与任务耍求不 同,只能自己修改,最后终于调试通过,同吋也使我们知道,要学好这门课程, 仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是 为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书木上的东西。 同吋提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的斥 趣。八. 附件原代码清单及注释#includc<stdio.h>#include<string.h>#i nclude<conio.h>#includc<stdlib.
14、h>#define n sizeof (struct book)#def i ne pt -5d%10s%6s%6s%8s%3dp->num, p->name, p->author, p->pub, p->where, p->countstruct book /* 图书信息*/int num;/*书号*/char name10;/*书名*/char where10;/*出版fl期*/char eiuthor 15;/*作者*/char pub20;/*出版社*/int count;/*单价*/struet book *ncxt;void findl (
15、struet book *po);void find2 (struet book *po);/ *输出模块*/void print (struet book *po)struet book *p;system(cls);p=po-next;printfcnn图书信息表);printf(,znn图书编号一一图书名称一-作者出版社出版口期-单价nr);while (p!=null)printf (pt);p=p->next;igetcho ;/输入任意值返回system(cls);i/*输入模块*/struct book creat()struct book *head, *pl, *p2;
16、int i=0;head=p2= (struct book *)malloc (n) ;/分配新的内存给 p2head->next=null;printf (,znntt 录入图书信息");printf (n”);while (1) pl=(struct book *)malloc(n);printf (zzn请输入图书编号(书号0为结束):);scanf (d,&pl->num);if (pl->num!=0)printf cnn书名作者岀版社出版fl期单价nnnz,);scanf(s%s%s%s%d,pl->name, pl->author,
17、 pl->pub, pl->where,&pl->count);p2-next二pl;p2=pl;elsebreak;ip2->next二null;free (pl);printf (n”);printf (,zntt%d 种书录入完毕“,i);getcho ;system(cls);return head;/*查找模块*/void find (struet book *p0)int v;system(cls);printf (,zl.按书名査找nnnz,);printf ("2.按书号查找rt);scanf (d,&v);switch(v)c
18、ase 1 : findl (po);break;case 2:find2(p0);break;default:;)void findl (struct book *p0)system(cls);char name10;int fl昭二 1;struet book *p;p=po->next;printf c请输入要查找的书名:rt);scanf(s, &name);for(p=po;p;p=p->next)if(stremp(p->name, name)=0)printfcnn图书编号-图书名称-一作者出版社-一期单价nn);printf (pt);flag=0;b
19、reak;)if (flag) printf cn暂无此图书信息rt);当flag=l时执行 getcho ;)void find2 (struct book *p0)system(cls);int num;int flag=l;struet book *p;p=po->next;printf c请输入要查找的书号:rt);scanf ("%d", &num);for (p=po;p;p=p->next)if (p->num=num)printfcnn图书编号-图书名称-一作者出版社-一期单价nn);出版h出版hprintf (pt);flag=o
20、;break;iif (flag) printf cn 暂无此图书信息n);getcho ;i/*删除模块*/void del (struct book *p0)system("cls);char name10;int flag=l;struet book *p;p=p0;printfc请输入要删除的书名:);scanf(s, name);while (p!=null)if (stremp (p->name, name) =0)po->next=p->next;/后续结点连接到前駆结点之后free(p);printfct该书资料已删除);flag=0;break;p
21、0=p;p=p->next;if (flag) printf (,znt 无此图书信息。");getch();system(cls);/*录入模块*/void insert(struet book *p0)struct book *p;system(cls);p= (struct book *)malloc(n);while (1)printf(zzn 请输入要录入的图书编号(书号0为退出):);scanf (d, &p->num);if (p->num!=0)if (po->next! =null&&po->next->n
22、um=p->num) /找到重号p=p->next;free(p);printf ct该书已存在);ielseprintfcw 书名作者出版社岀版日期单价nnn,z);scanf(s%s%s%s%d,p->name, p->author, p->pub, p->where,&p->count); p->next二po-next;po->next=p;printf (,zt已成功录入");elsebreak;getcho ;system(cls);/*修改模块*/void modify(struct book *p0)sys
23、tem(cls);char name10;int flag=l;int choice;struct book *p;p=p0->next;printf (z,请输入要修改的书名:nn,z);scanf(s, name);while(p!=null&&f1ag=1)if(strcmp(p->name, name)=0)printf cnt请选择要修改的项:");printf (ntprintf(ntprintf(ntprintf (ntprintf (nt1修改图书编号);2 修改图帖出版fl期n);3 修改图书作者);4.修改图书出版社);5 修改图书单价
24、);scanf (%ct, &choice);switch(choice)case 1: printf(,zn请输入新的图书编号:“);scanf (d,p->num); break;case 2: printf(,zn 请输入新的图书岀版fl期:“);scanf ("%s", p->where); break;icase 3: printf cn 请输入新的图书作者:"); scanf ("%s", p->author); break;icase 4: printf (,zn请输入新的图书岀版社:");sc
25、anf ("%s", p->pub); break;icase 5: printf (,zn 请输入新的图书单价:"); scanf (“d,p->count); break;i)出版printf cnt该项已成功修改。nt新的图书信息:“); printf(zznn图书编号一-图书名称一-作者出版社fi 期-单价nn);printf (pt);flag=o;)po=p;p=po->next;)if (flag) printf (,znt 暂无此图书信息。");getcho ;system(cls);/*读文件*/struet book
26、 *read_file()int i=0;struct book *p, *pl, *head二nuix;file *fp;if (fp二fopen ("library, txt", rb)二二null) /以只读的方式打开文件printf (,znnt*库文件不存在,请创建! *);getcho ;return null;ihead=(struet book *)malloc(n);pl=head;head->next=null;printf cn已有图书信息:);printfcnn图书编号一一图书名称-一作者出版社出版h期单价nn);wh 订 e(!feof (f
27、p)p= (struct book *)malloc(n);while(fscanf (fp, d%s%s%s%s%ct, &p->num, p->name, p->author, p->pub, p->where,&p->count)!=e0f)printf(pt);i+;)pl->next=p;pl 二p;)pl->next=null;fclose(fp);printf cn共种9厨图书信息”,i);printf (,znnn文件中的信息以正确读岀。按任意键返回。);getcho ;system("cls);retu
28、rn (head);/*保存文件*/void save(struet book *head)file *fp;struet book *p;fp二fopen ("library, txt,气vb") ;/以只写方式打开二进制文件if (fp二二null)/打开文件失败printf (z,n=>打开文件失败! n);getcho ;return ;elsefor(p=head->next;p!=null;p=p->next)fprintf (fp, z,%d %s %s %s %s %dn,z, p->num, p->name, p->author, p->pub, p->w here, p->count);fclose
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年对外汉语教师资格证考试汉语教学文化适应试卷及答案
- 小儿中暑健康宣教
- 2025年文物保护专家资格考试试题及答案解析
- 企业员工团体意外险培训
- 职业病危害及粉尘防爆安全培训考试试卷及答案
- 2025年金融产品创新试题及答案
- 2025大学生安全教育测试试题及答案
- 空调设备安装施工方案
- 2024年二级造价工程师建设工程计量与计价实务安装工程真题及答案
- 2025医学产前诊断技术考试题目及答案
- 数学教学软件与应用-几何画板能做什么
- 危险化学品建设项目安全条件审查要点
- 北京2023年中国工商银行博士后科研工作站博士后研究人员招聘上岸提分题库3套【500题带答案含详解】
- 第三单元 金属的腐蚀与防护 课件(共20张PPT)
- AED的使用(教学讲解课件)
- 血液科出科题库
- 社会研究方法03350
- 贝克-常伟汽车后视镜电加热薄膜技术
- 大学生素质教育主题班会课件
- 体育器材台账
- 2021年吉县社区工作者招聘笔试题及答案解析
评论
0/150
提交评论