程序媛

学生选课系统 —— 作业需求

引言

  亲爱的同学们,当你们打开这篇作业的时候,恭喜你们,python的基础课程你们已经学完一半了。面向对象是大家在学习过程中的一个重要转折,从这里开始,你们需要切换成另外一种思维来编写程序,这将非常有利于你们未来开发功能复杂的项目,所以请大家一定要用心来完成这部分的作业。

      从这部分开始,我们的作业说明也变得更加复杂,因为所有的程序开发都是从核心功能出发的,所以我们在开发的时候首先要完成的总是最主要的功能,以后大家还要慢慢学会自己提取“核心的功能”、进行“需求分析”,“程序设计”等工作来保证你们能够顺利成长为一个优秀的程序员。但是由于各位是初学者,所以先由我们来替你们完成这些基础工作,你们只管写代码就好了。

核心功能

功能概述

学生选课

需求分析

  从“学生选课系统” 这几个字就可以看出来,我们最核心的功能其实只有 选课。

角色

  学生、管理员

功能

  登陆 : 管理员和学生都可以登陆,且登陆之后可以自动区分身份

  选课 : 学生可以自由的为自己选择课程

  创建用户 : 选课系统是面向本校学生的,因此所有的用户都应该由管理员完成

  查看选课情况 :每个学生可以查看自己的选课情况,而管理员应该可以查看所有学生的信息

工作流程

  登陆 :用户输入用户名和密码

  判断身份 :在登陆成果的时候应该可以直接判断出用户的身份 是学生还是管理员

  学生用户 :对于学生用户来说,登陆之后有三个功能

       1、查看所有课程

       2、选择课程

       3、查看所选课程

       4、退出程序

      管理员用户:管理员用户除了可以做一些查看功能之外,还有很多创建工作

       1、创建课程

       2、创建学生学生账号

       3、查看所有课程

       4、查看所有学生

       5、查看所有学生的选课情况

       6、退出程序

程序设计

对于复杂的功能,我们首先就应该想到面向对象编程。而要想将面向对象的程序开发好,就应该做好类和对象的分析工作。

  选课系统简单的划分其实只有两个角色:管理员和学生。

  仔细思考,你会发现有很多想不通的地方,比如学生选课,课从哪里来?

  这样一想就会发现,其实课程应该可以由管理员创造出来,那么课程又会有很多属性:价格、周期、课程名、授课老师等等

  那么课程也应该是一个类。
分析过程

综上,本程序最基础的分析已经完毕。接下来我们要把所有的类以及其中的属性、方法设计出来

课程

  属性:课程名、价格、周期、老师

  *课程并没有什么动作,所以我们只设计属性不设计方法。其实这里还可以设计很多属性,比如课程的开始时间、结束时间、教室等等,只要你需要,这些都可以记录下来,但是这里我们为了简化代码,就先不设计这些了。

学生

  属性:姓名、所选课程

  方法:查看可选课程、选择课程、查看所选课程、退出程序  

管理员

  属性:姓名

  方法:创建课程、创建学生学生账号、查看所有课程、查看所有学生、查看所有学生的选课情况、退出程序

流程图

采分点

  1.类的创建和规划 30分

  2.登陆自动识别身份 10分

  3.管理员创建各种信息 20分

  4.学生选课 20分

  5.将内存中的数据保存到文件中 10分

  6.代码简洁、调理清晰10分

posted @ 2018-06-28 16:44  Eva_J  阅读(8243)  评论(5编辑  收藏  举报