超星网站cc++
- 1.1前 言
- 1.2第一部分 基 础 篇
- 1.2.1第1章 初识C
- 1.2.1.11.1 C语言的诞生与发展
- 1.2.1.21.2 C语言的特点
- 1.2.1.31.3 Vi sualC++6.0开发环境
- 1.2.1.41.4 简单的C程序介绍
- 1.2.1.51.5 C程序的构成
- 1.2.1.61.6 本章小结
- 1.2.1.71.7 练习题
- 1.2.2第2章 变量和常量
- 1.2.2.12.1 计算机中的数据
- 1.2.2.22.2 数据的存储
- 1.2.2.32.3 数据角色
- 1.2.2.42.4 数据社会
- 1.2.2.52.5 本章小结
- 1.2.2.62.6 练习题
- 1.2.3第3章 运算符与表达式
- 1.2.3.13.1 算术运算符
- 1.2.3.23.2 赋值运算符
- 1.2.3.33.3 关系运算符
- 1.2.3.43.4 逻辑运算符
- 1.2.3.53.5 条件运算符
- 1.2.3.63.6 逗号运算符
- 1.2.3.73.7 运算符的优先级
- 1.2.3.83.8 本章小结
- 1.2.3.93.9 练习题
- 1.2.4第4章 控制流
- 1.2.4.14.1 顺序结构
- 1.2.4.24.2 选择结构
- 1.2.4.34.3 循环结构
- 1.2.4.44.4 本章小结
- 1.2.4.54.5 练习题
- 1.2.5第5章 函数
- 1.2.5.15.1 函数概述
- 1.2.5.25.2 函数的类别
- 1.2.5.35.3 函数的使用
- 1.2.5.45.4 函数的参数传递
- 1.2.5.55.5 变量的作用域和存储类别
- 1.2.5.65.6 递归
- 1.2.5.75.7 本章小结
- 1.2.5.85.8 练习题
- 1.2.6第6章 指针
- 1.2.6.16.1 指针
- 1.2.6.26.2 指针与函数
- 1.2.6.36.3 指针与数组
- 1.2.6.46.4 指针与字符串
- 1.2.6.56.5 结构体指针
- 1.2.6.66.6 void指针
- 1.2.6.76.7 本章小结
- 1.2.6.86.8 练习题
- 1.2.7第7章 线性表
- 1.2.7.17.1 顺序表
- 1.2.7.27.2 链式表
- 1.2.7.37.3 本章小结
- 1.2.7.47.4 练习题
- 1.2.8第8章 文件
- 1.2.8.18.1 打开和关闭文件
- 1.2.8.28.2 文本文件读写
- 1.2.8.38.3 二进制文件的读写
- 1.2.8.48.4 文件的随机读写
- 1.2.8.58.5 本章小结
- 1.2.8.68.6 练习题
- 1.2.9第9章 位运算
- 1.2.9.19.1 位运算符
- 1.2.9.29.2 位运算应用
- 1.2.9.39.3 位域
- 1.2.9.49.4 本章小结
- 1.2.9.59.5 练习题
- 1.2.10第10章 预编译指令
- 1.2.10.110.1 宏定义
- 1.2.10.210.2 文件包含
- 1.2.10.310.3 条件编译
- 1.2.10.410.4 本章小结
- 1.2.10.510.5 练习题
- 1.2.11第11章 C ++
- 1.2.11.111.1 C++概述
- 1.2.11.211.2 C++程序设计
- 1.2.11.311.3 本章小结
- 1.2.11.411.4 练习题
- 1.2.12第12章 调试技术
- 1.2.12.112.1 常见错误类型
- 1.2.12.212.2 调试技术
- 1.2.12.312.3 本章小结
- 1.2.12.412.4 练习题
- 1.3第二部分 实 战 篇
- 1.3.1简易计算器
- 1.3.2趣味火柴棍
- 1.3.3英汉小字典
- 1.3.4贪吃蛇游戏
- 1.3.5迷宫求解
- 1.3.6图书管理系统
- 1.4第三部分 附 录
- 1.4.1附录A ASCII 字符码
- 1.4.2附录B C 语言的关键字
- 1.4.3附录C 运算符的优先级
- 1.4.4附录D 库函数
图书管理系统
通过前面章节的学习,读者应该对C语言的基本概念、程序设计方法有了一个基本的认识和理解。前面章节系统地介绍了C的基本内容,并通过大量的例题来说明其使用方法。为了让读者更全面地掌握使用C语言进行程序设计的方法,本章以图书管理系统为例,系统地介绍如何使用C语言开发应用程序。
一、需求分析
所谓磨刀不误砍柴工,在接到项目任务时,需要对项目的开发背景、客户的需求以及项目的可行性进行分析,然后再根据分析的结果做出合理的项目规划,使项目能够按部就班进行,不至于出现顾此失彼的情况。
一般来说,图书管理系统主要包括增加图书、删除图书、图书借阅、图书归还和图书查找等几方面的功能。事实上,一个完整的图书管理系统应该是一个数据库应用程序,需要具有数据库管理和用户管理等功能,为了突出C语言的重点,本章介绍的图书管理系统不考虑这些功能。
根据以上的分析,下面给出图书管理系统主要实现的功能:
(1)提供功能菜单,供用户选择;
(2)图书的增加、删除和查找功能;
(3)图书的借阅、归还功能;
(4)图书信息保存和加载功能。
二、总体设计
总体设计即系统的概要设计,需要完成对系统的分析和设计,以及设计系统需要的主要数据结构。
根据需要进行分析,本系统分成以下几个模块:主界面模块、增加图书模块、删除图书模块、查找图书模块、借阅图书模块、归还图书模块、图书信息保存模块和图书信息加载模块,具体功能模块如图6-1所示。
图6-1 总体设计
此外,由于该系统涉及图书信息、读者信息等数据结构的使用,声明相关结构体如下所示:
三、功能模块实现
下面将依次介绍主界面模块、增加图书模块、删除图书模块、查找图书模块、借阅图书模块、归还图书模块、图书信息保存模块和图书信息加载模块。
(1)主界面模块
通过循环语句实现菜单的循环显示,嵌套的选择语句根据用户键入的选项选择不同的功能。
(2)查找图书模块
使用顺序查找法遍历整个链表,如果查到满足要求的数据信息则输出,否则输出查询数据不存在。
(3)增加图书模块
增加图书首先判断待增加的书是否存在,如果该图书存在则增加一本,如果不存在则输入新增图书的相关信息。
(4)删除图书模块
根据书号进行判断,如果不存在则输出该图书不存在,如果存在则删除该图书相关信息,删除图书结点时,根据结点在链表中的位置(表头、表尾和表中间)进行不同的处理。
(5)借阅图书模块
借阅图书时根据图书不存在、图书全部借出和可借阅三种情况分别处理。在借阅时需要手动输入借阅和归还时间,此处读者可进一步完善。
(6)归还图书模块
归还图书时应先判断待归还图书是否存在,并根据归还图书的借阅时间、归还时间以及当前时间判断图书借阅是否超期。如何罚款,读者可进一步完善。
(7)图书信息保存模块
使用二进制文件读写方式,遍历链表保存每一个数据到文件“data.bin”中。
(8)图书信息加载模块
使用二进制文件读写方式,遍历链表读取数据到结构体数组中。
四、系统运行
系统设计好了,现在我们就来看看设计的成果。
(1)单击【调试】工具栏中的编译按钮、链接按钮和运行按钮即可运行系统。系统运行后在命令行中显示了操作菜单,输入相应的数字,按【Enter】键后即可进入相应的功能模块,如图6-2所示。
图6-2
(2)增加图书。输入1,按【Enter】,即进入增加图书模块。根据提示依次输入书号、书名、作者、可借阅册数、馆藏总册数和简介,如图6-3所示。。
图6-3
(3)查找图书。输入3,按【Enter】,即进入查找图书模块。根据提示输入书号后按【Enter】,即可显示该书的书名、作者、当前可借阅册数、馆藏总册数和本书简介,如图6-4所示。
图6-4
(4)图书借阅。输入4,按【Enter】,即进入图书借阅模块。根据提示依次输入书号、借书证号、借出时间和归还时间,如图6-5所示。
图6-5
(5)图书归还。输入5,按【Enter】,即进入图书归还模块。根据提示依次输入书号、借书证号,如图6-6所示。
图6-6
(6)删除图书。输入2,按【Enter】,即进入删除图书模块。输入书号后按【Enter】即可删除该图书,如图6-7所示。
图6-7
(7)退出系统。输入8,按【Enter】,退出程序,如图6-8所示。
图6-8
五、小结
本章通过一个综合的例题———图书管理系统的开发,介绍了开发一个C应用程序的流程和一些技巧。首先,本章根据软件工程的生命周期,简单地介绍了系统的需求分析,然后讨论了系统的构架和需要的数据结构。接着,再以模块为单元介绍各个功能模块的实现。本章的主要目的是让读者了解一个完整的C程序应该如何来建立,相信读者学习后会有自己的理解。
超星网站cc++的更多相关文章
- centos7服务器安装fail2ban配合Firewalld防护墙防止SSH爆破与防护网站CC攻击
centos7服务器安装fail2ban配合Firewalld防护墙防止SSH爆破与防护网站CC攻击 1.检查firewalld是否启用 #如果您已经安装iptables建议先关闭 service i ...
- CSDN不限积分代下载,知网、万方、sci、IEEE论文代下载,智慧树、超星尔雅刷课
下载内容: 1.CSDN不限积分代下载. 2.知网.万方.sci.IEEE论文代下载. 3.超星尔雅,智慧树刷课. 注:由于本人手抖买一个CSDN会员,想挽回一点损失,所以创立了一个下载群,绝对不是骗 ...
- ISBN|方正|超星|The national academies press|OECD|RSC|Springer Link|Knovel|Encyclopedia Britannica
图书使用图书分类号ISBN作为图书的ID 大英百科全书(Encyclopedia Britannica)可用于找寻关键词或关键词相关信息,便于构建准确的检索式: Knovel:可使用物理化学性质查找相 ...
- selenium+python+eclipse 实现 “问卷星”网站,登录与检查登录示例!
1.使用selenium+python+eclipse实现的登录"问卷星",问卷星访问地址:https://www.sojump.com/ 2.实现步骤:1)进入链接---首页-- ...
- 超详细网站博客域名和二级域名、子域名升级HTTPS免费申请SSL证书配置nginx指南
随着互联网的飞速发展,我们的工作生活已经离不开互联网,HTTP虽然使用极为广泛, 但是存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付,网络交易等网站应用中 ...
- 超星toPDF
* ssReader to pdf Note: editor: Emacs-org 1. download and open the book with sspreader 2. click ...
- 使用python的selenium库刷超星网课
网课很多看不完呀 所以动手做了一个基础的自动答题和下一节的程序 用到了python 3 selenium Chrome 如何自动化Chrome?https://www.cnblogs.com/eter ...
- 超星尔雅看课刷题小tips
用chrom浏览器,先安装扩展程序Tampermonkey BETA 然后进入> https://greasyfork.org/zh-CN 找一款适合自己的脚本安装即可刷课.
- 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)
urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...
随机推荐
- Redis如何存储对象与集合示例详解
前言 大家都知道在项目中,缓存以及mq消息队列可以说是不可或缺的2个重要技术.前者主要是为了减轻数据库压力,大幅度提升性能.后者主要是为了提高用户的体验度,我理解的是再后端做的一个ajax请求(异 ...
- bat脚本自动备份文件资源
1:xcopy命令进行文件拷贝 2:脚本内容: <span style="font-size:18px;">@echo off color 0D MODE con: ...
- 搭建Discuz论坛
准备 LAMP 环境 LAMP 是 Linux.Apache.MySQL 和 PHP 的缩写,是 Discuz 论坛系统依赖的基础运行环境.我们先来准备 LAMP 环境 安装 MySQL 使用 yum ...
- uva-10194-排序
题意: 如果一个队伍的得分比对方高,那么就赢得这场游戏,很明显,如果得分低那就是输了,如果俩个队伍的得分一样,那么就是平局,赢得比较获得3个点的得分,平手1个点的得分,输了0分.排序规则如下1:得分点 ...
- 18.scrapy中selector的用法
Selector是一个独立的模块. Selector主要是与scrapy结合使用的. 开启Scrapy shell: 1.打开命令行cmd 2.scrapy shell http://doc.scra ...
- 用Redis实现分布式锁 与 实现任务队列【转载】
这一次总结和分享用Redis实现分布式锁 与 实现任务队列 这两大强大的功能.先扯点个人观点,之前我看了一篇博文说博客园的文章大部分都是分享代码,博文里强调说分享思路比分享代码更重要(貌似大概是这个意 ...
- as3 声明变量
var a:int=0, b, c:Number=2; trace(a,b,c) /* 0 undefined 2 */ var a:int, b:uint, c:Number; var d:Stri ...
- as2 针对加载进来的swf操作
如果加载的子swf,里面的东西会随时发生变化,那么as2获取的子swf宽高也会不停在变动. 解决方法,就是在子swf里面控制设置方法,当as2需要准确获取子swf宽高时,迫使子宽高恢复到原本样子,这样 ...
- python常见异常提示
PEP8 expected 2 blank lines, found 1 定义方法时,出现期望是2个空白行,但是实际检测到是1个.方法与上面内容间隔期望为两个换行符 PEP8 This diction ...
- Java 跨域 CrossOrigin注解 Filter拦截 Nginx配置
说明 资源请求的发起方与请求的资源不在同一个域中的: 一般的,只要网站的[协议名protocol].[主机host].[端口号port]这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用: ...