项目实训-在线投票系统本章任务/30完成“在线投票系统”添加投票候选人删除候选人为候选人投票按序号投票删除投票输出统计信息……本章目标/30理解程序的基本概念会使用顺序、选择、循环、跳转语句编写程序会使用列表、字典等数据结构会使用相关运算符和函数做统计计算项目环境准备/30开发工具PyCharm CommunityAnaconda3.5.1开发语言Python3.6.4项目需求分析/30传统人工投票及统计票数方法投票统计速度较慢计票准确率不能保证不能在投票过程中实时输出统计结果在线投票系统采用序号投票的方式,速度较快程序进行计票统计,准确率有保证在程序中设置命令,实时调用统计模块输出统计结果问题分析开发步骤明确需求主要阶段添加候选人给候选人投票输出统计信息明确主要功能思考各个功能的实现方式/30项目流程图阶段2实现功能:1.按序号投票2.删除投票3.清空票数4.实时输出统计信息阶段1实现功能:增减候选人阶段3实现功能:输出统计信息/30项目效果参考3-1/30添加候选人项目效果参考3-2/30为候选人投票项目效果参考3-3/30输出统计信息项目功能拆解—添加候选人/30实现添加和删除候选人名使用列表数据结构,通过append()和pop()方法实现退出添加候选人阶段使用break跳出while循环实现在控制台交互使用input()函数实现使用命令的形式操作实现操作使用if语句判断输入的内容项目功能拆解—为候选人投票/30对候选人投票添加票数、减少票数和清空票数使用列表数据结构,通过append()和pop()方法实现清空票数直接将保存列表的变量赋值为空列表结束投票使用break跳出while循环实现在控制台交互使用input()函数实现使用命令的形式操作实现操作使用if语句判断输入的内容项目功能拆解—输出统计结果/30票数计数及排序接收投票阶段返回的得票列表使用字典实现计数,返回该字典使用列表sort()方法实现排序,返回列表统计信息输出接收统计票数字典作为参数,输出统计信息排名票数票数占比项目功能拆解—代码函数列表函数名描述append_candidates()添加候选人名append_vote()给候选人投票counter()票数计数器sort_by_value()票数排序describe()输出统计信息online_voting()主运行函数,根据需求调用相关函数/30难点分析—添加候选人阶段vote_list = [] #候选人列表while True:candidate = input("请输入候选人名或者输入命令') if prompt.strip() == 'finish': if len(vote_list) !=0: break else: print("请先输入候选人名’)else: vote_list.append(candidate) print("添加候选人成功’)/30当添加候选人列表为空时,阻止直接进入投票阶段,并提示“请先输入候选人名”难点分析—为候选人投票阶段3-1vote_list = [“张三”,”李四”] #候选人列表votes_name = [] #投票列表voting = input("投票给:’)if voting in vote_list: #判断是否在候选人列表中 votes_name.append(voting)else: print("请输入候选人列表中的名字’)/30输入的候选人名如果不在候选人名单中,提示“请输入候选人列表中的名字”难点分析—为候选人投票阶段3-2vote_list = [“张三”,”李四”] #候选人列表votes_name = [] #投票列表key_word_list=["stop’,’menu’] #定义命令关键字voting = input("投票给:’)if voting in key_word_list : #判断是否输入命令 if voting =="stop’:#实现stop命令的功能 elif …….:#实现其他命令的功能elif voting in vote_list: #判断是否输入候选人 votes_name.append(voting)else: print("请输入候选人列表中的名字’)操作者与命令行交互时可输入候选人名或者输入命令当输入命令时,要避免将该命令认为是操作者投票/30难点分析—为候选人投票阶段3-3vote_list = [“张三”,”李四”] #候选人列表votes_name = [] #投票列表voting = input("投票给:’)if voting in vote_list: #判断是否在候选人列表中 votes_name.append(voting)elif voting in

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐