Introduction
In this blog post, we will walk through the process of creating a visual calculator with a user-friendly interface. We will start with the basic requirements and gradually add more advanced features to our calculator. The project will be implemented using Python and will be version-controlled using Git and hosted on GitHub. We will follow good coding practices and provide a detailed explanation of our code. Let's get started!
The Link Your Class | https://bbs.csdn.net/forums/ssynkqtd-04 |
The Link of Requirement of This Assignment | https://bbs.csdn.net/topics/617332156 |
The Aim of This Assignment | Create a calculator |
MU STU ID and FZU STU ID | 21125384 832101203 |
Coding and Testing
import tkinter as tk
class CalculatorApp:
def __init__(self, root):
self.root = root
self.root.title("Calculator")
# 创建显示结果的文本框
self.display = tk.Entry(root, font=('Helvetica', 18))
self.display.grid(row=0, column=0, columnspan=4)
# 创建按钮
button_texts = [
('7', 1, 0), ('8', 1, 1), ('9', 1, 2),
('4', 2, 0), ('5', 2, 1), ('6', 2, 2),
('1', 3, 0), ('2', 3, 1), ('3', 3, 2), ('0', 4, 1),
('+', 1, 3), ('-', 2, 3), ('*', 3, 3), ('/', 4, 3),
('C', 4, 0), ('=', 4, 2)
]
self.buttons = {}
for (text, row, col) in button_texts:
self.buttons[text] = tk.Button(root, text=text, font=('Helvetica', 18), command=lambda t=text: self.on_button_click(t))
self.buttons[text].grid(row=row, column=col, padx=10, pady=10, sticky='nsew')
# 让所有行和列都可以扩展
for i in range(5):
self.root.grid_rowconfigure(i, weight=1)
self.root.grid_columnconfigure(i, weight=1)
self.current_input = ""
def on_button_click(self, text):
if text == '=':
try:
result = eval(self.current_input)
self.display.delete(0, tk.END)
self.display.insert(tk.END, str(result))
self.current_input = str(result)
except Exception as e:
self.display.delete(0, tk.END)
self.display.insert(tk.END, "Error")
self.current_input = ""
elif text == 'C':
self.display.delete(0, tk.END)
self.current_input = ""
else:
self.current_input += text
self.display.insert(tk.END, text)
if __name__ == "__main__":
root = tk.Tk()
app = CalculatorApp(root)
root.mainloop()
PSP Form
| **Personal Software Process Stages** | Estimated Time(minutes) | Actual Time(minutes) |
| :-------------------------------------- | :------------------------ | :--------------------- |
| Planning | | |
| • Estimate | 30 | |
| Development | | |
| • Analysis | 10 | |
| • Design Spec | 60 | |
| • Design Review | 20 | |
| • Coding Standard | 5 | |
| • Design | 10 | |
| • Coding | 30 | |
| • Code Review | 5 | |
| • Test | 10 | |
| Reporting | | |
| • Test Repor | 30 | |
| • Size Measurement | 20 | |
| • Postmortem & Process Improvement Plan | 12 | |
| **Sum** | 252 | |
Result Function
Description of Problem-Solving Ideas
The problem-solving process involves breaking down the project into smaller tasks, starting with the basic requirements and gradually adding more complex features. It's essential to plan the code structure and organization in advance to maintain a clean and maintainable codebase.
Design and Implementation Process
We've designed our project with separate modules for the calculator logic and GUI components. The calculator logic is responsible for performing calculations, while the GUI provides the user interface for input and display. We've connected these components in the main.py
file.
Code Description
We've provided code snippets in this blog post to illustrate key parts of the project, including the Calculator
class and the GUI components. We encourage readers to explore the complete code in the GitHub repository.
Displaying Result Functions
We'll add screenshots and text descriptions of the calculator's user interface and results once we complete the project.
Summarizing the Assignment
In this assignment, we've embarked on the journey of creating a visual calculator with both basic and advanced functionalities. We've outlined the steps for setting up the project, creating the code structure, implementing the calculator logic and GUI, and version-controlling our work with Git. Stay tuned for the final project with screenshots and detailed explanations.
Conclusion
Building a visual calculator is a great way to practice coding and develop a user-friendly application. By following good coding practices and using version control, we can create a robust and maintainable project. Stay tuned for the completed project and its documentation!