超星网站cc++

时间:2022-09-03 08:13:39
1
C/C ++程序设计
  • 1.1
    前 言
  • 1.2
    第一部分 基 础 篇
  • 1.2.1
    第1章 初识C
  • 1.2.1.1
    1.1 C语言的诞生与发展
  • 1.2.1.2
    1.2 C语言的特点
  • 1.2.1.3
    1.3 Vi sualC++6.0开发环境
  • 1.2.1.4
    1.4 简单的C程序介绍
  • 1.2.1.5
    1.5 C程序的构成
  • 1.2.1.6
    1.6 本章小结
  • 1.2.1.7
    1.7 练习题
  • 1.2.2
    第2章 变量和常量
  • 1.2.2.1
    2.1 计算机中的数据
  • 1.2.2.2
    2.2 数据的存储
  • 1.2.2.3
    2.3 数据角色
  • 1.2.2.4
    2.4 数据社会
  • 1.2.2.5
    2.5 本章小结
  • 1.2.2.6
    2.6 练习题
  • 1.2.3
    第3章 运算符与表达式
  • 1.2.3.1
    3.1 算术运算符
  • 1.2.3.2
    3.2 赋值运算符
  • 1.2.3.3
    3.3 关系运算符
  • 1.2.3.4
    3.4 逻辑运算符
  • 1.2.3.5
    3.5 条件运算符
  • 1.2.3.6
    3.6 逗号运算符
  • 1.2.3.7
    3.7 运算符的优先级
  • 1.2.3.8
    3.8 本章小结
  • 1.2.3.9
    3.9 练习题
  • 1.2.4
    第4章 控制流
  • 1.2.4.1
    4.1 顺序结构
  • 1.2.4.2
    4.2 选择结构
  • 1.2.4.3
    4.3 循环结构
  • 1.2.4.4
    4.4 本章小结
  • 1.2.4.5
    4.5 练习题
  • 1.2.5
    第5章 函数
  • 1.2.5.1
    5.1 函数概述
  • 1.2.5.2
    5.2 函数的类别
  • 1.2.5.3
    5.3 函数的使用
  • 1.2.5.4
    5.4 函数的参数传递
  • 1.2.5.5
    5.5 变量的作用域和存储类别
  • 1.2.5.6
    5.6 递归
  • 1.2.5.7
    5.7 本章小结
  • 1.2.5.8
    5.8 练习题
  • 1.2.6
    第6章 指针
  • 1.2.6.1
    6.1 指针
  • 1.2.6.2
    6.2 指针与函数
  • 1.2.6.3
    6.3 指针与数组
  • 1.2.6.4
    6.4 指针与字符串
  • 1.2.6.5
    6.5 结构体指针
  • 1.2.6.6
    6.6 void指针
  • 1.2.6.7
    6.7 本章小结
  • 1.2.6.8
    6.8 练习题
  • 1.2.7
    第7章 线性表
  • 1.2.7.1
    7.1 顺序表
  • 1.2.7.2
    7.2 链式表
  • 1.2.7.3
    7.3 本章小结
  • 1.2.7.4
    7.4 练习题
  • 1.2.8
    第8章 文件
  • 1.2.8.1
    8.1 打开和关闭文件
  • 1.2.8.2
    8.2 文本文件读写
  • 1.2.8.3
    8.3 二进制文件的读写
  • 1.2.8.4
    8.4 文件的随机读写
  • 1.2.8.5
    8.5 本章小结
  • 1.2.8.6
    8.6 练习题
  • 1.2.9
    第9章 位运算
  • 1.2.9.1
    9.1 位运算符
  • 1.2.9.2
    9.2 位运算应用
  • 1.2.9.3
    9.3 位域
  • 1.2.9.4
    9.4 本章小结
  • 1.2.9.5
    9.5 练习题
  • 1.2.10
    第10章 预编译指令
  • 1.2.10.1
    10.1 宏定义
  • 1.2.10.2
    10.2 文件包含
  • 1.2.10.3
    10.3 条件编译
  • 1.2.10.4
    10.4 本章小结
  • 1.2.10.5
    10.5 练习题
  • 1.2.11
    第11章 C ++
  • 1.2.11.1
    11.1 C++概述
  • 1.2.11.2
    11.2 C++程序设计
  • 1.2.11.3
    11.3 本章小结
  • 1.2.11.4
    11.4 练习题
  • 1.2.12
    第12章 调试技术
  • 1.2.12.1
    12.1 常见错误类型
  • 1.2.12.2
    12.2 调试技术
  • 1.2.12.3
    12.3 本章小结
  • 1.2.12.4
    12.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 库函数
1.3.6 图书管理系统
 

图书管理系统

通过前面章节的学习,读者应该对C语言的基本概念、程序设计方法有了一个基本的认识和理解。前面章节系统地介绍了C的基本内容,并通过大量的例题来说明其使用方法。为了让读者更全面地掌握使用C语言进行程序设计的方法,本章以图书管理系统为例,系统地介绍如何使用C语言开发应用程序。

一、需求分析

所谓磨刀不误砍柴工,在接到项目任务时,需要对项目的开发背景、客户的需求以及项目的可行性进行分析,然后再根据分析的结果做出合理的项目规划,使项目能够按部就班进行,不至于出现顾此失彼的情况。

一般来说,图书管理系统主要包括增加图书、删除图书、图书借阅、图书归还和图书查找等几方面的功能。事实上,一个完整的图书管理系统应该是一个数据库应用程序,需要具有数据库管理和用户管理等功能,为了突出C语言的重点,本章介绍的图书管理系统不考虑这些功能。

根据以上的分析,下面给出图书管理系统主要实现的功能:

(1)提供功能菜单,供用户选择;

(2)图书的增加、删除和查找功能;

(3)图书的借阅、归还功能;

(4)图书信息保存和加载功能。

二、总体设计

总体设计即系统的概要设计,需要完成对系统的分析和设计,以及设计系统需要的主要数据结构。

根据需要进行分析,本系统分成以下几个模块:主界面模块、增加图书模块、删除图书模块、查找图书模块、借阅图书模块、归还图书模块、图书信息保存模块和图书信息加载模块,具体功能模块如图6-1所示。

超星网站cc++

图6-1 总体设计

此外,由于该系统涉及图书信息、读者信息等数据结构的使用,声明相关结构体如下所示:

超星网站cc++

三、功能模块实现

下面将依次介绍主界面模块、增加图书模块、删除图书模块、查找图书模块、借阅图书模块、归还图书模块、图书信息保存模块和图书信息加载模块。

(1)主界面模块

通过循环语句实现菜单的循环显示,嵌套的选择语句根据用户键入的选项选择不同的功能。

超星网站cc++

超星网站cc++

超星网站cc++

(2)查找图书模块

使用顺序查找法遍历整个链表,如果查到满足要求的数据信息则输出,否则输出查询数据不存在。

超星网站cc++

超星网站cc++

(3)增加图书模块

增加图书首先判断待增加的书是否存在,如果该图书存在则增加一本,如果不存在则输入新增图书的相关信息。

超星网站cc++

超星网站cc++

超星网站cc++

(4)删除图书模块

根据书号进行判断,如果不存在则输出该图书不存在,如果存在则删除该图书相关信息,删除图书结点时,根据结点在链表中的位置(表头、表尾和表中间)进行不同的处理。

超星网站cc++

超星网站cc++

超星网站cc++

(5)借阅图书模块

借阅图书时根据图书不存在、图书全部借出和可借阅三种情况分别处理。在借阅时需要手动输入借阅和归还时间,此处读者可进一步完善。

超星网站cc++

超星网站cc++

超星网站cc++

(6)归还图书模块

归还图书时应先判断待归还图书是否存在,并根据归还图书的借阅时间、归还时间以及当前时间判断图书借阅是否超期。如何罚款,读者可进一步完善。

超星网站cc++

超星网站cc++

超星网站cc++

(7)图书信息保存模块

使用二进制文件读写方式,遍历链表保存每一个数据到文件“data.bin”中。

超星网站cc++

(8)图书信息加载模块

使用二进制文件读写方式,遍历链表读取数据到结构体数组中。

超星网站cc++

超星网站cc++

四、系统运行

系统设计好了,现在我们就来看看设计的成果。

(1)单击【调试】工具栏中的编译按钮、链接按钮和运行按钮即可运行系统。系统运行后在命令行中显示了操作菜单,输入相应的数字,按【Enter】键后即可进入相应的功能模块,如图6-2所示。

超星网站cc++

图6-2

(2)增加图书。输入1,按【Enter】,即进入增加图书模块。根据提示依次输入书号、书名、作者、可借阅册数、馆藏总册数和简介,如图6-3所示。。

超星网站cc++

图6-3

(3)查找图书。输入3,按【Enter】,即进入查找图书模块。根据提示输入书号后按【Enter】,即可显示该书的书名、作者、当前可借阅册数、馆藏总册数和本书简介,如图6-4所示。

超星网站cc++

图6-4

(4)图书借阅。输入4,按【Enter】,即进入图书借阅模块。根据提示依次输入书号、借书证号、借出时间和归还时间,如图6-5所示。

超星网站cc++

图6-5

(5)图书归还。输入5,按【Enter】,即进入图书归还模块。根据提示依次输入书号、借书证号,如图6-6所示。

超星网站cc++

图6-6

(6)删除图书。输入2,按【Enter】,即进入删除图书模块。输入书号后按【Enter】即可删除该图书,如图6-7所示。

超星网站cc++

图6-7

(7)退出系统。输入8,按【Enter】,退出程序,如图6-8所示。

超星网站cc++

图6-8

五、小结

本章通过一个综合的例题———图书管理系统的开发,介绍了开发一个C应用程序的流程和一些技巧。首先,本章根据软件工程的生命周期,简单地介绍了系统的需求分析,然后讨论了系统的构架和需要的数据结构。接着,再以模块为单元介绍各个功能模块的实现。本章的主要目的是让读者了解一个完整的C程序应该如何来建立,相信读者学习后会有自己的理解。

超星网站cc++的更多相关文章

  1. centos7服务器安装fail2ban配合Firewalld防护墙防止SSH爆破与防护网站CC攻击

    centos7服务器安装fail2ban配合Firewalld防护墙防止SSH爆破与防护网站CC攻击 1.检查firewalld是否启用 #如果您已经安装iptables建议先关闭 service i ...

  2. CSDN不限积分代下载,知网、万方、sci、IEEE论文代下载,智慧树、超星尔雅刷课

    下载内容: 1.CSDN不限积分代下载. 2.知网.万方.sci.IEEE论文代下载. 3.超星尔雅,智慧树刷课. 注:由于本人手抖买一个CSDN会员,想挽回一点损失,所以创立了一个下载群,绝对不是骗 ...

  3. ISBN|方正|超星|The national academies press|OECD|RSC|Springer Link|Knovel|Encyclopedia Britannica

    图书使用图书分类号ISBN作为图书的ID 大英百科全书(Encyclopedia Britannica)可用于找寻关键词或关键词相关信息,便于构建准确的检索式: Knovel:可使用物理化学性质查找相 ...

  4. selenium+python+eclipse 实现 “问卷星”网站,登录与检查登录示例!

    1.使用selenium+python+eclipse实现的登录"问卷星",问卷星访问地址:https://www.sojump.com/ 2.实现步骤:1)进入链接---首页-- ...

  5. 超详细网站博客域名和二级域名、子域名升级HTTPS免费申请SSL证书配置nginx指南

    随着互联网的飞速发展,我们的工作生活已经离不开互联网,HTTP虽然使用极为广泛, 但是存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付,网络交易等网站应用中 ...

  6. 超星toPDF

    * ssReader to pdf   Note: editor: Emacs-org   1. download and open the book with sspreader 2. click ...

  7. 使用python的selenium库刷超星网课

    网课很多看不完呀 所以动手做了一个基础的自动答题和下一节的程序 用到了python 3 selenium Chrome 如何自动化Chrome?https://www.cnblogs.com/eter ...

  8. 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)

    urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...

  9. [zz]有哪些优秀的科学网站和科研软件推荐给研究生?

    https://www.zhihu.com/question/37061410 如题,各位科研前辈,有没有一些好的科研网站或者适合科研人员用的软件以及APP,推荐给一只研一的菜鸡,帮助我们提高科研效率 ...

随机推荐

  1. 关于mySQL自连接的一些用法

    自连接是连接的一种用法,但并不是连接的一种类型,因为他的本质是把一张表当成两张表来使用. 举例说明: 这是一张职员信息表,如果我要查询这张表中的每个职员的上司,那么必须使用自连接来查询.所以为了能实现 ...

  2. xmind portable

    portable : http://dl2.xmind.cn/xmind-7.5-update1-portable.zip

  3. node02-util

    目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...

  4. 13_CXF和Spring整合发布服务

    [服务端] 第一步:建立一个Web项目 第二步:填充CXF jar包 第三步:创建接口及服务类 [工程截图(对比之前的WebService_CXF_Server00)] [applicationCon ...

  5. 关于C++的疑问剖析

    1)众所周知,抽象类是不存在对象的,只提供接口而不提供实现.但是抽象类能不能作为一个类指针,指向其子类的对象呢? class Interface { public: ; }; class Implem ...

  6. IOS 表视图(UITableVIew)的使用方法(6)表视图的编辑功能(新增Add)

    表视图的新增功能和删除功能虽然目的不同,但是工作流程是相似的 下面列出在处理新增的回调函数时,与删除所不同的逻辑部分代码. 显示下过如下: #pragma mark #pragma mark Tabl ...

  7. 选择法排序 vb.net

    Imports System.ThreadingModule Module1    Sub Main()        'test code        'Dim a, b As Integer   ...

  8. webAppbuilder微件使用教程2 常用微件介绍

    webAppbuilder微件使用教程 --常用微件介绍 by 李远祥 上一章介绍了webappbuilder微件的一些基础操作,这一张主要是介绍一些常用微件的使用试用和配置方法. 微件的主要作用按照 ...

  9. js的基础要点

    javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行.比如进行页面显示初始化的js必须放在head里面,因为初始 ...

  10. bzoj 2209 [Jsoi2011]括号序列 平衡树

    2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1404  Solved: 699[Submit][Statu ...