基于Python实现(控制台)个人信息系统

♻️ 资源

大小: 95.3KB

➡️ 资源下载: https://download.csdn.net/download/s1t16/87425397

1. 课程设计目的

《软件设计基础-Python》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖Python的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握Python这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2. 课程设计任务与要求

本次课程设计利用《软件设计基础-Python》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

  • 对系统进行功能需求分析
  • 设计合理的数据结构和系统框架
  • 界面设计美观、清楚、合理
  • 编程简练,程序功能齐全,能正确运行
  • 具有一定的创新性
  • 说明书、流程图要清楚
  • 课题完成后必须按要求提交课程设计报告

任务:

制作一个录入个人信息的程序,姓名,性别,学历,专业,兴趣爱好等。将这些设定好的信息提交后,显示出来,并至少将3个人的信息写入文件。

3. 课程设计说明书

1.主要数据和主要函数介绍:

People一个类,存储了学生的姓名,性别,专业,学历,兴趣,爱好等各个属性,为后续的处理提供了方便。

People_list 数据类型为列表,存储了所有的学生对象

函数Add 提示用户输入学生信息,最后添加学生。

函数show 展示所有学生的信息

函数save 用来存储所有学生的信息,将所有学生的信息写入student.txt文件中

2.流程图及代码实现:

程序流程图:

源代码:

复制代码
people_list = list()

class People:
    def __init__(self,name,sex,education,major,interest,hobby):
        self.name = name  # 姓名
        self.sex = sex    # 性别
        self.education = education # 学业
        self.major = major  # 专业
        self.interest = interest    # 兴趣
        self.hobby = hobby  # 爱好

def add():
    name = input("请输入学生的姓名:")
    sex = input("请输入学生的性别:")
    education = input("请输入学生的学历:")
    major = input("请输入学生的专业:")
    interest = input("请输入学生的兴趣:")
    hobby = input("请输入学生的爱好:")
    p = People(name,sex,education,major,interest,hobby)
    people_list.append(p)
    print("成功添加")

def show():
    for i,p in enumerate(people_list):
        print("第%d个学生的信息如下:"%(i+1))
        print("学生姓名:",p.name)
        print("学生性别:",p.sex)
        print("学生学历:",p.education)
        print("学生专业:",p.major)
        print("学生兴趣:",p.interest)
        print("学生爱好:",p.hobby)
        print("-------------------")

def save():
    with open("student.txt","w") as f:
        for i,p in enumerate(people_list):
            f.write("第%d个学生的信息如下:\n"%(i+1))
            f.write("学生姓名:%s\n"%p.name)
            f.write("学生性别:%s\n"%p.sex)
            f.write("学生学历:%s\n"%p.education)
            f.write("学生专业:%s\n"%p.major)
            f.write("学生兴趣:%s\n"%p.interest)
            f.write("学生爱好:%s\n"%p.hobby)
            f.write("-------------------\n")

while(True):
    print("------个人信息录制系统--------")
    print("1. 添加信息")
    print("2. 展示信息")
    print("3. 储存信息")
    print("4. 退出")
    dev = int(input("请输入你的选择:"))
    if(dev == 1):
        add()
    elif(dev == 2):
        show()
    elif(dev == 3):
        save()
    elif(dev == 4):
        exit(0)
    else:
        print("输入错误!")
  1. 设计中遇到的问题

对于本次设计,这虽然是一个非常简单的问题,但是却有很多的细节,由于我开始的粗心,导致学生信息在存储中,没有进行换行,最后我进行字符串的拼接加上"\n"解决了该问题

4. 课程设计成果

运行结果:

注意事项:

请按照菜单的提示进行输入

5. 课程设计心得

本次课设,让我明白了纸上得来终觉浅,只是听听不动手实践时学不会编程的,这虽然是一个非常简单的课设,但是我在刚开始写程序时,由于马虎却出现了不少的错误,导致我检查了许多次,才发现错误。通过这次课设,我巩固并增强了我Python编程的能力。

相关推荐
a9511416421 小时前
c++如何解析二进制协议中的可选字段读取逻辑及其反序列化【详解】
jvm·数据库·python
HoneyMoose1 小时前
Discourse 更加依赖 tag 的扁平化管理
开发语言
曾阿伦2 小时前
AES 加密解密详解及示例
python·加密解密
Hello eveybody2 小时前
介绍最大公因数和最小公约数(Python)
开发语言·python
谭欣辰2 小时前
C++ 堆 的基础与 二叉堆详解
开发语言·c++
weixin_580614002 小时前
golang如何实现时间格式化_golang时间格式化方法详解
jvm·数据库·python
forEverPlume2 小时前
c++怎么利用std--span实现在不拷贝数据的前提下解析大规模文件【进阶】
jvm·数据库·python
Ulyanov2 小时前
《PySide6 GUI开发指南:QML核心与实践》 第十篇:综合实战——构建完整的跨平台个人管理应用
开发语言·python·qt·ui·交互·qml·雷达电子战系统仿真
ian4u2 小时前
车载 Android C++ 完整技能路线:从基础到进阶
android·开发语言·c++