学生成绩管理系统课程设计模板.docx
- 文档编号:3316139
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:39
- 大小:906.40KB
学生成绩管理系统课程设计模板.docx
《学生成绩管理系统课程设计模板.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计模板.docx(39页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统课程设计模板
学生成绩管理系统
姓名:
***
班级:
****
老师:
****
学号:
*****
学生成绩管理系统
摘要:
学生成绩管理系统是基于SQLServer2008数据库开发工具进行设计,理论研究与实践相结合,利用计算机技术、数据库技术、软件工程理论等对学生成绩管理系统的开发设计进行研究。
学生成绩管理系统要求对学生成绩信息进行集中、有序、有效的管理,更新方便快捷、组卷灵活,降低劳动强度。
关键词:
数据库,软件工程
ABSTRACT:
Studentachievementmanagement system isbasedontheSQLServer2008databasedevelopmenttoolsforthedesign,theoryandpractice,theuseofcomputertechnology,databasetechnology,softwareengineeringtheoryoftheStudentachievementmanagement systemdevelopmentanddesignresearch.Studentachievementmanagement systemrequirementsforrentalinformationcentralized,orderlyandefficientmanagement,easyupdatesJie,testpaperflexibilityandreducelaborintensity.
Keywords:
Databases,software
背景介绍
20世纪以来,社会生产力迅速发展,科学技术突飞猛进,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。
对于学校管理者来说,大量复杂的学生信息难于通过传统的方法进行管理;学生成绩管理系统正是钟对上述的问题而开发的,通过计算机系统来管理学生成绩情况,可以解决大量房产信息的查询和管理,。
这样,使原本复杂的学生、课程、成绩信息简单化。
学生成绩管理系统实质上就是一个管理信息系统。
管理信息系统是一个集信息技术、经济管理理论、统计学与运筹学、数据库技术为一体的综合性系统,是一个资金技术密集型、劳动密集型、智力密集型的项目。
我国拥有广阔的市场和丰富的人才资源,有几十年的技术积累和经验积累,有一定的后发优势。
管理信息系统的创新工作既不能妄自菲薄,更不能夜郎自大。
要抓住当前网络经济兴起的有利时机,以实现我国信息技术和信息产业的跨越式发展,更好地发挥信息产业对国民经济增长的拉动作用。
开发学生成绩管理系统的过程就是要实现数据处理方式由人工管理向计算机管理的转变,它在计算机技术和学生成绩管理实践活动两者之间架设桥梁。
而用C#+SQL所开发的学生成绩管理系统却能在这些功能方面运作自如,为企业赢得无限的商机。
数据库设计与开发
学生信息表
学生信息表,表dbo.student的结构如表所示
dbo.student表的结构
字段名
数据类型
长度
是否主键
stuNo
int
是
stuName
varchar
50
stuSex
varchar
50
stuAge
int
stuSpecial
varchar
50
shuxue
int
Chinese
int
English
int
zhuanyeke
int
用户信息表
用户信息表,表dbo.userinfo的结构如表所示
dbo.Renter表的结构
字段名
数据类型
长度
是否主键
stuNo
int
是
ID
varchar
50
Password
varchar
50
三层架构
三层架构(3-tierarchitecture)通常意义上的三层架构就是将整个业务应用划分为:
表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了“高内聚,低耦合”的思想。
发展方向。
概念介绍
1、表现层(UIL):
通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):
该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
概述
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
微软推荐的分层式结构一般分为三层,从下至上分别为:
数据访问层、业务逻辑层(又或称为领域层)、表示层。
三层结构原理
3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
各层的作用
1:
:
数据库访问层:
主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
2:
业务逻辑层:
主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3:
表示层:
主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:
aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
具体的区分方法
1:
数据访问层:
主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。
而不必管其他操作。
2:
业务逻辑层:
主要负责对数据层的操作。
也就是说把一些数据层的操作进行组合。
3:
表示层:
主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
表示层
位于最外层(最上层),最接近用户。
用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。
例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:
表示层、领域层和数据源层。
作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。
因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。
对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:
有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
规则
三层结构的程序不是说把项目分成DAL,BLL,WebUI三个模块就叫三层了,下面几个问题在你的项目里面:
⒈UILayer里面只有少量(或者没有)SQL语句或者存储过程调用,并且这些语句保证不会修改数据?
⒉如果把UILayer拿掉,你的项目还能在Interface/API的层次上提供所有功能吗?
⒊你的DAL可以移植到其他类似环境的项目吗?
⒋三个模块,可以分别运行于不同的服务器吗?
如果不是所有答案都为YES,那么你的项目还不能算是严格意义上的三层程序.三层程序有一些需要约定遵守的规则:
⒈最关键的,UI层只能作为一个外壳,不能包含任何业务逻辑(BizLogic)的处理过程
⒉设计时应该从BLL出发,而不是UI出发.BLL层在API上应该实现所有BizLogic,以面向对象的方式
⒊不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关
⒋不管使用COM+(EnterpriseService),还是Remoting,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡作集群
所以考虑一个项目是不是应该应用三层/多层设计时,先得考虑下是不是真的需要?
实际上大部分程序就开个WebApplication就足够了,完全没必要作的这么复杂.而多层结构是用于解决真正复杂的项目需求的。
优缺点
优点
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
缺点
1、降低了系统的性能。
这是不言而喻的。
如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。
这种修改尤其体现在自上而下的方向。
如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
系统实现
教师界面
截图
界面代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingstuModel;
usingstuBLL;
usingSystem.Data.SqlClient;
namespace学生成绩管理系统
{
publicpartialclassteacher:
Form
{
publicteacher()
{
InitializeComponent();
}
privatevoid学生信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
StudentInfofrmMain=newStudentInfo();
frmMain.Show();
}
privatevoid修改密码ToolStripMenuItem_Click(objectsender,EventArgse)
{
changefrmMain=newchange();
frmMain.Show();
}
privatevoid成绩录入ToolStripMenuItem_Click(objectsender,EventArgse)
{
ScoreInfofrmMain=newScoreInfo();
frmMain.Show();
}
privatevoidmenuStrip1_ItemClicked(objectsender,ToolStripItemClickedEventArgse)
{
}
privatevoid教师界面_Load(objectsender,EventArgse)
{
ShowData();
timer1.Enabled=true;
}
privatevoidShowData()
{
teacherManagerrenter=newteacherManager();
DataTabledt=newDataTable();
dt=renter.GetstudentInfo();
dataGridView1.DataSource=dt;
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
label2.Left-=2;
intm=label1.Right;
if(m<0)
{
label1.Left=this.Width;
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(radioButton1.Checked)
{
teacherManagerrenter=newteacherManager();
DataTabledt=newDataTable();
dt=renter.Getscore1Info();
dataGridView1.DataSource=dt;
}
else
if(radioButton2.Checked)
{
teacherManagerrenter=newteacherManager();
DataTabledt=newDataTable();
dt=renter.Getscore2Info();
dataGridView1.DataSource=dt;
}
else
if(radioButton3.Checked)
{
teacherManagerrenter=newteacherManager();
DataTabledt=newDataTable();
dt=renter.Getscore3Info();
dataGridView1.DataSource=dt;
}
}
privatevoid教师界面_FormClosing(objectsender,FormClosingEventArgse)
{
DialogResultdr;
dr=MessageBox.Show("确认退出吗?
","确认对话框",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2);
if(dr==DialogResult.Yes)
{}
else
{
e.Cancel=true;
}
}
}
}
学生信息
截图
UI代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingstuModel;
usingstuBLL;
usingSystem.Data.SqlClient;
namespace学生成绩管理系统
{
publicpartialclassStudentInfo:
Form
{
publicStudentInfo()
{
InitializeComponent();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
studentinfostudentInfo=newstudentinfo(txtstuNo.Text);
teacherManagerstudentManager=newteacherManager();
intcount=studentManager.SCstudentInfo(studentInfo);
if(count>0)
{
MessageBox.Show("删除成功");
}
else
MessageBox.Show("删除失败");
ShowData2();
}
privatevoidstudentinfo_Load(objectsender,EventArgse)
{
ShowData2();
}
privatevoidShowData2()
{
teacherManagerrenter=newteacherManager();
DataTabledt=newDataTable();
dt=renter.Getstudent2Info();
dataGridView1.DataSource=dt;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(txtstuNo.Text!
="")
{
stuManagerstuNo=newstuManager();
DataTabledt=newDataTable();
dt.Load(stuNo.GetstuNo(txtstuNo.Text));
dataGridView1.DataSource=dt;
}
else
{
if(txtstuName.Text!
="")
{
stuManagerName=newstuManager();
DataTabledr=newDataTable();
dr.Load(Name.GetName(txtstuName.Text));
dataGridView1.DataSource=dr;
}
else
{
if(txtSpecial.Text!
="")
{
stuManagerSpecial=newstuManager();
DataTabledm=newDataTable();
dm.Load(Special.GetSpecial(txtSpecial.Text));
dataGridView1.DataSource=dm;
}
else
MessageBox.Show("查询结果不存在");
}
}
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
this.txtstuNo.Clear();
this.txtstuName.Clear();
this.txtSpecial.Clear();
this.txtstuSex.Clear();
this.txtstuAge.Clear();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
studentinfostudentInfo=newstudentinfo(txtstuNo.Text,txtstuName.Text,txtSpecial.Text,txtstuSex.Text,txtstuAge.Text);
teacherManagerstudentManager=newteacherManager();
intcount=studentManager.InsertstudentInfo(studentInfo);
if(count>0)
{
MessageBox.Show("保存成功");
}
else
MessageBox.Show("保存失败");
ShowData2();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
studentinfostudentInfo=newstudentinfo(txtstuNo.Text,txtstuName.Text,txtSpecial.Text,txtstuSex.Text,txtstuAge.Text);
teacherManagerstudentManager=newteacherManager();
intcount=studentManager.XGstudentInfo(studentInfo);
if(count>0)
{
MessageBox.Show("修改成功");
}
else
MessageBox.Show("修改失败");
ShowData2();
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
DataGridViewRowdgv=dataGridView1.CurrentRow;
if(dgv!
=null)
{
Common.StuNo=dgv.Cells[0].Value.ToString();
Common.StuName=dgv.Cells[1].Value.ToString();
Common.StuSpecial=dgv.Cells[2].Value.ToString();
Common.St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计 模板