




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告 课程名称课程名称 C 语言程序设计语言程序设计 课题名称课题名称 图书借阅管理系统图书借阅管理系统 专专 业业 机械设计机械设计 班班 级级 15 机械二班机械二班 学学 号号 姓姓 名名 指导教师指导教师 2016 年年 6 月月 14 日日 2 西安理工大学高科学院 课 程 设 计 任 务 书 课程名称 C 语言程序设计语言程序设计 课 题 图书借阅管理系统图书借阅管理系统 专业班级 网络工程网络工程 1002 班班 学生姓名 学 号 4 指导老师 唐北平 陈淑红 谭小兰唐北平 陈淑红 谭小兰 审 批 任务书下达日期 2011 年 6 月 20 日 任务完成日期 2011 年 7 月 03 日 3 一一 设设计计内内容容与与设设计计要要求求 1 1 设计内容 设计内容 对一个有 N 本图书的图书馆 通过该系统实现对该班 级学生的基本信息进行录入 显示 修改 删除 保存等操作的管理 1 本系统采用一个包含 N 个数据的结构体数组 每个数据的结构应 当包括 书号 书名 作者 出版社 出版日期 单价 是否借出等 2 本系统显示这样的菜单 a 图书基本信息录入 b 图书基本信息显示 c 图书基本信息删除 d 图书基本信息修改 e 图书基本信息查询 按书号查询 书名等 g 退出系统 3 执行一个具体的功能之后 程序将重新显示菜单 2 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 分 4 第 十九 周 星期 1 8 时 00 分 11 时 30 分 星期 2 14 时 00 分 18 时 15 分 5 三 课程设计报告三 课程设计报告 1 1 程序设计准备程序设计准备 做系统前 首先 自己详细看了 C 程序设计 教科书 基本自学会了 文件的相关内容 理解了相关函数的用法和作用 另 上网查询了很多相关资 料 还有找了很多相关的系统 都详细的看了一遍 加深了对 C 的理解以及对 文件的相关内容进一步理解 学习了 C 语言的内容 图书信息管理系统有助于 C 语言学习的进一步巩固 在本系统可以增强对指针 文件 函数 结构体变 量等基本知识的进一步理解 另外图书信息管理系统也是学校常用的基本系统 之一 它有助于学校对图书馆书籍的基本管理 2 2 程序设计说明程序设计说明 根据题目要求 应当把图书信息用结构体形式输入 再定义一个全局变量 和文件指针进行整个程序的运行 然后把图书信息送到文件中去 所以应该提 供下个结构体和文件的输入等操作 在程序中需要实现图书信息录入 浏览 查询 删除和修改等功能的操作 所以需要建立相应的模块来实现 另外还需 提供选择菜单实现功能 在运行时达到所要求的目的 3 3 程序的主要功能程序的主要功能 图书管理在生活中运用非常广泛 因此需要用许多的程序来对它们进行管 理 图书借阅管理系统是对图书信息的基本管理 它包括 图书信息的录入 图书信息的显示 图书信息的删除 图书信息的修改 图书信息的查询 通过编译一个 C 语言函数 其中包含一个主函数 多个子函数 主函数调 用其余的子函数实现人们能够简易 快捷的了解并找到自己所学要的信息的功 能 1 图书基本信息录入 对新到图书馆的图书的信息 编号 书名 出版社 作者 价格 进行录入 2 图书基本信息显示 显示已被录入图书的所有信息 3 图书基本信息删除 通过输入书名 判断此图书是否存在 若存在 则删除该图书所有信息 若不存在则提示用户重新输入图书书名 4 图书基本信息修改 通过输入书名 判断此图书是否存在 若不存在则 提示用户重新输入图书书名 若存在 则可对图书各项信息进行修改 6 5 图书基本信息查询 将所有图书信息包括编号 书名 出版社 作者 价格等显示在屏幕上 6 退出系统 即退出图书借阅管理系统 使用模块化编程的方法每项功能有一个或多个函数组合来完成 其中菜单 选项模块对应如下 图书基本信息录入 void insert 图书基本信息显示 void print 图书基本信息删除 void del 图书基本信息修改 void modify 图书基本信息查询 void find 这份代码中各个变量的定义如下 num 图书编号 name 书名 author 作者 pub 出版社 where 出版日期 count 单价 四四 功能模块的划分功能模块的划分 1 1 主函数模块主函数模块 根据图书馆信息管理系统的要求 可设计一个主函数 及定义多个用户自 定义函数 在主函数中定义全局变量 即是在函数外部定义的变量 其不属于 某一个函数 而属于一个源程序文件 在整个程序内可以多次被引用 7 2 2 图书基本信息显示模块图书基本信息显示模块 当用户选择图书基本信息显示时 程序会将所有图书信息列出 3 图书基本信息输入模块图书基本信息输入模块 在程序开始运行 创建文件库时 调动此模块 提示用户输入新的图书编 号 编号为 0 时结束输入 然后继续输入图书书名 作者 出版社 出版日期 单价等信息 结束输入时提示用户图书输入完成 8 4 图书基本信息查询模块图书基本信息查询模块 用户先选择图书查询方式 按书名查找或按书号查找 输入图书书名或书 号后 查找出该图书是否存在 若存在 则显示该图书信息 若不存在则提示 用户无此图书信息 9 5 图书基本信息删除模块图书基本信息删除模块 用户输入所要删除的图书书名 先查找该图书是否存在 若存在 则删除 该图书所有信息 若不存在则提示无此图书信息 10 6 图书基本信息录入模块图书基本信息录入模块 首先输入图书录入的编号 不为 0 判断是否有重复的编号 若有 则提 示用户该书已存在 若无则继续录入书名 作者 出版社 单价 11 7 图书基本信息修改模块图书基本信息修改模块 用户输入要修改的书名 判断该书是否存在 若不存在 则提示用户无此 图书信息 若存在 则提示用户选择修改项目 然后提示用户图书信息修改完 成 8 8 读文件模块读文件模块 在运行该程序时 程序会自动检测是否存在图书信息 若存在 则会显示 图书信息 若不存在 则会提示用户创建文件库 录入图书信息 12 9 9 文件保存模块文件保存模块 当用户对图书信息有录入 修改 删除等操作时 程序会自动保存操作和 新的图书信息 五五 主要功能的实现主要功能的实现 程序运行流程 但每个模块运行完即会回到主函数 然后选择其他或退出 13 六六 程序调试程序调试 1 第一次运行程序时 库文件不存在图书信息 于是录入图书信息 图书编号书名作者出版社出版日期单价 1英语张三人民教育出版社2011 0630 14 2 主界面 3 在主界面选择 1 开始录入新的图书信息 图书编号书名作者出版社出版日期单价 2数学李四高等教育出版社2011 0628 15 4 在主界面选择 2 查询图书信息 按 1 或 2 分别选择按书名或书号查询 以 英语 为例 选择 2 按书号查找 输入书号 1 即可查询图书 英语 所有信息 选择 1 按书名查找 输入书名 英语 即可获得图书 英语 所有信息 16 5 在主界面选择 3 对图书资料进行删除 以 数学 为例 在后续图书信息 显示时无 数学 图书信息 17 6 在主界面选择 4 对图书进行修改 以 英语 为例 修改图书作者 将作者 更换为王五 在后续图书基本信息显示时 作者不将是张三 而是王五 7 在主界面选择 5 图书基本信息显示 此时图书信息经过删除和修改 和初始 信息不同 18 七七 总结总结 19 通过为期一周的课程设计 对 C 语言 这门课程有了更深一步的了解 它是计算机程序设计的重要理论技术基础 在我们网络工程专业的学习中占据 着十分重要的地位 自己 C 语言编程的能力有了提高 特别是在文件 指针 数组 函数和结构体方面有了很大提高 另外还学习了课本没有讲到的知识 学会了使用模块化编程的简单方法 另外在对话框的编程要求美观 方面也有 了体会 循环是 C 语言的重要方法 也是本程序的灵魂 它在本程序中既有 穿针引线 的作用 也起到了对数据进行分析 存贮 读取等重要的作用 本程序在使用 循环过程中对循环进行了多方法的应用也是一个 亮点 它使程序变得结构合 理 通俗易懂 也降低了程序的难度 以后要对这种方法进行深刻的体会 数组在程序中有着很重要的作用 对数据的贮存 输入 读取起着很重要的作 用 本程序几乎所有数据都以数组进行输入 贮存 读取方便了对数据的处理 和输入 数组的的使用在本程序中有很大的好处 函数是实现模块化编程的基础 它使程序变得方面易懂 对修改起了很大 作用 降低了编程的难度 一个函数就是一个功能 它使各个功能之间有了一 定的独立性 但也有了一定的联系性 一个函数的错误 不会导致整个程序的 失败 主函数除外 对函数的良好应用时在本程序中又以深刻的体会 有了很 大提高 结构体的使用 为本程序提供了很大方便 也提高了程序的可读性 结构数组 方便了对数据的管理 这个程序的结构大体是从网络上借鉴的 但是大部分功能模块与任务要求 不同 只能自己修改 最后终于调试通过 同时也使我们知道 要学好这门课 程 仅学习书本上的知识是不够的 还要有较强的实践能力 因为我们学习知 识就是为了实践 而只有多实践 多编写程序 才能更好的理解与掌握书本上 的东西 同时提高了自己对编程的兴趣 使自己对编程有了更深的理解 体会 到编程的乐趣 20 八 附件八 附件 原代码清单及注释 include include include include 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 count struct book 图书信息 int num 书号 char name 10 书名 char where 10 出版日期 char author 15 作者 char pub 20 出版社 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 n n 图书信息表 printf n n 图书编号 图书名称 作者 出版社 出版日期 21 单价 n n 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 n n t t 录入图书信息 printf n while 1 p1 struct book malloc N printf n 请输入图书编号 书号 0 为结束 scanf d if p1 num 0 printf n n 书名 作者 出版社 出版日期 单价 n n n scanf s s s s d p1 name p1 author p1 pub p1 where p2 next p1 p2 p1 i 22 else break p2 next NULL free p1 printf n printf n t t d 种书录入完毕 i getch system cls return head 查找模块 void find struct book p0 int v system cls printf 1 按书名查找 n n n printf 2 按书号查找 n scanf d switch v case 1 find1 p0 break case 2 find2 p0 break default void find1 struct book p0 system cls char name 10 int flag 1 23 struct book p p p0 next printf 请输入要查找的书名 n scanf s for p p0 p p p next if strcmp p name name 0 printf n n 图书编号 图书名称 作者 出版社 出版日 期 单价 n n 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 for p p0 p p p next if p num num printf n n 图书编号 图书名称 作者 出版社 出版日 期 单价 n n printf PT 24 flag 0 break if flag printf n 暂无此图书信息 n getch 删除模块 void del struct book p0 system cls char name 10 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 n t 无此图书信息 getch 25 system cls 录入模块 void insert struct book p0 struct book p system cls p struct book malloc N while 1 printf n 请输入要录入的图书编号 书号 0 为退出 scanf d if p num 0 if p0 next NULL free p printf t 该书已存在 else printf n n 书名 作者 出版社 出版日期 单价 n n n scanf s s s s d p name p author p pub p where p next p0 next p0 next p printf t 已成功录入 else break 26 getch system cls 修改模块 void modify struct book p0 system cls char name 10 int flag 1 int choice struct book p p p0 next printf 请输入要修改的书名 n n scanf s name while p NULL printf n t 1 修改图书编号 n printf n t 2 修改图书出版日期 n printf n t 3 修改图书作者 n printf n t 4 修改图书出版社 n printf n t 5 修改图书单价 n scanf d switch choice case 1 printf n 请输入新的图书编号 scanf d p num break 27 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 n t 该项已成功修改 n t 新的图书信息 printf n n 图书编号 图书名称 作者 出版社 出版 日期 单价 n n printf PT flag 0 p0 p p p0 next if flag printf n t 暂无此图书信息 getch system cls 读文件 struct book read file int i 0 struct book p p1 head NULL 28 FILE fp if fp fopen library txt rb NULL 以只读的方式打开文件 printf n n t 库文件不存在 请创建 getch return NULL head struct book malloc N p1 head head next NULL printf n 已有图书信息 printf n n 图书编号 图书名称 作者 出版社 出版日期 单价 n n while feof fp p struct book malloc N while fscanf fp d s s s s d i p1 next p p1 p p1 next NULL fclose fp printf n 共种 d 图书信息 i printf n n n 文件中的信息以正确读出 按任意键返回 getch system cls return head 29 保存文件 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 d n p num p name p author p pub p where p count fclose fp printf n t 保存文件成功 n void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计量所考试题库及答案
- 2025年贵州省遵义市继续教育公需课考试题(含答案)
- 2025年新疆籽棉订购合作合同范本
- 2025年贵州大生态公需科目考试题目及答案
- 2025年广西壮族自治区公务员行测(A类)真题及答案
- 2025年镇江市中考英语试题卷(含答案及解析)
- 兽医考试病理学真题及答案
- 煤矿电气焊考试题及答案
- 安全员证考试试题及答案
- 软通硬件笔试题及答案
- 安全经验分享食物中毒
- 四年级上册数学教案 -平行与垂直 人教版
- 2022年工程机械行业发展现状分析
- 《函数的奇偶性》教学课件与导学案
- DB11-T 1796-2020文物建筑三维信息采集技术规程
- (完整版)工程流体力学课件(第四版)
- RCEP的机遇与挑战研究报告
- 非常规油气勘探开发
- 小学科学课堂存在的问题与解决方法
- 陕西污水处理定价成本监审办法
- 公司级安全技术交底内容
评论
0/150
提交评论