c++学生管理系统

想要实现的功能

1,可以增加学生的信息,包括(姓名,学号,c++成绩,高数成绩,英语成绩)

2,可以删除学生信息

3,修改学生信息

4,显示所有学生信息

5,查询学生信息

6,把所有学生根据平均成绩进行排名

注意:以下写作流程是按照思考的顺序书写的,如果想看完整代码,看最后!!!

大致思路:

首先创建一个Student类,这类里面包含学生的姓名,学号,c++成绩,高数成绩,英语成绩。在创建一个班级类,将学生类作为成员变量,这样每一个学生就可以放到班级类这个里面。

class Student {
private:
    string _name;
    string _stuNum;
    double _gradeC;
    double _gradeM;
    double _gradeE;
public:

    Student(string name = "", string stuNum = "", double gradeC = 0, double gradeM = 0, double gradeE = 0)
        :_name(name)
        , _stuNum(stuNum)
        , _gradeC(gradeC)
        , _gradeM(gradeM)
        , _gradeE(gradeE)
    {}

}

————————————————————————————————————

class StudentClass {
private:
    Student* _arr;
    int _useSize;
    int _capacity;
public:
    StudentClass(int capacity = 4) {
        
        _arr = new Student[capacity];
        _useSize = 0;
        _capacity = capacity;   

 }

————————————————————————————————————

然后写运行的大致框架:首先,实例化一个班级。打印出一个菜单,菜单上有各种那个操作。然后写一个循环(do-while循环:最少循环一次)然后输入要进行的操作,通过(switch)语句,对应到相应操作的语句。

void menu() {
    cout << "1,学生信息录入" << endl;
    cout << "2,删除学生信息" << endl;
    cout << "3,修改学生信息" << endl;
    cout << "4,显示所有学生信息" << endl;
    cout << "5,查询学生成绩" << endl;
    cout << "6,成绩排名" << endl;
    cout << "0,退出系统" << endl;
}

int main() {

    StudentClass studentClass(1);
    do
    {
        menu();
        cout << "请输入操作选项:" << endl;
        int choice;
        cin >> choice;
        switch (choice) {
        case 1://学生信息录入
        {
            GetIn(studentClass);
            break;
        }
        case 2://删除学生信息
        {
            Delete(studentClass);
            break;
        } 
        case 3://修改学生信息
        {
            Amend(studentClass);
                break;
        }
        case 4://显示所有学生信息
        {
            Print(studentClass);
            break;
        }
        case 5://查询学生成绩
        {
            Search(studentClass);
            break;
        }

       case 6://成绩排名
        {   Order(studentClass);
            break;
        }
        case 0:
            cout << " 退出系统" << endl;
            exit(0);
        default:
            cout << "输入错误,重新输入:" << endl;
            break;
        }
    } while (1);

    return 0;
}

达到这种效果:

________________________________________________________________

第一个操作对应的功能:

分别输入姓名,学号,c++成绩,高数成绩,英语成绩,然后实例化一个学生的引用。将这些作为构造函数是参数。然后将这个“学生”放到“班级”里面。想要实现这个操作就要在班级这个类里面写一个成员函数。把这个学生对象放到班级类指定的空间里面。这时就需要考虑班级这个类在初始化的时候开辟的空间是否够用。如果不够放下这个“学生”就要考虑扩容。

void GetIn(StudentClass& studentClass) {
    cout << "请输入学生信息->" << endl;
    cout << "姓名:" << endl;
    string name;
    cin >> name;
    cout << "学号:" << endl;
    string stuNum;
    cin >> stuNum;
    cout << "C语言成绩:" << endl;
    double a;
    cin >> a;
    cout << "高数成绩:" << endl;
    double b;
    cin >> b;
    cout << "英语成绩:" << endl;
    double c;
    cin >> c;
    Student stu(name, stuNum, a, b, c);
    studentClass.putin(stu);

}

————————————————————

注意:这是在班级这个类开辟的空间上,把学生这个对象放进去,所以这个函数是班级的成员函数

void putin(Student s) {
    if (_useSize == _capacity) {

        _capacity = _capacity == 0 ? _capacity = 4 : _capacity * 2; 
        Student* temp = new Student[_capacity]; 
        for (int i = 0; i < _useSize; i++) {
            temp[i] = _arr[i]; 
        }
        delete[]_arr; 
        _arr = temp; 
    }
    _arr[_useSize] = s;
    _useSize++;
}

效果如图所示:

————————————————————————————————

第二个操作对应的功能:

删除学生信息,我们需要输入学生的姓名或者学号,如果没找到不作操作,如果找到了这位学生,按照如下图思路将其覆盖,也就是删除

void Delete(StudentClass& studentClass) {
    cout << "请输入学生的学号/姓名:" << endl;
    string stuNum;
    cin >> stuNum;
    studentClass.del(stuNum);
}

————————————————————

班级的成员函数:

void del(string num) {
    int x = getUseSize();
    int i;
    for (i = 0;i < x;i++) {
        if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
            break;
        }
    }
    if (i==x) {
        cout << "查无此人! 删除失败!!!" << endl;
        return;
    }else{
        for (;i < _useSize - 1;i++) {
            _arr[i] = _arr[i + 1];
        }
        _useSize--;
        cout << " 删除成功" << endl;
        return;
    }
}
int getUseSize() {
    return _useSize;
}

——————————————————————————

学生的成员函数(因为名字和学号都是私有,所以要有一个函数是的让这些数据可以得到,这样做的目的是不让成员变量随意被更改)

string getStuNum() {
    return _stuNum;
}
string getStuName() {
    return _name;
}

效果如图所示:

——————————————————————————————

第三个操作对应的功能:

修改学生信息首先输入学号或者姓名,找到这个学生。然后打印一个目录,上面为要修改的信息选项,然后选择要修改的内容做出修改

void fix(string num) {
    int x = getUseSize();
    int i = 0;
    for ( i = 0;i < x;i++) {
        if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
            _arr[i].print();
            do
            {
                menu();
                int choice;
                cin >> choice;
                switch (choice) {
                case 1:
                    cout << "请输入修改后的名字:" << endl;
                    _arr[i].fixname(Cin("a"));
                    _arr[i].print();
                    break;
                case 2:
                    cout << "请输入修改后的学号:" << endl;
                    _arr[i].fixnum(Cin("a"));
                    _arr[i].print();
                    break;
                case 3:
                    cout << "请输入修改后的C语言成绩:" << endl;
                    _arr[i].fixC(Cin(1.1));
                    _arr[i].print();
                    break;
                case 4:
                    cout << "请输入修改后的高数成绩:" << endl;
                    _arr[i].fixM(Cin(1.1));
                    _arr[i].print();
                    break;
                case 5:
                    cout << "请输入修改后的英语成绩:" << endl;
                    _arr[i].fixE(Cin(1.1));
                    _arr[i].print();
                    break;
                case 0:
                    cout << "完成修改" << endl;
                    _arr[i].print();
                    return;
                default:
                    cout << "输入错误,重新输入:" << endl;
                    break;
                }

            } while (1);
        }

    }
    if (i == x) {
        cout << "查无此人! 修改失败!!!" << endl;
        return;
    }
}

void menu() {
    cout << "1,修改姓名" << endl;
    cout << "2,修改学号" << endl;
    cout << "3,修改C语言成绩" << endl;
    cout << "4,修改高数成绩" << endl;
    cout << "5,修改英语成绩" << endl;
    cout << "0,完成修改" << endl;
}
string Cin(string) {
    string s;
    cin >> s;
    return s;
}
double Cin(double) {
    double s;
    cin >> s;
    return s;
}

——————————————————————————————————————

void fixname(string s) {
    _name = s;
}
void fixnum(string s) {
    _stuNum = s;
}
void fixC(double x) {
    _gradeC = x;
}
void fixM(double x) {
    _gradeM = x;
}
void fixE(double x) {
    _gradeE = x;
}

void print() {
    cout << "姓名: " << _name << "  学号:" << _stuNum << "  C语言成绩:" << _gradeC << "  高数成绩"
        << _gradeM << "  英语成绩:" << _gradeE << endl;
}

效果如下:

————————————————————————————————————

第四个操作对应的功能:

显示所以信息,只需要for循环班级指向的空间,将所有学生打印出来即可

void Print(StudentClass& studentClass) {
    studentClass.print();

}

————————————————

班级的成员函数:

void print() {
    int x = getUseSize();
    for (int i = 0;i < x;i++) {
        _arr[i].print();
    }
}

实现效果:

第五个操作对应的功能:

查询学生信息,for循化找到该学生然后打印这个学生的信息

void Search(StudentClass& studentClass) {
    cout << "请输入学生的学号/姓名:" << endl;
    string stuNum;
    cin >> stuNum;
    studentClass.grade(stuNum);

}

————————————————————————————

班级成员函数:

void grade(string num) {
    int x = getUseSize();
    int i = 0;
    for (i = 0;i < x;i++) {
        if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
            _arr[i].getgrade();
            return;
        }
    }
    if (i == x) {
        cout << "查无此人!" << endl;
        return;
    }
}

——————————————————————————————————

学生成员函数:

void getgrade() {
    cout << "姓名:" << _name << endl;
    cout << endl;
    cout << " C语言成绩:" << _gradeC << "  高数成绩" << _gradeM << "  英语成绩:" << _gradeE << "  平均成绩:" << everage() << endl;
}

效果如下:

第六个操作对应的功能:

排序,实例化一个临时班级对象,将原来的班级拷贝到这个临时对象上面,对临时对象进行排序(冒泡排序),然后依次打印

StudentClass(StudentClass& stuclass) {
    
        _arr = (Student*)malloc(sizeof(Student) * stuclass._capacity);
        if (NULL == _arr) {
            perror("申请空间失败");
            return;
        }
        memcpy(_arr, stuclass._arr, sizeof(Student) * stuclass._useSize);
        _useSize = stuclass._useSize;
        _capacity = stuclass._capacity;
    
}

-------------------------------------------------——————————————

void Order(StudentClass& studentClass) {
    StudentClass stuclass = studentClass;
    studentClass.order(stuclass);
    stuclass.print1();
}

————————————————————————————————

班级成员变量:

void swap(Student& p1, Student& p2) {
    Student tmp = p2;
    p2 = p1;
    p1 = tmp;
}

void order(StudentClass& stuclass) {
    int x = getUseSize();
    for (int i = 0;i < x;i++) {
        for (size_t j = 0; j < x-i-1; j++)
        {
            if (stuclass._arr[j].everage() < stuclass._arr[j+1].everage()) {
                swap(stuclass._arr[j], stuclass._arr[j + 1]);
            }
        }
        
    }

}

——————————————————————————————

学生成员变量:

void getordergrade() {
    cout << "姓名: " << _name << "  学号:" << _stuNum << "  C语言成绩:" << _gradeC << "  高数成绩"
        << _gradeM << "  英语成绩:" << _gradeE << "  平均成绩:" << everage()<< endl;
    
}

效果:

全部代码:

#include<iostream>
#include<string>
using namespace std;


class Student {
private:
    string _name;
    string _stuNum;
    double _gradeC;
    double _gradeM;
    double _gradeE;
public:

    Student(string name = "", string stuNum = "", double gradeC = 0, double gradeM = 0, double gradeE = 0)
        :_name(name)
        , _stuNum(stuNum)
        , _gradeC(gradeC)
        , _gradeM(gradeM)
        , _gradeE(gradeE)
    {}
    void print() {
        cout << "姓名: " << _name << "  学号:" << _stuNum << "  C语言成绩:" << _gradeC << "  高数成绩"
            << _gradeM << "  英语成绩:" << _gradeE << endl;
    }
    string getStuNum() {
        return _stuNum;
    }
    string getStuName() {
        return _name;
    }
    void getgrade() {
        cout << "姓名:" << _name << endl;
        cout << endl;
        cout << " C语言成绩:" << _gradeC << "  高数成绩" << _gradeM << "  英语成绩:" << _gradeE << "  平均成绩:" << everage() << endl;
    }
    void getordergrade() {
        cout << "姓名: " << _name << "  学号:" << _stuNum << "  C语言成绩:" << _gradeC << "  高数成绩"
            << _gradeM << "  英语成绩:" << _gradeE << "  平均成绩:" << everage()<< endl;
        
    }
    double everage() {
        return (_gradeC + _gradeM + _gradeE) / 3;
    }
    void fixname(string s) {
        _name = s;
    }
    void fixnum(string s) {
        _stuNum = s;
    }
    void fixC(double x) {
        _gradeC = x;
    }
    void fixM(double x) {
        _gradeM = x;
    }
    void fixE(double x) {
        _gradeE = x;
    }
};


class StudentClass {
private:
    Student* _arr;
    int _useSize;
    int _capacity;
public:
    StudentClass(StudentClass& stuclass) {
        
            _arr = (Student*)malloc(sizeof(Student) * stuclass._capacity);
            if (NULL == _arr) {
                perror("申请空间失败");
                return;
            }
            memcpy(_arr, stuclass._arr, sizeof(Student) * stuclass._useSize);
            _useSize = stuclass._useSize;
            _capacity = stuclass._capacity;
        
    }
    StudentClass(int capacity = 4) {
        
        _arr = new Student[capacity];
        _useSize = 0;
        _capacity = capacity;
        

    }
    void putin(Student s) {
        if (_useSize == _capacity) {

            _capacity = _capacity == 0 ? _capacity = 4 : _capacity * 2; 
            Student* temp = new Student[_capacity]; 
            for (int i = 0; i < _useSize; i++) {
                temp[i] = _arr[i]; 
            }
            delete[]_arr; 
            _arr = temp; 
        }
        _arr[_useSize] = s;
        _useSize++;
    }

    void del(string num) {
        int x = getUseSize();
        int i;
        for (i = 0;i < x;i++) {
            if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
                break;
            }
        }
        if (i==x) {
            cout << "查无此人! 删除失败!!!" << endl;
            return;
        }else{
            for (;i < _useSize - 1;i++) {
                _arr[i] = _arr[i + 1];
            }
            _useSize--;
            cout << " 删除成功" << endl;
            return;
        }
    }
    int getUseSize() {
        return _useSize;
    }

    void print() {
        int x = getUseSize();
        for (int i = 0;i < x;i++) {
            _arr[i].print();
        }
    }
    void print1() {
        int x = getUseSize();
        for (int i = 0;i < x;i++) {
            _arr[i].getordergrade();
        }
    }
    void grade(string num) {
        int x = getUseSize();
        int i = 0;
        for (i = 0;i < x;i++) {
            if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
                _arr[i].getgrade();
                return;
            }
        }
        if (i == x) {
            cout << "查无此人!" << endl;
            return;
        }
    }
    void menu() {
        cout << "1,修改姓名" << endl;
        cout << "2,修改学号" << endl;
        cout << "3,修改C语言成绩" << endl;
        cout << "4,修改高数成绩" << endl;
        cout << "5,修改英语成绩" << endl;
        cout << "0,完成修改" << endl;
    }
    string Cin(string) {
        string s;
        cin >> s;
        return s;
    }
    double Cin(double) {
        double s;
        cin >> s;
        return s;
    }
    void fix(string num) {
        int x = getUseSize();
        int i = 0;
        for ( i = 0;i < x;i++) {
            if (_arr[i].getStuNum() == num || _arr[i].getStuName() == num) {
                _arr[i].print();
                do
                {
                    menu();
                    int choice;
                    cin >> choice;
                    switch (choice) {
                    case 1:
                        cout << "请输入修改后的名字:" << endl;
                        _arr[i].fixname(Cin("a"));
                        _arr[i].print();
                        break;
                    case 2:
                        cout << "请输入修改后的学号:" << endl;
                        _arr[i].fixnum(Cin("a"));
                        _arr[i].print();
                        break;
                    case 3:
                        cout << "请输入修改后的C语言成绩:" << endl;
                        _arr[i].fixC(Cin(1.1));
                        _arr[i].print();
                        break;
                    case 4:
                        cout << "请输入修改后的高数成绩:" << endl;
                        _arr[i].fixM(Cin(1.1));
                        _arr[i].print();
                        break;
                    case 5:
                        cout << "请输入修改后的英语成绩:" << endl;
                        _arr[i].fixE(Cin(1.1));
                        _arr[i].print();
                        break;
                    case 0:
                        cout << "完成修改" << endl;
                        _arr[i].print();
                        return;
                    default:
                        cout << "输入错误,重新输入:" << endl;
                        break;
                    }

                } while (1);
            }

        }
        if (i == x) {
            cout << "查无此人! 修改失败!!!" << endl;
            return;
        }
    }

    void swap(Student& p1, Student& p2) {
        Student tmp = p2;
        p2 = p1;
        p1 = tmp;
    }

    void order(StudentClass& stuclass) {
        int x = getUseSize();
        for (int i = 0;i < x;i++) {
            for (size_t j = 0; j < x-i-1; j++)
            {
                if (stuclass._arr[j].everage() < stuclass._arr[j+1].everage()) {
                    swap(stuclass._arr[j], stuclass._arr[j + 1]);
                }
            }
            
        }

    }
};


void menu() {
    cout << "1,学生信息录入" << endl;
    cout << "2,删除学生信息" << endl;
    cout << "3,修改学生信息" << endl;
    cout << "4,显示所有学生信息" << endl;
    cout << "5,查询学生成绩" << endl;
    cout << "6,成绩排名" << endl;
    cout << "0,退出系统" << endl;
}

void GetIn(StudentClass& studentClass) {
    cout << "请输入学生信息->" << endl;
    cout << "姓名:" << endl;
    string name;
    cin >> name;
    cout << "学号:" << endl;
    string stuNum;
    cin >> stuNum;
    cout << "C语言成绩:" << endl;
    double a;
    cin >> a;
    cout << "高数成绩:" << endl;
    double b;
    cin >> b;
    cout << "英语成绩:" << endl;
    double c;
    cin >> c;
    Student stu(name, stuNum, a, b, c);
    studentClass.putin(stu);

}
void Delete(StudentClass& studentClass) {
    cout << "请输入学生的学号/姓名:" << endl;
    string stuNum;
    cin >> stuNum;
    studentClass.del(stuNum);
}

void Amend(StudentClass& studentClass) {
    cout << "请输入学生的学号/姓名:" << endl;
    string stuNum;
    cin >> stuNum;
    studentClass.fix(stuNum);
}

void Print(StudentClass& studentClass) {
    studentClass.print();

}

void Search(StudentClass& studentClass) {
    cout << "请输入学生的学号/姓名:" << endl;
    string stuNum;
    cin >> stuNum;
    studentClass.grade(stuNum);

}

void Order(StudentClass& studentClass) {
    StudentClass stuclass = studentClass;
    studentClass.order(stuclass);
    stuclass.print1();
}

int main() {

    StudentClass studentClass(1);
    do
    {
        menu();
        cout << "请输入操作选项:" << endl;
        int choice;
        cin >> choice;
        switch (choice) {
        case 1://学生信息录入
        {
            GetIn(studentClass);
            break;
        }
            
        case 2://删除学生信息
        {
            Delete(studentClass);
            break;
        }
            
        case 3://修改学生信息
        {
            Amend(studentClass);
                break;
        }
            
        case 4://显示所有学生信息
        {
            Print(studentClass);
            break;
        }
            
        case 5://查询学生成绩
        {
            Search(studentClass);
            break;
        }

        case 6://成绩排名
        {   Order(studentClass);
            break;
        }
        case 0:
            cout << " 退出系统" << endl;
            exit(0);
        default:
            cout << "输入错误,重新输入:" << endl;
            break;
        }
    } while (1);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支持AMD GPU的llm.c

anthonix/llm.c: LLM training in simple, raw C/HIP for AMD GPUs (github.com) llm.c for AMD devices This is a fork of Andrej Karpathys llm.c with support for AMD devices. 性能 在单个7900 XTX显卡上使用默认设置&#xff0c;目前的训练步骤耗时约为79毫秒&#x…

Docker的安装、启动和配置镜像加速

前言&#xff1a; Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 而企业部署一般都是采用Linux操作系统&#xff0c;而…

【软件设计师】2022年上半年真题解析

​​冯诺依曼计算机体系结构的基本特点是&#xff1a; A. 程序指令和数据都采用二进制表示 - 这是正确的&#xff0c;因为冯诺依曼架构下的计算机使用二进制形式来表示和处理所有信息&#xff0c;包括指令和数据。 B. 程序指令总是存储在主存中&#xff0c;而数据则存储在高速…

IsoBench:多模态基础模型性能的基准测试与优化

随着多模态基础模型的快速发展&#xff0c;如何准确评估这些模型在不同输入模态下的性能成为了一个重要课题。本文提出了IsoBench&#xff0c;一个基准数据集&#xff0c;旨在通过提供多种同构&#xff08;isomorphic&#xff09;表示形式的问题&#xff0c;来测试和评估多模态…

算法(十三)回溯算法---N皇后问题

文章目录 算法概念经典例子 - N皇后问题什么是N皇后问题&#xff1f;实现思路 算法概念 回溯算法是类似枚举的深度优先搜索尝试过程&#xff0c;主要是再搜索尝试中寻找问题的解&#xff0c;当发生不满足求解条件时&#xff0c;就会”回溯“返回&#xff08;也就是递归返回&am…

enum4linux一键查询SMB信息(KALI工具系列十六)

目录 1、KALI LINUX简介 2、enum4linux工具简介 3、在KALI中使用enum4linux 3.1 目标主机IP&#xff08;win&#xff09; ​编辑 3.2 KALI的IP 4、操作示例 4.1 运行工具 4.2 列出用户名 4.3 提取用户名 4.4 使用自定义RID范围 4.5 列出组 4.6 列出共享文件夹 4.7…

网络监听技术

网络监听技术 网络监听概述网络监听环境 流量劫持网络环境共享式网络监听原理交换式网络监听交换机的工作方式交换网络监听&#xff1a;交换机集线器交换网络监听&#xff1a;端口镜像交换网络监听&#xff1a;MAC洪泛交换网络监听&#xff1a;MAC洪泛交换网络监听&#xff1a;…

动态SQL where, choose语句

where语句就一个<where>标签, 很简单, 不再过多赘述 接下来我们来看 choose语句的使用 其实choose语句就像java里的swith语句 , 如果语句前面的生效 , 后面的就不会生效了 可以定义查询的优先级

读人工智能时代与人类未来笔记19_读后总结与感想兼导读

1. 基本信息 人工智能时代与人类未来 (美)亨利基辛格,(美)埃里克施密特,(美)丹尼尔胡滕洛赫尔 著 中信出版社,2023年6月出版 1.1. 读薄率 书籍总字数145千字&#xff0c;笔记总字数39934字。 读薄率39934145000≈27.5% 1.2. 读厚方向 千脑智能 脑机穿越 未来呼啸而来 …

【工具】 MyBatis Plus的SQL拦截器自动翻译替换“?“符号为真实数值

【工具】 MyBatis Plus的SQL拦截器自动翻译替换"?"符号为真实数值 使用MyBatis的配置如下所示&#xff1a; mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl调用接口&#xff0c;sql日志打印如下&#xff1a; 参数和sql语句不…

顶底背离的终极猜想和运用

这几天圈内都在传底蓓离什么的。作为严肃的量化自媒体&#xff0c;我们就不跟着吃这波瓜了。不过&#xff0c;我一直很关注技术指标的顶背离和底背离&#xff0c;一直在追问它的成因如何&#xff0c;以及如何预测。 底蓓离把我目光再次吸引到这个领域来&#xff0c;于是突然有…

LitCTF 2024(公开赛道)——WP

目录 Misc 涐贪恋和伱、甾―⑺d毎兮毎秒 你说得对&#xff0c;但__ 盯帧珍珠 Everywhere We Go 关键&#xff0c;太关键了! 女装照流量 原铁&#xff0c;启动&#xff01; 舔到最后应有尽有 The love Web exx 一个....池子&#xff1f; SAS - Serializing Authent…

MySQL—函数—日期函数(基础)

一、引言 接下来讨论和学习关于函数的第三个方面——日期函数。 常见的MySQL当中的日期函数。 注意&#xff1a; 1、CURDATE()&#xff1a;cur&#xff1a;current 当前的&#xff0c;返回的是当前日期。 2、CURTIME()&#xff1a;当前时间。 3、NOW&#xff1a;当前的日期和…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文解析的原始论文为&#xff1a;https://arxiv.org/…

力扣1143. 最长公共子序列

给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以…

打造你的专属Vue组件:基于FullCalendar超实用“日程任务管理组件”实战

打造你的专属Vue组件&#xff1a;基于FullCalendar超实用“日程任务管理组件”实战 在现代Web应用中&#xff0c;日程管理是一个常见而又关键的功能&#xff0c;它帮助用户高效安排和追踪日常任务及会议。Vue.js作为一个流行的前端框架&#xff0c;以其简洁的语法和强大的组件…

编译选项导致的结构体字节参数异常

文章目录 前言问题描述原因分析问题解决总结 前言 在构建编译工程时&#xff0c;会有一些对应的编译配置选项&#xff0c;不同的编译器&#xff0c;会有对应的配置项。本文介绍GHS工程中编译选项配置不对应导致的异常。 问题描述 在S32K3集成工程中&#xff0c;核1的INP_SWC…

JVM垃圾收集器和内存分配策略

概述 Java内存运行时数据区的程序计数器、虚拟机栈、本地方法栈3个区域会随着线程而产生&#xff0c;随线程而消失。这几个区域分配多少内存时在类结构确定下来即已知的&#xff0c;在这几个区域内就不需要过多考虑如何回收内存的问题&#xff0c;当方法结束或者线程结束时&am…

【spring】第一篇 IOC和DI入门案例

Spring到底是如何来实现IOC和DI的&#xff0c;那接下来就通过一些简单的入门案例&#xff0c;来演示下具体实现过程。 目录 前期准备 一、IOC入门案例 思路分析 代码实现 二、DI入门案例 思路分析 代码实现 总结 前期准备 使用IDEA创建Maven项目&#xff0c;首先需要配…

JAVAEE1

Web前端&#xff1a; 1.建立web开发的息维模式写代码不仅仅是为了实现某个功能&#xff0c;更是学习解决问题的思维方式 2.先使用&#xff0c;再理解&#xff0c;会导致刚开始比较懵&#xff0c;不知其所以然.切忌不可深陷其中&#xff0c; 3.涉及简单的软件工程的设计思想&…