python模仿windows文件管理_使用python实现一个(文件版)简单的课程管理系统

利用Python数据类型和控制结构创建一个课程管理系统,具备添加、删除、查询、保存和打开课程信息等功能。通过输入数字选择操作,系统检查课程编号的唯一性并展示操作结果。
摘要由CSDN通过智能技术生成

综合运用Python数据类型、运算符、控制语句、函数模块、文件等相关知识点,编写一个课程管理系统,系统实现如下功能: (1)主菜单功能;  (2)添加课程信息功能;  (3)保存课程信息数据功能。  (4)打开课程信息数据功能。  (5)删除课程信息功能。  (6)查询课程信息功能;  (7)退出系统。  下面是我的源代码以及对该源代码的分析,以供大家借鉴参考以及自己的记录。

import os

course_list = []  # 存储课程信息字典,课程信息用字典存,再用列表存储字典

# 菜单

def display_menu():

print("-" * 30)

print("   课程管理系统  ")

print("1.添加课程信息")

print("2.删除课程信息")

print("3.查询课程信息")

print("4.保存课程信息数据")

print("5.打开课程信息数据")

print("0.退出系统")

print("-" * 30)

# 选择序号的获得

def get_choice():

selected_key = input("请输入功能对应的数字:")

return selected_key

# 检查课程编号是否重复或者有误

def check_id(new_id):

flag = True

while flag:

if new_id.isdigit():

for i in range(len(course_list)):

if course_list[i]['id'] == new_id:

new_id = check_id(input("您输入的课程重复,请重新输入:"))

flag = False

else:

new_id = input("您输入的课程编号有误,请重新输入:")

return new_id

# 添加课程信息

def add_course():

print('-----------欢迎使用添加功能------------')

new_info = {}

new_id = check_id(input("请输入新的课程编号:"))

new_info['id'] = new_id

new_name = input("请输入新课程名称:")

new_info['name'] = new_name

new_style = input("请输入新课程类型(专业课/基础课):")

new_info['style'] = new_style

new_time = input("请输入新课程课时:")

new_info['time'] = new_time

new_point = input("请输入新课程学分:")

new_info['point'] = new_point

course_list.append(new_info)

print("添加成功!")

print('------------处理后的课程数据------------')

print('课程编号',' ','课程类型',' ','课程学分',' ','课程课时',' ','课程名称')

for course in course_list:

print(course['id'],' '*8, course['style'],' '*5, course['point'], ' '*8,course['time'], ' '*5,course['name'])

# 打开课程信息数据

def find_all():

print('-------------恭喜你,打开数据成功-------------')

print('------------处理后的课程数据------------')

print('课程编号',' ','课程类型',' ','课程学分',' ','课程课时',' ','课程名称')

for course in course_list:

print(course['id'],' '*8, course['style'],' '*5, course['point'], ' '*8,course['time'], ' '*5,course['name'])

# 删除课程信息

def del_course():

del_id_is = input("请输入要删除的课程编号:")

flag = False

index = 0

for i in range(len(course_list)):

if course_list[i]['id'] == del_id_is:

flag = True

index = i

break

if flag:

course_list.pop(index)

print('-------------恭喜你,删除数据成功-------------')

print('------------处理后的课程数据------------')

print('课程编号',' ','课程类型',' ','课程学分',' ','课程课时',' ','课程名称')

for course in course_list:

print(course['id'],' '*8, course['style'],' '*5, course['point'], ' '*8,course['time'], ' '*5,course['name'])

# 查询单个课程信息

def find_course():

find_id_is = input("请输入要查询的课程编号:")

flag = False

index = 0

for i in range(len(course_list)):

if course_list[i]['id'] == find_id_is:

flag = True

index = i

break

if flag:

print('------------处理后的课程数据------------')

print('课程编号',' ','课程类型',' ','课程学分',' ','课程课时',' ','课程名称')

print(course_list[index]['id'],' '*8, course_list[index]['style'],' '*5,course_list[index]['point'],' '*8, course_list[index]['time'], ' '*5,course_list[index]['name'])

else:

print('该课程未找到!')

# 保存课程信息

def save_cou():

course= str(course_list)

with open("course.txt", "w", encoding="utf-8") as f:

f.write(course)

print("保存成功!文件位置在"+os.getcwd())

print('处理后的课程数据')

print('课程编号',' ','课程类型',' ','课程学分',' ','课程课时',' ','课程名称')

for course in course_list:

print(course['id'],' '*8, course['style'],' '*5, course['point'], ' '*8,course['time'], ' '*5,course['name'])

# 恢复数据

def recover_data():

global course_list

try:

with open("course.txt", "r", encoding="utf-8") as f:

content = f.read()

if content != '':

course_list = eval(content)

except:

f = open("course.txt", "w")

f.write("[]")

def main():

recover_data()

exit_course = True

while exit_course:

display_menu()

key = get_choice()

if key == '1':

add_course()

elif key == '2':

del_course()

elif key == '3':

find_course()

elif key == '4':

save_cou()

elif key == '5':

find_all()

elif key == '0':

exit_course=input('确定退出吗?(yes/no):')

if exit_course == 'yes':

exit()

else:

pass

else:

print("请输入正确的数值!")

main()

允许转载,转载时请务必以超链接形式标明文章 、原始出处 、作者信息和本声明。谢谢@-@!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值