【第六周周记】

java:

面向对象程序设计特点:

封装,集成,多态

异常:

1 无意义异常

2 错误传递

3 数组异常

4 访问空指针对象成员

5 找不到某个类

6 I/O异常

7 文件找不到

8 文件结束

9 线程异常

处理异常:

方式(1)

try:要监控的程序语句

final:释放调用的资源

catch:捕获处理异常(可以有多个catch)

(2)throw:手动引发异常

(3)throws:指定由方法引发的异常

用户自定义异常:

内置异常不一定能捕获程序中所有的错误,

C++:

回顾:

类的创建:

(1)栈中创建

(2)堆中创建

this指针指向对象

构造函数:

构造函数不需要返回值类型

权限控制符一般为public

构造函数可以重载(函数名可以相同,函数的参数的个数或者类型不同)

含有类成员对象的构造函数?

析构函数:(也是类的一个特殊成员变量)

栈中创建的,函数返回时会被回收

手动开辟的成员(new)变量需要手动回收(delete)。

(1)函数名称和类名相同,析构函数前加取反~符号

(2)函数没有参数,因此不能重载,一个类中只有一个析构函数

(3)没有返回值(不能在析构函数名称前加返回值类型,内部也不能通过return返回任何值)

析构函数的作用:

在堆上的成员变量进行手动回收

拷贝构造函数:

对对象加const:只读(不能进行修改)

浅拷贝

深拷贝

数据结构:

队列:
两个问题:用C语言解决

(1)约瑟夫环

#include <stdio.h>

int size = 20;
int queue[20];
int front = 0, rear = 0;

// 向队列中添加元素
void enQueue(int e) 
{
    if ((rear + 1) % size == front) 
    {
        printf("Queue is full.\n");
        return;
    }
    queue[rear] = e;
    rear = (rear + 1) % size;
}

// 从队列中删除元素
int deQueue() {
    if (front == rear) {
        printf("Queue is empty.\n");
        return 0;
    }
    int e = queue[front];
    front = (front + 1) % size;
    return e;
}

// 约瑟夫环问题
int josephus(int n, int m) 
{
    // 初始化队列
    for (int i = 1; i <= n; i++)
    {
        enQueue(i);
    }

    int count = 0;
    while (front != rear - 1) 
    { // 只剩一个人时结束循环
        count++;
        int current = deQueue();
        if (count % m != 0)
        {
            enQueue(current); // 不是第 m 个出队的人,重新入队
        }
    }
    return deQueue(); // 返回最后一个出队的人
}

int main() {
    int n = 2, m = 3;
    int result = josephus(n, m);
    printf("The last person is %d.\n", result);//最后一个数字是哪个
    return 0;
}

(2)括号匹配问题

#include <stdio.h>
#include <stdbool.h>

#define MAX_STACK_SIZE 100

// 定义一个字符类型的栈
char stack[MAX_STACK_SIZE];
int top = -1;

// 入栈操作
void push(char c) {
    stack[++top] = c;
}

// 出栈操作
char pop() {
    return stack[top--];
}

// 判断括号是否匹配的函数
bool is_expression_valid(char* expression) {
    for (int i = 0; expression[i] != '\0'; i++) {
        if (expression[i] == '(' || expression[i] == '[' || expression[i] == '{') {
            push(expression[i]);   // 如果是左括号,入栈
        }
        else if (expression[i] == ')' || expression[i] == ']' || expression[i] == '}') {
            if (top == -1) {         // 如果栈为空,说明缺少左括号,配对失败
                return false;
            }
            else {
                char left = pop();   // 弹出栈顶元素
                if ( (expression[i] == ')' && left != '(' ) || (expression[i] == ']' && left != '[') || (expression[i] == '}' && left != '{')) {
                    return false;   // 如果弹出的左括号与当前右括号不匹配,配对失败
                }
            }
        }
    }
    return top == -1;   // 如果栈为空,说明括号全部配对成功,否则说明缺少右括号,配对失败
}

// 主函数
int main() {
    char expression[MAX_STACK_SIZE];   // 定义 char 类型数组作为存储表达式的字符串
    printf("Please input an expression: ");
    fgets(expression, MAX_STACK_SIZE, stdin);  // 从标准输入流中读取表达式字符串
    expression[strlen(expression) - 1] = '\0';   // 将读入的字符串最后一个字符改为 '\0',相当于去掉了换行符
    if (is_expression_valid(expression)) {     // 如果括号配对成功,输出 “Valid expression.”
        printf("Valid expression.\n");
    }
    else {                                   // 如果括号配对不成功,输出 “Invalid expression.”
        printf("Invalid expression.\n");
    }
    return 0;                                  // 返回程序正常结束
}

网页设计:

行内样式:

内嵌样式:

链接样式:

将一个/多个CSS为拓展名的CSS样式文件链接到html某一html文件中。

使用link标记一引入外部样式表文件

(创建CSS文件----也放在目录文件夹下):html文件,CSS文件,图片文件夹,JS文件,这些都放在目录文件夹下。

导入样式:一般不用

引入外部CSS样式文件

在style标签开头使用 @import语句

基本选择器

(1)id选择器:

(2)通配符选择器:

(3)类选择器:

交集选择器:由两个选择器构成,第一个为标记选择器,第二个为类选择器/id选择器,将选中满足两者定义的选择器

并集选择器:可以是多个选择器通过逗号隔开连接而成,将选中各个选择器所选范围

样式书写和命名规范:

CSS设置文本样式和图像样式:

(1)字体:

(2)字号:font-size

(3)文字粗细:font-weight

(4)文字复合样式

设置有先后顺序

html的注释:

CSS的注释:/* */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值