我想写一份实验报告。实验目的是:掌握函数的调用和参数的传递,掌握使用tkinter设计界面和控件,具备解决实际生活或专业问题的能力。实验内容需要包括:问题描述、算法设计、代码、实验收获。请给我写一份实验报告。请不要使用服务员点餐并计算总价和学生计算GPA的问题。我需要代码比较简单易懂初级。
时间: 2024-02-15 20:04:49 浏览: 93
适合初学者,怎样写好测试报告,用例等
好的,以下是一份实验报告,供您参考:
实验报告:函数调用与界面设计
一、实验目的:
本次实验的目的是掌握函数的调用和参数的传递,掌握使用tkinter设计界面和控件,具备解决实际生活或专业问题的能力。
二、实验内容:
1. 问题描述:
假设你是一名大学生,你想要设计一个简单的借阅图书管理系统,以方便自己记录已借阅和归还的图书。请设计一个简单的界面,让你能够添加和删除已借阅的图书,并且显示已借阅和已归还的图书。
2. 算法设计:
为了实现这个功能,我们可以设计如下的算法:
- 创建一个空的图书列表,并初始化已借阅和已归还的图书计数为0。
- 创建一个界面,包括输入框、按钮和标签。
- 当你输入图书信息并点击添加按钮时,将输入的内容添加到图书列表中,并根据借阅状态增加已借阅或已归还的图书计数。
- 当你选择图书并点击删除按钮时,从图书列表中删除该图书,并根据借阅状态减少已借阅或已归还的图书计数。
- 根据图书列表显示已借阅和已归还的图书。
3. 代码:
以下是实现上述功能的Python代码:
```python
import tkinter as tk
books = []
borrowed_count = 0
returned_count = 0
def add_book():
book_name = book_name_entry.get()
author = author_entry.get()
if borrowed_var.get() == 1:
status = '已借阅'
global borrowed_count
borrowed_count += 1
else:
status = '已归还'
global returned_count
returned_count += 1
books.append((book_name, author, status))
borrowed_text.set('已借阅 {} 本图书'.format(borrowed_count))
returned_text.set('已归还 {} 本图书'.format(returned_count))
books_text.set(books)
def delete_book():
selected = books_listbox.curselection()
if len(selected) == 0:
return
book = books[selected[0]]
if book[2] == '已借阅':
global borrowed_count
borrowed_count -= 1
borrowed_text.set('已借阅 {} 本图书'.format(borrowed_count))
else:
global returned_count
returned_count -= 1
returned_text.set('已归还 {} 本图书'.format(returned_count))
books.remove(book)
books_text.set(books)
root = tk.Tk()
root.title('借阅图书管理系统')
book_name_label = tk.Label(root, text='书名')
book_name_label.grid(row=0, column=0)
author_label = tk.Label(root, text='作者')
author_label.grid(row=0, column=1)
borrowed_label = tk.Label(root, text='借阅状态')
borrowed_label.grid(row=0, column=2)
book_name_entry = tk.Entry(root)
book_name_entry.grid(row=1, column=0)
author_entry = tk.Entry(root)
author_entry.grid(row=1, column=1)
borrowed_var = tk.IntVar()
borrowed_checkbox = tk.Checkbutton(root, variable=borrowed_var, text='已借阅')
borrowed_checkbox.grid(row=1, column=2)
add_button = tk.Button(root, text='添加', command=add_book)
add_button.grid(row=2, column=1)
delete_button = tk.Button(root, text='删除', command=delete_book)
delete_button.grid(row=2, column=2)
books_text = tk.StringVar()
books_listbox = tk.Listbox(root, listvariable=books_text)
books_listbox.grid(row=3, columnspan=3)
borrowed_text = tk.StringVar()
borrowed_label = tk.Label(root, textvariable=borrowed_text)
borrowed_label.grid(row=4, column=0)
returned_text = tk.StringVar()
returned_label = tk.Label(root, textvariable=returned_text)
returned_label.grid(row=4, column=2)
root.mainloop()
```
4. 实验收获:
通过本次实验,我们学会了如何使用函数调用和参数传递实现简单的功能,同时也学会了如何使用tkinter设计界面和控件。在实现过程中,我们注意到了以下几点:
- 参数传递需要注意数据类型的匹配,否则会出现错误。
- 在函数内部修改全局变量需要使用`global`关键字声明。
- 对于不同类型的控件,需要使用不同的方法获取和设置其值。
通过本次实验,我们不仅掌握了基本的Python编程技能,还学会了如何将编程应用到实际生活中,具备了解决实际问题的能力。
阅读全文