08吉小凯-学生选课系统_第1页
08吉小凯-学生选课系统_第2页
08吉小凯-学生选课系统_第3页
08吉小凯-学生选课系统_第4页
08吉小凯-学生选课系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号:201040430108学生选课系统教学院计算机学院项目名称学生选课系统专业计算机科学与技术(数字媒体)班级10数字媒体姓名吉小凯小组成员陈燕羽,秦盼,吉小凯指导教师涂进2013年12月5日目录TOC\o"1-3"\h\u34521可行性分析 3234721.1问题定义 3286201.2背景描述 3247041.3可行性分析 3193931.3.1技术可行性 3175591.3.2经济可行性 446641.3.3操作可行性 423271.3.4法律可行性 5114262需求分析 6295012.1功能需求 6283272.2性能需求 697032.3可靠性和可用性需求 6322902.4出错处理需求 7195012.5接口需求 7112121服务器接口 715032用户平台接口需求 7190103浏览器接口需求 833122.6约束 8159582.7数据流图 97723总体设计 1068563.1系统模块框架图 1042964详细设计 12273474.1选课信息管理模块伪码 1232644.2课程信息管理模块伪码 13108155编码 14198736测试 2678866.1白盒测试 26113886.2黑盒测试 271可行性分析1.1问题定义大学期间都有选修课程,而由于人数庞大、课程种类繁多,不便于人工管理,课程的调整也比较复杂,并且人工管理容易疏忽遗漏,造成学生学分的损失。而有了选课系统,这些问题就迎刃而解了。1.2背景描述“学生选课系统”是在网络上提供选修课服务,使学生能够在规定的时间内在网上选课或退课,并且系统马上能够返回给该学生选课是否成功的信息,能查询课程信息及该课成绩。管理员负责发布选课信息、选课用户的管理和选课情况的监控等,并可以为教务管理员提供方便的管理功能:添加、删除、修改课程信息和学生记录等。本系统是选修课实现系统的自动化从而提高教务工作的效率。1.3可行性分析1.3.1技术可行性随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便个高校管理。在这样一个社会背景下,基于Windows和SQLServer2005,运用java语言,采用B/S模式开发的学生网上选课系统,将学生、管理员有机地结合在一起,有效地提高管理水平和效率。随着科学技术的不断提高,计算机科学日渐成熟,基于以上的技术在现今比较容易实现。我校自建校以来,各种课程比较齐备,且比较有条理。学分制度也比较完善。教师整体水平较高。这使我们开发这一对我们来说比较复杂的系统成为可能。虽然有如此好的客观条件,但始终没有一套完善简单易用的管理系统。这套学生选课管理系统将在今后的应用中再经过不断的修正与改进,将会使我校选课管理更加完善、尽美。1.3.2经济可行性系统界面简洁,操作方便,系统的配置要求不高,实现可行,因此经济可行。该系统可以容易实现学生与学校之间的联系,在Internet上实现完成部分教务工作,提高办事的效率和准确度。学生选课系统给老师提供了便捷,使老师可以把精力放在教学和组织教学等更重要更具创造性的事情上,这就显著地提高了他们的工作效率。1.3.3操作可行性该系统操作方便,简单。这套学生选课管理系统不仅能够让老师更清晰的掌握自己学生的信息,同时也让学生自己更容易的知道如何准确的选课,如何计算学分及尽早得知自己的考试成绩。这就大大的为老师提供了便利。比如,在每学期期末考试后,大多数学生都已回到家中,如果为了获取考试成绩又不得不再返回学校的话,既费时又费力。该系统可以提供网上查分,同学们在家中只需要上网就可以在第一时间知道自己的成绩。还有,学生们也可通过该系统进行选课来凑够学分完成学业。在系统中会显示出个门课程的性质(如必修、限选、任选),其所占学分及任课老师的资料,其应用性之强得到充分发挥。1.3.4法律可行性本产品是采用面向对象技术进行开发,是一个相对独立的技术产品,通过正当法律程序开发,不会侵犯他人、集体和国家的利益,不会违犯国家政策和法律2需求分析2.1功能需求学生选课系统在系统管理员与学生之间建立起联系。学生系统中的管理员要从老师那里收集并登记课程信息,然后对课程号、课程名称、任课老师和课程的时间安排信息进行管理并发布在选课系统中,通知学生进行选课。学生在收到选课公告之后,在规定的时间内,凭学号或姓名登录选课系统,选择所需课程并提交选课信息。2.2性能需求学生选课系统是针对学校教务处给学生与教师的一个平台,每学期至少有两次使用频率非常高,为防止系统崩溃或其他方面恶意的破坏,要求有较高的安全性能。系统在短时间内(5s)能响应要求;要保证系统在选课期间每天24小时都能不间断使用。在选课期间前后都要对系统进行一次检查与维护,保证系统能稳定、安全的操作。2.3可靠性和可用性需求可靠性需求:学生选课系统在一学期内不能出现2次以上故障。可用性需求:在任何时候主机和备份机上的学生选课系统应该至少有一个是可用的,而且在一学期内在任何一台计算机上该系统不可用的时间不能超过总时间的5%,在选课期间内系统不可用的时间不能超过总时间的2%。2.4出错处理需求系统进入人数过多时限制人数。出现死机或无响应时,保存当前已有信息。输入账号错误时进行提示:无此账号。账号存在,密码输入错误超过5次时,提示学生联系管理员修改密码。系统出现崩溃的话,保存已选课的学生信息,关闭系统并推迟选课时间,在一天内解决系统问题,开放后提示未选课的学生继续选课。2.5接口需求1服务器接口对服务器的要求,至少能够容纳1000人同时访问。地本系统,使用功能时,在网速好的情况下,系统响应时间为10秒以内。2用户平台接口需求(1)操作系统:MicrosoftWindows2k/XP或更高版本;(2)数据库:SQLServer20003浏览器接口需求使用IE8及以上版本的浏览器使用Firefox浏览器2.6约束系统中所有账户能够供用户随时使用,能够随时使用相应功能。学生登录学生选课系统账号为学号,密码为姓名拼音。同一时刻,所有账户不能在多个地方登陆。学生选课数目不能超过学校限制。不能选已经超过规定人数的的课程,不能选已经开课的课程。没有达到规定人数的课程不能开课。该系统必须确保所有数据安全,以免损失。所有用户都要登陆才能访问,每个用户只能使用所属角色的权限,必要时限定访问次数。界面友好,操作简单。软件系统开放性好,结构灵活,可扩充,方便维护。安全可靠。2.7数据流图学生选课系统顶层数据流图P学生选课系统P学生选课系统学生管理员课程信息选课表学生管理员课程表选课信息学生选课系统详细数据流图D1课程信息D1课程信息 课程信息P1.3公布课表P1.2更新课程P1.3公布课表P1.2更新课程P1.1收集课程管理员F1.1课程信息 课程信息 排课表课 选程 课表 表P1.2更新课表P2.1P1.2更新课表P2.1选择课程学生选课信息 选课信息D2课程表D2选课信息D2课程表D2选课信息学生选课系统详细数据流图3总体设计3.1系统模块框架图学生选课系统学生选课系统选课信息管理课程信息管理选课信息管理课程信息管理系统模块框架图课程信息管理课程信息管理登录界面登录界面课程信息选课信息用户信息确认课程信息选课信息用户信息确认上课时间学号课程号课程号课程安排课程名称任课老师密码账号上课时间学号课程号课程号课程安排课程名称任课老师密码账号课程信息管理模块框架图选课信息管理选课信息管理登录界面登录界面选择课程用户信息确认选择课程用户信息确认学号学号课程号课程名称任课老师上课时间课程号课程名称任课老师上课时间姓名选课信息管理模块框架图4详细设计4.1选课信息管理模块伪码选课信息管理seq打开登录界面输入信息:用户名,密码读入字符串判断信息登陆界面iteruntil文件结束用户信息确认seq学号姓名用户信息确认end选择课程seq课程号课程名称任课老师上课时间选择课程end选课信息管理end4.2课程信息管理模块伪码课程信息管理seq打开登录界面输入信息:用户名,密码判断信息登陆界面iteruntil文件结束用户信息确认seq账号密码用户信息确认end课程信息seq课程号课程名称任课老师课程安排课程信息end选课信息seq课程号学号上课时间选课信息end课程信息管理end5编码模块源代码(1)登录模块importjava.awt.*;importjava.awt.event.*;importjavax.swing.JOptionPane;importjava.sql.*;publicclassLoginextendsFrameimplementsActionListener{Framef,f1;Buttonb1;Buttonb2; Buttonb3;TextFieldt1;TextFieldt2;Labell1;Labell2;Connectioncon;Statementsql;//声明Statement对象ResultSetrs;publicLogin(){ f=newFrame("学生选课系统"); Toolkittool=f.getToolkit(); Dimensiondim=tool.getScreenSize(); f.setBounds(0,0,dim.width,dim.height);Panelp=newPanel();f.add(p);l1=newLabel("用户名");l2=newLabel("密码");t1=newTextField(20);t2=newTextField(20);b1=newButton("登陆");b2=newButton("取消"); b3=newButton("注册");p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(b1);p.add(b2); p.add(b3);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setVisible(true);t2.setEchoChar('*');f.addWindowListener(newWindowAdapter() { publicvoidwindowClosing(WindowEvente) { System.exit(0); } } );}publicvoidactionPerformed(ActionEvente){if(e.getSource()==b1){if(t1.getText().equals("")||t2.getText().equals("")){JOptionPane.showMessageDialog(null,"输入不能为空!");}else{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptiona){System.out.println(""+a);}try{con=DriverManager.getConnection("jdbc:odbc:sun","","");sql=con.createStatement();rs=sql.executeQuery("Select*FROMlogin");//查询数据库booleancheck=false;while(rs.next()){StringUserName=rs.getString(1);//获得数据库第二列StringPassword=rs.getString(2);//获得数据库第三列if(t1.getText().equals(UserName)&&t2.getText().equals(Password)){//判断语句 check=true;JOptionPane.showMessageDialog(null,"登陆成功!"); f.dispose(); newWindowBox("选课窗口");t1.setText("");t2.setText("");break;}}if(check==false){JOptionPane.showMessageDialog(null,"登陆失败,请重新输入!");}con.close();}catch(SQLExceptionel){}}}if(e.getSource()==b2){t1.setText("");t2.setText("");} if(e.getSource()==b3){ f.dispose(); newRegist("学生选课系统注册界面"); }}publicvoidwindowClosing(WindowEvente){System.exit(0);}publicstaticvoidmain(String[]args){newLogin();}}(2)选课模块importjava.awt.*;importjava.awt.event.*;importjava.sql.*;classWindowBoxextendsFrameimplementsActionListener,ItemListener{ Checkboxbox1,box2,box3,box4,box5,box6;Labell1; Labell2; TextFieldt1; Labell3; TextFieldt2; TextAreat=newTextArea(); Buttonb1,b2; WindowBox(Strings) { super(s); setLayout(newFlowLayout()); l2=newLabel("学号");t1=newTextField(10); l3=newLabel("姓名"); t2=newTextField(10); b1=newButton("确定"); b2=newButton("重置"); l1=newLabel("所选课程"); box1=newCheckbox("离散数学",false); box2=newCheckbox("汇编语言",false); box3=newCheckbox("java语言设计",false); box4=newCheckbox("软件工程",false); box5=newCheckbox("操作系统",false); box6=newCheckbox("马克思政治学",false); box1.addItemListener(this); box2.addItemListener(this); box3.addItemListener(this); box4.addItemListener(this); box5.addItemListener(this); box6.addItemListener(this); add(l2); add(t1); add(l3); add(t2); add(b1); add(b2); add(l1); add(box1); add(box2); add(box3); add(box4); add(box5); add(box6); add(t); b1.addActionListener(this); b2.addActionListener(this); setSize(500,500); setVisible(true); addWindowListener(newWindowAdapter() { publicvoidwindowClosing(WindowEvente) {System.exit(0);} } ); validate();} publicvoiditemStateChanged(ItemEvente) { Checkboxbox=(Checkbox)e.getSource(); if(box.getState()) { intn=t.getCaretPosition(); t.insert(box.getLabel(),n);} else {t.setText("");} } publicvoidactionPerformed(ActionEventa) { if(a.getSource()==b1) { Connectioncon; Statementsql; ResultSetrs; Stringnumber1,name1,lesson1,recode,insertStr; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptiong){ System.out.println(""+g); } try{ con=DriverManager.getConnection("jdbc:odbc:sun","",""); sql=con.createStatement(); number1=t1.getText(); name1=t2.getText(); lesson1=t.getText(); recode="("+"'"+number1+"'"+","+"'"+name1+"'"+","+"'"+lesson1+"'"+")"; insertStr="INSERTINTOkechengbiaovalues"+recode; sql.execu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论