• 学生选修课程管理系统c++


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 zccxsdgc 2024-04-24 20:30 采纳率: 0% 浏览 0 首页/ 编程语言 / 学生选修课程管理系统c++ c++开发语言 “学生选修课程系统设计”1、问题描述高校中学生信息包括:学号、姓名、性别、年龄、系别、班级、联系方式等信息。课程信息包括:课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数等信息。学生可对课程信息进行查询,选修符合要求的课程。根据课程信息和学生信息完成对课程的选修,需要专门的一个管理类来完成选修工作。2、功能要求(1)添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所要添加的类别,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的学生和课程记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和课程的记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的学生和课程记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能统计学生人数、课程的门数、选修某门课程的学生的相关信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 码农阿豪 Java领域优质创作者 2024-04-24 20:35
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      回答: 根据需求,我们需要设计一个学生选修课程系统,具有添加、查询、显示、编辑、删除、统计、保存和读取的功能。以下是一种设计方案:
      1. 学生类(Student): 属性:学号、姓名、性别、年龄、系别、班级、联系方式 方法:无
      2. 课程类(Course): 属性:课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数 方法:无
      3. 管理类(System): 属性:学生列表、课程列表 方法:
      4. 添加新的学生记录:输入学生信息,生成唯一的学号,将学生信息加入学生列表中。
      5. 添加新的课程记录:输入课程信息,生成唯一的课程代码,将课程信息加入课程列表中。
      6. 根据学号或姓名查询学生记录:输入查询条件,循环遍历学生列表,返回查询结果。
      7. 根据课程代码或名称查询课程记录:输入查询条件,循环遍历课程列表,返回查询结果。
      8. 显示所有学生和课程记录:依次输出学生列表和课程列表中的所有记录。
      9. 根据学号或课程代码查询记录,编辑对应学生或课程的信息。
      10. 根据学号或课程代码删除学生或课程记录。
      11. 统计学生数、课程数、某门课程的选修人数和学生列表。
      12. 将所有学生和课程记录保存到文本文件中。
      13. 从文本文件中读取学生和课程记录到系统中。 以下是示例代码,用于说明实现方法:
      class Student:
          def __init__(self, id, name, gender, age, department, clazz, contact):
              self.id = id
              self.name = name
              self.gender = gender
              self.age = age
              self.department = department
              self.clazz = clazz
              self.contact = contact
      class Course:
          def __init__(self, code, name, type, total_hours, credit, semester, num_students):
              self.code = code
              self.name = name
              self.type = type
              self.total_hours = total_hours
              self.credit = credit
              self.semester = semester
              self.num_students = num_students
      class System:
          def __init__(self):
              self.students = []
              self.courses = []
          def add_student(self, name, gender, age, department, clazz, contact):
              id = len(self.students) + 1 # generate unique id
              student = Student(id, name, gender, age, department, clazz, contact)
              self.students.append(student)
          def add_course(self, name, type, total_hours, credit, semester, num_students):
              code = len(self.courses) + 1 # generate unique code
              course = Course(code, name, type, total_hours, credit, semester, num_students)
              self.courses.append(course)
          def find_student(self, id=None, name=None):
              for s in self.students:
                  if (id is not None and s.id == id) or (name is not None and s.name == name):
                      return s
              return None
          def find_course(self, code=None, name=None):
              for c in self.courses:
                  if (code is not None and c.code == code) or (name is not None and c.name == name):
                      return c
              return None
          def show_all(self):
              print('All students:')
              for s in self.students:
                  print(f'{s.id}: {s.name} ({s.gender}), {s.age} years old, {s.department}-{s.clazz}, {s.contact}')
              print('All courses:')
              for c in self.courses:
                  print(f'{c.code}: {c.name} ({c.type}), {c.total_hours} hours, {c.credit} credits, {c.semester}, {c.num_students} students')
          def edit_student(self, id, name=None, gender=None, age=None, department=None, clazz=None, contact=None):
              s = self.find_student(id)
              if s is None:
                  print('Student not found')
              else:
                  if name is not None:
                      s.name = name
                  if gender is not None:
                      s.gender = gender
                  if age is not None:
                      s.age = age
                  if department is not None:
                      s.department = department
                  if clazz is not None:
                      s.clazz = clazz
                  if contact is not None:
                      s.contact = contact
                  print('Student info updated')
          def edit_course(self, code, name=None, type=None, total_hours=None, credit=None, semester=None, num_students=None):
              c = self.find_course(code)
              if c is None:
                  print('Course not found')
              else:
                  if name is not None:
                      c.name = name
                  if type is not None:
                      c.type = type
                  if total_hours is not None:
                      c.total_hours = total_hours
                  if credit is not None:
                      c.credit = credit
                  if semester is not None:
                      c.semester = semester
                  if num_students is not None:
                      c.num_students = num_students
                  print('Course info updated')
          def delete_student(self, id):
              s = self.find_student(id)
              if s is None:
                  print('Student not found')
              else:
                  self.students.remove(s)
                  print('Student deleted')
          def delete_course(self, code):
              c = self.find_course(code)
              if c is None:
                  print('Course not found')
              else:
                  self.courses.remove(c)
                  print('Course deleted')
          def count_students(self):
              return len(self.students)
          def count_courses(self):
              return len(self.courses)
          def count_course_students(self, code):
              c = self.find_course(code)
              if c is None:
                  return None
              else:
                  return (c.name, c.type, c.num_students, [s.name for s in self.students if code in [c.code for c in self.courses]])
          def save_to_file(self, filename):
              with open(filename, 'w') as f:
                  f.write(f'students {len(self.students)}\n')
                  for s in self.students:
                      f.write(f'{s.id},{s.name},{s.gender},{s.age},{s.department},{s.clazz},{s.contact}\n')
                  f.write(f'courses {len(self.courses)}\n')
                  for c in self.courses:
                      f.write(f'{c.code},{c.name},{c.type},{c.total_hours},{c.credit},{c.semester},{c.num_students}\n')
          def load_from_file(self, filename):
              with open(filename, 'r') as f:
                  all_lines = f.readlines()
                  num_students = int(all_lines[0].split()[1])
                  for i in range(num_students):
                      s = all_lines[i+1].strip().split(',')
                      self.students.append(Student(int(s[0]), s[1], s[2], int(s[3]), s[4], s[5], s[6]))
                  num_courses = int(all_lines[num_students+1].split()[1])
                  for i in range(num_courses):
                      c = all_lines[num_students+i+2].strip().split(',')
                      self.courses.append(Course(int(c[0]), c[1], c[2], int(c[3]), float(c[4]), c[5], int(c[6])))
      

      这样的设计和实现能够满足学生选修课程系统的需求,并且代码结构清晰、易于维护、易于扩展。例如,如果需要增加其他功能,比如学生选课、查看课表等,只需要在管理类中新增对应的方法即可。代码中也使用了面向对象的编程思想,学生和课程分别对应一个类,使得操作更具有直观性和形象化。

      展开全部

      评论
      zccxsdgc 2024-04-24 21:18

      有没有更详细的

      回复
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      【27. 表达式求值(中缀表达式)】
      【PHP】入门知识
      学Python如此简单--OS模块
      CSS样式中颜色与颜色值的应用
      JavaScript:实现使用 2 个堆栈形成队列算法(附完整源码)
      html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》
      基于样本平衡策略的多源迁移学习方法及其在乙烯精馏塔质量指标预测的应用
      增强现实(AR)开发框架
      I2C相关实验2
      Flutter 错误must be a valid Dart package name
    • 原文地址:https://ask.csdn.net/questions/8094360