跳至正文
  • Scratch
  • Python
  • C++
  • 创客
  • 科创课题
  • 关于我们
  • OJ
  • Scratch
  • Python
  • C++
  • 创客
  • 科创课题
  • 关于我们
  • OJ

1 乐高STEAM

  • 乐高课程简介
  • Wedo2.0科学机器人
    • Wedo2.0 官方课程包
    • WeDo2.0如何培养计算思维
    • WeDo2.0机械部件与编程模块
    • 第1期
      • 001 遥控小车
      • 002 拉力小车
      • 003 麦乐机器人
      • 004 毛毛虫
      • 005 小叉车
      • 006 可爱的小鸟
      • 007 淘气的猴子
      • 008 环保垃圾车
      • 009 家用跑步机
      • 010 工程升降机
      • 011 工程塔吊机
      • 012 弹涂鱼
    • 第2期
      • 01 科学漫游器
      • 02 运动传感器
      • 03 巡线小车
      • 04 骏马奔驰
      • 05 采油机
      • 06 操纵杆
      • 07 测量器
      • 08 转向叉车
      • 09 操作版叉车
      • 10 蜗轮叉车
      • 11 厨师机器人
      • 12 小轮船

2 Scratch

  • Scratch课程介绍
  • Icode专项训练
    • 密码保护:001 ICode基础入门
    • 密码保护:002 路线规划
    • 密码保护:003 重复执行1-2
    • 密码保护:004 重复执行3-4
    • 密码保护:005 识别重复规律
    • 密码保护:006 变量入门1-2
    • 密码保护:007 变量练习1-2
    • 密码保护:008 变量应用1-2
    • 密码保护:Icode积木模式集训-1
  • Scratch竞赛考级测试
    • 2023年GESP
    • 2024年GESP
    • 密码保护:PSTK答案
    • Scratch-1级 PSTK A
    • Scratch-1级 PSTK B
    • Scratch-1级 PSTK C
    • Scratch-2级 PSTK A
    • Scratch-2级 PSTK B
    • Scratch-2级 PSTK C
    • Scratch-3级 PSTK A
    • Scratch-3级 PSTK B
    • Scratch-3级 PSTK C
    • Scratch-NOC2023
  • Scratch第1期-初阶
    • 01 初识Scratch
    • 02 会说话的喵星人
    • 03 鱼儿水中游1
    • 04 鱼儿水中游2
    • 05 动感舞蹈
    • 06 魔法蛋糕1
    • 07 魔法蛋糕2
    • 08 魔法气球
    • 09 蝴蝶飞舞
    • 10 城市快餐车
    • 11 会飞的小猫
    • 12 鲨鱼吃螃蟹
    • 13 侏罗纪公园
    • 14 秋季运动会
    • 15 森林舞会1
    • 16 森林舞会2
    • 17 十五的月亮
    • 18 抗击病毒
    • 19 我爱运动
    • 20 天降苹果
    • 21 小狗追足球
    • 22 山地足球
    • 23 保卫农场
    • 24 音乐之声
    • 25 打击乐器
    • 26 节日快乐
    • 27 牛牛变脸
    • 28 病毒区域检测
    • 29 百米跨栏
    • 30 海星吃螃蟹
  • Scratch第2期-初阶
    • 31 聪明的甲壳虫1
    • 32 聪明的甲壳虫2
    • 33 沙漠小熊1
    • 34 沙漠小熊2
    • 35 魔术表演1
    • 36 魔术表演2
    • 37 赛车游戏1.0
    • 38 赛车游戏2.0
    • 39 魔法圈1
    • 40 魔法圈2
    • 41 神笔马良1
    • 42 神笔马良2
    • 43 画平行线
    • 44 画田字格
    • 45 小小画家1
    • 46 小小画家2
    • 47 端午安康1
    • 48 端午安康2
    • 49 星际穿越1
    • 50 星际穿越2
    • 51 飞向火星1
    • 52 飞向火星2
    • 53 飞天大脸猫1
    • 54 飞天大脸猫2
    • 55 蝴蝶进城
    • 56 双人赛龙舟
    • 57 连环画1
    • 58 连环画2
    • 59 小小收音机
    • 60 怀旧电视机
  • Scratch第3期-中阶
    • 061 砖块消消乐1
    • 062 砖块消消乐2
    • 063 神奇的克隆
    • 064 打砖块2.0
    • 065 可爱的北极熊
    • 066 炫彩烟花
    • 067 苹果乐园
    • 068 彩色泡泡
    • 069 白马飞飞
    • 070 看你往哪躲
    • 071 小猫打螃蟹1
    • 072 小猫打螃蟹2
    • 073 打蝴蝶1
    • 074 打蝴蝶2
    • 075 走出迷宫1
    • 076 走出迷宫2
    • 077 走出迷宫3
    • 078 走出迷宫4
    • 079 趣玩贪吃蛇1
    • 080 趣玩贪吃蛇2
    • 081 趣玩贪吃蛇3
    • 082 趣玩贪吃蛇4
    • 083 墙上的钟表1
    • 084 墙上的钟表2
    • 085 趣味问答1
    • 086 趣味问答2
    • 087 趣味加减法1
    • 088 趣味加减法2
    • 089 电子加餐1
    • 090 电子加餐2
  • Scratch第4期-中阶
    • 091 定制菜单1
    • 092 定制菜单2
    • 093 打字游戏1
    • 094 打字游戏2
    • 095 打字游戏3
    • 096 游戏进度条
    • 097 神奇的画笔
    • 098 画正多边形1
    • 099 画正多边形2
    • 100 解构复杂图形1
    • 101 解构复杂图形2
    • 102 自制积木(画多边形)
    • 103 圆形的画法
    • 104 彩虹扇1
    • 105 彩虹扇2
    • 106 多彩五角星
    • 107 妙笔生花
    • 108 大风车
    • 110 彩色轮盘1
    • 111 彩色轮盘2
    • 112 古诗算术1
    • 113 古诗算术2
    • 114 古诗算术3
    • 115 猴子吃桃
    • 116 蜗牛爬树
    • 117 冰雹猜想
    • 118 顺序查找法
    • 119 二分查找1
    • 120 二分查找2
  • Scratch第5期-高阶
    • 121 直尺与量角器
    • 122 迭代算法求和
    • 123 迭代算法-最大公约数
    • 124 小猫找余数
    • 密码保护:125 冒泡排序1
    • 密码保护:126 冒泡排序2
    • 密码保护:127 选择排序1
    • 密码保护:128 选择排序2
    • 密码保护:129 插入排序1
    • 密码保护:130 插入排序2
    • 131 圆形与分数1
    • 132 圆形与分数2
    • 133 数的集合1
    • 134 数的集合2
    • 135 平均数与小数1
    • 136 平均数与小数2
    • 137 多边形面积1
    • 138 多边形面积2
    • 139 圆的周长与面积1
    • 140 圆的周长与面积2
    • 141 扇形统计及比例1
    • 142 扇形统计及比例2
  • Scratch经典游戏
    • 002 幸运转盘2
    • 003 神枪手1
    • 004 神枪手2
    • 005 打地鼠1
    • 006 打地鼠2
    • 007 打地鼠3
    • 008 打地鼠4
    • 009 愤怒的小鸟1
    • 010 愤怒的小鸟2
    • 011 植物大战僵尸1
    • 012 植物大战僵尸2
    • 013 植物大战僵尸4

3 Python

  • Python课程介绍
  • ICode专项训练
    • 密码保护:01 ICode Python集训 – 1
  • Python 竞赛考级测试
    • 2023年GESP
    • 2024年GESP
    • Python PSTK – 5 模拟卷 A
    • Python PSTK – 5 模拟卷 B
    • 密码保护:Python NOC – 模拟试卷
    • Python PSTK – 4 模拟卷 A
    • Python PSTK – 4 模拟卷 B
    • Python PSTK – 6 模拟卷 A
    • Python PSTK – 6 模拟卷 B
    • 密码保护:答案
  • Python第 01 期 - 基础
    • 001 Python简介
    • 密码保护:001_1 PyGame
    • 002 Python在Windows下的环境搭建
    • 003 交互式编程
    • 004 变量
    • 005 标识符和关键字
    • 006 集成开发环境 – PyCharm
    • 007 字符串 – 初识字符串
    • 008 字符串与数字的转换
    • 008_自学课 数据类型
    • 密码保护:009 第一次月考(1至9课)
    • 009 输入输出
    • 010 运算符 – 算术运算符
    • 011 运算符 – 赋值运算符
    • 012 运算符 – 比较运算符
    • 013 运算符 – 逻辑运算符
    • 014 运算符 – 优先级
    • 015 语句和注释
    • 016 程序调试
    • 016_自学课 流程图标准符号
    • 017 Turtle – 初识Turtle
    • 018 Turtle – 画笔的简单使用
    • 密码保护:018 第二次月考(10至18课)
    • 019 分支结构 – 条件语句 if
    • 020 分支结构 – 条件语句 if…else
    • 021 分支结构 – 条件语句 if…elif…else
    • 022 分支结构 – 条件语句嵌套
    • 023 Turtle – 条件语句的应用
    • 024 循环结构 – 初识 while 循环
    • 025 循环结构 – while 无限循环
    • 密码保护:025 第三次月考(19至25课)
    • 026 Turtle – while 循环语句的应用 1
    • 027 Turtle – while 循环语句的应用 2
    • 028 字符串 – 长度和索引
    • 029 字符串 – 截取
    • 029_自学课 字符串 – 转义字符和长字符串
    • 030 数据结构 – 初识列表
    • 031 数据结构 – 列表基本操作
    • 032 循环结构 – 初识 for 循环
    • 密码保护:032 第四次月考(26至32课)
  • Python第 02 期 - 基础
    • 033 Turtle – for循环语句的应用 1
    • 034 Turtle – for循环语句的应用 2
    • 035 字符串 – 格式化及内置函数
    • 036 函数 – 初识函数
    • 037 函数 – 参数定义
    • 038 函数 – 返回值
    • 039 Turtle – 函数的应用 1
    • 040 Turtle – 函数的应用 2
    • 密码保护:040 第五次月考(33至40课)
    • 041 数据结构 – 列表的常用内置函数
    • 041_自学课 代码书写规范
    • 041_自学课 可迭代对象的概念
    • 042 数据结构 – 列表的推导表达式 一层循环
    • 042_自学课 数据结构 – 列表的拷贝
    • 043 数据结构 – 列表的推导表达式 多层循环
    • 044 数据结构 – 列表的推导表达式 一层判断
    • 045 数据结构 – 列表的推导表达式 多层判断
    • 046 综合实战一 – 时钟的制作 1
    • 047 综合实战一 – 时钟的制作 2
    • 048 综合实战一 – 时钟的制作 3
    • 密码保护:049 第六次月考(41至49课)
    • 049 综合实战一 – 时钟的制作 4
    • 050 数据结构 – 二维列表
    • 051 数据结构 – 初识元组
    • 052 数据结构 – 初识字典
    • 053 数据结构 – 字典基本操作
    • 054 数据结构 – 字典内置函数
    • 055 运算符 – 成员运算符
    • 056 数据结构的遍历
    • 057 zip的使用
    • 058 字典的合并及zip解包
    • 密码保护:058 第七次月考(50至58课)
    • 059 综合实战二 – 学生信息管理系统1
    • 060 综合实战二 – 学生信息管理系统2
    • 061 综合实战二 – 学生信息管理系统3
    • 062 综合实战二 – 学生信息管理系统 4
    • 063 综合实战二 – 学生信息管理系统5
    • 密码保护:064 第八次月考(59至64课)
    • 064 综合实战二 – 学生信息管理系统 6
  • Python第 03 期 - 基础
    • 065 数据结构 – 初识集合
    • 066 数据结构 – 集合的基本操作
    • 067 数据结构 – 集合的基本运算
    • 068 文件 – 读文件
    • 069 文件 – 写文件
    • 070 文件 – with关键字及推导表达式
    • 071 综合实战三 – 随机试卷1
    • 072 综合实战三 – 随机试卷2
    • 073 综合实战三 – 随机试卷3
    • 密码保护:074 第九次月考(65至74课)
    • 074 综合实战三 -随机试卷 4
    • 075课 模块 – 初识模块
    • 076课 模块 – 包
    • 077 模块 – random包的使用 1
    • 078 模块 – random包的使用 2
    • 079 模块 – math包的使用 1
    • 079_自学课 模块 random包的使用 3
    • 080 模块 – math包的使用 2
    • 密码保护:080 第十次月考(75至80课)
    • 080_自学课 模块 – math包的使用 3
    • 081 综合实战四 – 数据可视化1
    • 082 综合实战四 – 数据可视化2
    • 083 综合实战四 – 数据可视化3
    • 084 综合实战四 -数据可视化 4
    • 085 函数 – 可变类型与不可变类型
    • 086 函数 – 默认参数与可变参数
    • 087 函数 – 关键词参数及参数的组合
    • 088 函数 – 匿名函数 lambda
    • 密码保护:088 第十一次月考(81至88课)
    • 089 函数 – 高阶函数 1
    • 089_自学课 数据结构 – 字典排序
    • 090 数据结构 – 字典推导表达式
    • 090_自学课 函数 – 高阶函数 2
    • 091 综合实战五 – 文本数据的简单清洗1
    • 092 综合实战五 – 文本数据的简单清洗2
    • 093 综合实战五 – 文本数据的简单清洗3
    • 094 综合实战五 – 模块化编程1
    • 095 综合实战五 – 模块化编程2
    • 密码保护:096 第十二次月考(89至96课)
    • 096 综合实战五 – 模块化编程3
  • Python第 04 期 - 应用
    • 097 面向对象 – 初识面向对象
    • 098 面向对象 – 类定义
    • 099 面向对象 – 类构造方法
    • 100 面向对象 – 类对象的创建和使用
    • 101 面向对象 – self使用详解
    • 102 面向对象 – 类变量的创建和使用
    • 103 面向对象 – 类的继承
    • 104 图形化编程 – 初识图形化编程
    • 105 图形化编程 – PyQt5安装配置
    • 106 图形化编程 – PyQt5框架和常用界面
    • 107 图形化编程 – PyQt5 菜单和工具栏
    • 108 图形化编程 – PyQt5 控件 1
    • 109 图形化编程 – PyQt5 控件 2
    • 110 图形化编程 – PyQt5 控件 3
    • 111 图形化编程 – PyQt5 控件 4
    • 112 图形化编程 – PyQt5 控件 5
    • 113 图形化编程 – PyQt5 控件 6
    • 114 图形化编程 – PyQt5 控件 7
    • 115 图形化编程 – PyQt5 对话框 1
    • 116 图形化编程 – PyQt5 对话框 2
    • 117 图形化编程 – 事件和信号 1
    • 118 图形化编程 – 事件和信号 2
    • 119 图形化编程 – 控件实践 1
    • 120 图形化编程 – 控件实践 2
    • 121 图形化编程 – 控件实践 3
    • 122 图形化编程 – 控件实践 4
    • 123 图形化编程 – 控件实践 5
    • 124 图形化编程 – 控件实践 6
    • 125 图形化编程 – 控件实践 7
    • 126 图形化编程 – 布局 1
    • 127 图形化编程 – 布局 2
    • 128 图形化编程 – 布局 3
  • Python第 05 期 - 应用
    • 129 字数统计小程序1
    • 130 字数统计小程序2
    • 131 字数统计小程序3
    • 132 字数统计小程序4
    • 133 万年历实现1
    • 134 万年历实现2
    • 135 万年历实现3
    • 136 万年历实现4
    • 137 简化版Excel1
    • 138 简化版Excel2
    • 139 简化版Excel3
    • 140 简化版Excel4
    • 141 图形化编程 – 应用一 猜数字1
    • 142 图形化编程 – 应用一 猜数字2
    • 143 程序打包 – pyinstaller
    • 144 pyqt小应用-计算器 1
    • 145 pyqt小应用-计算器 2
    • 146 pyqt小应用-计算器 3
    • 147 pyqt小应用-计算器 4
    • 148 pyqt小应用-计算器 5
    • 149 pyqt小应用-计算器 6
    • 150 pyqt小应用-播放器 1
    • 151 pyqt小应用-播放器 2
    • 152 pyqt小应用-播放器 3
    • 153 pyqt小应用-播放器 4
    • 154 pyqt小应用-播放器 5
    • 155 pyqt小应用-播放器 6
    • 156 pyqt小应用-画图 1
    • 157 pyqt小应用-画图 2
    • 158 pyqt小应用-画图 3
    • 159 pyqt小应用-画图 4
    • 160 pyqt小应用-画图 5
    • 161 pyqt小应用-画图 6
  • Python第 06 期 - 游戏制作
    • 161 初识游戏编程
    • 162 PyGame安装配置
    • 163 PyGame Display学习
    • 164 PyGame Draw学习
    • 165 PyGame Font学习
    • 166 PyGame Event学习
    • 167 复合实践 1 – 2048游戏 1
    • 168 复合实践 1 – 2048游戏 2
    • 169 复合实践 1 – 2048游戏 3
    • 170 复合实践 1 – 2048游戏 4
    • 171 复合实践 1 – 2048游戏 5
    • 172 复合实践 1 – 2048游戏 6
    • 173 PyGame Surface学习
    • 174 PyGame Transform学习
    • 175 PyGame Time学习
    • 176 PyGame Rect学习
    • 177 复合实践 2 – 接金币游戏 1
    • 178 复合实践 2 – 接金币游戏 2
    • 179 复合实践 2 – 接金币游戏 3
    • 180 复合实践 2 – 接金币游戏 4
    • 181 复合实践 2 – 接金币游戏 5
    • 182 复合实践 2 – 接金币游戏 6
    • 183 PyGame其他模块自学
    • 184 复合实践 3 – 消消乐游戏 1
    • 185 复合实践 3 – 消消乐游戏 2
    • 186 复合实践 3 – 消消乐游戏 3
    • 187 复合实践 3 – 消消乐游戏 4
    • 188 复合实践 3 – 消消乐游戏 5
    • 189 复合实践 3 – 消消乐游戏 6
    • 190 复合实践 4 – 24点游戏 1
    • 191 复合实践 4 – 24点游戏 2
    • 192 复合实践 4 – 24点游戏 3
    • 193 复合实践 4 – 24点游戏 4
    • 194 复合实践 4 – 24点游戏 5
    • 195 复合实践 4 – 24点游戏 6
  • Python第 07 期 - 游戏制作
    • 196 打地鼠1
    • 197 打地鼠2
    • 198 打地鼠3
    • 199 打地鼠4
    • 200 打地鼠5
    • 201 打地鼠6
    • 202 打地鼠7
    • 203 打地鼠8
    • 204 五子棋1
    • 205 五子棋2
    • 206 五子棋3
    • 207 五子棋4
    • 208 五子棋5
    • 209 五子棋6
    • 210 五子棋7
    • 211 五子棋8
    • 212 贪吃蛇1
    • 213 贪吃蛇2
    • 214 贪吃蛇3
    • 215 贪吃蛇4
    • 216 贪吃蛇5
    • 217 贪吃蛇6
    • 218 贪吃蛇7
    • 219 植物大战僵尸1
    • 220 植物大战僵尸2
    • 221 植物大战僵尸3
    • 222 植物大战僵尸4
    • 223 植物大战僵尸5
    • 224 植物大战僵尸6
    • 225 植物大战僵尸7
    • 226 植物大战僵尸8
    • 227 Turtle游戏1-赛龟
  • Python第 08 期 - 算法
    • 229 高精度计算算法介绍
    • 230 高精度计算加法
    • 231 高精度计算减法
    • 232 高精度计算乘法
    • 233 高精度计算除法
    • 234 python内置高精度计算
    • 235 高精度计算综合实战1
    • 236 高精度计算综合实战2
    • 237 排序算法介绍
    • 238 排序算法复杂度
    • 239 冒泡排序算法
    • 240 快速排序算法
    • 241 插入排序算法
    • 242 希尔排序算法
    • 243 选择排序算法
    • 244 堆排序算法基础
    • 245 堆排序算法
    • 246 归并排序算法基础
    • 247 归并排序算法
    • 248 桶排序算法
    • 249 计数排序算法
    • 250 排序算法总结1
    • 251 排序算法总结2
    • 252 排序算法综合实战1
    • 253 排序算法综合实战2
    • 254 递推算法介绍
    • 255 顺推算法
    • 256 逆推算法
    • 257 斐波那契数列
    • 258 汉诺塔问题
    • 259 平面分隔问题1
    • 260 平面分隔问题2
    • 261 猴子摘桃问题
    • 261 递归算法1
    • 262 母牛的问题
    • 262 递归算法2
    • 263 昆虫繁殖问题
    • 263 阶乘的求解
    • 264 五人分鱼问题
    • 264 斐波那契数列
  • Python第 09 期 - 算法
    • 265 杨辉三角
    • 266 集合的划分
    • 267 数的计数
    • 268 汉诺塔问题
    • 269 波兰表达式
    • 270 回溯算法1
    • 271 回溯算法2
    • 272 效益问题
    • 273 子集和问题
    • 274 素数环
    • 275 八皇后问题
    • 276 回文字符串寻找
    • 277 数字的拆分
    • 278 苹果放置
    • 279 马的遍历
    • 280 迷宫问题
    • 281 递归与回溯算法的总结
    • 282 贪心算法1
    • 283 贪心算法2
    • 284 背包问题
    • 285 排队打水问题
    • 286 活动选择1
    • 287 活动选择2
    • 288 整数区间
    • 289 删数问题
    • 290 均分纸牌
    • 291 最大子序列和
    • 292 分糖果问题
  • Python第 10 期 - 数据结构
    • 293 栈
    • 294 链栈的实现1
    • 295 链栈的实现2
    • 296 斐波那契数列1
    • 297 斐波那契数列2
    • 298 括号的匹配1
    • 299 括号的匹配2
    • 300 队列
    • 301 队列的实现1
    • 302 队列的实现2
    • 303 用队列实现栈1
    • 304 用队列实现栈2
    • 305 约瑟夫问题1
    • 306 约瑟夫问题2
    • 307 链表
    • 308 链表的实现1
    • 309 链表的实现2
    • 310 合并有序链表1
    • 311 合并有序链表2
    • 312 双向链表实现双端队列1
    • 313 双向链表实现双端队列2
    • 314 树
    • 315 二叉树
    • 316 树的存储结构及实现1
    • 317 树的存储结构及实现2
    • 318 树的先序遍历
    • 319 树的层序遍历
    • 320 哈夫曼树1
    • 321 哈夫曼树2
    • 322 图
    • 323 图的实现1
    • 324 图的实现2
    • 325 dijkstra算法1
    • 326 dijkstra算法2
    • 327 floyd算法1
    • 328 floyd算法2
  • Python第11期 - 人工智能
    • 密码保护:329 人工智能简介
    • 密码保护:330 交通标志分类 1
    • 密码保护:331 卷积神经网络介绍
    • 密码保护:332 卷积层
    • 密码保护:333 池化层
    • 密码保护:334 激活函数
    • 密码保护:335 损失函数
    • 密码保护:336 梯度下降
  • Python第13期 - 树莓派
    • 001 树莓派介绍
  • 华东师大
    • 基于Python的数据分析入门与实践
    • 第10讲 Numpy的创建 array
    • 第11讲 Numpy 基础运算
    • 第12讲 Numpy array的合并与分割
    • 第13讲 Pandas DataFrame与数据选择
    • 第14讲 Pandas的日常用法
    • 第1讲 基础语法和开发环境
    • 第2讲 运算符与字符串
    • 第3讲 分支与循环
    • 第4讲 函数与面向对象
    • 第5讲 数据结构与文件
    • 第6讲 模块与Turtle画图
    • 第7讲 图形界面与程序打包
    • 第8讲 数据爬取、处理与可视化
    • 第9讲 数据处理
  • 常用模块
    • Python标准库与第三方库
    • 模块:re
    • 模块:requests
    • 模块:tkinter
      • 01 第一个Tkinter程序
      • 02 Tkinter常用控件及其属性
      • 03 Tkinter控件的颜色和大小
      • 04 Tkinter Frame控件
      • 05 Tkinter pack()布局
      • 06 Tkinter grid()布局
      • 07 Tkinter place()布局
      • 08 Tkinter事件介绍
      • 09 Tkinter鼠标事件处理
      • 10 Tkinter键盘事件处理
      • 11 Tkinter拦截系统信息
      • 12 Tkinter Button:按钮控件
      • 13 Tkinter Canvas:绘图控件
      • 14 Tkinter Checkbutton:复选框控件
      • 15 Tkinter Entry:单行文本框
      • 16 Tkinter Label:标签控件
      • 17 Tkinter Listbox:列表框控件
      • 18 Tkinter Menu:菜单控件
      • 19 Tkinter Message:消息框
      • 20 Tkinter Radiobutton:单选按钮控件
      • 21 Tkinter Scale:滑动条控件
      • 22 Tkinter Scrollbar:滚动条控件
      • 23 Tkinter Text:文本框控件
      • 24 Tkinter Toplevel:独立窗口控件
      • 25 Tkinter messagebox:消息提示对话框
      • 26 Tkinter filedialog:文件对话框
      • 27 Tkinter colorchooser:颜色选取对话框
      • 28 Tkinter实现简易的聊天窗口

4 C++

  • C++ 课程介绍
  • C++ CSP-J1 基础入门
    • CSP-J 001 初识C++
    • CSP-J 002 基本数据类型(整型)
    • CSP-J 003 基本数据类型(实型)
    • CSP-J 004 基本数据类型(bool、char)& 关系运算符
    • CSP-J 005 分支结构 – if
    • CSP-J 006 逻辑运算符
    • CSP-J 007 分支结构 – switch & 三目运算符
    • CSP-J 008 分支结构综合应用
    • CSP-J 009 循环结构 – while & do while
    • CSP-J 010 作用域 & 循环结构 – for
    • CSP-J 011 循环结构 – for嵌套
    • CSP-J 012 循环结构综合应用
    • CSP-J 013 进制转换
    • CSP-J 014 变量自增与自减 & 位运算
    • CSP-J 015 计算机内存 & 数据类型转化
    • 密码保护:CSP-J 016 综合应用
  • C++ CSP-J2 基础进阶
    • CSP-J 017 一维数组
    • CSP-J 018 二维数组
    • CSP-J 019 数组综合应用
    • CSP-J 020 字符串
    • CSP-J 021 string
    • CSP-J 022 字符串综合应用
    • CSP-J 023 变量地址 & 指针
    • CSP-J 024 函数的定义与调用
    • CSP-J 025 函数参数 & 常量与变量的作用范围
    • CSP-J 026 递归函数
    • CSP-J 027 结构体
    • CSP-J 028 联合体
    • CSP-J 029 scanf & printf
    • CSP-J 030 文件的基本读写
    • 密码保护:CSP-J 031 STL模版
    • 密码保护:CSP-J 032 综合应用
  • C++ CSP-J3 算法与数据结构入门
    • CSP-J 033 算法概念与描述
    • CSP-J 034 枚举&模拟
    • CSP-J 035 递推法
    • CSP-J 036 递归法
    • CSP-J 037 二分法
    • CSP-J 038 高精度算法
    • CSP-J 039 排序算法
    • CSP-J 040 链表
    • CSP-J 041 队列
    • CSP-J 042 栈
    • CSP-J 043 树
    • CSP-J 044 二叉树
    • CSP-J 045 二叉树的遍历
    • CSP-J 046 哈夫曼树
    • CSP-J 047 二叉搜索树
    • CSP-J 048 图
  • C++ CSP-J4 算法与数据结构进阶
    • CSP- J 051 搜索与回溯
    • CSP-J 049 倍增法
    • CSP-J 050 贪心
    • CSP-J 051 动态规划 – 引论
    • CSP-J 052 动态规划 – 背包问题
    • CSP-J 053 动态规划 – 区间规划问题
    • CSP-J 054 动态规划综合
  • C++ Qt
    • 01 Qt简介
    • 02 Qt开发环境搭建
    • 03 第一个Qt程序
    • 04 UI常用组件
    • 05 UI布局管理器
    • 06 信号和槽
    • 07 程序界面美化
    • 08 多窗口交互
    • 09 项目-图像处理工具
    • 10 项目-视频播放器
  • C++ 考级
    • 2023年GESP
    • 2024年GESP
    • 密码保护:C++ NOC – 模拟试卷
    • C++ PSTK – 5
  • C++竞赛 CSP
    • 2019-CSP-J1
    • 2019-CSP-J2
    • 2019-CSP-S1
    • 2019-CSP-S2
    • 2020-CSP-J1
    • 2020-CSP-J2
    • 2020-CSP-S1
    • 2020-CSP-S2
    • 2021-CSP-J1
    • 2021-CSP-J2
    • 2021-CSP-S1
    • 2021-CSP-S2
    • 2022-CSP-J1
    • 2022-CSP-J2
    • 2022-CSP-S1
    • 2022-CSP-S2
    • 2023-CSP-J1
    • 2023-CSP-J2
    • 2023-CSP-S1
  • C++竞赛 NOIP
    • NOIP-2007
    • NOIP-2008
    • NOIP-2009
    • NOIP-2010
    • NOIP-2011
    • NOIP-2012
    • NOIP-2013
    • NOIP-2014
    • NOIP-2015
    • NOIP-2016
    • NOIP-2017
    • NOIP-2018
    • NOIP-2020
    • NOIP-2021
  • C++第 1 期
    • 001 初识C++
    • 002 搭建学习环境
    • 003 程序的基本结构
    • 004 变量和基本数据类型1
    • 005 变量和基本数据类型2
    • 006 变量的初始化
    • 007 基本运算符1
    • 008 基本运算符2
    • 008-1 洛谷大挑战 – 1
    • 009 基本运算符3
    • 010 输入输出
    • 011 细说布尔变量
    • 012 关系运算符与判断语句
    • 013 if 的嵌套_和_逻辑运算与
    • 014 else if
    • 015 逻辑运算或
    • 016 逻辑运算非
    • 017 逻辑运算之间的关系1
    • 018 逻辑运算之间的关系2
    • 018-1 洛谷大挑战 – 2
    • 019 循环语句while
    • 020 作用域1
    • 021 作用域2
    • 022 循环语句while嵌套
    • 023 循环语句for
    • 024 循环语句for嵌套
    • 024-1 洛谷大挑战 – 3
    • 025 计算机硬件系统
    • 026 十进制
    • 027 二进制
    • 028 十六进制和八进制
    • 029 内存1
    • 030 内存2
    • 031 数据类型转化1
    • 032 数据类型转化2
    • 032-1 位运算:与(&) 或(|) 非(~)
    • 032-2 位运算:异或(^) 左移 右移
    • 032-3 洛谷大挑战 – 4
  • C++第 2 期
    • 033 字符类型 char
    • 034 字符串 char[]
    • 035 字符串 char[] 输出
    • 036 字符串 char[] 输入
    • 037 数组 – 定义
    • 038 数组 – 遍历
    • 039 数组 – 程序结构
    • 040 数组 – 排序
    • 040-1 洛谷大挑战 – 5
    • 041 变量的地址1
    • 042 变量的地址2
    • 043 地址和指针
    • 044 实践 – 绘画
    • 045 实践 – 字符动画
    • 046 实践 – 移动动画
    • 047 实践 – 按键控制
    • 048 加加语法的差异
    • 048-1 洛谷大挑战 – 6
    • 049 do while
    • 050 三目运算符和switch
    • 051 C语言的输出 – 指定类型
    • 052 C语言的输出 – 左右对齐
    • 053 C语言的输出 – 指定长度
    • 054 转义字符 – 换行和回退
    • 055 转义字符 – 斜杆r
    • 056 转义字符 – 常用总结
    • 056-1 洛谷大挑战 – 7
    • 057 C语言的输入
    • 058 常量
    • 059 函数 – 定义
    • 060 函数 – 声明和实现的分离
    • 061 函数 – 值传递和引用传递
    • 062 函数 – 指针传递(一维数组的处理)
    • 063 函数 – 重载
    • 064 头文件详解
    • 064-1 编辑、编译的概念
    • 064-2 解释,调试(Debug) 的概念
    • 064-3 洛谷大挑战 – 8
  • C++第 3 期
    • 065 二维数组
    • 066 字符串函数1
    • 067 字符串函数2
    • 068 标准库 string – 基本操作
    • 069 标准库 string – 常用操作
    • 070 标准库 string – 高级操作
    • 071 sscanf 和 sprintf
    • 072 枚举和 switch
    • 073 结构体
    • 074 类
    • 075 原码
    • 076 反码和补码
    • 077 内存中的浮点数
    • 078 计算机网络
    • 079 Internet
    • 密码保护:080 Linux 操作系统 – 安装
    • 密码保护:081 Linux 操作系统 – 基本操作
    • 密码保护:082 Linux 操作系统 – noip答题系统
    • 083 总复习:计算机程序的发展历程及NOI相关活动
    • 084 总复习:进制转化
    • 085 总复习:原码 补码 反码的计算
    • 086 总复习:顺序结构
    • 087 总复习:输入输出
    • 088 总复习:控制结构
    • 089 总复习:循环结构
    • 090 总复习:数组
    • 091 总复习:函数
    • 092 总复习:文件 – fopen、freopen
    • 093 总复习:文件 – 文件输入输出流
    • 094 总复习:结构体
    • 095 总复习:指针 – 基础、数组、字符串
    • 096 总复习:指针 – 函数、结构体
    • 096-1 g++编译器的基本使用
    • 096-2 gcc编译器的基本使用
    • 096-3 自顶向下逐步求精的模块化程序设计
    • 096-4 数学库常用函数
  • C++第 4 期
    • 097 算法概念
    • 098 算法描述: 自然语言 流程图 伪代码
    • 099 枚举法
    • 100 模拟法
    • 101 精讲精练 – 枚举法
    • 102 精讲精练 – 模拟法
    • 103 高精度计算 – 加法
    • 104 高精度计算 – 减法
    • 105 高精度计算 – 乘法
    • 106 高精度计算 – 高精度除以单精度
    • 107 高精度计算 – 高精除以高精
    • 108 精讲精练 – 高精度加法和减法
    • 109 精讲精练 – 高精度乘法
    • 110 精讲精练 – 高精度除法
    • 111 排序的基本概念
    • 112 数据排序 – 选择排序
    • 113 数据排序 – 冒泡排序
    • 114 数据排序 – 插入排序
    • 115 数据排序 – 对比和小结
    • 116 精讲精练 – 冒泡排序
    • 117 精讲精练 – 选择排序
    • 118 精讲精练 – 插入排序
    • 118-1 数据排序 – 桶排序
    • 118-2 数据排序 – 快速排序
    • 118-3 数据排序 – 归并排序
    • 118-4 数据排序 – 逆序对
    • 119 递推 – 概述习题一
    • 120 递推 – 概述习题二
    • 121 递推 – Fibonacci 数列
    • 122 递推 – Hanoi 塔问题
    • 123 递推 – 平面分隔
    • 124 递推 – Catalan 数
    • 125 递推 – 第二类 Stirling 数
    • 126 精讲精练 – 递推
    • 127 精讲精练 – 递推
    • 128 精讲精练 – 递推
  • C++第 5 期
    • 129 递归 – 引例
    • 130 递归 – Hanoi 塔问题
    • 131 递归 – 斐波那契数列
    • 132 递归 – 集合划分
    • 133 递归 – 数的计数
    • 134 递归 – 小结
    • 135 精讲精练 – 递归
    • 136 精讲精练 – 递归
    • 137 精讲精练 – 递归
    • 138 贪心 – 概述
    • 139 贪心 – 排队打水
    • 140 贪心 – 均分纸牌
    • 141 贪心 – 删数问题
    • 142 贪心 – 拦截导弹
    • 143 贪心 – 活动选择
    • 144 贪心 – 整数区间
    • 145 贪心 – 小结
    • 146 精讲精练 – 贪心
    • 147 精讲精练 – 贪心
    • 148 精讲精练 – 贪心
    • 149 二分法 – 概述
    • 150 二分法 -两种写法
    • 151 二分法 -经典例题1
    • 152 二分法 -经典例题2
    • 153 精讲精练 – 二分法
    • 154 精讲精练 – 二分法
    • 155 倍增法 – 概述
    • 密码保护:156 倍增法 –
    • 密码保护:157 倍增法 –
    • 密码保护:158 倍增法 –
    • 密码保护:159 精讲精练 – 倍增法
    • 密码保护:160 精讲精练 – 倍增法
    • 160-1 搜索与回溯 – 概述
  • C++第 6 期
    • 161 动态规划 – 动态规划的基本概念和基本模型构成
    • 162 动态规划 – 最优化原理与无后效性原则
    • 163 动态规划 – 多阶段决策过程的最优化问题
    • 164 动态规划 – 简单一维动态规划
    • 165 动态规划 – 简单背包类型动态规划
    • 166 动态规划 – 简单背包类型动态规划
    • 167 动态规划 – 简单背包类型动态规划
    • 168 动态规划 – 简单背包类型动态规划
    • 169 动态规划 – 简单区间类型动态规划
    • 170 动态规划 – 简单区间类型动态规划
    • 171 动态规划 – 简单区间类型动态规划
    • 172 动态规划 – 简单区间类型动态规划
    • 173 动态规划 – 数字金字塔1
    • 174 动态规划 – 数字金字塔2
    • 175 动态规划 – 最长不下降序列
    • 176 动态规划 – 拦截导弹
    • 177 动态规划 – 城市网
    • 178 动态规划 – 挖地雷
    • 179 动态规划 – 友好城市
    • 180 动态规划 – 合唱队形
    • 181 动态规划 – 最长公共子序列
    • 182 动态规划 – 机器分配
    • 183 栈 – 概念
    • 184 栈 -顺序栈操作
    • 185 栈 -链栈基本操作
    • 186 精讲精练 – 括号匹配
    • 187 精讲精练 – 表达式求值
    • 188 精讲精练 – 后缀表达式的转换
    • 189 精讲精练 – 车厢调度问题
    • 190 队列 – 概念
    • 191 队列 -顺序队列
    • 192 队列 -链式队列
  • C++第 7 期
    • 193 精讲精练 – 循环队列
    • 194 精讲精练 – 队列
    • 195 精讲精练 – 队列
    • 196 精讲精练 – 队列
    • 197 链表 – 基本概念
    • 198 单链表
    • 199 双向链表
    • 200 循环链表实现约瑟夫环
    • 201 精讲精练 – 双向链表的操作
    • 202 精讲精练 – 单链表的反转
    • 203 精讲精练 – 判断链表中是否存在环
    • 204 精讲精练 – 环形链表的入口
    • 205 树的定义及概念
    • 206 树和树的存储结构
    • 207 树的父亲表示法
    • 208 树的遍历
    • 209 二叉树基本概念和性质
    • 210 二叉树的存储结构
    • 211 二叉树的建立和删除
    • 212 二叉树的插入与查找
    • 213 树 – 嵌套括号表示法
    • 214 二叉树的遍历 – 前序
    • 215 二叉树的遍历 – 中序
    • 216 二叉树的遍历 – 后序
    • 217 普通树转二叉树
    • 218 树的计数
    • 219 哈夫曼树(赫夫曼树、最优树)
    • 220 精讲精练 – 从中序与后序遍历序列构造二叉树
    • 221 精讲精练 – 对称二叉树
    • 222 精讲精练 – 二叉树的下一个节点
    • 223 精讲精练 – 二叉树的深度
    • 224 精讲精练 – 树的子结构
  • C++第 8 期
    • 225 完全二叉树的定义与基本性质
    • 226 完全二叉树的数组表示法
    • 227 哈夫曼树的定义及构造
    • 228 哈夫曼树的遍历
    • 229 二叉排序树的定义及构造
    • 230 二叉排序树的遍历
    • 231 精讲精练 – 完全二叉树 1
    • 232 精讲精练 – 完全二叉树 2
    • 233 精讲精练 – 哈夫曼树
    • 234 精讲精练 – 二叉排序树
    • 235 图的定义及基本概念
    • 236 图的存储结构
    • 237 图的邻接矩阵存储
    • 密码保护:238 图的邻接表存储
    • 密码保护:239 精讲精练 – 图的存储 1
    • 密码保护:240 精讲精练 – 图的存储 2
    • 密码保护:241 精讲精练 – 图的存储 3
    • 密码保护:242 精讲精练 – 图的存储 4
    • 密码保护:243 图的深度优先遍历
    • 密码保护:244 图的宽度优先遍历
    • 密码保护:245 洪水填充算法
    • 密码保护:246 精讲精练 – 图的遍历 1
    • 密码保护:247 精讲精练 – 图的遍历 2
    • 密码保护:248 精讲精练 – 图的遍历 3
    • 密码保护:249 精讲精练 – 图的遍历 4
    • 密码保护:250 总复习 – 排序算法
    • 密码保护:251 总复习 – 动态规划
    • 密码保护:252 总复习 – 图论算法
    • 密码保护:253 总复习 – 线性表
    • 密码保护:254 总复习 – 简单树
    • 密码保护:255 总复习 – 特殊树
    • 密码保护:256 总复习 – 简单图
  • C++第 9 期
    • 密码保护:257 STL模板的概念及应用
    • 密码保护:258 STL – algorithm库(sort)
    • 密码保护:259 STL – 栈(stack)
    • 密码保护:260 STL – 队列(queue)
    • 密码保护:261 STL – 链表(list)
    • 密码保护:262 STL – 向量(vector)
    • 密码保护:263 STL – 字符串(string)
    • 密码保护:264 STL – 集合(set)
    • 密码保护:265 精讲精练 – STL (sort 栈 队列)
    • 密码保护:266 精讲精练 – STL (链表 向量)
    • 密码保护:267 精讲精练 – STL(字符串 集合)
    • 密码保护:268 哈夫曼编码
    • 密码保护:269 格雷码
    • 密码保护:270 初中代数
    • 密码保护:271 初中平面几何
    • 密码保护:272 整数 因数 倍数和指数的概念
    • 密码保护:273 质数 合数 同余和素数的概念
    • 密码保护:274 唯一分解定理
    • 密码保护:275 欧几里德算法(辗转相除法)
    • 密码保护:276 埃氏筛法求素数
    • 密码保护:277 线性筛法求素数
    • 密码保护:278 加法原理
    • 密码保护:279 乘法原理
    • 密码保护:280 排列及计算公式
    • 密码保护:281 组合及计算公式
    • 密码保护:282 杨辉三角公式
    • 密码保护:283 精讲精练 – 真题 1
    • 密码保护:284 精讲精练 – 真题 2
    • 密码保护:285 精讲精练 – 真题 3
    • 密码保护:286 精讲精练 – 真题 4
    • 密码保护:287 精讲精练 – 真题 5
    • 密码保护:288 精讲精练 – 真题 6

5 创客

  • 创客课程介绍
  • Arduino入门与实践
    • 01-初识创客套装
    • 02-灯光告诉你
    • 03-会呼吸的灯
    • 04-认识光的世界
    • 05-探秘电子之声
    • 06-智能光控灯
    • 07-声控报警器
    • 08-神奇的旋钮
    • 09-调速流水灯
    • 10-声光大综合
    • 11-进入开关世界
    • 12-火焰报警装置
    • 13-高温提醒装置
    • 14-遥控器的秘密
    • 15-地震报警
    • 16-气象监测
    • 17-硬币计数器
    • 18-触摸台灯
    • 19-激光防盗
    • 20-霍尔开关
    • 21-烟雾报警
    • 22-打地鼠游戏
    • 23-继电器
    • 24-倒车雷达
    • 25-智能避障小车
    • 26-自动驾驶
    • 27-智能循迹小车
    • 28-超声波测距仪
    • 29-智能跟随小车
    • 30-旋转编码器
    • 31-LCD显示屏
    • 32-感应雨刮器
  • 创客第 1 期 - 积木搭建
    • 001 入门
    • 002 认识结构体
    • 003 秋千
    • 004 跷跷板
    • 005 打蛋器
    • 006课 奇怪的时钟
    • 007 起重机
    • 008 烤肉架
    • 009 手动风扇
    • 010 履带车
  • 创客第 2 期 - 积木进阶
    • 001 直升机
    • 002 后轮驱动车
    • 003 毛毛虫
    • 004 石油开采机
    • 005 稻草人
    • 006 舂米机
    • 007 乌龟
    • 008 挖掘机
    • 009 旋转杯子
    • 010 缝纫机
    • 011 六足步行机器人
  • 创客第 3 期 - Mind+/Mixly与Arduino (拓展)
    • Arduino第01课 入门
    • Arduino第02课 双色LED实验
    • Arduino第03课 RGB-LED实验
    • Arduino第04课 七彩LED闪烁实验
    • Arduino第05课 继电器实验
    • Arduino第06课 激光传感器实验
    • Arduino第07课 轻触开关按键实验
    • Arduino第08课 倾斜开关传感器实验
    • Arduino第09课 振动开关传感器实验
    • Arduino第10课 红外遥控实验
    • Arduino第11课 蜂鸣器实验
    • Arduino第12课 干簧管传感器实验
    • Arduino第13课 U型光电传感器
    • Arduino第14课 雨滴探测传感器
    • Arduino第15课 PS2操纵杆实验
    • Arduino第16课 电位器传感器实验
    • Arduino第17课 模拟霍尔传感器实验
    • Arduino第18课 模拟温度传感器
    • Arduino第19课 声音传感器实验
    • Arduino第20课 光敏电阻传感器实验
    • Arduino第21课 火焰报警传感器实验
    • Arduino第22课 烟雾传感器实验
    • Arduino第23课 触摸开关传感器实验
    • Arduino第24课 I2C LCD1602显示器
    • Arduino第25课 超声波传感器实验
    • Arduino第26课 循迹传感器实验
    • Arduino第27课 红外避障传感器实验
    • Arduino第28课 语音合成模块
    • Arduino第29课 舵机
    • Arduino第30课 OLED显示屏幕
    • Arduino第31课 考级课程一–走进智能殿堂
    • Arduino第32-33课 考级课程二–炫彩流水灯
    • Arduino第34-35课 考级课程三–智能红绿灯
  • 创客第4期 - C/C++与Arduino (拓展)
    • Arduino C/C++ 第01课 入门
    • Arduino C/C++ 第02课 双色LED灯
    • Arduino C/C++ 第03课 RGB-LED灯
    • Arduino C/C++ 第04课 蜂鸣器播放器
    • ARDUINO C/C++ 第05课 轻触开关按键
    • ARDUINO C/C++ 第06课 旋转编码器
    • ARDUINO C/C++ 第07课 人体红外传感器
    • ARDUINO C/C++ 第08课 4×4薄膜矩阵键盘

6 PPT创作

  • 01 PPT基础操作回顾
  • 02 PPT基础操作SmartArt
  • 03 PPT制作思路—梳理大纲
  • 04 布尔逻辑、缩放定位
  • 05 如何DIY任意图形
  • 06 制作幻灯片母版
  • 07 文字排版设计
  • 08 段落的排版技巧
  • 09 封面设计技巧
  • 10 配色技巧
  • 11 剪纸风格设计
  • 12 孟菲斯风格设计
  • 13 水彩风格设计
  • 14 个性极简风
  • 15 古典中式风
  • 16 新中式古典风
  • 17 思维导图上
  • 18 思维导图下
  • 19 课程回顾
  • 20 动画特效

7 科创课题

  • 科创课题

8 关于我们

  • ① 关于我们
  • ② 学习路线
  • ③ 科创升学
  • ④ 成果展示
  • ⑤ 常见问题
View Categories
  • 大师码
  • Docs
  • 3 Python
  • Python第 02 期 - 基础
  • 064 综合实战二 – 学生信息管理系统 6

3 min read

主要内容 #

  1. 综合实战:使用python编写学生信息管理系统

11.主函数的编写 #

通过前面课程的努力,我们已经通过函数,实现了学生信息管理系统的各种功能。接下来我们只需要合理调用这些函数即可。以下示例不能单独调用,仅作为讲解使用
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
stu=[……]#学生信息列表
####################函数定义区
def insert():
def search():
def delete():
def modify():
def seq()
def show()
def menu()
####################
####################主函数区
menu()#首先提供用户输入的菜单
while (True):
option = input("请选择功能模式:") # 选择菜单项
if option in ['0', '1', '2', '3', '4', '5', '6']:
if option== '0': # 退出系统
print('您已退出学生成绩管理系统!')
break
elif option == '1': # 录入学生信息
insert()
elif option == '2': # 查找学生信息
search()
elif option== '3': # 删除学生信息
delete()
elif option== '4': # 修改学生信息
modify()
elif option == '5': # 学生成绩排序
seq()
elif option == '6': # 显示所有学生信息
show()
else:
print("输入有误!",end='')
####################
以上程序共分为三个部分,全局变量区,函数定义区,主函数区,事实上主函数区我们并未把它定义成函数,通过无限循环我们不断获取用户输入,在根据用户输入调用相关函数。
stu=[……]#学生信息列表 ####################函数定义区 def insert(): def search(): def delete(): def modify(): def seq() def show() def menu() #################### ####################主函数区 menu()#首先提供用户输入的菜单 while (True): option = input("请选择功能模式:") # 选择菜单项 if option in ['0', '1', '2', '3', '4', '5', '6']: if option== '0': # 退出系统 print('您已退出学生成绩管理系统!') break elif option == '1': # 录入学生信息 insert() elif option == '2': # 查找学生信息 search() elif option== '3': # 删除学生信息 delete() elif option== '4': # 修改学生信息 modify() elif option == '5': # 学生成绩排序 seq() elif option == '6': # 显示所有学生信息 show() else: print("输入有误!",end='') #################### 以上程序共分为三个部分,全局变量区,函数定义区,主函数区,事实上主函数区我们并未把它定义成函数,通过无限循环我们不断获取用户输入,在根据用户输入调用相关函数。
stu=[……]#学生信息列表
####################函数定义区
def insert():
def search():
def delete():
def modify():
def seq()
def show()
def menu()
####################
####################主函数区
menu()#首先提供用户输入的菜单
while (True):
    option = input("请选择功能模式:")  # 选择菜单项
    if option in ['0', '1', '2', '3', '4', '5', '6']:
        if option== '0':  # 退出系统
            print('您已退出学生成绩管理系统!')
            break
        elif option == '1':  # 录入学生信息
            insert()
        elif option == '2':  # 查找学生信息
            search()
        elif option== '3':  # 删除学生信息
            delete()
        elif option== '4':  # 修改学生信息
            modify()
        elif option == '5':  # 学生成绩排序
            seq()
        elif option == '6':  # 显示所有学生信息
            show()
    else:
        print("输入有误!",end='')
####################
以上程序共分为三个部分,全局变量区,函数定义区,主函数区,事实上主函数区我们并未把它定义成函数,通过无限循环我们不断获取用户输入,在根据用户输入调用相关函数。

12.学生信息管理系统 #

按照示例1的思路,我们将写好的系统展示如下;因为输入输出太多,又在每个函数开始和结束时增加了标识,方便用户使用。通过这样的方式,将我们每小节课所写的程序组合起来,也能编写比较复杂的系统
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
stu=[{'id':'001',"name": '李明', "English": 97, "python": 100},
{'id':'002',"name": '王晓东', "English": 91, "python": 89},
{'id':'003',"name": '杨雪', "English": 98, "python": 92},
{'id':'004',"name": '冯小乐', "English": 87, "python": 98},
{'id':'005',"name": '刘前进', "English": 84, "python": 92},
]#建立一个保存学生信息的列表
###################函数定义区
def insert():#添加学生信息函数insert()
print("*"*20+'录入学生信息'+"*"*20)#开始标识
while True:
id = input("请输入ID:");
name = input('请输入姓名:') # 输入学号和姓名
while True: # 通过无限循环和try…except语句保证用户能正确输入成绩
try:
py = int(input('请输入python成绩:'))
eng = int(input('请输入英语成绩:'))
break # 结束本层循环
except:
print('所输入的成绩需为整数!')
continue # 本层循环从头开始
stu.append({'id': id, "name": name, "English": eng, "python": py}) # 增加学生列表信息
mark = input('添加成功! 是否继续输入?(y/n):')
if mark == 'y':
continue
elif mark == 'n':
break
else:
print('未正确输入y or n!!')
break
print("*" * 19 + '录入学生信息结束' + "*" * 19)#结束标识
def search():#通过学号或者姓名查询学生信息
print("*" * 20 + '查询学生信息' + "*" * 20)
while True:
idlist = [i['id'] for i in stu]#列表推导表达式建立学号列表,循环变量i表示列表stu中的元素,其数据类型为字典
namelist = [i["name"] for i in stu]
temp=input('请输入学号或姓名:')#注意用户输入学号或姓名
if temp in idlist or temp in namelist:
try:#如果输入为学号,则该模块正常执行
print(stu[idlist.index(temp)])#想一想为什么?
except:#如果输入为姓名,执行该模块
print(stu[namelist.index(temp)])
else:
print('输入有误!')#输入的既不是学号也不是姓名
continue
mark = input('是否继续查询?(y/n):')
if mark == 'y':
continue#本层循环从头开始
elif mark == 'n':
break#结束本层循环
else:
print('未正确输入y or n!')
break
print("*" * 19 + '学生信息查询结束' + "*" * 19)
def delete():#通过学号删除学生信息,可参考search()函数的注释
print("*" * 20 + '删除学生信息' + "*" * 20)
while True:
idlist = [i['id'] for i in stu]
id = input('请输入学号:')
if id in idlist:
del stu[idlist.index(id)]#通过del关键字删除stu列中表对应索引的元素
else:
print('输入有误!')
continue
mark = input('删除成功!是否继续删除?(y/n):')
if mark == 'y':
continue
elif mark == 'n':
break
else:
print('未正确输入y or n!')
break
print("*" * 19 + '学生信息删除结束' + "*" * 19)
def modify():#通过学号修改学生信息
print("*" * 20 + '修改学生信息' + "*" * 20)
while True:
idlist = [i['id'] for i in stu]
id = input('请输入学号:')
if id in idlist:
while True:
try:
py = int(input('请重新输入python成绩:'))
eng = int(input('请重新输入英语成绩:'))
stu[idlist.index(id)]['python']=py
stu[idlist.index(id)]['English']=eng
break
except:
print('所输入的成绩需为整数!')
continue
else:
print('输入有误!')
continue
mark = input('修改成功!是否继续修改?(y/n):')
if mark == 'y':
continue
elif mark == 'n':
break
else:
print('未正确输入y or n!')
break
print("*" * 19 + '学生信息修改结束' + "*" * 19)
def show():#显示全部学生信息函数
print("*" * 20 + '打印学生信息' + "*" * 20)
for i in stu:
print(i)
print("*" * 19 + '学生信息打印结束' + "*" * 19)
def seq():#按成绩排序
print("*" * 20 + '学生成绩排序' + "*" * 20)
mark=input("输入\033[1;31m '0' \033[0m(python)或\033[1;31m '1' \033[0m(英语)进行排序:")#1和0红色高亮显示
if mark=='0':
stu1 = sorted(stu, key=lambda x: x['python'], reverse=True)#sorted()函数的排序功能,按字典中的python成绩排序
for i in stu1:#逐行打印,验证seq()排序功能
print(i)
elif mark=='1':
stu1 = sorted(stu, key=lambda x: x['English'], reverse=True)#sorted()函数排序功能,按字典中的英语成绩排序
for i in stu1:
print(i)
else:
print('输入有误!')
print("*" * 19 + '学生成绩排序结束' + "*" * 19)
def menu():
print('\033[1;34;46m' + '——' * 10 + '学生管理系统' + '——' * 10 + '\033[0m') # 高亮显示 字体颜色蓝色 背景色青色
print('\033[1;30;46m' + ' ' * 16 + '1.添加学生信息' + ' ' * 22 + '\033[0m') # 高亮显示 字体颜色黑色 背景色青色
print('\033[1;30;46m' + ' ' * 16 + '2.查询学生信息' + ' ' * 22 + '\033[0m')
print('\033[1;30;46m' + ' ' * 16 + '3.删除学生信息' + ' ' * 22 + '\033[0m')
print('\033[1;30;46m' + ' ' * 16 + '4.修改学生信息' + ' ' * 22 + '\033[0m')
print('\033[1;30;46m' + ' ' * 16 + '5.学生成绩排序' + ' ' * 22 + '\033[0m')
print('\033[1;30;46m' + ' ' * 16 + '6.显示学生信息' + ' ' * 22 + '\033[0m')
print('\033[1;30;46m' + ' ' * 8 + '说明:通过数字选择菜单 0退出系统' + ' ' * 13 + '\033[0m')
###################函数定义区
menu()
while (True):
option = input("请选择功能模式:") # 选择菜单项
if option in ['0', '1', '2', '3', '4', '5', '6']:
if option== '0': # 退出系统
print('您已退出学生成绩管理系统!')
break
elif option == '1': # 录入学生信息
insert()
elif option == '2': # 查找学生信息
search()
elif option== '3': # 删除学生信息
delete()
elif option== '4': # 修改学生信息
modify()
elif option == '5': # 学生成绩排序
seq()
elif option == '6': # 显示所有学生信息
show()
else:
print("输入有误!",end='')
stu=[{'id':'001',"name": '李明', "English": 97, "python": 100}, {'id':'002',"name": '王晓东', "English": 91, "python": 89}, {'id':'003',"name": '杨雪', "English": 98, "python": 92}, {'id':'004',"name": '冯小乐', "English": 87, "python": 98}, {'id':'005',"name": '刘前进', "English": 84, "python": 92}, ]#建立一个保存学生信息的列表 ###################函数定义区 def insert():#添加学生信息函数insert() print("*"*20+'录入学生信息'+"*"*20)#开始标识 while True: id = input("请输入ID:"); name = input('请输入姓名:') # 输入学号和姓名 while True: # 通过无限循环和try…except语句保证用户能正确输入成绩 try: py = int(input('请输入python成绩:')) eng = int(input('请输入英语成绩:')) break # 结束本层循环 except: print('所输入的成绩需为整数!') continue # 本层循环从头开始 stu.append({'id': id, "name": name, "English": eng, "python": py}) # 增加学生列表信息 mark = input('添加成功! 是否继续输入?(y/n):') if mark == 'y': continue elif mark == 'n': break else: print('未正确输入y or n!!') break print("*" * 19 + '录入学生信息结束' + "*" * 19)#结束标识 def search():#通过学号或者姓名查询学生信息 print("*" * 20 + '查询学生信息' + "*" * 20) while True: idlist = [i['id'] for i in stu]#列表推导表达式建立学号列表,循环变量i表示列表stu中的元素,其数据类型为字典 namelist = [i["name"] for i in stu] temp=input('请输入学号或姓名:')#注意用户输入学号或姓名 if temp in idlist or temp in namelist: try:#如果输入为学号,则该模块正常执行 print(stu[idlist.index(temp)])#想一想为什么? except:#如果输入为姓名,执行该模块 print(stu[namelist.index(temp)]) else: print('输入有误!')#输入的既不是学号也不是姓名 continue mark = input('是否继续查询?(y/n):') if mark == 'y': continue#本层循环从头开始 elif mark == 'n': break#结束本层循环 else: print('未正确输入y or n!') break print("*" * 19 + '学生信息查询结束' + "*" * 19) def delete():#通过学号删除学生信息,可参考search()函数的注释 print("*" * 20 + '删除学生信息' + "*" * 20) while True: idlist = [i['id'] for i in stu] id = input('请输入学号:') if id in idlist: del stu[idlist.index(id)]#通过del关键字删除stu列中表对应索引的元素 else: print('输入有误!') continue mark = input('删除成功!是否继续删除?(y/n):') if mark == 'y': continue elif mark == 'n': break else: print('未正确输入y or n!') break print("*" * 19 + '学生信息删除结束' + "*" * 19) def modify():#通过学号修改学生信息 print("*" * 20 + '修改学生信息' + "*" * 20) while True: idlist = [i['id'] for i in stu] id = input('请输入学号:') if id in idlist: while True: try: py = int(input('请重新输入python成绩:')) eng = int(input('请重新输入英语成绩:')) stu[idlist.index(id)]['python']=py stu[idlist.index(id)]['English']=eng break except: print('所输入的成绩需为整数!') continue else: print('输入有误!') continue mark = input('修改成功!是否继续修改?(y/n):') if mark == 'y': continue elif mark == 'n': break else: print('未正确输入y or n!') break print("*" * 19 + '学生信息修改结束' + "*" * 19) def show():#显示全部学生信息函数 print("*" * 20 + '打印学生信息' + "*" * 20) for i in stu: print(i) print("*" * 19 + '学生信息打印结束' + "*" * 19) def seq():#按成绩排序 print("*" * 20 + '学生成绩排序' + "*" * 20) mark=input("输入\033[1;31m '0' \033[0m(python)或\033[1;31m '1' \033[0m(英语)进行排序:")#1和0红色高亮显示 if mark=='0': stu1 = sorted(stu, key=lambda x: x['python'], reverse=True)#sorted()函数的排序功能,按字典中的python成绩排序 for i in stu1:#逐行打印,验证seq()排序功能 print(i) elif mark=='1': stu1 = sorted(stu, key=lambda x: x['English'], reverse=True)#sorted()函数排序功能,按字典中的英语成绩排序 for i in stu1: print(i) else: print('输入有误!') print("*" * 19 + '学生成绩排序结束' + "*" * 19) def menu(): print('\033[1;34;46m' + '——' * 10 + '学生管理系统' + '——' * 10 + '\033[0m') # 高亮显示 字体颜色蓝色 背景色青色 print('\033[1;30;46m' + ' ' * 16 + '1.添加学生信息' + ' ' * 22 + '\033[0m') # 高亮显示 字体颜色黑色 背景色青色 print('\033[1;30;46m' + ' ' * 16 + '2.查询学生信息' + ' ' * 22 + '\033[0m') print('\033[1;30;46m' + ' ' * 16 + '3.删除学生信息' + ' ' * 22 + '\033[0m') print('\033[1;30;46m' + ' ' * 16 + '4.修改学生信息' + ' ' * 22 + '\033[0m') print('\033[1;30;46m' + ' ' * 16 + '5.学生成绩排序' + ' ' * 22 + '\033[0m') print('\033[1;30;46m' + ' ' * 16 + '6.显示学生信息' + ' ' * 22 + '\033[0m') print('\033[1;30;46m' + ' ' * 8 + '说明:通过数字选择菜单 0退出系统' + ' ' * 13 + '\033[0m') ###################函数定义区 menu() while (True): option = input("请选择功能模式:") # 选择菜单项 if option in ['0', '1', '2', '3', '4', '5', '6']: if option== '0': # 退出系统 print('您已退出学生成绩管理系统!') break elif option == '1': # 录入学生信息 insert() elif option == '2': # 查找学生信息 search() elif option== '3': # 删除学生信息 delete() elif option== '4': # 修改学生信息 modify() elif option == '5': # 学生成绩排序 seq() elif option == '6': # 显示所有学生信息 show() else: print("输入有误!",end='')
stu=[{'id':'001',"name": '李明', "English": 97, "python": 100},
     {'id':'002',"name": '王晓东', "English": 91, "python": 89},
     {'id':'003',"name": '杨雪', "English": 98, "python": 92},
     {'id':'004',"name": '冯小乐', "English": 87, "python": 98},
     {'id':'005',"name": '刘前进', "English": 84, "python": 92},
     ]#建立一个保存学生信息的列表
###################函数定义区
def insert():#添加学生信息函数insert()
    print("*"*20+'录入学生信息'+"*"*20)#开始标识
    while True:
        id = input("请输入ID:");
        name = input('请输入姓名:')  # 输入学号和姓名
        while True:  # 通过无限循环和try…except语句保证用户能正确输入成绩
            try:
                py = int(input('请输入python成绩:'))
                eng = int(input('请输入英语成绩:'))
                break  # 结束本层循环
            except:
                print('所输入的成绩需为整数!')
                continue  # 本层循环从头开始
        stu.append({'id': id, "name": name, "English": eng, "python": py})  # 增加学生列表信息
        mark = input('添加成功! 是否继续输入?(y/n):')
        if mark == 'y':
            continue
        elif mark == 'n':
            break
        else:
            print('未正确输入y or n!!')
            break
    print("*" * 19 + '录入学生信息结束' + "*" * 19)#结束标识
def search():#通过学号或者姓名查询学生信息
    print("*" * 20 + '查询学生信息' + "*" * 20)
    while True:
        idlist = [i['id'] for i in stu]#列表推导表达式建立学号列表,循环变量i表示列表stu中的元素,其数据类型为字典
        namelist = [i["name"] for i in stu]
        temp=input('请输入学号或姓名:')#注意用户输入学号或姓名
        if temp in idlist or temp in namelist:
            try:#如果输入为学号,则该模块正常执行
                print(stu[idlist.index(temp)])#想一想为什么?
            except:#如果输入为姓名,执行该模块
                print(stu[namelist.index(temp)])
        else:
            print('输入有误!')#输入的既不是学号也不是姓名
            continue
        mark = input('是否继续查询?(y/n):')
        if mark == 'y':
            continue#本层循环从头开始
        elif mark == 'n':
            break#结束本层循环
        else:
            print('未正确输入y or n!')
            break
    print("*" * 19 + '学生信息查询结束' + "*" * 19)
def delete():#通过学号删除学生信息,可参考search()函数的注释
    print("*" * 20 + '删除学生信息' + "*" * 20)
    while True:
        idlist = [i['id'] for i in stu]
        id = input('请输入学号:')
        if id in idlist:
             del stu[idlist.index(id)]#通过del关键字删除stu列中表对应索引的元素
        else:
            print('输入有误!')
            continue
        mark = input('删除成功!是否继续删除?(y/n):')
        if mark == 'y':
            continue
        elif mark == 'n':
            break
        else:
            print('未正确输入y or n!')
            break
    print("*" * 19 + '学生信息删除结束' + "*" * 19)
def modify():#通过学号修改学生信息
    print("*" * 20 + '修改学生信息' + "*" * 20)
    while True:
        idlist = [i['id'] for i in stu]
        id = input('请输入学号:')
        if id in idlist:
            while True:
                try:
                    py = int(input('请重新输入python成绩:'))
                    eng = int(input('请重新输入英语成绩:'))
                    stu[idlist.index(id)]['python']=py
                    stu[idlist.index(id)]['English']=eng
                    break
                except:
                    print('所输入的成绩需为整数!')
                    continue
        else:
            print('输入有误!')
            continue
        mark = input('修改成功!是否继续修改?(y/n):')
        if mark == 'y':
            continue
        elif mark == 'n':
            break
        else:
            print('未正确输入y or n!')
            break
    print("*" * 19 + '学生信息修改结束' + "*" * 19)
def show():#显示全部学生信息函数
    print("*" * 20 + '打印学生信息' + "*" * 20)
    for i in stu:
        print(i)
    print("*" * 19 + '学生信息打印结束' + "*" * 19)
def seq():#按成绩排序
    print("*" * 20 + '学生成绩排序' + "*" * 20)
    mark=input("输入\033[1;31m '0' \033[0m(python)或\033[1;31m '1' \033[0m(英语)进行排序:")#1和0红色高亮显示
    if mark=='0':
        stu1 = sorted(stu, key=lambda x: x['python'], reverse=True)#sorted()函数的排序功能,按字典中的python成绩排序
        for i in stu1:#逐行打印,验证seq()排序功能
            print(i)
    elif mark=='1':
        stu1 = sorted(stu, key=lambda x: x['English'], reverse=True)#sorted()函数排序功能,按字典中的英语成绩排序
        for i in stu1:
            print(i)
    else:
        print('输入有误!')
    print("*" * 19 + '学生成绩排序结束' + "*" * 19)
def menu():
    print('\033[1;34;46m' + '——' * 10 + '学生管理系统' + '——' * 10 + '\033[0m')  # 高亮显示 字体颜色蓝色 背景色青色
    print('\033[1;30;46m' + ' ' * 16 + '1.添加学生信息' + ' ' * 22 + '\033[0m')  # 高亮显示 字体颜色黑色 背景色青色
    print('\033[1;30;46m' + ' ' * 16 + '2.查询学生信息' + ' ' * 22 + '\033[0m')
    print('\033[1;30;46m' + ' ' * 16 + '3.删除学生信息' + ' ' * 22 + '\033[0m')
    print('\033[1;30;46m' + ' ' * 16 + '4.修改学生信息' + ' ' * 22 + '\033[0m')
    print('\033[1;30;46m' + ' ' * 16 + '5.学生成绩排序' + ' ' * 22 + '\033[0m')
    print('\033[1;30;46m' + ' ' * 16 + '6.显示学生信息' + ' ' * 22 + '\033[0m')
    print('\033[1;30;46m' + ' ' * 8 + '说明:通过数字选择菜单 0退出系统' + ' ' * 13 + '\033[0m')
###################函数定义区
menu()
while (True):
    option = input("请选择功能模式:")  # 选择菜单项
    if option in ['0', '1', '2', '3', '4', '5', '6']:
        if option== '0':  # 退出系统
            print('您已退出学生成绩管理系统!')
            break
        elif option == '1':  # 录入学生信息
            insert()
        elif option == '2':  # 查找学生信息
            search()
        elif option== '3':  # 删除学生信息
            delete()
        elif option== '4':  # 修改学生信息
            modify()
        elif option == '5':  # 学生成绩排序
            seq()
        elif option == '6':  # 显示所有学生信息
            show()
    else:
        print("输入有误!",end='')

习题 #

  1. 运行示例二代码,尽可能多地尝试各种不同的输入选择,完成该学生管理系统的代码测试

OJ训练题 #

1、练23.4 首字母 – ★
2、【入门】大数的平方 – ★
3、【入门】运动会成绩统计 – ★
4、【入门】打印空心等腰三角形 – ★★
5、【入门】求落地次数 – ★★★

您的感觉是什么
分享这篇文章 :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
目录
  • 主要内容
    • 11.主函数的编写
    • 12.学生信息管理系统
  • 习题
  • OJ训练题

Copyright © 2020-2023 上海大师码文化有限公司 All rights reserved.
沪ICP备15020985号-5 | 沪公网安备31012002006140 | 管理登录

Copyright © 2020 上海大师码文化有限公司 All rights reserved.
沪ICP备15020985号-5 管理登录

Copyright © 2020-2023 上海大师码文化有限公司 All rights reserved.
沪ICP备15020985号-5 | 沪公网安备31012002006140 | 管理登录

Copyright © 2020 上海大师码文化有限公司 All rights reserved.
沪ICP备15020985号-5 管理登录