最新C语言课程设计(图书管理系统).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《最新C语言课程设计(图书管理系统).doc》由会员分享,可在线阅读,更多相关《最新C语言课程设计(图书管理系统).doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言课程设计(图书管理系统)附件6课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 计算机科学与技术1205班 学 生 姓 名 : 安龙龙 学 号 : 201216010521 任 课 教 师 : 陈卫东 学 期 :2012-2013学年第二学期 课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者
2、、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)输入v(2)图书信息浏览功能输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l 按书名查询 按作者名查询 按照价钱排序 按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库
3、存的图书信息等等,总之,可以根据自己需求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码 (2)课程报告二、整个设计过程具体要求(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能2
4、0分扩展功能10分自述情况10分答辩情况30分成绩评定教师: -1 需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对图书信息的录入、删除、修改,浏览(即输出), 按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。通过整个程序
5、的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机和通信专业的后续课程打好专业基础。 2 概要设计(1) 图书信息及数据格式图书信息: 图书信息包括图书编号、图书类别、图书书名、作者、出版社、出版时间、图书价格。数据格式: 本系统采用单向链表来对图书信息进行各项操作。其中图书的编号为整型数据,价格为双精度浮点型,其余的类别、书名、作者、出版社与出版时间均为字符串类型struct tushu_node int num; char leibie20; char name30; char author20; ch
6、ar press20; char time20; double price; struct tushu_node*next; 一个结点的示意图如下图所示:numleibienameauthorpresstimepricenext(2)程序的整体框架主菜单退出帮助统计图书数目按不同方式排序浏览按不同方式查询录入(删除修改)书名出版时间价格价格编号修改删除创建子菜单(3)模块划分1、int quanxian(); 核查权限的函数 2、int inputchioce(); 显示主菜单的函数 3、void save(); 保存链表为文件的函数 覆盖以前的信息 4、void save1(); 保存链表为
7、文件的函数 不覆盖以前的信息 只在创建时调用5、struct tushu_node* wjtolb();从文件中读取数据并建立图书信息的链表的函数 6、int luruxinxi(); 录入学生信息的函数 7、struct tushu_node * luruxinxi_chuangjian(); 创建图书信息的函数 8、struct tushu_node * luruxinxi_charu(); 插入图书信息的函数9、struct tushu_node * luruxinxi_shanchu(); 删除图书信息的函数10、struct tushu_node * luruxinxi_xiugai
8、(); 修改图书信息的函数11、int liulantushu(); 浏览图书信息的函数 12、int chaxuntushu(); 查询图书信息的函数 13、void chaxuntushu_num(); 按编号查询图书 14、void chaxuntushu_name(); 按书名查询图书 15、void chaxuntushu_price(); 按价格查询图书 16、void paixutushu(); 为图书排序的函数 17、struct tushu_node* paixutushu_price(); 为图书按价格排序的函数 18、struct tushu_node* paixutus
9、hu_time(); 为图书按出版时间排序的函数 19、void sfjx() ; 写个函数 判断是否继续 排序中使用 20、int tongjitushu_shumu(); 统计图书数目的函数 21、void shiyongshuoming(); 使用说明的函数 3 详细设计程序的主体设计思想是根据结构化程序设计思想分模块进行设计,有一个主函数和多个自定义函数构成。主函数对于本程序来说,主函数很简单,就是定义了一个变量chioce用来接受核查用户是否有使用该管理系统的权限的函数quanxian()函数返回的值,若为1(即用户获得了使用权限),则调出显示主菜单的函数进行具体操作int main
10、()int chioce; chioce=quanxian(); 核查用户是否有使用该管理系统的权限的函数 if(chioce=1) 若取得权限 则返回值为1 system(cls);inputchioce(); 用来显示主菜单的函数 exit(0);权限函数核查用户权限的函数使用do-while语句来限制用户输入密码的次数仅为三次,并且为了使界面更具亲切感,会在用户输入密码错误时进行提示引起用户注意及提示剩余输入次数。int quanxian()int m=1,n=3,flag=0;char mima20;doprintf(nn 你好,欢迎使本图书信息管理系统!n); printf(nn);
11、 printf(【现在进行权限核查】 n-友情提醒:你共有3次输入密码的机会!n);printf(nn );if(n=2|n=1)printf(注意:你已输入错误%d次 剩余输入次数: %d 请输入密码:,3-n,n);if(n=3) printf(剩余输入次数: %d 请输入密码:,n); scanf(%s,mima); /第一次输入和输错密码后再次输入显示的也卖弄不同if(strcmp(mima,chenbo0916)=0)flag=1; return flag; m+;n-;system(cls);while(strcmp(mima,chenbo0916)!=0&mnump-leibie
12、p-namep-authorp-pressp-timep-price 结束输入控制条件Num!=0Leibie NameAuthorPressTimepriceHead 不为空Tail-next=pHead为空Head=p保存为文件Save()将链表数据保存为文件的函数首先打开文件以可读写(也可以只写的方式打开 区别在于是否覆盖以前的信息)的方式,p1作为形参来接受实参head,只要不为空,写入p1 后,下移一个节点void save1(struct tushu_node* p1) /*将链表保存为文件的函数 不覆盖前面信息 */if( (fpp=fopen(1.txt,a)=NULL )pr
13、intf(打开文件失败!); exit(0);while(p1!=NULL) fprintf(fpp, %d %s %s %s %s %s %lfn,p1-num,p1-leibie,p1- name,p1-author,p1-press,p1-time,p1-price); p1=p1-next;if(fclose(fpp) printf(关闭文件失败!n); exit(0);从文件中读出数据并创建链表的函数在调用从文件读取数据创建链表的函数前,先定义head链表指针并赋值为空作为实参 。打开文件后,从文件中读取一组数据赋给已经被动态分配内存的结点指针p第一次head为空时nextP Hea
14、d p1P1-nextnextP第二次以后head head p2 p1nextPP1-nexthead p2 p1删除函数 删除函数执行流程图及算法如下图所示:ReturnHead调浏览函数浏览全部图书方便看需要删除那一本 Head=NULL Head!=NULLhead=head-nextHead-numNumm比较输入需要删除图书编号numm 相等(即删除头结点)调用读取文件并形成链表的函数 不相等(删除其他结点)Ptr1=headPtr2=head-next具体删除过程 Ptr2!=NULL (即不是链表结尾 循环结束条件)Ptr2-next=ptr1-nextPtr2-numNumm
15、比较重新保存 覆盖原来文件中数据 While循环 相等Ptr1=ptr2选择是否继续操作返回主菜单 不相等Ptr2=ptr1-nextSave()函数重新保存文件修改函数修改函数执行流程图如下:先遍历所有图书信息方便选择要修改编号调用文件到链表函数输出一个显示选择修改具体成分的界面输入需要修改的图书编号 If (Head!=Null)while(p!=NULL&p-num!=numm) p=p-next; 直到相等Head-numNumm 比较 不相等 相等选择具体修改成分 Swith 语句输入新的成分替换原有图书信息的成分Save()保存至文件返回主菜单询问是否继续 是 否浏览遍历函数重新定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 课程设计 图书 管理 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内