目标:搭建名片管理系统 框架结构
通过本项目的学习,学员可以了解项目开发的流程,掌握项目需求分析、设计与功能的代码实现。提高同学们独立分析需求与功能实现的能力。
项目知识点:变量、流程控制、函数、模块等python基础中常用的知识点。
使用python设计一个名片管理系统,能提供下列服务:

  1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
  2. 用户用数字选择不同的功能
  3. 根据功能选择,执行不同的功能
  4. 用户名片需要记录用户的 姓名、电话、QQ、邮件
  5. 如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
    程序源码
card_list = []
def card():print('新增名片')name = input('姓名:')phone = input('电话:')qq = input('qq:')email = input('邮箱:')card_d = {'name': name, 'phone': phone,'qq': qq,'email': email}card_list.append(card_d)print('成功添加%s的名片' % card_d['name'])
def show():print('显示全部')if len(card_list) == 0:print('没有任何名片记录')returnprint('姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱')for card_d in card_list:print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'],card_d['phone'],card_d['qq'],card_d['email']))
def search():print('搜索名片')find_name = input('请输入要搜索的姓名:')for card_d in card_list:if card_d['name'] == find_name:print('姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱')print('%s\t\t%s\t\t%s\t\t%s' % (card_d['name'],card_d['phone'],card_d['qq'],card_d['email']))deal_card(card_d)breakelse:print('没有找%s的名片' % find_name)
def deal_card(find_d):b = input('请选择要进行的操作:1.修改 2.删除 3.返回主菜单')if b == '1':find_d['name'] = input("姓名")find_d['phone'] = input("电话")find_d['qq'] = input("qq")find_d['email'] = input("邮箱")print('修改名片成功')elif b == '2':card_list.remove(find_d)print('删除名片成功')def paixu():print("请输入排序的项目:\n1.根据电话号码排序\n2.根据qq排序\n3.根据邮箱排序")b = input()if b in ['1', '2', '3', ]:if b == '1':card_list.sort(key=lambda s: int(s["phone"][:]))print('姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱')for card_d in card_list:print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email']))if b == '2':card_list.sort(key=lambda s: int(s["qq"][:]))print('姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱')for card_d in card_list:print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email']))if b == '3':card_list.sort(key=lambda s: int(s["email"][:8]))print('姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱')for card_d in card_list:print('%s\t\t%s\t\t%s\t\t%s\t\t' % (card_d['name'], card_d['phone'], card_d['qq'], card_d['email']))
while True:print("—"*10)print("欢迎使用名片管理系统\n1.新增名片\n2.显示全部\n3.搜索名片\n4.排序系统\n0.退出系统")a = input("请选择序号:")if a in ["1", "2", "3","4"]:if a == "1":card()elif a == "2":show()elif a == "3":search()elif a == "4":paixu()elif a == "0":print("已退出")breakelse:print("输入错误,请重新输入:")

1.1引言
传统的手工方式,数据容易丢失,在统计时易发生错误高,速度慢。而使用计算机可以提高工作速度以及数据的准确性。从而提高了管理效率。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,名片管理系统以计算机为工具,通过对所需信息的管理,把管理员从繁琐的数据计算处理中解脱出来。为用户节省很多时间跟精力,提高用户的工作效率。
随着计算机的普及,越来越多的管理系统应运而生。同时,随着人们交往范围的不断扩大,我们需要同更多的人保持交流和联系,尤其是已经参加了工作的公司职员,除了熟悉的朋友,还有很多的客户,我们都要时不时的同他们保持联系,这时个人名片管理系统就可以派上用场了。
个人名片管理系统是用于辅助个人完成其名片有序管理的计算机软件系统,系统实施的目的旨在帮助用户完成其私人名片管理的数字化,以提供较手工方式下更高的效率和更低的出错率。
电子名片管理系统要实现的目标是:
将用户目前在处理名片管理工作时所采用的手工处理方式进行计算机化,从而与整个办公自动化系统的数字化趋势相协调,以求为用户提供更为专业和高效的个人管理服务。
1.2任务概述
本系统属于人员信息管理系统中名片管理模块,实现网络管理系统中关于名片管理的子功能。通过此软件,提高用软件工程分析问题、解决问题的能力,同时增强对数据库和python的使用能力。
目标:搭建名片管理系统 框架结构
准备文件,确定文件名,保证能够 在需要的位置 编写代码
编写 主运行循环,实现基本的 用户输入和判断

1.3数据描述
1.静态数据:
所谓静态数据,指在运行过程中主要作为参考的数据,它们在很长的一段时间内不会变化,一般不随运行而改变。
2.动态数据:
所谓动态数据.包括所有在运行中要发生变化的数据以及在运行中要输入、输出的数据。
3.系统流程图:

1.4功能需求

  1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
  2. 用户用数字选择不同的功能
  3. 根据功能选择,执行不同的功能
  4. 用户名片需要记录用户的 姓名、电话、QQ、邮件
  5. 将用户输入的数据排序,可以对电话,QQ,邮件的大小排序
  6. 如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
    提示用户依次输入名片信息
    将名片信息保存到一个字典
    将字典添加到名片列表
    提示名片添加完成
    1.5性能需求
    用户进入系统在终端输入0~4数字序号,如果输入其他字符会显示“输入错误,请重新输入”,输出会以字符型输出相关内容。在名片管理模块中,我们可以新建名片,可以修改名片,可以删除名片资料,对名片列表进行了显示,提高用户体验。
    1.6运行需求
    (1)、数据精确度
    进行操作请求时,如:名片录入、名片删除、名片修改、名片查询时,应保证输入数据与数据库数据的相匹配性。而在满足用户请求时,系统应保证所响应数据的正确性和全而性。
    (2)、时间性
    为满足用户高效要求,数据的响应时间、更新处理时间、数据转换与传输时间、运行时间都应在可接受范围之内。

第二章概要设计
2.1总体设计
设计主函数和部分功能的子函数,包括运行时的主菜单。首先函数运行时会弹出一个主菜单,然后输入数字选择操作,如图2.1.1主菜单。

                   图2.1.1 主菜单

2.2数据类型定义
def card(): 新增名片函数
def show(): 显示全部名片函数
def search(): 搜索名片函数
def deal_card(find_d): 删除名片函数
def xiugai(c,d): 修改名片函数
def paixu(): 对名片进行排序
2.3接口设计
表2.3:函数列表
函数名 函数格式 //即函数首部 函数功能
card def card(): 新增名片
show def show(): 显示全部名片
search def search(): 搜索名片
deal_card def deal_card(find_d): 删除名片
xiugai def xiugai(c,d): 修改名片
paixu def paixu(): 名片排序

2.4运行界面设计
以“—”为分割线,运行页面以简便友好的初衷设计,让用户可以轻松使用。
代码实现:
print(“—”*10)
print(“欢迎使用名片管理系统\n1.新增名片\n2.显示全部\n3.搜索名片\n4.排序系统\n0.退出系统”)
a = input(“请选择序号:”)
if a in [“1”, “2”, “3”,“4”]:
if a == “1”:
card()
elif a == “2”:
show()
elif a == “3”:
search()
elif a == “4”:
paixu()
elif a == “0”:
print(“已退出”)
break
else:
print(“输入错误,请重新输入:”)

第三章详细设计
3.1添加模块设计
使用 字典 记录 每一张名片 的详细信息
使用 列表 统一记录保存所有的 名片字典
根据步骤实现代码:
def card():
print(‘新增名片’)
name = input(‘姓名:’)
phone = input(‘电话:’)
qq = input(‘qq:’)
email = input(‘邮箱:’)
card_d = {‘name’: name, ‘phone’: phone,‘qq’: qq,‘email’: email}
card_list.append(card_d)
print(‘成功添加%s的名片’ % card_d[‘name’])
3.2显示全部名片模块设计
首先提示进入显示所有名片模块,然后将card_list中的信息循环输出,如果链表为空,则提示没有任何名片录入。
代码实现:
def show():
print(‘显示全部’)
if len(card_list) == 0:
print(‘没有任何名片记录’)
return
print(‘姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱’)
for card_d in card_list:
print(‘%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’],card_d[‘phone’],card_d[‘qq’],card_d[‘email’]))

3.3查询模块设计

提示用户要搜索的姓名,根据用户输入的姓名遍历列表,搜索到指定的名片后,再执行后续的操作。
代码实现
def search():
print(‘搜索名片’)
find_name = input(‘请输入要搜索的姓名:’)
for card_d in card_list:
if card_d[‘name’] == find_name:
print(‘姓名\t电话\tQQ\t邮箱’)
print(‘%s\t%s\t%s\t%s’ % (card_d[‘name’],card_d[‘phone’],card_d[‘qq’],card_d[‘email’]))
deal_card(card_d)
break
else:
print(‘没有找%s的名片’ % find_name)

3.4删除和修改名片模块设计
3.4.1删除模块
查询成功后删除名片,由于找到的字典记录已经在列表中保存,要删除名片记录,只需要把列表中对应的字典删除即可。
代码实现:
elif b == ‘2’:
card_list.remove(find_d)
print(‘删除名片成功’)
3.4.2修改模块
由于找到的字典记录已经在列表中保存要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可。
代码实现:
if b == ‘1’:
find_d[‘name’] = xiugai(find_d[‘name’], ‘姓名:’)
find_d[‘phone’] = xiugai(find_d[‘phone’], ‘电话:’)
find_d[‘qq’] = xiugai(find_d[‘qq’], ‘QQ:’)
find_d[‘email’] = xiugai(find_d[‘email’], ‘邮箱:’)
print(‘修改名片成功’)

3.5排序模块
根据链表card_list,只要使用sort快排函数即可完成排序,card_list.sort(key=lambda s: int(s[“phone”][:]))。首先设b来获取需要排序的项目,实现对电话号,qq,邮箱的排序功能。
代码实现:
print(“请输入排序的项目:\n1.根据电话号码排序\n2.根据qq排序\n3.根据邮箱排序”)
b = input()
if b in [‘1’, ‘2’, ‘3’, ]:
if b == ‘1’:
card_list.sort(key=lambda s: int(s[“phone”][:]))
print(‘姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱’)
for card_d in card_list:
print(‘%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))
if b == ‘2’:
card_list.sort(key=lambda s: int(s[“qq”][:]))
print(‘姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱’)
for card_d in card_list:
print(‘%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))
if b == ‘3’:
card_list.sort(key=lambda s: int(s[“email”][:8]))
print(‘姓名\t\t电话\t\t\t\tQQ\t\t\t\t邮箱’)
for card_d in card_list:
print(‘%s\t\t%s\t\t%s\t\t%s\t\t’ % (card_d[‘name’], card_d[‘phone’], card_d[‘qq’], card_d[‘email’]))

第四章测试分析
4.1测试程序执行情况

4.2出现的问题和解决的方法
修改完之后,修改的程序无法运行,认真检查之后发现代码中有一个变量打错了,导致整个子函数无法运行,修改之后,正常运行。在测试中发现在主页面如果输入非0~3字符会报错,添加else语句进行提示就解决了这个问题。
while True:
print(“欢迎使用名片管理系统\n1.新增名片\n2.显示全部\n3.搜索名片\n0.退出系统”)
if a in [“1”, “2”, “3”,“4”]:
if a == “1”:
card()
elif a == “2”:
show()
elif a == “3”:
search()
elif a == “4”:
paixu()
elif a == “0”:
print(“已退出”)
break
else:
print(“输入错误,请重新输入:”)
break
else:
print(“输入错误,请重新输入:”)

第五章实训总结

一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。我这次设计的科目是名片管理系统。
通过这次设计,我在多方面都有所提高。
很多程序在结构上是独立的,但是本此设计的程序功能不是零散的,它有一个连接是的程序是一个整体对以后的学习充满了信心和期待通过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更多的时间去上机实验,加强自学的能力,多编写程序,相信不久后我们的编程能力都会有很大的提高能设计出更多的更有创新的作品。

Python语言课程设计名片管理系统相关推荐

  1. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  2. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  3. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  4. c语言课程设计人事管理,C语言课程设计-人事管理系统(65页).doc

    C语言课程设计-人事管理系统(65页) C语言课程设计 --人事管理系统 来自资料搜索网() 海量资料下载 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员.教师.一般员工).退休人员 ...

  5. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  6. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  7. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc

    C语言课程设计图书馆管理系统程序代码.doc includestdio.h includewindows.h includestring.h includeconio.h define M 100 s ...

  8. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  9. c语言课程设计订单管理系统,C语言课程设计订单管理系统讲解.doc

    C语言课程设计订单管理系统讲解 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时 ...

最新文章

  1. GAN的基本原理与入门应用!
  2. MySQL 中的运算符
  3. Python实现固定效应回归模型实现因果关系推断
  4. 简单的python抢红包脚本-这个Python脚本牛逼了,秒抢红包就算了,还能无视撤回消息...
  5. web api 二
  6. 每天一道LeetCode-----计算小于n的素数个数
  7. nodejs启动机制分析
  8. phpcms9-6-0 一键getshell工具
  9. python设计模式pdf_精通Python设计模式 高清晰PDF+源码
  10. 学java 的要点_零基础学Java,掌握Java的基础要点
  11. 2021计算机应用基础形考答案模块2,国家开放大学计算机应用基础模块2形考答案-20210603091431.docx-原创力文档...
  12. VS 错误: 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...
  13. [leetcode] 554. 砖墙
  14. jdbc executebatch 非事务_面试:Mybatis事务请讲解一下?
  15. Rust: 从csv文件转成kbar的尝试:速度,还有Julia和激情
  16. 增量学习——文章汇总
  17. 自定义chrome新标签页
  18. ILI9341的使用之【五】命令一
  19. 新版鸟哥Linux私房菜资料
  20. [集合下载]邵式经典不完全收录 141部[59G]

热门文章

  1. 学习Python前序----计算机要点
  2. 0基础如何入门人工智能?
  3. Python爬取高颜值美女(爬虫+人脸检测+颜值检测)
  4. 全国省份地区相关常量备忘
  5. 并发编程系列之Semaphore
  6. fatal: the remote end hung up unexpectedly (curl 56 OpenSSL SSL_read:SSL_ERROR_sysCALL)
  7. 根据数据库中的出生年份计算年龄
  8. 30套最实用JAVA学习视频教程合集
  9. 监听器:统计在线人数
  10. 编程语言是怎么发展的?