第一次作业·

发布时间 2023-10-14 19:31:26作者: 计科三班杜康

功能结构图:

 

流程图:

 

 

 

 

c语言代码实现:

#include <stdio.h>
#include <math.h>

double add(double a, double b) {
return a + b;
}

double subtract(double a, double b) {
if (a < 100 && b < 100) {
return a - b;
} else {
printf("输入的值不满足条件,无法进行减法操作");
return 0;
}
}

double multiply(double a, double b) {
if (a < 100 && b < 100) {
return a * b;
} else {
printf("输入的值不满足条件,无法进行乘法操作");
return 0;
}
}

double divide(double a, double b) {
if (b != 0 && a >= 100 && b >= 100) {
return a / b;
} else {
printf("输入的值不满足条件,无法进行除法操作");
return 0;
}
}

double sqrt_newton(double a) {
double x = a;
double precision = 1e-6;
while (fabs(x * x - a) > precision) {
x = (x + a / x) / 2;
}
return x;
}

int main() {
double a, b;
printf("请输入两个数(用空格隔开):");
scanf("%lf %lf", &a, &b);

printf("请选择操作:1.加法 2.减法 3.乘法 4.除法 5.开方");
int choice;
scanf("%d", &choice);

switch (choice) {
case 1:
printf("结果:%.2lf", add(a, b));
break;
case 2:
printf("结果:%.2lf", subtract(a, b));
break;
case 3:
printf("结果:%.2lf", multiply(a, b));
break;
case 4:
printf("结果:%.2lf", divide(a, b));
break;
case 5:
printf("结果:%.2lf", sqrt_newton(a));
break;
default:
printf("无效的选择");
}

return 0;
}

python语言实现:

 这个计算器代码的UI设计使用了Python的Tkinter库来创建一个简单的图形用户界面。以下是详细的代码

import tkinter as tk
from math import sqrt

def add():
    a = float(entry_a.get())
    b = float(entry_b.get())
    result = a + b
    entry_result.delete(0, tk.END)
    entry_result.insert(0, str(result))

def subtract():
    a = float(entry_a.get())
    b = float(entry_b.get())
    result = a - b
    entry_result.delete(0, tk.END)
    entry_result.insert(0, str(result))

def multiply():
    a = float(entry_a.get())
    b = float(entry_b.get())
    result = a * b
    entry_result.delete(0, tk.END)
    entry_result.insert(0, str(result))

def divide():
    a = float(entry_a.get())
    b = float(entry_b.get())
    if b != 0:
        result = a / b
        entry_result.delete(0, tk.END)
        entry_result.insert(0, str(result))
    else:
        entry_result.delete(0, tk.END)
        entry_result.insert(0, "除数不能为0")

def sqrt_newton():
    a = float(entry_a.get())
    result = sqrt(a)
    entry_result.delete(0, tk.END)
    entry_result.insert(0, str(result))

root = tk.Tk()
root.title("简易计算器")

label_a = tk.Label(root, text="a:")
label_a.grid(row=0, column=0)
entry_a = tk.Entry(root)
entry_a.grid(row=0, column=1)

label_b = tk.Label(root, text="b:")
label_b.grid(row=1, column=0)
entry_b = tk.Entry(root)
entry_b.grid(row=1, column=1)

button_add = tk.Button(root, text="加法", command=add)
button_add.grid(row=2, column=0)
button_subtract = tk.Button(root, text="减法", command=subtract)
button_subtract.grid(row=2, column=1)

button_multiply = tk.Button(root, text="乘法", command=multiply)
button_multiply.grid(row=3, column=0)
button_divide = tk.Button(root, text="除法", command=divide)
button_divide.grid(row=3, column=1)

button_sqrt = tk.Button(root, text="开方", command=sqrt_newton)
button_sqrt.grid(row=4, column=0)

label_result = tk.Label(root, text="结果:")
label_result.grid(row=5, column=0)
entry_result = tk.Entry(root)
entry_result.grid(row=5, column=1)

root.mainloop()