• 大小: 16KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 计算器  

资源简介

用C++实现!在CSDN的计算器资源中应该算是比较优秀的那种。 一般计算器,集成了多项式计算功能。 添加了一个(类似于数据库),用于启动时候的应用。 删除,添加,清空。 可以从预存的文件中加载多个数据库 包括一般计算器的加减乘除,多项式的加,减,乘,求导,求值。 添加了命令行交互方式! 可以说是非常强大!

资源截图

代码片段和文件信息

#include “fun.h“
#include 
#include 
#include 
//MainWindow
polynome::polynome():first(NULL)size(0){};
polynome::~polynome() {
    for(Node *p; p = first ; delete p)
        first = first -> next;
}
polynome::polynome(double n){
    clear();
    insert(n00);
}

bool polynome::operator ==(polynome &p){
    sort();
    p.sort();
    if(size != p.size){
        return false;
    }
    Node* current = first;
    Node* current_p = p.first;
    while(current != NULL && current_p != NULL) {
        if(current -> exponent != current_p -> exponent){
            return false;
        }
        if(abs(current -> ratio - current_p -> ratio) > EPS){
             return false;
        }
        current = current -> next;
        current_p = current_p -> next;
    }
    return true;
}

void polynome::insert(double rint eint pos) {
    if(pos > size|| pos < 0)return;
    if(pos == 0){
        Node* n = new Node(refirst);
        first = n;
        ++size;
        return ;
    }
    Node *current = first;
    Node *prev = NULL;
    for (int i = 0; i < pos;++i){
        prev = current;
        current = current->next;
    }
    Node *n = new Node(recurrent);
    prev->next = n;
    ++size;
}

void polynome::remove(int pos) {
    if (pos < 0|| pos >= size)return;
    if (pos == 0){
        Node *p = first;
        first = first->next;
        --size;
        delete p;
        return;
    }
    Node* current = first;
    Node* prev = NULL;
    for (int i=0;i < pos;++i){
        prev = current;
        current = current->next;
    }
    prev -> next = current ->next;
    delete current;
    --size;
}

int polynome::length()const {
    return size;
}

void polynome::clear() {
    for(Node *p; p = this -> first; delete p)
        this->first = this -> first -> next;
    size = 0;
}

polynome::polynome(const polynome & pl) {
    //copy constructor
    if(pl.length() <= 0){
        first = 0;
        size = 0;
        return;
    }
    *this = pl;
}

polynome& polynome::operator = (const polynome & pl) {
    if (this == &pl)
        return *this;
    if(pl.length() <= 0){
        clear();
        return *this;
    }
    first = new Node(pl.first -> ratio pl.first -> exponent);
    Node *current = first;
    Node *current_pl = pl.first -> next;

    while (current_pl != NULL){
        current -> next = new Node(current_pl -> ratiocurrent_pl -> exponent);
        current = current -> next;
        current_pl = current_pl -> next;
    }

    size = pl.size;
    return *this;
}

void polynome::sort() {
    for (Node *p = first; p ; p = p -> next){
        for (Node* q = p -> next; q; q = q->next) {
            if (*p < *q) {//Change in 2017/9/29
                int temp_exponent = p->exponent;
                p->exponent = q->exponent;
                q->exponent = temp_exponent;
                double temp_ratio = p->

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-10-05 08:08  polynome_v3\
     文件       10385  2017-10-04 12:00  polynome_v3\fun.cpp
     文件        1441  2017-10-03 00:07  polynome_v3\fun.h
     文件         485  2017-10-04 12:54  polynome_v3\Help.txt
     文件         199  2017-09-29 15:33  polynome_v3\main.cpp
     文件       38689  2017-10-05 07:40  polynome_v3\mainwindow.cpp
     文件        1828  2017-10-04 10:29  polynome_v3\mainwindow.h
     文件       24784  2017-10-04 12:46  polynome_v3\mainwindow.ui
     文件          80  2017-10-04 12:52  polynome_v3\polynomeStore.txt
     文件        1141  2017-10-02 11:19  polynome_v3\polynome_v3.pro
     文件       23835  2017-10-05 08:08  polynome_v3\polynome_v3.pro.user
     文件         304  2017-10-05 00:59  polynome_v3\readme.txt

评论

共有 条评论