(完整word版)学生选课系统实验报告
选课系统实验报告
选课系统实验报告选课系统实验报告一、引言选课系统是现代教育管理中不可或缺的一部分,它为学生提供了便捷的选课方式,同时也为学校提供了高效的课程管理工具。
本实验旨在探讨选课系统的设计与实现,以及其在教育管理中的作用和影响。
二、选课系统的设计与实现1. 系统需求分析在设计选课系统之前,我们首先进行了系统需求分析。
通过与学生、教师和管理员的访谈,我们了解到他们对选课系统的期望和需求。
学生希望能够方便地浏览和选择课程,教师希望能够快速发布和管理课程信息,管理员则需要一个高效的管理平台。
2. 数据库设计选课系统的核心是数据库设计。
我们根据需求分析结果,设计了学生、课程和选课记录等主要数据表。
通过合理的关系模型设计和索引优化,提高了系统的数据查询和操作效率。
3. 界面设计为了提供良好的用户体验,我们注重选课系统的界面设计。
通过采用直观的图形界面和友好的交互方式,使学生、教师和管理员能够轻松地使用系统,并快速完成各项操作。
4. 功能实现选课系统的功能主要包括课程浏览、选课、退课、成绩查询等。
我们通过编写相应的程序代码,实现了这些功能,并保证了系统的安全性和稳定性。
三、选课系统在教育管理中的作用和影响1. 提高选课效率传统的选课方式需要学生亲自到选课办公室进行登记,耗费时间和精力。
而选课系统的出现,使得学生可以在任何时间和地点进行选课,大大提高了选课的效率。
2. 优化课程安排选课系统可以根据学生的选课情况和课程容量,自动进行课程安排。
这样一来,可以避免课程冲突和资源浪费,优化学校的课程安排。
3. 提升教务管理水平选课系统可以实时记录学生的选课情况和成绩,为教务管理提供了重要的数据支持。
通过对选课数据的分析和挖掘,学校可以更好地了解学生的兴趣和需求,进而优化教学计划和教学资源配置。
4. 促进教学改革选课系统的使用,使得学校能够更好地了解学生对不同课程的需求和反馈。
这为教学改革提供了宝贵的参考意见,促进了教学质量的提升。
选课系统实验报告
信息系统分析与设计实验报告2012年4月实验一信息系统分析与设计开始工具一、实验目的熟悉信息系统分析与设计开始工具visio2007,Rational Rose 和Power Designer。
二、实验内容1、信息系统的需求分析2、对需要解决的问题、对象及约束条件进行分析3、安装好实验所需要的开发。
总共有三个:visio2007,Rational Rose和Power Designer。
4、熟悉这些开发工具,了解它们的具体操作。
然后用这些工具绘出一些简单的模型。
如用Rose绘制销售系统的一个用例图。
订货现金支付信用卡支付根据自己的选题,对系统进行分析,做出新的信息系统规划,对要开发的新信息系统的服务范围及要解决的问题进行分析和汇总。
三、实验总结通过这次实验,熟悉了系统分析与开发熟悉的工具,了解通过开发工具来辅助自己进行系统的分析和设计,而这可以让我分析和设计起来更加的方便和快捷。
但是对于这些工具,仅仅通过这短短的一节课并不能完全掌握的,只有通过以后的使用来熟悉它们。
实验二需求分析与建模一.实验目的1.通过对案例企业的战略分析,了解企业信息化现状,做出新的信息系统规划,对要开发的新信息系统的服务范围及要解决的问题进行分析和汇总。
2.在此基础上,对新信息系统需求建立用例模型。
二.实验内容:(一)信息系统需求分析1.问题陈述在二十一世纪的新时代,随着计算机技术的发展及计算机的日益普及,计算机技术在各行各业中都得到广泛的应用。
网络选课系统是高等院校安排教学必不可少的工具。
本文介绍基于网络环境下的本校学生网上选课系统的开发,对系统的结构、功能和关键技术进行了具体论述,并给出了在网络环境下进行选课。
本系统包括系统模块、学生模块、教师模块等其他功能模块。
系统的实际运用模式,能够适用于高等学校日常的选课管理,为师生提供诸多的便利。
同时具有良好的开放性,实用性强,保密性好,稳定性高,支持多用户操作。
2.系统目标本系统目标是实现选课系统所需的各种基本功能,包括学生选课、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
学生选课系统实验报告
一、实验目的1. 熟悉数据库的基本概念和操作方法。
2. 掌握SQL语言的基本语法和应用。
3. 了解并掌握Java编程语言在数据库应用中的基本操作。
4. 提高学生选课系统的设计与实现能力。
二、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 开发工具:Eclipse IDE4. 编程语言:Java三、实验内容1. 数据库设计2. 系统模块设计3. 系统实现4. 系统测试四、实验步骤1. 数据库设计(1)创建数据库在MySQL中创建名为“student_course”的数据库。
(2)创建数据表在“student_course”数据库中创建以下数据表:- 学生表(students):包含学生ID、姓名、性别、出生日期、班级等字段。
- 课程表(courses):包含课程ID、课程名称、学分、上课时间、上课地点等字段。
- 选课表(enrollments):包含学生ID、课程ID、选课时间等字段。
(3)建立数据表之间的关系- 学生表和选课表通过学生ID建立一对一的关系。
- 课程表和选课表通过课程ID建立一对一的关系。
2. 系统模块设计(1)登录模块- 用户输入用户名和密码,系统验证用户身份。
- 验证成功后,进入系统主界面。
(2)选课模块- 查询课程信息:学生可以查看所有课程信息,包括课程名称、学分、上课时间、上课地点等。
- 选课:学生可以选择感兴趣的课程,并提交选课请求。
- 查看选课结果:学生可以查看自己的选课结果,包括已选课程、未选课程等信息。
(3)退课模块- 查看选课结果:学生可以查看自己的选课结果,包括已选课程、未选课程等信息。
- 退课:学生可以申请退课,并提交退课请求。
(4)管理员模块- 添加课程:管理员可以添加新的课程信息。
- 删除课程:管理员可以删除课程信息。
- 修改课程:管理员可以修改课程信息。
3. 系统实现(1)使用Java编程语言实现各个模块的功能。
(2)使用JDBC连接MySQL数据库,实现数据操作。
学生选课管理系统设计报告
《学生选课系统》课程设计学院信息工程专业网络工程班级 130461 课题名称学生选课管理系统设计组长学号姓名成绩组员学号姓名成绩组员学号姓名成绩开课时间 2014 至 2015 学年第一学期地点 D509一、课程设计的目的和要求本次学生选课管理系统的课程设计,明白整个系统架构,使得自己所学的Microsoft Visual C++ 6.0和Microsoft Access知识的相互结合,加深对数据库的认识,同时又复习了Microsoft Visual C++ 6.0的编写。
为以后能够合理的、精确地、独立的完成数据库提供了前提。
数据库运用到数据库建立,建立表以及表与表的连接等等,前台用Microsoft Visual 6.0中MFC工程建立需要的界面与编写界面之间连接代码等。
我们想通过本实验解决后台数据库与前台界面连接问题,这也是主要问题所在,只有正确连接才能保证前台用户操作正确的数据,达到数据库中数据资源的共享目的。
本次课程设计开发一套选课系统,由学生选课系统、教师系统和管理员系统三部分组成。
管理员可以通过管理员系统进行管理课程,查看课程选修情况,查看教师授课情况,修改或删除课程或者学生的信息。
教师可以通过教师系统进行查看自己教授的的课程,可以进行对学生的评分,以及对自己密码的修改。
学生可以通过学生选课系统进行查看备选课程及该课程的信息,选择希望选修的课程,以及对自己密码的修改。
二、设计2.1本次课程设计建立学生选课管理系统,通过用户名、密码分别进入3个类别系统,分别是教理系统,教师管理系统,学生选课系统,图2.1 学生管理系统基本图通过管理员,进入系统界面可以执行以下操作:通过学生,进入系统界面可以执行以下操作:图2.4 教师管理系统数据需求(1)学生表信息:学号,姓名,性别,院系,班级,密码,年龄。
(2)课程表信息:课程编号,课程名称,学分,学时,开课学期。
(3)选表信息:学号,课程编号,课程名称,姓名,学分,成绩。
学生选课管理系统实习报告
学生选课管理系统实习报告一、实习背景及目的随着教育信息化进程的不断推进,高校选课管理系统已经成为学生、教师和教务管理人员日常教学的重要组成部分。
为了更好地了解选课管理系统的开发和应用,提高自己在软件开发和实践能力,我参加了学校组织的选课管理系统实习项目。
本次实习的主要目的是通过实际操作,掌握选课管理系统的开发流程,熟悉系统的功能模块,提高自己运用计算机技术解决实际问题的能力。
二、实习内容与过程在实习过程中,我参与了选课管理系统的需求分析、系统设计、编码实现和测试等环节。
1. 需求分析:通过与教务处和任课教师的沟通,了解选课管理系统的功能需求和性能要求。
根据教务处的实际需求,确定系统需要实现以下功能:学生选课、教师排课、课程管理、学生信息管理、教师信息管理、选课统计等。
2. 系统设计:根据需求分析,设计选课管理系统的总体架构和各个功能模块。
确定系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java、Python等语言,数据库采用MySQL。
同时,为了保证系统的安全性和稳定性,需要在系统设计中考虑用户权限管理、数据验证和异常处理等方面的问题。
3. 编码实现:根据系统设计,编写各个功能模块的代码。
在编码过程中,遵循面向对象的设计原则,模块化编程,确保代码的可读性和可维护性。
同时,注重代码的优化和调试,提高系统的运行效率。
4. 系统测试:在系统开发完成后,对系统进行功能测试、性能测试和兼容性测试。
通过编写测试用例,模拟实际操作场景,验证系统的功能是否符合需求。
同时,对系统的响应速度、并发处理能力等进行测试,确保系统在实际应用中能够稳定运行。
三、实习收获与反思通过本次实习,我对选课管理系统的开发过程有了更深入的了解,收获如下:1. 掌握了需求分析的方法和技巧,学会了如何从实际问题中提取关键信息,明确系统的功能需求和性能要求。
2. 熟悉了软件开发的总体架构和模块设计,学会了如何将复杂问题分解为若干个简单的子问题,并采用面向对象的方法进行解决。
选课系统实习报告
一、实习目的随着互联网技术的不断发展,选课系统在各大高校中得到了广泛应用。
为了更好地了解选课系统的开发过程和运行原理,提高自己的实践能力,我选择了选课系统作为实习项目。
本次实习旨在通过实际操作,掌握选课系统的设计、开发和测试过程,并了解其在实际应用中的优缺点。
二、实习内容1. 系统需求分析在实习过程中,我首先对选课系统的需求进行了分析。
根据高校学生的选课需求,选课系统应具备以下功能:(1)课程查询:学生可查询所有开课信息,包括课程名称、授课教师、上课时间、学分等。
(2)选课:学生可根据个人兴趣和时间安排,自主选择课程。
(3)退选:学生可随时退选已选课程。
(4)选课结果查询:学生可查询自己的选课结果,包括已选课程、待选课程、未选课程等。
(5)选课提醒:系统可为学生提供选课提醒,确保学生按时完成选课。
2. 系统设计在需求分析的基础上,我进行了选课系统的设计。
系统采用B/S架构,分为前端和后端两部分。
(1)前端:采用HTML、CSS、JavaScript等技术实现,负责展示课程信息、处理用户交互等。
(2)后端:采用Java语言,使用Spring Boot框架进行开发,负责处理业务逻辑、数据存储等。
3. 系统实现在系统设计完成后,我开始进行选课系统的实现。
具体步骤如下:(1)搭建开发环境:安装Java、Maven、MySQL等开发工具。
(2)创建项目:使用Spring Boot创建项目,配置数据库连接、依赖等。
(3)编写代码:根据需求分析,编写前端页面和后端代码。
(4)测试与调试:对系统进行功能测试、性能测试等,确保系统稳定运行。
4. 系统部署完成系统开发后,我将系统部署到服务器上,进行实际应用。
在部署过程中,我遇到了以下问题:(1)数据库连接问题:在部署过程中,发现数据库连接出现异常,经过排查,发现是数据库驱动未配置正确。
(2)系统性能问题:在用户量较大时,系统响应速度较慢,经过优化代码和数据库查询,提高了系统性能。
大学生选课管理系统实验报告
数据库技专题训练I(2015年春)数据库专题训练------数据库应用系统开发实验报告系别:计算机科学与技术班级:计12-1班姓名:刘杰学号:12101020128成绩:评语:指导教师签字:日期:大学生选课管理系统1、需求分析1.需求说明☐教务处的管理人员录入全校的课程基本信息和本学期的课程授课教师、地点、时间;☐在学生入学的时候,学院的管理人员录入学生基本信息;☐学生每学期自己上网登录系统选课,选课成功后信息存入数据库中,学生自己可以查询选课的情况;☐学生选课不成功的情况有:☐所选课程的先修课还没有记录,系统提示“缺先修课,选课失败”;☐本学期所选课程的上课时间有冲突,系统提示“上课时间有冲突,选课失败”;☐学生一学期所选课程的学分最多不能超18学分☐学生可以注销所选课程。
☐学院管理员可以查询学生前几学期的选课信息、可以查询课程基本信息、学生基本信息;☐当学生退学时,由教务处的管理人注销学生基本信息;☐如果开课之后,学生要求退课,则由教务处的工作人员为学生注销所选课程;☐允许学生休学,教务处为休学的退学做学籍冻结处理;复学后为其办理解冻处理;☐每学期教务处为学生办理学期注册手续;没有办理学期注册的学生不能选课;☐学期末,学院工作人员负责录入学生的成绩。
2.数据流程图a.顶层数据流图b.分解数据流图3.数据字典角色信息=角色编号+角色名称角色编号=“1” (4)角色名称=2(汉字)6用户信息=用户编号+角色编号+用姓名+用户密码用户编号=2(字母或数字)18角色编号=“1” (4)用户姓名=2(汉字)6用户密码=2(字母或数字)18学生基本信息=学号+姓名+性别+民族+出生年月+学院+系+专业+入学时间+政治面貌+住址+备注学号=(数字)11姓名=2(汉字)6性别=“男”/“女”民族=2(汉字)6出生年月=年+月系=2(字母或数字)11专业=2(字母或数字)11入学时间=年+月+日政治面貌=“党员”/“预备党员”/“团员”/“群众”住址=2(汉字)18备注=0(汉字或字母)100教师基本信息=工号+姓名+密码+性别+年龄+民族+学院+住址+备注工号=2(字母或数字)11姓名=2(汉字)6密码=2(字母或数字)18性别=“男”/“女”年龄=“20“ (60)民族=2(汉字)6学院=2(汉字)12住址=2(汉字)18备注=0(汉字或字母)100课程信息=课程号+课程名称+先修课+学分+学时+课程类别+开课学院课程号=2(字母或数字)11课程名称=2(汉字)15先修课=2(字母或数字)11学分=“1“ (16)学时=“16“ (128)课程类别=“专业选修“/”专业必修“/”公共选修“/”公共必修“开课学院=2(字母或数字)11课程任务=任务编号+课程编号+课程名称+任课教师+课堂容量+选课人数+上课时间段+上课日期+上课地点+合班标志+开课季别+开始周+结束周+课程介绍任务编号=2(字母或数字)11课程编号=2(字母或数字)11课程名称=2(汉字)15任课教师=2(字母或数字)11课堂容量=“0“ (240)选课人数=“0“ (9999)上课时间段=“1-2节“…”11-12节“上课日期=“周一“…”周日“上课地点=2(汉字)15合班标志=2(汉字)15开课季别=“春季学期“/”秋季学期“开始周=“1“ (20)结束周=“8“ (28)课程介绍=0(汉字)100学生选课信息表=学号+课程号+成绩+选课年份+选课季别+中签标志学号=2(字母或数字)11成绩=“0“ (100)选课年份=年选课季别=“春季学期“/”秋季学期“中签标志=“0“/“1“留言=留言编号+发送者+接收者+日期+留言内容留言编号=“0“ (99999999)发送者=2(字母或数字)11接收者=2(字母或数字)11日期=年+月+日留言内容=2(字母或汉字)200文件信息=文件编号+课程编号+文件名称+文件路径文件编号=“0“ (99999)课程编号=2(字母或数字)11文件名称=2(字母,数字或汉字)20文件路径=2(字母或数字)100学院信息=学院编号+学院名称学院编号=2(字母或数字)11学院名称=5(汉字)20专业信息=专业编号+专业名称+所属学院专业编号=2(字母或数字)11专业名称=5(汉字)20所属学院=2(字母或数字)11班级信息=班级编号+班级名称+所属专业班级编号=2(字母或数字)11班级名称=5(汉字)20所属专业=2(字母或数字)114.系统E-R图2、系统设计1.系统模块结构图a.顶层模块结构图b.详细模块结构图2.系统用例图a.学生用例图b.教师用例图c.管理员用例图Query information(from Query for a score,course,personal information)Query information(from Query for a score,course,personal information)(from Pigeonhole)Pigeonhole3.系统数据库详细设计b.表创建create table t_role(roleid int identity(1,1)not null primary key, rolename nvarchar(50)not null unique)create table sdept_inf(sdeptno nvarchar(20)not null primary key,sdeptname nvarchar(50)not null)create table major_inf(majorno nvarchar(20)not null primary key, majorname nvarchar(50)not null,sdeptno nvarchar(20)not nullforeign key(sdeptno)references sdept_inf(sdeptno) )create table user_inf(userid nvarchar(50)not null primary key,roleid int not null,pwd nvarchar(50)not null,foreign key(roleid)references t_role(roleid))create table teacher_inf(tno nvarchar(50)not null primary key,tname nvarchar(50)not null,tpwd nvarchar(50)not null,tsex nvarchar(20)not null,tage int not null,trace nvarchar(20)not null,sdeptno nvarchar(20)not null,taddress nvarchar(60),another nvarchar(100)foreign key(sdeptno)references sdept_inf(sdeptno) )/*学生基本信息*/create table stu_inf(sno nvarchar(50)not null primary key,sname nvarchar(50)not null,spwd nvarchar(50)not null,ssex nvarchar(20)not null,sage int not null,srace nvarchar(20)not null,sdeptno nvarchar(20)not null,class nvarchar(50)not null,smajor nvarchar(50)not null,entrancetime nvarchar(50)not null, graduattime nvarchar(50)not null, politicalstatus nvarchar(20)not null,saddress nvarchar(60),another nvarchar(100)foreign key(sdeptno)references sdept_inf(sdeptno) )/*课程基本信息*/create table course_inf(cno nvarchar(50)not null primary key,pro_cno nvarchar(50),cname nvarchar(50)not null,credit int not null,ctime int not null,course_kind nvarchar(50)not null,sdept nvarchar(50)not null,)/*学院开课信息*/create table course_task(taskno nvarchar(50)not null primary key, cno nvarchar(50)not null,cname nvarchar(50)not null,cteachar nvarchar(50)not null,capacity int not null,classtime nvarchar(50)not null, weekdays nvarchar(30)not null, location nvarchar(50)not null, classflag nvarchar(50)not null,season nvarchar(50)not null, startweek int not null,endweek int null,introduction nvarchar(200),)/*选课记录表*/create table sel_course_record(sno nvarchar(50)not null,cno nvarchar(50)not null,grade int,year int not null,flag int not null,/*中签标志*/season nvarchar(50)not null,primary key(sno,cno))3、系统实现1.系统主要功能界面设计a)登陆界面b)学生操作界面c)教师操作界面d)学院管理员操作界面e)系统管理员操作界面2.系统主要功能界面代码实现a)登陆界面namespace WindowsFormsApplication2{public partial class login : Form{public login(){InitializeComponent();}private void button1_Click(object sender, EventArgs e) //登陆按钮{string userid = textBox1.Text;//用户名string pwd = textBox2.Text; //密码string rolename = comboBox1.Text;string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;try{con.Open();//获取角色编号// Class_role role = new Class_role();SqlCommand cm = new SqlCommand("select roleid from t_role whererolename=@rolename ", con);cm.Parameters.Add(new SqlParameter("@rolename", rolename));Form_main.roleid= (int)cm.ExecuteScalar();con.Close();con.Open();string str_sql ="select count(userid) from user_inf where userid=@userid and pwd=@pwd and roleid=(select roleid from t_role where rolename=@rolename)";//执行的命令SqlSqlCommand cmd = new SqlCommand(str_sql, con);cmd.Parameters.Add(new SqlParameter("@userid", userid));cmd.Parameters.Add(new SqlParameter("@pwd", pwd));cmd.Parameters.Add(new SqlParameter("@rolename", rolename));int flag = (int)cmd.ExecuteScalar();if (flag > 0){Form_erid = textBox1.Text;Form_main f = new Form_main();f.Show();this.Hide();}else{MessageBox.Show("用户名或密码输入不正确!");}}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{con.Close();}}private void login_Load(object sender, EventArgs e){string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();mandText = "select rolename from t_role";cmd.Connection = con;SqlDataReader dr = null;try{con.Open();dr = cmd.ExecuteReader();int count = 0;while (dr.Read()){boBox1.Items.Add(new ListItem(dr["rolename"].ToString(), count));count++;}}catch (Exception ex){MessageBox.Show("数据读取出错!" + ex.ToString());}finally{con.Close();}}}}b)选课操作private void button1_Click(object sender, EventArgs e){int flag = 0;//int gradecount = 0;string sno = Form_erid;string cno = Student_Select_Course.courseno;string cname = boBox3.Text;string majorname = this.textBox1.Text;string weekdays = "";string classtime = "";string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593";SqlConnection con1 = new SqlConnection();con1.ConnectionString = conn_string;SqlConnection con2 = new SqlConnection();con2.ConnectionString = conn_string;SqlDataReader dr1 = null;//冲突判断string sql_str1 = "select * from course_task where cno='" + cno + "' ";try{con1.Open();con2.Open();SqlCommand cmd1 = new SqlCommand(sql_str1, con1);dr1 = cmd1.ExecuteReader();while (dr1.Read()){weekdays = dr1["weekdays"].ToString();classtime = dr1["classtime"].ToString();string sql_str2 = "select count(*) from sel_course_record,course_task where weekdays='" + weekdays + "' and classtime='" + classtime + "' and sno='" + sno + "' andcourse_o=sel_course_o";SqlCommand cmd2 = new SqlCommand(sql_str2, con2);flag = (int)cmd2.ExecuteScalar();if (flag > 0){MessageBox.Show("存在选课冲突,请重新选课!");break;}}con1.Close();con2.Close();if (flag == 0)//学分限制{int year = System.DateTime.Today.Year;int month=System.DateTime.Today.Month;string season_now = "秋季学期";if (2<=month && month <8)season_now = "春季学期";SqlConnection con3 = new SqlConnection();con3.ConnectionString = conn_string;con3.Open();SqlCommand cmd3 = new SqlCommand("select sum(credit) sum fromsel_course_record,course_inf where year='"+year+"' and season='"+season_now+"' andcourse_o=sel_course_o and sno='"+Form_erid+"'", con3);dr1=cmd3.ExecuteReader();int coun=0;string strc="";while (dr1.Read()){strc= dr1["sum"].ToString();}if (strc == "")coun = 0;elsecoun = Convert.ToInt32(strc);if (coun<=40){//先修课判断con3.Close();int count = 0;con3.Open();mandText = "select count(*) from sel_course_record wheresno='"+sno+"' and cno='"+Student_Select_Course.pro_cno+"'and not(year='"+year+"' andseason='"+season_now+"')";count = (int)cmd3.ExecuteScalar();con3.Close();if (Student_Select_Course.pro_cno.Equals("")==false && count==0){MessageBox.Show("你还未选修该课程的先修课,不能申请该课程!");}else{//将选课信息加入选课记录表,同时添加课表con3.Open();mandText = "insert into sel_course_record values('" + sno + "','"+ cno + "','" + "" + "','" + year + "','" + "0" + "','" + season_now + "')";cmd3.ExecuteNonQuery();con3.Close();//更新课程任务表sel_person += 1;con3.Open();mandText = "update course_task set sel_person='" +sel_person + "' where cno='" + cno + "'";cmd3.ExecuteNonQuery();con3.Close();MessageBox.Show("申请成功!");}}elseMessageBox.Show("你所选课程学分总数已经超过40分,不能继续选课!");}}catch (Exception ex){MessageBox.Show("数据读取失败!" + ex.Message);}}c)抽签操作private void button1_Click(object sender, EventArgs e){this.listView1.Items.Clear();string cname="";int count = 0;int sel_count = 0;string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlDataReader dr = null;SqlCommand cmd = new SqlCommand();mandText = "select cname,sel_person,capacity from course_task wherecno='"+boBox1.Text+"'";cmd.Connection = con;try{con.Open();dr = cmd.ExecuteReader();while (dr.Read()){cname = dr[0].ToString();sel_count = Convert.ToInt16(dr[1].ToString());count = Convert.ToInt16(dr[2].ToString());}con.Close();con.Open();mandText = "select sno,year,season from sel_course_record where cno='" + boBox1.Text + "'";dr = cmd.ExecuteReader();while (dr.Read()){this.listView1.Items.Add(new ListViewItem(new string[]{ (this.listView1.Items.Count + 1).ToString(), dr[0].ToString(), cname, dr[1].ToString(), dr[2].ToString(), "" }));}con.Close();if (sel_count <= count){for (int i = 0; i < sel_count; i++)this.listView1.Items[i].SubItems[5].Text = "中签";}else{int value;int flag = 0;Random r = new Random();int num = 0;while (num < count){value = r.Next(0, sel_count);for (int j = 0; j < this.listView1.Items.Count; j++){if (Convert.ToInt16(this.listView1.Items[j].SubItems[0].Text) - 1 == value && this.listView1.Items[j].SubItems[5].Text.Equals("中签")){flag = 1;break;}}if (flag == 0){this.listView1.Items[value].SubItems[5].Text = "中签";num++;}flag = 0;}}for (int i = 0; i < this.listView1.Items.Count; i++){if (this.listView1.Items[i].SubItems[5].Text.Equals("中签")){con.Open();mandText = "update sel_course_record set flag='" + 1 + "' where cno='" + boBox1.Text + "' and sno='" + this.listView1.Items[i].SubItems[1].Text + "'";cmd.ExecuteNonQuery();con.Close();}}this.listView1.Items.Clear();mandText = "select sno ,year,season from sel_course_record where cno='" + boBox1.Text + "' and flag='" + 1 + "'";con.Open();dr = cmd.ExecuteReader();while (dr.Read()){this.listView1.Items.Add(new ListViewItem(new string[]{ (this.listView1.Items.Count + 1).ToString(), dr[0].ToString(), cname, dr[1].ToString(), dr[2].ToString(), "中签" }));}con.Close();}catch(Exception ex){MessageBox.Show(ex.ToString());}finally{con.Close();boBox1.Items.Remove(boBox1.SelectedItem);}}d)教师上传课件private void button3_Click(object sender, EventArgs e){//string a = DateTime.Now.ToString("yyyyMMddHHmmss");string FileName = openFileDialog1.SafeFileName;string filename = openFileDialog1.FileName;string desName = Application.StartupPath + "\\upload\\";string b = desName + FileName;File.Copy(filename, b, true);string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();cmd.Connection = con;mandText = "insert into file_up values('" + boBox4.Text + "','" + FileName + "','"+desName+"')";con.Open();cmd.ExecuteNonQuery();con.Close();MessageBox.Show("文件上传成功!");this.dataGridView1.Rows.Clear();load_file();}e)系统管理员统计选课信息private void System_manage_Load(object sender, EventArgs e){string conn_string = "Data Source=MR_LIU\\LIUJIE;Initial Catalog=course_sel;Integrated Security=True; User ID=sa; pwd=liujie260593";SqlConnection con = new SqlConnection();con.ConnectionString = conn_string;SqlCommand cmd = new SqlCommand();mandText = "select distinct cno,cname,sel_person from course_task";cmd.Connection = con;SqlDataReader dr = null;con.Open();dr = cmd.ExecuteReader();while (dr.Read()){this.dataGridView5.Rows.Add(dr[0].ToString(),dr[1].ToString(),dr[2].ToString());}con.Close();int row = this.dataGridView5.Rows.Count - 1;int[] yval=new int[row];string [] xval=new string[row];for (int i = 0; i < row; i++){yval[i] = Convert.ToInt16(this.dataGridView5.Rows[i].Cells[2].Value.ToString());xval[i] = this.dataGridView5.Rows[i].Cells[1].Value.ToString();}this.chart1.Series["课程"].Points.DataBindXY(xval, yval);}4、系统测试1.系统主要功能测试用例2.系统主要功能测试结果1.学生选课2.学院操作3.教师操作4.学院选课统计。
管理信息系统实验报告-选课系统
管理信息系统
课题名称:
一、项目概述
1.项目名称:学生选课管理信息系统
2.系统设计背景:
随着信息技术的日益发展和计算机网络的普遍应用,学校的学生人数不断增加,原有的学生信息管理的手工管理模式已无法更上时代的需要。随着社会的发展,培养计划也在不断地修改。学分制的实行给学生以更大的选择空间,但也增加了日常教务的管理工作量。因此,利用现代计算机和数据库开发技术,在网络环境下建立学生信息系统对于减轻学生信息管理人员的劳动强度、提高工作质量和效率、方便管理人员对信息的查询、提高信息资源的利用率和管理水平都具有重要意义。
(1)系代码
部门代码采取数字和字符混合编码的形式,具体如下:
①学院C O G* * *
②教务处JWC* * *
③系X X* *
2、人员代码
人员代码采取纯数字编码形式,具体如下:
①教师* ** *
②学生*********
(2)表单代码
表单代码仍采取数字和字符混合编码的形式,具体如下:
①课程文件X X***********
三、业务流程分析(TFD)
我们经过几天的网上、图书馆有关‘学生选课系统’资料的收集,结合传统的学生选课流程和现今已经运行的学生选课系统业务处理流程,再加上我们的一些看法和观点,初步总结和分析出学生选课系统的基本业务流程。
学生选课系统试验报告
1 简介1.1 基本原则选课注册系统设计的明确目的是开发一个学生选课注册系统来模拟校园选课系统的运作,通过这一过程让学生了解与熟悉软件设计的基本过程,熟练掌握dreamweaver、rational rose、Java编程和数据库的运用。
1.2 简单的操作本软件面向的是选课的学生和注册课程的教师以及管理员,可能涉及到大量用户的使用,故而软件操作应尽量简单,以方便用户的使用。
1.3 合理的数据库设计如以上所说,本软件可能有大量用户同时使用,所以要求数据库应合理设计,如此才能安全、快速地读取或存放数据。
1.4 严谨的软件架构虽然本软件的最终目的仅仅只是为了让软件开发者熟悉软件开发过程和相关软件的使用,但既然是要开发一个软件,那么就必须要严谨地设计软件的架构。
1.5.1 假设用户能熟练使用教务网的选课系统本软件模拟教务网的选课系统操作过程,若是用户能熟练使用教务网的选课系统,则对于本软件的使用将能直接上手。
1.5.2 假设用户未曾使用过教务网的选课系统操作过程请参见附录:《软件操作手册》2系统需求分析2.1引言本次编写选课注册软件旨在熟悉Java、Jsp、Dreamweaver、Rational Rose、MySQL等软件的使用,同时体验软件工程项目的实施过程。
2.1.1 编写目的该文档讲述关于选课注册系统的功能和性能的需求,将作为该软件工程的系统设计阶段的设计依据。
本文档的预期读者是:●设计人员●开发人员●项目管理人员●测试人员●用户说明:a.软件名称:选课注册系统;b.本项目的任务提出者:石秀金;c.项目开发者:周青、陈效铭、余实、高祥、王永德。
2.1.3 引用标准《软件需求说明书》国家计算机标准和文件模版。
2.1.4 参考资料《UML系统建模基础教程》清华大学出版社《数据库系统原理》电子工业出版社以及网络资源。
2.2 任务概述2.2.1目标学生和老师可以方便选择课程,学生和教师可以查询各自的基本信息,管理员可以方便地管理系统的信息和运行。
学生选课系统(报告)
数学与计算机学院课程设计说明书课程名称: 软件工程与数据库课程设计课程代码: 6014419题目: 选修课程管理系统年级/专业/班:学生姓名:学号:开始时间: 2012年 6 月 8 日完成时间: 2012年 6 月 20 日课程设计成绩:指导教师签名:年月日摘要随着计算机的普及,越来越多的软件被运用在生活中,帮助人们完成各种各样复杂的事情。
选修课管理系统就是其中一个,帮助管理学校每学期开设的课程,学生的上课情况,教师的任教情况,学生成绩等等。
使得学生、老师及学校的学习、工作能够越来越方便。
关键词:数据库;计算机;面向对象;窗体程序目录引言 (1)1.需求分析 (2)1.1系统分析 (2)1.2用户需求 (2)2.概要设计 (3)2.1系统流程图 (3)2.2系统功能模块设计 (4)2.3系统总体设计 (5)3.数据库设计 (5)3.1概念模型设计 (5)3.2逻辑结构设计 (7)3.3物理结构设计 (8)4.程序模块设计 (11)4.1开发环境及数据库连接 (11)4.2登录模块设计 (11)4.3学生界面模块设计 (12)4.4教师界面模块设计 (12)4.5教师界面模块设计 (13)5.系统测试 (14)5.1测试环境 (14)5.2测试用例及结果 (14)5.2.2功能测试 (14)结论 (23)致谢 (24)参考文献 (25)引言数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据储存的大型数据库系统都在各个方面得到了广泛的应用。
本次课程设计在于使学生学习数据库理论知识后,通过已学的编程知识。
更加深刻了解数据的运行机制及数据储存,学习到了如何将现实中的数据抽象出来通过程序保存到数据库当中。
学生选择系统测试报告.doc
学生选择系统测试报告1 . 1 1.1基本原则简介设计选课登记系统的明确目的是开发一个学生选课登记系统,以模拟校园选课系统的运行。
通过这个过程,学生可以理解和熟悉软件设计的基本过程,并掌握dreamweaver、rational rose、Java编程和数据库应用。
1.2简单操作本软件适用于选择课程的学生以及注册课程的教师和管理员。
它可能涉及大量用户。
因此,软件操作应该尽可能简单,以方便用户使用。
1.3合理的数据库设计如上所述,本软件可被大量用户同时使用,因此要求数据库设计合理,以便安全、快速地读取或存储数据。
1.4严格的软件体系结构尽管本软件的最终目的只是让软件开发人员熟悉软件开发过程和相关软件的使用,但由于开发软件是必要的,因此有必要仔细设计软件体系结构。
1.5假设1.5.1假设用户能够熟练使用教务网络的选课系统。
该软件模拟教务网络选课系统的运行过程。
如果用户能够熟练使用教务网络选课系统,就可以直接开始使用该软件。
1.5.2假设用户没有使用教务网络的选课系统,请参考附录:《软件操作手册》2系统需求分析2.1简介本课程选用注册软件是为了熟悉使用Java、Jsp、Dreamweaver、Rational Rose、MySQL等软件,并体验软件工程项目的实施过程。
2.1.1撰写目的本文件描述了选修注册系统的功能和性能要求,该系统将作为软件工程系统设计阶段的设计基础。
本文档的目标读者是:●设计师●开发人员●项目经理●测试人员●用户2.1.2背景说明:A.软件名称:选修课注册制度;B.该项目的任务负责人:石秀金;C.项目开发人员:周青、陈晓明、石喻、高翔、王永德。
2.1.3参考标准《软件需求说明书》国家计算机标准和文件模板。
2.1.4参考《UML系统建模基础教程》清华大学出版社《数据库系统原理》电子工业出版社和网络资源。
2.2任务概述2.2.1目标学生和教师可以方便地选择课程,学生和教师可以查询自己的基本信息,管理员可以方便地管理系统的信息和操作。
学生选课管理信息系统实验报告
学生选课管理信息系统实验报告一、概述随着现代教育的发展,学生选课管理变得越来越重要。
为了提高教学质量和提升教学效率,学校需要建立一套完善的学生选课管理信息系统。
该系统可以帮助学校实现选课上线化、自动化和智能化,为学生、教师和管理人员提供便利。
二、系统架构1. 前端界面设计2. 后端数据库设计3. 业务逻辑设计三、功能实现1. 学生端功能a. 学生信息管理b. 选课功能c. 退课功能2. 教师端功能a. 教师信息管理b. 课程管理c. 成绩录入3. 管理员端功能a. 管理员信息管理b. 课程安排管理c. 数据统计分析四、系统优化1. 前端界面优化2. 后端数据库优化3. 业务逻辑优化五、实验结果分析1. 系统稳定性a. 在大数据量情况下,系统依然能够稳定运行。
b. 平均响应时间短,用户体验良好。
2. 功能完善性a. 学生选课流程简单方便。
b. 教师管理课程和录入成绩高效准确。
c. 管理员能够全面监控各项数据并进行统计分析。
3. 用户满意度a. 调查结果显示,学生、教师、管理员对系统使用体验满意度较高。
六、结论通过本次实验,我们成功建立了一套学生选课管理信息系统,该系统在稳定性、功能完善性和用户满意度方面均表现良好。
该系统将为学校提高教学质量和效率提供有力支持。
七、展望随着技术的不断发展,学生选课管理信息系统也将不断完善。
我们将继续优化系统,提高系统的性能和用户体验,为学校打造更加智能化、便捷化的选课管理系统做出更大的贡献。
八、系统架构扩展在系统架构方面,随着学校规模的不断扩大和教学需求的增加,我们计划对当前的学生选课管理信息系统进行扩展和升级。
具体包括:1. 前端界面设计:我们将进一步优化前端界面,增加响应式设计,以适配不同终端设备,如手机、平板和电脑,使学生、教师和管理员可以在任何时间、任何地点方便地使用系统进行选课、管理课程和数据统计分析。
2. 后端数据库设计:我们将对数据库进行扩展,并引入高级的数据存储技术,以提高系统的稳定性和处理能力。
学生选课系统功能测试报告
<学生选课系统>功能测试报告制作人:学号:目录1.简介 (1)1.1目的 (1)1.2预期读者 (1)1.3参考资料 (1)1.4术语定义 (1)1.5测试地点、人员、任务 (2)1.6 测试时间进度 (2)2.测试概要 (2)2.1 测试对象 (2)2.2项目背景 (2)2.3测试目的 (3)2.4用例试图 (3)3.测试过程 (4)3.1 测试方法 (4)3.2测试界面模块介绍 (4)3.3测试用例 (6)3.31功能性 (6)3.32易用性 (6)4.测试环境 (6)4.1测试环境 (6)4.11硬件环境 (7)4.12软件环境 (7)4.2 测试工具 (7)5.问题级别划分 (7)6.测试结果 (8)6.1测试问题汇总 (8)6.11 测试总结 (9)6.1.1.1 测试情况总结 (9)6.1.1.2 问题级别分布 (9)6.2其他系统缺陷 (9)6.3 测试结果分析 (9)7.测试结论和建议 (10)7.1测试结论 (10)7.2建议 (11)1. 简介1.1 目的本测试报告为学生选课系统项目的测试报告,目的在于总结测试阶段的测试情况以及分析测试结果,描述系统是否符合要求,主要从以下几个目的分析介绍:●由测试总结功能实现中的缺陷和bug●分析测试结果,对系统整体性总结评价●评估测试中测试执行和测试计划是否符合1.2 预期读者该项目所有测试人员课程设计的批阅老师1.3 参考资料●王水,张晓民,《软件工程素质导论》,第一版,2011年2月●《人事工资管理系统测试报告实例》./view/3a85d909844769eae009ed59.html●《系统测试报告实例》/view/e3eca7daa58da0116c1749c6.html.●《测试结论》/view/19a0fe0aba1aa8114431d979.html1.4 术语定义1.5测试地点、人员、任务分配◆地点:南阳理工学院◆人员:张涛毛思晨杨耀光李和孺项目任务执行人员需求分析张涛、毛思晨、杨耀光、李和孺测试计划杨耀光测试用例毛思晨测试张涛测试报告李和孺任务分配表(表1.2)1.6测试时间进度项目进度甘特图(图1.1)(表示初期完成时间)(表示修改时间)2.测试概要2.1 测试对象该项目为《学生选课系统》,主要功能是提供老师添加课程,学生登录查看自己可选课程信息进行选课。
学生选课系统课程设计报告报告
一、需求分析通过对系统需求进行分析,我们可以确定系统中有三类用户:管理员、教师和学生。
各类用户的具体描述如下:(1)管理员描述:管理员维护整个系统,包括设置选课时段,选课前学生不可登录;选课结束,学生只可查询,管理员对选课结果进行统计;查询选课情况,对学生的选课申请进行处理,进行用户管理;限制最大选课人数;排课、发布选课信息;数据备份和恢复等。
(2)教师描述:教师撰写教师反馈,反馈选课信息,对排课者提出反馈意见,供排课者在排课时参考使用。
查询课程基本情况、学生情况。
(3) 学生描述:在选课系统中查询课程、教室信息,查看教师反馈,提交选课申请,撤销申请,查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。
根据上面所述,对系统进行了划分,分为三个主要功能,即登录控制、排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。
其中,登录子系统是前提,排课子系统是基础,选课子系统是关键。
登录子系统区分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的权限,进行不同的操作。
排课子系统主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。
选课子系统是本系统要实现的最终目的。
选课子系统主要供学生选课使用,在这里可以进行与选课有关的活动,包括课程浏览查询、选课、退选课程。
数据字典根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。
下面列出部分数据字典容。
(1) 排课系统名:网上选课系统条目名:排课输入:课程信息表,教学楼信息表,教师信息表,院系信息表输出:排课表,选课通知表描述:排课者按年级排课。
排课表容包括课程代号,课程名称,受课院系,专业代码,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最大上课人数和课程选则限制(必修或选修)等。
在排课过程中,排课者可以查询教室使用情况和院系课程设置。
学生选课系统实验报告
学生选课系统实验报告武夷学院课程名称: C语言程序设计设计题目: 学生选课管理系统学生班级: 2014级计算机科学与技术2班学生姓名: =指导教师:完成日期: 2015-1-9数学与计算机学院课程设计项目研究报告目录第 1 章项目简介 ..................................................................... (03)1.1 项目名称 ..................................................................... .. (03)1.2 开发人员 ..................................................................... .. (03)1.3 指导教师 ..................................................................... ........ 03 第 2 章项目研究意义 ......................................................................032.1 课程设计概述 ..................................................................... (03)2.2 需求分析 ..................................................................... .. (03)2.3 研究意义 ..................................................................... ........ 04 第 3 章采用的技术 ..................................................................... (04)3.1 课程设计的方案设计论证 (04)3.2 流程描述或代码描述 (05)3.3 部分重要算法设计 06第4 章课程设计项目进度表 .............................................................. 07 第5 章课程设计任务分配表 .............................................................. 08 第6 章达到的效果 ..................................................................... . (08)6(1 程序设计思想 .....................................................................086(2 程序最终实现结果 (09)第7 章源程序 ..................................................................... ......... 11 第8 章附录 ..................................................................... (14)8(1 学生选课登记管理系统 .......................................................... 14 第9 章设计心得 ..................................................................... ....... 15 第10 章参考文献 ..................................................................... .. (15)数学与计算机学院 3第 1 章项目简介1.1 项目名称学生选课管理系统1.2 开发人员2014计算机科学与技术刘雪涓王芬岚王小倩王林峰丁义勋1.3 指导教师程仁贵第 2 章项目研究意义2.1 课程设计概述学生选课管理系统是学生管理的一个重要环节,程序是在Microsoft VC++上执行的。
学生选课系统实习报告
一、实习背景随着我国教育事业的不断发展,高校学生选课系统已成为高校教学管理的重要组成部分。
为了提高教学质量和教学效率,实现教学资源的优化配置,我国许多高校纷纷建立了学生选课系统。
为了更好地了解和掌握学生选课系统的开发与运行,我选择了某高校学生选课系统作为实习对象,进行为期一个月的实习。
二、实习目的1. 了解学生选课系统的基本原理和开发流程;2. 熟悉学生选课系统的运行环境和操作方法;3. 提高自己的编程能力和团队协作能力;4. 培养自己的实际操作经验和解决实际问题的能力。
三、实习内容1. 学生选课系统的基本原理学生选课系统是基于高校教务管理系统的一种辅助教学管理工具,其主要功能包括课程信息查询、选课、退课、选课结果查询等。
系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言进行开发,数据库采用MySQL。
2. 学生选课系统的开发流程(1)需求分析:通过对高校教务管理系统的调研,分析学生选课系统的功能需求,包括用户角色、功能模块、数据流程等。
(2)系统设计:根据需求分析,设计系统架构、数据库表结构、功能模块等。
(3)编码实现:根据系统设计,使用Java语言进行编程,实现各个功能模块。
(4)系统测试:对系统进行功能测试、性能测试、兼容性测试等,确保系统稳定运行。
(5)系统部署:将系统部署到服务器上,进行实际运行测试。
3. 学生选课系统的运行环境和操作方法(1)运行环境:Windows操作系统、Java运行环境、MySQL数据库。
(2)操作方法:① 登录系统:用户输入用户名和密码,登录系统。
② 查询课程信息:用户可以查看所有课程信息,包括课程名称、学分、上课时间等。
③ 选课:用户可以根据自己的兴趣和需求,选择课程进行选课。
④ 退课:用户可以查看已选课程,选择需要退课的课程进行退课。
⑤ 查询选课结果:用户可以查看自己的选课结果,了解已选课程和未选课程。
四、实习收获1. 熟悉了学生选课系统的基本原理和开发流程,提高了自己的编程能力。
学生选课系统课程设计报告模板
学生选课系统课程设计报告文档仅供参考《数据库原理》课程设计报告题目:实验2学生选课系统姓名:李子甘班级:计科0601学号: 402741月一.需求分析传统的选课方式都是手写的,教务处通知各个班级选课,各个班长再通知同学,经过统计在上交,这样繁琐的过程比较浪费时间。
再者选课时不知道所选课人数已满,要等到教务处统计后才知道,然后再重新选择。
网上选课为同学节省时间的同时,也减少了不必要的步骤,也更加方便管理员的管理。
网上选课系统为同学们提供了一个自由的平台,学生们能够选择规定范围内的课程,查看已修课程总数,还能够修改个人信息。
同时也给老师提供了很大的方便,教师能够根据统计的人数挑选一定数量的学生,也能够方便的在网上公布成绩,让学生能够在网上直接查寻成绩。
中国不少高校都实行学分制,它的核心是允许学生自由选课,即把学生的自主权交给学生。
在这里,学生的选课制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。
运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便的输出选课结果,同时也避免了人工选课时容易产生错误。
二.概念机构设计根据系统功能设计的要求以及功能模块的划分,各个系统的逻辑实现如下:1.对于学生选课系统数据库,能够列出以下数据项和数据结构:学生信息:学号、学生姓名、学生的系名、学生性别、学生年龄、学生密码。
2.对于教师信息维护数据库,能够列出以下数据项和数据结构:教师个人信息:教师编号、教师名称、教师密码。
3.对于后台管理数据库,能够列出以下数据项和数据结构:管理员信息:管理员名称、管理员密码。
课程信息:课程号、课程名称、课程类别、开课系。
选课信息:课程号、学生学号、成绩。
4.数据流:学生管理员和教师分别有自己的权限,学生能够查看全部选修必修课程,查看自己的详细信息,进行网上选课,管理员能够修改,插入并删除学生,课程,还教师的信息,教师能够在网上进行成绩录入,有各自权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中,有权限的人能够将这些库信息进行修改和删除设计E-R图:根据学生与课程这两个实体之间的联系,所设计的ER图如下::三、逻辑结构设计1.根据系统功能设计的要求以及功能模块的划分,各个系统的具体逻辑实现如下。
学生选课系统实验报告
学生选课系统实验报告一.项目需求背景:为了方便学生查询选课信息,学生资料等,特开发此选课系统。
改程序方便实用,操作简单,适合广大学生教师使用。
二.程序功能简要介绍1.实现数据库的基本功能,对数据的添加、删除、修改、浏览、查询的功能。
2.数据库对象的功能,视图、存储过程、触发器的功能。
三.数据库详细设计1.后台数据库设计1.1数据库的创建创建了MYSTUDENT数据库及其数据库文件1.2表结构设计及创建共创建了四张表,Table_COURSE,Table_PITCH,Table_STUDENT,Table_USER。
Table_COURSE Table_PITCHTable_STUDENT Table_USER1.3设定了外键表之间的关系图如下:2.建立项目总体结构2.1创建4个文件夹依次存放有关窗体,并添加窗体。
2.2添加数据源添加了MYSTUDENT的数据库3.各个窗体设计2.1设计父窗体FormMain2.2设计子窗体FormUserFormPitch4.数据库对象的功能4.1创建触发器,当修改TaBLE_User表中的数据信息时,同时触发了UPDATEINSERT触发器,通过触发器向TaBLE_User中插入数据信息。
4.2创建存储过程SHOW_UPDATE_Table_STUDENT,通过该存储过程将表Table_STUDENT中的学生名为‘胡莹’的信息删除,然后重新显示表Table_STUDENT中的数据信息。
四.程序详细功能即实现流程1.删除,添加等功能调试运行程序,跳出窗口点开学生信息查询按钮,跳出窗口按便捷按钮。
可以实现查找下一个,上一个,添加,删除,保存信息等功能。
2.视图的运用和查询功能回到主窗口,点击学生详细资料,跳出窗口,视图显示了学生的详细资料,上方的使用了查询功能,比如输入“陆婷婷”,点击查询,显示结果3.触发器的应用在修改FormUser表的内容时,程序会运行减慢。
学生选课系统实验报告
选课系统实验报告一、实验目的(1)掌握常用内部控件的主要属性、事件和方法,利用常用控件进行程序设计以及编程;(2)掌握使用Access或者SQL sever建立数据库,实现VB与数据库的链接;(3)掌握ADO控件的属性,事件,和方法,利用控件进行程序设计。
二、实验要求(1)设计一个学生选课系统,实现选课、退课及查询的功能;(2)四周时间内完成,第十五周上交。
三、实验步骤(1)查找资料,在脑中形成基本框架;(2)建立SQL Sever 数据库表“学生基本信息表”、“课程信息表”、“已选课程表”,插入数据并保存脚本文件;(3)建立窗体框架,包括登录窗体“登录”、父窗体“学生选课管理系统”和其他6个子窗体;(4)运用VB常用控件和ADO控件及DataGrid控件设计每个窗体的界面(以下为几个主要界面);(5)利用ADO实现与数据库表的链接,编写相应代码(全部代码在工程里,在此仅复制主要窗体的代码);登录窗体代码:Private Sub Command1_Click()If (Text1.Text = 123 And Text2.Text = 123 And Option1.V alue = True) Or (Text1.Text = 321 And Text2.Text = 321 And Option2.V alue = True) Then学生选课管理系统.Show登录.Visible = FalseElseMsgBox "你的输入的用户名和密码不匹配,或者没有选择用户身份!", 64, "提示信息"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Text1_click()MsgBox "请查看Word文档“操作说明”获得用户名和密码!", 64, "温馨提示"End SubPrivate Sub Timer1_Timer()If Label3.Left > 6000 ThenLabel3.Left = 0ElseLabel3.RefreshEnd IfEnd SubPrivate Sub Timer2_Timer()Label3.Left = CInt(Label3.Left) + 10End SubPrivate Sub Timer3_Timer()Label3.Left = -1700End Sub选课系统窗体代码:Private Sub Form_Load()If 登录.Option1.V alue = True Then学生个人课表.Enabled = False学生选课.Enabled = FalseElseIf 登录.Option2.V alue = True Then 基本信息管理.Enabled = False课程信息管理.Enabled = False所有学生信息.Enabled = FalseEnd IfEnd SubPrivate Sub 基本信息管理_Click() Dim newdoc As New 基本信息管理newdoc.ShowEnd SubPrivate Sub 课程信息管理_Click() Dim newdoc As New 课程信息管理newdoc.ShowEnd SubPrivate Sub 所有学生信息_Click() Dim newdoc As New 所有学生信息newdoc.ShowEnd SubPrivate Sub 退出_Click()EndEnd SubPrivate Sub 学生选课_Click()Dim newdoc As New 学生选课newdoc.ShowEnd SubPrivate Sub 可选课程信息_Click() Dim newdoc As New 可选课程信息newdoc.ShowEnd SubPrivate Sub 学生个人课表_Click() Dim newdoc As New 学生个人课表newdoc.ShowEnd Sub课程信息管理窗体代码:Private Sub Command1_Click()Adodc1.Recordset.AddNewEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.UpdateEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.MoveNextEnd SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub 课程信息管理_Load()Adodc1.Recordset.MoveFirstEnd Sub学生选课窗体代码:Private Sub Command1_Click()If Text1.Text = "" And Text2.Text = "" And Text3.Text = "" And Text4.Text = "" Then MsgBox "已无课程可选!", 64, "提示信息"ElseAdodc2.Recordset.AddNewAdodc2.Recordset.Fields("课程代码").V alue = Text1.TextAdodc2.Recordset.Fields("课程名称").V alue = Text2.TextAdodc2.Recordset.Fields("学时").V alue = Text3.TextAdodc2.Recordset.Fields("学分").V alue = Text4.TextAdodc2.Recordset.UpdateAdodc1.Recordset.DeleteAdodc1.RefreshMsgBox "恭喜你选课成功", 64, "提示信息"End IfEnd SubPrivate Sub Command2_Click()If Text5.Text = "" And Text6.Text = "" And Text7.Text = "" And Text8.Text = "" Then MsgBox "已退完!", 64, "提示信息"ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("课程代码").V alue = Text8.TextAdodc1.Recordset.Fields("课程名称").V alue = Text7.TextAdodc1.Recordset.Fields("学分").V alue = Text6.TextAdodc1.Recordset.Fields("学时").V alue = Text5.TextAdodc1.Recordset.UpdateAdodc2.Recordset.DeleteAdodc2.RefreshMsgBox "退课成功", 64, "提示信息"End IfEnd Sub(6)运行测试程序,修改不足的地方,生成exe文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武夷学院课程设计报告课程名称:C语言程序设计设计题目:学生选课管理系统学生班级:2014级计算机科学与技术2班学生姓名:=指导教师:完成日期:2015-1-9数学与计算机学院课程设计项目研究报告目录第 1 章项目简介 (03)1.1 项目名称 (03)1.2 开发人员 (03)1.3 指导教师 (03)第 2 章项目研究意义 (03)2.1 课程设计概述 (03)2.2 需求分析 (03)2.3 研究意义 (04)第 3 章采用的技术 (04)3.1 课程设计的方案设计论证 (04)3.2 流程描述或代码描述 (05)3.3 部分重要算法设计06第4 章课程设计项目进度表 (07)第5 章课程设计任务分配表 (08)第6 章达到的效果 (08)6.1 程序设计思想 (08)6.2 程序最终实现结果 (09)第7 章源程序 (11)第8 章附录 (14)8.1 学生选课登记管理系统 (14)第9 章设计心得 (15)第10 章参考文献 (15)第 1 章项目简介1.1 项目名称学生选课管理系统1.2 开发人员2014计算机科学与技术刘雪涓王芬岚王小倩王林峰丁义勋1.3 指导教师程仁贵第 2 章项目研究意义2.1 课程设计概述学生选课管理系统是学生管理的一个重要环节,程序是在Microsoft VC++上执行的。
该程序为学生提供选修课程。
1.假定有n门的课程,每门课程都有编号、课程名称、课程性质、(专业选修课、公关课)、总学时、总学分、理论学时、已选修本课程学生人数等信息;每门课最多允许60个学生选修。
2.选修信息文件,用来保存每个学生选修课程的信息,每条记录包括:学生的学号、所选修的课程编号和课程名称。
3.系统以菜单的方式工作(需要输入功能号码,进入功能模块程序。
)4.用函数分别实现动态链表的建立、动态链表输出等功能。
5.界面友好,程序中加入必要的注释。
6.学生选修一门课后,要同时更新课程信息和选修信息文件。
.2.2 需求分析当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用与信息系统的环境。
计算机的最到好处的是利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好学生选课信息而设计的。
数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。
基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
2.3 研究意义该系统的实际实现学生选课信息关系的系统化,规范化和自动化。
学生选课系统要求处理的开发性,方便老师上传学生成绩,学生上网选课和查询选课信息及成绩。
采用这样的系统即可以小范围的处理信息有可疑根据业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无需进行复杂的计算,也不会因为复杂的操作而影响到其他用户。
所以具有较强的可靠性,稳定性。
在功能方面,可实现学生选课注册。
可对学生成绩档案进行管理,成绩表单生成简便。
安全有效的进行用户区分和管理档案数据也更加具有保密性和安全性。
使用起来稳定,操作性能好,惭怍方法又易于掌握,系统安全性强,所以该系统很值得研究开发。
………………..第 3 章采用的技术3.1 课程设计的方案设计论证1.简洁明了的程序菜单。
程序主要采用了六组层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。
2.人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。
程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地进行程序的操作。
3.智能化的模块设计。
程序的智能化主要体现在减少了许多人工操作。
如功能模块操作结束后,均会返回主菜单进行下一模板的运行,并提示是否再进行类似的操作,这样给用户带来了操作的方便,大大提高了学生选课的效率。
本程序达到了C语言课程设计题目的所有要求。
即本程序(1)系统一菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功能——输出(4)查询功能(至少一种查询方式)——算法(5)按学分查询(6)某门课程学生选修情况(可选项)的功能要求。
与此同时,程序各模块开发设计依据了程序的具体实际的使用情景,而有所改进,使其更具有实用性。
3.2 流程描述或伪代码描述.3.3部分重要算法设计:【1】void overview(); //浏览函数,负责浏览整个课程信息void seek(); //查询函数,负责查询课程信息void choose_course();//选课函数,负责让用户选课void out(type temp);void input();int main(){int n,i;if((fp1=fopen("course_information.txt","wb"))==NULL){printf("创建文件失败!\n");exit(0);}printf("请输入要存储的课程数目:\n");【2】while((scanf("%d",&n))!=EOF){if(n==1)overview();if(n==2)seek();if(n==3)choose_course();if(n==0)exit(0);printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");【3】void overview(){rewind(fp1);course temp;printf("整个课程信息如下:\n");while((fread(&temp,sizeof(type),1,fp1))!=0)out(temp);}void seek(){int judge,credit=0,kind=0;char a='N';course temp;printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");scanf("%d",&judge);rewind(fp1); //将文件指针位置置为开头if(judge==1)【4】while((fread(&temp,sizeof(type),1,fp1))!=0){for(int i=0;i<n;i++)if(strcmp(temp.number,choose[i])==0){time=time+temp.time;credit=temp.credit;break;}}if(time<270||credit<40)goto r1;printf("你所选的课为:\n");while((fread(&temp,sizeof(type),1,fp1))!=0){for(int i=0;i<n;i++)if(strcmp(temp.number,choose[i])==0){out(temp);break;}第4 章课程设计项目进度表第5 章课程设计任务分配表第6 章达到的效果6.1 程序设计思想为了让程序更加精简在算法上采用了结构体数组外考虑在程序的算法设计上引入了链表结构,考虑这样对数据组织存储效率上会有提高作用。
为了不让某些程序部分输入错误会导致程序终止或转向其他功能模块,采用对每个数据输入段代码进行更深的研究与分析,明确变量的类型、可能的数值,然后进行分类判断(if 或switch语句),必要时借助for循环语句来控制程序进行,保障各模块运行相对独立,稳定准确执行各自功能。
典型方法是如果输入数据错误,通过printf输出问题,并用for或while构成循环,输入三次以上程序自动跳出主菜单或直到用户输入正确为止。
6.2 程序最终实现结果第7 章源程序#include "stdio.h"#include "stdlib.h"#include "string.h"typedef struct course{char number[15],name[25];int kind,time,lessontime,practicetime,credit,term;}type;FILE *fp1;void overview(); //浏览函数,负责浏览整个课程信息void seek(); //查询函数,负责查询课程信息void choose_course();//选课函数,负责让用户选课void out(type temp);void input();int main(){int n,i;if((fp1=fopen("course_information.txt","wb"))==NULL){printf("创建文件失败!\n");exit(0);}printf("请输入要存储的课程数目:\n");scanf("%d",&n);printf("开始创建文件,请输入课程信息:\n\n");for(i=0;i<n;i++){printf("请输入第%d门课程的信息:\n",i+1);input();printf("\n");}printf("如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3;如想结束选修课系统,请输入0!\n");while((scanf("%d",&n))!=EOF){if(n==1)overview();if(n==2)seek();if(n==3)choose_course();if(n==0)exit(0);printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");}printf("欢迎您使用此程序进行选课,谢谢!\n");fclose(fp1);return 0;}void input(){course c_a;printf("请输入课程编码: ");scanf("%s",c_a.number);printf("请输入课程名: ");scanf("%s",c_);printf("请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3! ");scanf("%d",&c_);printf("请输入课程总学时: ");scanf("%d",&c_a.time);printf("请输入课程授课时间: ");scanf("%d",&c_a.lessontime);printf("请输入课程实验或实践时间: ");scanf("%d",&c_a.practicetime);printf("请输入课程学分: ");scanf("%d",&c_a.credit);printf("请输入课程所在的学期,比如第二学期,就输入2即可。