




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模拟选课系统1:选课系统是为学校提供课程管理的信息系统。能实现学生选课,查询。老师班级管理的部分功能。通过简要的分析,可知本系统的基本功能需求包括以下几个方面。(1) 一个学生可以选择多门课程。(2) 学生选课不能重复。(3) 一个班级有很多学生组成。(4) 班级学生信息不能重复。(5) 满足班级人数限制要求。(6) 能够支持学生查询课表,和所有可选课程。(7) 能够支持老师查看班级选课情况。在上述分析的基础上,可以找到一系列可能的对象,并将其抽象到不同的类。1) 学生类:学生名称、学号、专业等可作为类的属性;可选入课程。2) 教师类:教师称呼、教师号、所教课程等作为类的属性。3) 班级类:班级课程、任课教师、教学班号、上课时间、地点等属性。可加入学生。班级+课程+任课教师+编号+上课时间+上课地点+选入学生老师+姓名+所教课程的名称+教师号学生+姓名+学号+专业+学生的课表+选课的门数专业等学生类中的主要代码:public class student private string name;/姓名 public string name get return name; set name = value; private string num;/学号 public string num get return num; set num = value; private string subject;/专业 public string subject get return subject; set subject = value; private class choicecla;/学生的课表 private int count;/选课的门数 public int count get return count; set count = value; public student(string name, string num) = name; this.num = num; this.choicecla = new class100; count = 0; public student(string name, string num, string subject) = name; this.num = num; this.subject = subject; this.choicecla = new class100; count = 0; / 将学生信息转换为字符串 public override string tostring() return 学生姓名: + + 学号: + this.num; public bool isaddclass(class c) if (count = 0) return true; /课程总数不能超过100门 if (count = 100) return false; foreach (class c1 in choicecla) / 该课程c该学生已经选修了 if (c1 = c) return false; return true; / 增加一名课程 public void addclass(class c) choiceclacount = c; count = count + 1; / 显示所有选修的课程 public void showclass() string str = ; if (count = 0) console.writeline(该学生还没有选修任何课程!); return; for (int i = 0; i count; i+) str = str + choiceclai.num + ; console.writeline(该学生选修了以下课程: + str); / 显示所有选修的课程的具体信息 public void showclassinfo() if (count = 0) console.writeline(该学生还没有选修任何课程!); return; console.writeline(该学生选修了以下课程:); for (int i = 0; i count; i+) console.write(第0门课程, i + 1); choiceclai.showinfo(); 教师类中的代码:public class teacher private string name;/姓名 public string name get return name; set name = value; private string subject;/所教课程的名称 public string subject get return subject; set subject = value; private string teacher_num;/教师号 public string teacher_num get return teacher_num; set teacher_num = value; public teacher(string name, string teacher_num) = name; this.teacher_num = teacher_num; public teacher(string name, string subject, string teacher_num) = name; this.subject = subject; this.teacher_num = teacher_num; public override string tostring() return 老师姓名: + + 职工号: + this.teacher_num; 班级类中的代码:public class class private string name;/课程名 public string name get return name; set name = value; public teacher t;/任课教师 private string num;/教学班号 public string num get return num; set num = value; private string start;/上课时间 public string start get return start; set start = value; private string adress;/上课地点 public string adress get return adress; set adress = value; public student students;/所有选择这门课的同学 private int count;/选课的人数 public int count get return count; set count = value; public class(string num) this.num = num; this.students = new student150; count = 0; public class(string name, string num) = name; this.num = num; this.students = new student150; count = 0; public override string tostring() return 课程名: + + 编号: + this.num; public void showinfo() console.writeline(课程名: + + 编号: + this.num); console.writeline(时间: + this.start); console.writeline(地点: + this.adress); / 判断是否能选修该门课程 public bool isaddstu(student s) if (count = 0) return true; /选课人数不能超过150 if (count = 150) return false; foreach (student s1 in students) / 该课程c该学生已经选修了 if (s1 = s) return false; return true; / 增加一名课程 public void addstu(student s) studentscount = s; count = count + 1; / 显示所有选修该门课程的学生 public void showstu() string str = ; if (count = 0) console.writeline(还没有任何学生选修该课程!); return; for (int i = 0; i count; i+) str = str + studentsi.name + ; console.writeline(以下学生选修了该课程: + str); 主函数中的代码及运行截图:console.write(请选择您要以什么身份进入该系统(a 老师;b 学生;q 退出系统):); string a = console.readline(); while (a != q) switch (a) case b: console.write(请输入您的学号:(已设定0001-0003)); string c = console.readline(); int i = 0; for (; i stu.length; i+) if (stui != null) if (stui.num = c) break; if (i = stu.length) console.writeline(你输入的学号不正确); break; 在用户输入错误时,实现报错提醒,保证程序正常运行。else console.write(0同学欢迎您!请选择您要执行的操作(1 选课 ;2 查看所有课的课表;3 查看所选修课的课表 q 学生退出):, stui.name); string d = console.readline(); while (d != q) switch (d) case 1: console.write(请输入您要选择的课程的编号:(c1:web系统与技术 c2大学计算机基础 c3软件工程 c4大学计算机基础)); string e; e = console.readline(); while (e != q) int j = 0; for (; j cla.length; j+) if (claj != null) if (claj.num = e) break; if (j = cla.length) console.writeline(你输入的课程编号号不存在!); else selectclass(stui, claj); console.write(请输入您要选择的课程的编号(q退出):); e = console.readline(); break;while循环实现了连续选课。不需要再返回上一界面重新选择功能。case 2: showallclass(cla); break;上面一段代码实现可选课程查询:case 3: stui.showclassinfo(); break;课表查询。console.write(0同学已退出,欢迎您下次再访问!, stui.name); break; case a: console.write(请输入您的教师号:(已设定0001-0003)); string f = console.readline(); int m = 0; for (; m tea.length; m+) if (team != null) if (team.teacher_num = f) break; if (m = tea.length) console.writeline(你输入的不存在!); break; else console.write(0欢迎您!请选择您要执行的操作(1 查看课程选修学生情况 2 查看所有课的课表; q 教师退出):, team.name); string d = console.readline(); while (d != q) switch (d) case 1: console.write(请输入您要查看学生信息的课程的编号:(c1:web系统与技术 c2大学计算机基础 c3软件工程 c4大学计算机基础)); string e; e = console.readline(); int j = 0; for (; j cla.length; j+) if (claj != null) if (claj.num = e) break; if (j = cla.length) console.writeline(你输入的课程编号号不正确); else if (claj.students0 = null) console.writeline(当前没有任何学生选修该课!); 教师登陆时,查询课程选修情况,但没有人选修这门课时,智能返回提示。else console.writeline(0班级的选入学生信息:, claj.name); for (int r = 0; r claj.count; r+) console.writeline(学生姓名: + claj.studentsr.name + 学号: + claj.studentsr.num); break;教师查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025商业房产租赁合同附加协议示范文本
- 肺结节切除术护理查房
- 《契丹崛起与北宋建立》宋元时期课件-1
- 车床加工行业介绍
- 劳务派遣合作协议揭阳市
- 2025劳动合同协议格式模板范文
- 肾病护士健康教育比赛
- 技术专家顾问聘用协议书二零二五年
- 二零二五工程劳务分包合同的范例
- 基坑气膜隔声隔声机理
- 2024年连云港专业技术人员继续教育《饮食、运动和健康的关系》92分(试卷)
- 消防设施维保服务投标方案(技术方案)
- 《陆上风电场工程施工安装技术规程》(NB/T 10087-2018 )
- 大班科学五彩的灯课件
- 2024图解数据分类分级规则
- 对公账户注销委托书
- 新能源汽车维修完全自学手册
- 初中英语名词汇总
- 高中语文选择性必修中册《11.1过秦论》理解性默写与填空练习
- 大数据商务智能与可视化分析:解锁商业精准决策之路
- 刑事案件及分析报告
评论
0/150
提交评论