赞
踩
综合运用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()
允许转载,转载时请务必以超链接形式标明文章 、原始出处 、作者信息和本声明。谢谢@-@!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。