鱼C论坛

 找回密码
 立即注册
查看: 2220|回复: 14

求一道关于学生随机抽号演讲计分系统编程的题目 没有思路TT

[复制链接]
发表于 2020-5-23 15:27:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Kongxi 于 2020-5-23 18:55 编辑

设计一款用于课程大作业检查或比赛计分的软件,基本功能:
(1)设置本课程的学生总数
(2)根据本次参与的学生总数,随机抽取一个还未汇报演讲的学生的学号。
(3)每个学生汇报演讲完毕,输入该学生的得分(假设有5个评委,则需输入5个成绩)。
(4)计算该选手的得分:去掉最高分和最低分,其余的分数求平均,并显示选手序号、姓名、得分。
(5),生的成绩。
(6)对演讲过的学生作上标记,下次程序运行时不再抽取该学号。
(7)每次退出程序时(不一定一次能进行完所有的学生的汇报,可以分多次进行),将学生的序号、姓名、成绩写入文件。
(8)结束对学生成绩进行排序,显示,并按照一等奖10%、二等奖20%、三等奖30%的比例确定选手的获奖名次,并将结果写入文件保存。


没有思路T T,求助大佬们教学一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-23 15:29:42 | 显示全部楼层
......软.......件......
海量代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 15:30:30 | 显示全部楼层
用面对对象的做法吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 15:30:51 | 显示全部楼层
乞   讨   代   码   的   ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 17:38:52 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-23 15:30
乞   讨   代   码   的   ?

然也,拿到就跑路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 17:45:59 | 显示全部楼层
本帖最后由 Kongxi 于 2020-5-23 17:56 编辑
wp231957 发表于 2020-5-23 17:38
然也,拿到就跑路


学校的练习题...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 17:50:05 | 显示全部楼层
Twilight6 发表于 2020-5-23 15:30
用面对对象的做法吗?

不是面向对象,只是设计
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 18:06:14 | 显示全部楼层
Kongxi 发表于 2020-5-23 17:50
不是面向对象,只是设计

就是问你是不是用 面对对象的方法啊。。。难道你意思是弄出个软件?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 18:23:39 | 显示全部楼层
Twilight6 发表于 2020-5-23 18:06
就是问你是不是用 面对对象的方法啊。。。难道你意思是弄出个软件?

嗯嗯 是面向对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 19:22:34 | 显示全部楼层
Kongxi 发表于 2020-5-23 18:23
嗯嗯 是面向对象

晚上帮你试着写写,以后这样的题目尽量少发,因为论坛是解决疑问的地方,不是白嫖的地方噢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 23:36:55 | 显示全部楼层
Twilight6 发表于 2020-5-23 19:22
晚上帮你试着写写,以后这样的题目尽量少发,因为论坛是解决疑问的地方,不是白嫖的地方噢

好的 蟹蟹  我找到了思路正在尝试编写,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-23 23:37:42 | 显示全部楼层
Kongxi 发表于 2020-5-23 23:36
好的 蟹蟹  我找到了思路正在尝试编写,


我正在写...emmm  不知道会不会写的出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 00:21:50 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-24 00:23 编辑

有瑕疵就是不能中途中断,楼主你自己看看改改~
  1. """
  2. 设计一款用于课程大作业检查或比赛计分的软件,基本功能:
  3. (1)设置本课程的学生总数
  4. (2)根据本次参与的学生总数,随机抽取一个还未汇报演讲的学生的学号。
  5. (3)每个学生汇报演讲完毕,输入该学生的得分(假设有5个评委,则需输入5个成绩)。
  6. (4)计算该选手的得分:去掉最高分和最低分,其余的分数求平均,并显示选手序号、姓名、得分。
  7. (5),生的成绩。
  8. (6)对演讲过的学生作上标记,下次程序运行时不再抽取该学号。
  9. (7)每次退出程序时(不一定一次能进行完所有的学生的汇报,可以分多次进行),将学生的序号、姓名、成绩写入文件。
  10. (8)结束对学生成绩进行排序,显示,并按照一等奖10%、二等奖20%、三等奖30%的比例确定选手的获奖名次,并将结果写入文件保存。
  11. """
  12. from random import choice

  13. class Check:

  14.     def __init__(self,number):
  15.         self.first = int(number * 0.1)
  16.         self.second = int(number * 0.2)
  17.         self.three = int(number * 0.3)
  18.         self.number = list(range(1,number+1))
  19.         self.students_result = []

  20.     def score(self):
  21.         i = 1  ; result_list = []
  22.         name = input('请输入该学生姓名:')
  23.         while i <= 5:
  24.             score = input(f'请输入第{i}位评委对该学生的评分(1~100的整数):')
  25.             if score.isdigit() and 100 >= int(score) > 0:
  26.                 i += 1
  27.                 result_list.append(int(score))
  28.                 continue
  29.             print('你的输入有误,请重新输入')
  30.         result_list.remove(max(result_list))
  31.         result_list.remove(min(result_list))
  32.         result = sum(result_list)/3
  33.         random_students = choice(self.number)
  34.         self.number.remove(random_students)
  35.         self.students_result.append('%d,%s,%d'%(random_students,name,int(result)))

  36.     def write_file(self):
  37.         with open('result.txt','w',encoding='utf-8') as f:
  38.             f.write('学号,姓名,成绩\n')
  39.             for i in self.students_result:
  40.                 f.write(i+'\n')
  41.             print('全部写入数据库文件-result.txt中')

  42.     def result_sort(self):

  43.         if not self.number:
  44.             temp = []
  45.             for i in self.students_result:
  46.                 temp.append(tuple(i.split(',')))
  47.             temp = sorted(temp,key = lambda x:int(x[2]))
  48.             result_list = []
  49.             for i in range(self.first+self.second+self.three):
  50.                 if i < self.first:
  51.                     string = '一等奖:'+' '.join(temp[i])
  52.                     result_list.append(string)
  53.                 elif self.first <= i < self.second:
  54.                     string = '二等奖:'+' '.join(temp[i])
  55.                     result_list.append(string)
  56.                 elif self.second <= i < self.three:
  57.                     string = '三等奖:'+' '.join(temp[i])
  58.                     result_list.append(string)
  59.             with open('prize.txt','w',encoding='utf-8') as f:
  60.                 f.write('获奖等级,学号,姓名,成绩\n')
  61.                 for i in result_list:
  62.                     f.write(i+'\n')
  63.         else:
  64.             print('还有%d位学生没有进行演讲~'%len(self.number))

  65. def main():
  66.     test = Check(10)
  67.     while test.number:
  68.         test.score()
  69.     test.write_file()
  70.     test.result_sort()

  71. if __name__ == '__main__':
  72.     main()
复制代码

如果帮助到你就给个最佳吧 ~

评分

参与人数 1荣誉 +1 收起 理由
Pythonnewers + 1 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-24 12:34:47 | 显示全部楼层
Twilight6 发表于 2020-5-24 00:21
有瑕疵就是不能中途中断,楼主你自己看看改改~

如果帮助到你就给个最佳吧 ~

不是,评分理由手滑了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 12:41:29 | 显示全部楼层
Pythonnewers 发表于 2020-5-24 12:34
不是,评分理由手滑了

哈哈哈 没事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表