读书笔记||分支语句和逻辑运算符

一、if语句

if语句有两种格式:if和if else;

1.if语句


  if (test-condition)
      statement
 

如果test-condition(测试条件)为true,则程序执行statement(语句),如果条件为falsh,则程序跳过这条语句。if测试条件也会被强制转化为bool值,因此0将被转化为falsh,非零为true。

#include <iostream>
int main()
{
    using namespace std;
    char ch;
    int spaces = 0;
    int total = 0;
    cin.get(ch);
    while (ch != '.')   // quit at end of sentence
    {
        if (ch == ' ')  // check if ch is a space
            ++spaces;
        ++total;        // done every time
        cin.get(ch);
    }
    cout << spaces << " spaces, " << total;
    cout << " characters total in sentence";
    return 0;
}

在这里插入图片描述当ch为空格的时候,if语句才被执行,++spaces。而语句++total是在if语句之外,所以while有执行该语句也会跟着执行。

if else

 if(test-condition)
    statement1 
  else
   statement2
   

如果测试条件为true或为零,则执行程序执行statement1,跳过statement2;如果测试条件为falsh或0,则程序将跳过statement1,执行statement2。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述while和if else一起使用,首先满足while语句,然后在让if语句判断执行statement1或者statement2,在采用statement2采用++ch时候,程序仍会输出字母,当statement2采用ch+的时候,程序就会输出ASCII码加1。
3.if else if else结构

#include<iostream>
const int Fave=27;
int main()
{
using namespace std;
int n;
cout << "Enter a number in the range 1-100 to find";
cout << "my favorite number:";
do
 { 
  cin >> n;
  if(n<Fave)
    cout << "Too low  --guess again:"
  else if (n>Fave)
    cout <<"Too high  --guess again:"
  else
    cout <<Fave <<"is right!/n";
  }while(n!=Fave);
  return 0;
 }
 

在这里插入图片描述

二、逻辑表达式

3种逻辑表达式分别是逻辑OR(||)、逻辑AND(&&)和逻辑NO(!)。
1.逻辑OR
在这里插入图片描述

逻辑OR是只要一方为真就为真,只有当两方都为假的时候才是假。

2.逻辑AND
在这里插入图片描述
逻辑AND是要两方都为真的时候才是真,但凡一方为假就是假。
3.逻辑NO
!运算符就是将后面的表达式真值取反。也就是说如果expression为真,那么!expression为假;如果expression为假,那么!expression为真。

三、字符函数库cctype

#include <iostream>
#include <cctype>              // prototypes for character functions
int main()
{
    using namespace std;
    cout << "Enter text for analysis, and type @"
            " to terminate input.\n";
    char ch;  
    int whitespace = 0;
    int digits = 0;
    int chars = 0;
    int punct = 0;
    int others = 0;
     cin.get(ch);                // get first character
    while (ch != '@')            // test for sentinel
    {
        if(isalpha(ch))         // is it an alphabetic character?
            chars++;
        else if(isspace(ch))    // is it a whitespace character?
            whitespace++;
        else if(isdigit(ch))    // is it a digit?
            digits++;
        else if(ispunct(ch))    // is it punctuation?
            punct++;
        else
            others++;
        cin.get(ch);            // get next character
    }
    cout << chars << " letters, "
         << whitespace << " whitespace, "
         << digits << " digits, "
         << punct << " punctuations, "
         << others << " others.\n";
    // cin.get();
    // cin.get();
    return 0; 
}

在这里插入图片描述
在这里插入图片描述

四、?:运算符

条件运算符(?:)常被用来代替if else语句,也是C++中唯一一个需要3个操作数的运算符,
expression1?expression2:expression3
如果expression1为true,则整个表达式的值为expression2的值;否则整个表达式的值为expression3的值。
5>3?10:12 // 5>3为真,所以该表达式的值为10。
下面的例子就是为了比较a、b的值,然后将最大值赋值给c。

#include <iostream>
int main()
{
    using namespace std;
    int a, b;
    cout << "Enter two integers: ";
    cin >> a >> b;
    cout << "The larger of " << a << " and " << b;
    int c = a > b ? a : b;   // c = a if a > b, else c = b
    cout << " is " << c << endl;
 return 0; 
}

在这里插入图片描述

五、switch语句

switch语句是为了能够更容易地从大型列表中进行选择,也就是有多个选择的时候应用。

switch (integer-expression)
{
      case label 1: statement(s)
      case label 2: statement(s)
      ……
      default     : statement(s)
}

integer-expression 必须是一个结果为整数值的表达式。当integer-expression的值为2,则程序将执行标签为case2:那一行。

#include <iostream>
using namespace std;
void showmenu();   // function prototypes
void report();
void comfort();
nt main()
{
    showmenu();
    int choice;
    cin >> choice;
    while (choice != 5)
      {
        switch(choice)
        {
            case 1  :   cout << "\a\n";
                        break;
            case 2  :   report();
                        break;
            case 3  :   cout << "The boss was in all day.\n";
                        break;
            case 4  :   comfort();
                        break;
            default :   cout << "That's not a choice.\n";
        }
        showmenu();
        cin >> choice;
    }
    cout << "Bye!\n";
    // cin.get();
    // cin.get();
    return 0;
}
void showmenu()
{
    cout << "Please enter 1, 2, 3, 4, or 5:\n"
            "1) alarm           2) report\n"
            "3) alibi           4) comfort\n"
            "5) quit\n";
}
void report()
{
    cout << "It's been an excellent week for business.\n"
        "Sales are up 120%. Expenses are down 35%.\n";
}
void comfort()
{
    cout << "Your employees think you are the finest CEO\n"
        "in the industry. The board of directors think\n"
        "you are the finest CEO in the industry.\n";
}

在这里插入图片描述
当输入5的时候,while循环结束。输入1-4的将执行switch列表中的相应操作,输入6将执行默认语句。如果在这个语句中输入任意一个字母,输入语句将失效,导致循环不断运行,直至终止。

六、break和continue语句

break 和continue语句都能使程序跳过部分代码,可以在switch语句或者任何循环中使用break语句,使程序跳到switch或循环后面的语句执行。

#include <iostream>
const int ArSize = 80;
int main()
{
    using namespace std;
    char line[ArSize];
    int spaces = 0; 
    cout << "Enter a line of text:\n";
    cin.get(line, ArSize);
    cout << "Complete line:\n" << line << endl;
    cout << "Line through first period:\n";
    for (int i = 0; line[i] != '\0'; i++)
    {
        cout << line[i];    // display character
        if (line[i] == '.') // quit if it's a period
            break;
        if (line[i] != ' ') // skip rest of loop
            continue;
        spaces++;
    }
       cout << "\n" << spaces << " spaces\n";
       cout << "Done.\n";
       return 0;
}

在这里插入图片描述

七、读取数字的循环

#include <iostream>
const int Max = 5;
int main()
{
    using namespace std;
// get data
    int golf[Max];
    cout << "Please enter your golf scores.\n";
    cout << "You must enter " << Max << " rounds.\n";
    int i;
    for (i = 0; i < Max; i++)
     {
        cout << "round #" << i+1 << ": ";
        while (!(cin >> golf[i])) {
            cin.clear();     // reset input
            while (cin.get() != '\n')
                continue;    // get rid of bad input
            cout << "Please enter a number: ";
        }
    }
 // calculate average
    double total = 0.0;
    for (i = 0; i < Max; i++)
        total += golf[i];
// report results
    cout << total / Max << " = average score "
            << Max << " rounds\n";
    // cin.get();
    // cin.get();
    return 0; 
}

在这里插入图片描述

八、简单的文件输入\输出

1.文本I\O和文本文件:
当使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据——文本数据,然后cin对象负责将文本转化为其他类型。
2.写入到文本文件中
对于文件输入,C++类似于cout的东西。文件输入:
必须包含头文件iostream;
头文件iostream定义一个用处理输出的ostream类;
头文件iostream声明了一个名为cout的ostream变量(对象);
必须指明名称空间std;
可以结合使用cout和运算符<<来显示各种类型的数据。
文件输出:
必须包含头文件fstream;
头文件fstream定义了一个用于处理输出的ofstream类;
需要声明一个或者多个ofstream变量(对象),并以自己喜欢的方式对其命名,遵循常用的命名规则;
必须指明名称空间std;
需要将ofstream对象与文件关联起来。为此方法之一是使用open()方法;
使用完文件后,应该使用方法close()将其关闭;
可结合ofstream对象和运算符<< 来输出各种类型的数据。
使用文件输出的主要步骤就是:
包含头文件fstream;
创建一个ofstream对象;
将该ofstream对象同一个文件关联起来;
就像使用cout那样使用ofstream对象。

#include<iostream>
#include <fstream>
int main()
{
    using namespace std;
    char automobile[50];
    int year;
    double a_price;
    double d_price;
    ofstream outFile;               // create object for output
    outFile.open("carinfo.txt");    // associate with a file
    cout << "Enter the make and model of automobile: ";
    cin.getline(automobile, 50);
    cout << "Enter the model year: ";
    cin >> year;
    cout << "Enter the original asking price: ";
    cin >> a_price;
    d_price = 0.913 * a_price;
    // display information on screen with cout
    cout << fixed;
    cout.precision(2);
    cout.setf(ios_base::showpoint);
    cout << "Make and model: " << automobile << endl;
    cout << "Year: " << year << endl;
    cout << "Was asking $" << a_price << endl;
    cout << "Now asking $" << d_price << endl;
    // now do exact same things using outFile instead of cout
    outFile << fixed;
    outFile.precision(2);
    outFile.setf(ios_base::showpoint);
    outFile << "Make and model: " << automobile << endl;
    outFile << "Year: " << year << endl;
    outFile << "Was asking $" << a_price << endl;
    outFile << "Now asking $" << d_price << endl;
      outFile.close();                // done with file
    // cin.get();
    // cin.get();
    return 0;
}

在这里插入图片描述

3.读取文本文件
必须包含头文件iostream;
头文件iostream定义一个用处理输出的ostream类;
头文件iostream声明了一个名为cout的ostream变量(对象);
必须指明名称空间std;
可以结合使用cout和运算符<<来显示各种类型的数据。
可以使用cin和get()方法来读取一个字符,使用cin和getline()来读取一行字符;
可以结合使用cin和eof()、fail()方法来判断是否输入成功;
对象cin本身被用作测试条件时,如果最后一个读取操作成功,它将被转化为布尔值true,否则转化成false;
文件输出:
必须包含头文件fstream;
头文件fstream定义了一个用于处理输出的ifstream类;
需要声明一个或者多个ifstream变量(对象),并以自己喜欢的方式对其命名,遵循常用的命名规则;
必须指明名称空间std;
需要将ifstream对象与文件关联起来。为此方法之一是使用open()方法;
使用完文件后,应该使用方法close()将其关闭;
可结合ifstream对象和运算符<< 来输出各种类型的数据;
可以使用ifstram和get()方法来读取一个字符,使用ifsream和getline()来读取一行字符;
可以结合使用ifstream和eof()、fail()方法来判断是否输入成功;
ifstream对象本身被用作测试条件时,如果最后一个读取操作成功,它将被转化为布尔值true,否则转化成false;

#include <iostream>
#include <fstream>          // file I/O support
#include <cstdlib>          // support for exit()
const int SIZE = 60;
int main()
{
    using namespace std;
    char filename[SIZE];
    ifstream inFile;        // object for handling file input
     cout << "Enter name of data file: ";
    cin.getline(filename, SIZE);
    inFile.open(filename);  // associate inFile with a file
    if (!inFile.is_open())  // failed to open file
    {
        cout << "Could not open the file " << filename << endl;
        cout << "Program terminating.\n";
        // cin.get();    // keep window open
        exit(EXIT_FAILURE);
    }
    double value;
    double sum = 0.0;
    int count = 0;          // number of items read
     inFile >> value;        // get first value
    while (inFile.good())   // while input good and not at EOF
    {
        ++count;            // one more item read
        sum += value;       // calculate running total
        inFile >> value;    // get next value
    }
    if (inFile.eof())
        cout << "End of file reached.\n";
    else if (inFile.fail())
        cout << "Input terminated by data mismatch.\n";
    else
        cout << "Input terminated for unknown reason.\n";
    if (count == 0)
        cout << "No data processed.\n";
    else
    {
        cout << "Items read: " << count << endl;
        cout << "Sum: " << sum << endl;
        cout << "Average: " << sum / count << endl;
    }
    inFile.close();         // finished with the file
    // cin.get();
    return 0;
}
    

在这里插入图片描述
在这里插入图片描述先在目录下创建一个WWW.txt的记事本,再从该文本中打开。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水资源是人类社会的宝贵财富,在生活、工农业生产中是不可缺少的。随着世界人口的增长及工农业生产的发展,需水量也在日益增长,水已经变得比以往任何时候都要珍贵。但是,由于人类的生产和生活,导致水体的污染,水质恶化,使有限的水资源更加紧张。长期以来,油类物质(石油类物质和动植物油)一直是水和土壤中的重要污染源。它不仅对人的身体健康带来极大危害,而且使水质恶化,严重破坏水体生态平衡。因此各国都加强了油类物质对水体和土壤的污染的治理。对于水中油含量的检测,我国处于落后阶段,与国际先进水平存在差距,所以难以满足当今技术水平的要求。为了取得具有代表性的正确数据,使分析数据具有与现代测试技术水平相应的准确性和先进性,不断提高分析成果的可比性和应用效果,检测的方法和仪器是非常重要的。只有保证了这两方面才能保证快速和准确地测量出水中油类污染物含量,以达到保护和治理水污染的目的。开展水中油污染检测方法、技术和检测设备的研究,是提高水污染检测的一条重要措施。通过本课题的研究,探索出一套适合我国国情的水质污染现场检测技术和检测设备,具有广泛的应用前景和科学研究价值。 本课题针对我国水体的油污染,探索一套检测油污染的可行方案和方法,利用非分散红外光度法技术,开发研制具有自主知识产权的适合国情的适于野外便携式的测油仪。利用此仪器,可以检测出被测水样中亚甲基、甲基物质和动植物油脂的污染物含量,为我国众多的环境检测站点监测水体的油污染状况提供依据。
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值