版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计-学生选课系统(SRS)项目设计书:项目介绍i二:需求说明31 系统简要分析32 应用需求分析33场景说明5场景1: “选修一门课程” 5场景2: “选修一门课程2” 5场景3: “退选一门课程” 5三:软件设计文档:61 .学生选课系统(SRS UML图: 62 .场景1的界面63 .场景1的协作图:74场景1的时序图: 75.调和测试7四、核心代码81.Person类:82.Studen偻:83.Professoe 类: 104.Course: 105.Section5: 116. ScheduleOfClasses: 127. TranscriptEntry类: 12五、
2、心得和体会14一:项目介绍项目名称:学生选课系统(SRS项目大致的功能和性能要求:该系统让学生能够在线为每学期选择课程,还要能跟踪完成学位要求的过 程。当一个学生考入该大学时,他/她使用SRS®定一个学习计划,其中的课程 要满足特定的学位计划,然后选定自己的导师。 SRS等检验该计划是否能满足该 学生获得特定学位的需要。确定了学习计划后,在每个学期前的注册期限内,学生可以在线查看课程 时间表,选择自己想听的课程。如果该课程有多位教授同时指导, 还要指明希望 听课的时段(周几,何时)。SRS等检验该生是否满足选中课程的选课先决条件, 方法是查阅该生的在线成绩单和学位记录(学生可以随时在
3、线查看自己的成绩 单)。假定(a)选定课程的先决条件得到满足,(b)课程满足学生的学习计划, 和(c)选定课程尚有名额空余,则学生将选中该课程。如果条件(a)和(b)得到满足,条件(c)未得到满足,则学生被放入一 个“先到先得”对列中。如果出现名额空余(原因可能时有学生放弃选修,或课 程选修名额增加),则该生自动选修该课程,同时系统会向该生发送一封电子邮 件通知,此时如果打算不再继续选秀这门课,学生应该退选该课程;否则,就得为选修该课程付费。退选课程可以在该门课程开学后一周之内进行。二:需求说明1系统简要分析管理员可以通过超级用户身份登录,对系统进行全面的管理,对新用户的添 加,删除,对信息进
4、行管理。管理员可以对老师及同学的帐户进行管理,老师、学生不同身份的用户进入不同的界面, 进行不同的操作。教师可以发 布自己本学期所要教的课程,以及对学生成绩进行管理。同学可以通过查询本学 期所开设课程进行选择。2应用需求分析学生选课系统需要满足来自三方面的需求, 这三个方面分别是学生、教师和 管理员。学生的需求是查询院系的课程、 学生选课情况及学生信息的修改; 教师 对选课系统学生选课情况进行操作,同时形成学生选课查看确认;选课管理员的 功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、 维护并生成选课报表。学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,还可
5、以进行本人学科成绩情况的查询和维护部分个人信息。一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课及成绩查询信息,就要知道其他学生的学号和密码。这些是很难得到的, 特别是密码,所以不但满足了学生的要求,还保护了学生的个人隐私。学校工作人员有修改学生选课的权限,所以需对工作人员登陆本模块进行更 多的考虑。在此系统中,学校工作人员可以为学生加入选课或是登陆记录,并打印生成相应的报表给用户查看和确认院系管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对选课信息、教师信息、总体选课情况信息的查 询和统计、工作人员和管理人员信息查看及维护。学校管理员可以浏
6、览、查询、 修改、统计选课的基本信息;浏览、查询、统计和修改学生选课的基本信息,浏 览、查询、统计学生信息,但不能添加删除和修改学生的信息,这部分功能应该 由院系工作人员执行,但是,删除某条学生选课基本信息记录时, 应实现对该学 生选课的级联删除。并且还应具有生成选课报表,并打印输出的功能。设计不同 用户的操作权限和登陆方法对所有用户开放的学生选课查询和个人部分信息维 护查看个人情况信息维护学生个人密码根据选课情况对数据库进行操作并生成 报表根据选课情况对数据库进行操作并生成报表查询及统计各种信息维选课信 息维护工作人员和管理员信息维护学生信息处理信息的完整性。本系统主要实现教师信息管理、学生
7、信息管理、课程信息管理和系信息管理, 其中教师信息管理有教师姓名、教师工号、教师职称、教师所属系;学生信息管 理有学生姓名、学生学号和学生所在系;课程信息管理有课程名称、学分、上课 地点、已选人数、课程性质、开课系、课程人数 ;系信息管理有系号和系名。(1)学生信息模块完成学生的登陆,然后根据各位同学所在的系不同,调 用相应的选课模块。其中学生登录模块的功能是验证登录人员确实是本院的学 生,学生启动本系统后,系统提示输入学生学号码和密码, 验证后进入主控操作 界面。(2)教师信息模块完成教师的登陆,然后根据各位教师所在的系不同,教师 所教的课程不同,调用所选的课程.其中教师登陆模块的功能是验证
8、登录人员确 实是本院的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进 入主控操作界面。(3)课程信息管理包括必修课程和选修课程,学生必需先登陆才能进行对课 程的选课否则不能进入选课系统.(4)系信息管理中学生必需选重所在的系号和系名才能进行选课 ,否则并不 能进行选课.3场景说明场景1: “选修一门课程”一个名为Fred的学生成功选修了一门课程,事件顺序如下:1 . Fred , 一名学生,登入 SRS2 .他查看本学期的课程表,决定要选修的课程。3 . Fred申请课程“对象入门”的选修资格,课程代码是OBJ101.4 .系统检查Fred的学习计划,确保申请的课程符合他的学位目
9、标(假设 学生不允许参加学习计划之外的课程)。5 .系统检查他的成绩单,确保他已经修完了先修课程一一如果存在的话。6 .确认该门课程有空余选修名额。7 .这门课程被添加到Fred的课程列表中。从Fred的角度看来,他希望发生这些事情:在登录进入SRS后,从可选课程列表中选择课程OBJ101然后点击“添加”按钮。场景2: “选修一门课程2"1. Fred , 一名学生,登入SRS2. 他查看本学期的课程表,决定要选修的课程。3. Fred申请课程“对象入门”的选修资格,课程代码是OBJ101.4. 系统检查Fred的学习计划,确保申请的课程符合他的学位目标 (假设学生不允许参加学习计划
10、之外的课程)。5. 系统检查他的成绩单,检查他没有修完了先修课程,他不能选修该课程。场景3: “退选一门课程”1. Fred , 一名学生,登入SRS2. 他查看本学期的课程表,决定要退选的课程。3. Fred退选课程“对象入门”的选修资格,课程代码是OBJ101.4. 从可选课程列表中选择课程 OBJ101然后点击“drop”按钮。12:软件设计文档:1.学生选课系统(SRS UMLH:2.场景1的界面3.场景1的协作图:场景1的协作图4场景1的时序图:Fir td .studentFrwn七 三厂1 二叶HmCtf StuduEJECTS WlifeC.1-eiotinn登录,从触据库悍对
11、象港出列出曾表会亲课表造求座位确认学习计划学与it划已照认产:1鸳查先修课程光悌联程已确以=>确认有生余名题忝加到选修课表显示治思一辆认名领*场景1由时序图5.调和测试在这一节中,我们主要讨论了两个问题,一个是系统的项目文档,另一个是 系统的测试,下面我们分别加以说明。作为一个完整的系统,项目文档是其中不 可缺少的部分也是相当重要的部分。好的文档能够使用户快速了解并准确的使用 系统的各项功能。减少误操作,减少错误产生的可能,这对用户和开发人员都有很多的好处。查看问题描述的执行概要;类图;数据字典;用例文档;重要场景和对应的消息追溯图。由于本身能力的局限性, 所以做编写的代码,即使经过反复
12、检查也难免出错所以在本阶段力求使用有限的 时间找出尽可能多的错误,力求系统尽量正确。四、核心代码操作概念文档我们创建的SRSW以下功能:1,当GUI开始运行,本学期课程表上可用的课程将会被显示.2,在一个学生使用SRS GUI前,他必须登录。登录的动作是填写学号。3,如果学生已经登录,将显示学生的姓名和选修的课程(也就是学生目前的课 程表)。4,在登录后,SRS GUI应该允许学生做以下动作:从课程表中选择一门课程添加到他的课程表中从课程表中删除一门课程保存目前的课表到一个文件从系统注销基于SRS需求规格说明书的类列表 四、核心代码1.Person 类:(1)Person类的字段: publi
13、c abstract class Person private string name;private string ssn;(2)Person类的构造器;public Person( string name, string ssn) this .Name = name;this .Ssn = ssn;(3)Person 的 Tostring()方法:public abstract override string ToString();(4)Person 类的 Display。方法: public virtual void Display() Console.WriteLine( "
14、Person Information:" );Console.WriteLine( "tName:" + this .Name);Console.WriteLine( "tSoc.Security No.:"+ this .Ssn); 2.Student 类:(1)Student 类继承自 Person 类: public class Student : Person (2)Student类的字段:private string major;privatestring degree;private Transcript transcript;pr
15、ivate ArrayList attends;privatestring password;(3)Student类的构造器public Student(string name,string Ssn,string major,string degree):base(name,ssn)this .Major = major;this .Degree = degree;this .Tanscript=new Tanscript(this);attends=new ArrayList();(4)Student 的 Property :public string Major get return ma
16、jor;set major = value ;public string Degree get return degree;set degree = value ;public Transcript Transcript get return transcript;set transcript = value ;public string Password get return password;set password = value ;(5)Display 方法:public override void Display。base.Display();Console.WriteLine( &
17、quot;Student-Specific Information:" );Console.WriteLine( "tMajor: " +this .Major);Console.WriteLine( "tDegree: " +this .Degree);DisplayCourseSchedule();PrintTranscript();(6)AddSection 方法:public void AddSection(Section s) attends.Add(s); DropSection 方法:public void DropSection
18、(Section s) attends.Remove(s);3.Professoer 类:(1)Professor 类的字段: private string title;private string department;private ArrayList teaches;(2)AgreeToTeach()方法:public void AgreeToTeach(Section s) teaches.Add(s);s.Instructor = this ;4.Course 类:(1)Course类的字段:private string courseNo;private string courseN
19、ame;private double credits;private ArrayList offeredAsSection;private ArrayList prerequisites;(2)Course类的方法:public void AddPrerequisite(Course c)prerequisites.Add(c);(3)HasPrerequisites 方法:public bool HasPrerequisites() if ( prerequisites.Count > 0 ) return true ;else return false ; GetPrerequisi
20、tes() 方法:public IEnumerator GetPrerequisites() return prerequisites.GetEnumerator();5.Section 类:(1)Section 类的字段:private int sectionNo;private char dayOfWeek;private string timeOfDay;private string room;private int seatingCapacity;private Course representedCourse;private ScheduleOfClasses offeredIn;p
21、rivate Professor instructor;Enroll()方法:public int Enroll(Student s) Transcript transcript = s.Transcript; if (s.IsEnrolledIn( this ) | s.IsCurrentlyEnrolledInSimilar(this ) |transcript.VerifyCompletion(this .RepresentedCourse)return PREVIOUSLY_ENROLLED;Course c = this .RepresentedCourse;if (c.HasPre
22、requisites() lEnumerator e = c.GetPrerequisites();while ( e.MoveNext() ) Course pre = (Course)e.Current;if (!transcript.VerifyCompletion(pre) return PREREQ_NOT_SATISFIED;if (!ConfirmSeatAvailability() return SECTION_FULL;if ( !enrolledStudents.ContainsKey(s.Ssn) ) enrolledStudents.Add(s.Ssn, s);s.Ad
23、dSection( this );return SUCCESSFULLY_ENROLLED;6. ScheduleOfClasses 类:(1) ScheduleOfClasses 的字段:private string semester;private Hashtable sectionsOffered;(2)AddSection()方法:public void AddSection(Section s) +s.SectionNo;string key = s.RepresentedCourse.CourseNo+sectionsOffered.Add(key, s);s.OfferedIn
24、= this ;7. TranscriptEntry 类:(1)TranscriptEntry的字段:private string grade;private Student student;private Section section;private Transcript transcript; ValidateGrade()方法:public static bool ValidateGrade( string grade) bool outcome = false ;if (grade.Equals( "F") | grade.Equals( "I"
25、; ) outcome = true ;if (grade.StartsWith("A") | grade.StartsWith("B") |grade.StartsWith("C") | grade.StartsWith("D") if (grade.Length = 1) outcome = true ;else if (grade.Length > 2) outcome = false ;else if (grade.EndsWith( "+") | grade.EndsWith( "-" ) outcom
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年重庆市綦江区数学中考冲刺卷
- 聚财宝考试题及答案
- 人工基础智能及逻辑 1
- 铝型材厂设备操作细则
- 广东省广州市重点中学2023-2024学年九年级上学期语文期中试卷(含答案)
- 2026年普法学法知识竞赛题库附答案(考点梳理)
- 计算机应用基础a试题及答案
- 大多数电焊考试题及答案
- 音乐学院术科试题及答案
- 化学结构分类试题及答案
- 罗甸县小升初数学试卷
- 小学数学教师进城选调考试试题及答案
- 消防设施维护保养方案
- 辽宁省五校联考2024-2025学年高一(下)期末数学试卷(图片版含答案)
- 书法隶书教学课件
- 产品量产管理制度
- 工厂紧急物料管理制度
- JG/T 309-2011外墙涂料水蒸气透过率的测定及分级
- 培训物业收费员
- DB11T 944-2022 地面工程防滑施工及验收规程
- 2024年《13464电脑动画》自考复习题库(含答案)
评论
0/150
提交评论