用链表写一个合同管理系统
时间: 2023-07-25 21:16:39 浏览: 81
好的,我可以为您解答这个问题。
合同管理系统是一个可以记录、管理合同信息的系统。链表是一种数据结构,可以用来实现合同管理系统。
以下是用链表实现合同管理系统的代码示例:
```python
class Contract:
def __init__(self, contract_id, contract_name, contract_duration):
self.contract_id = contract_id
self.contract_name = contract_name
self.contract_duration = contract_duration
self.next_contract = None
class ContractList:
def __init__(self):
self.head_contract = None
def add_contract(self, contract_id, contract_name, contract_duration):
new_contract = Contract(contract_id, contract_name, contract_duration)
if self.head_contract is None:
self.head_contract = new_contract
else:
current_contract = self.head_contract
while current_contract.next_contract is not None:
current_contract = current_contract.next_contract
current_contract.next_contract = new_contract
def delete_contract(self, contract_id):
if self.head_contract.contract_id == contract_id:
self.head_contract = self.head_contract.next_contract
else:
current_contract = self.head_contract
while current_contract.next_contract is not None:
if current_contract.next_contract.contract_id == contract_id:
current_contract.next_contract = current_contract.next_contract.next_contract
return
current_contract = current_contract.next_contract
def print_contracts(self):
current_contract = self.head_contract
while current_contract is not None:
print("Contract ID: " + current_contract.contract_id)
print("Contract Name: " + current_contract.contract_name)
print("Contract Duration: " + str(current_contract.contract_duration))
current_contract = current_contract.next_contract
```
在上面的代码中,首先定义了一个 Contract 类,用于表示一个合同。每个合同对象包括合同编号、合同名称和合同期限。同时,每个合同对象还包括一个指向下一个合同对象的指针。
接下来,定义了一个 ContractList 类,用于操作合同对象。该类包含三个方法:add_contract、delete_contract 和 print_contracts。
add_contract 方法用于添加一个新的合同对象到链表中。如果链表为空,则将该合同对象设置为链表的头节点。否则,遍历链表,找到最后一个合同对象,将新的合同对象添加到其 next_contract 属性。
delete_contract 方法用于从链表中删除一个指定合同编号的合同对象。如果要删除的合同对象是链表的头节点,则将头节点设置为其 next_contract 属性。否则,遍历链表,找到待删除合同对象的前一个合同对象,将其 next_contract 属性指向待删除合同对象的下一个合同对象。
print_contracts 方法用于遍历链表,并打印每个合同对象的属性。
这样,就可以使用上述代码实现一个简单的合同管理系统。
阅读全文