小型学生学籍管理.docx

上传人:b****8 文档编号:9306080 上传时间:2023-02-04 格式:DOCX 页数:31 大小:280.45KB
下载 相关 举报
小型学生学籍管理.docx_第1页
第1页 / 共31页
小型学生学籍管理.docx_第2页
第2页 / 共31页
小型学生学籍管理.docx_第3页
第3页 / 共31页
小型学生学籍管理.docx_第4页
第4页 / 共31页
小型学生学籍管理.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

小型学生学籍管理.docx

《小型学生学籍管理.docx》由会员分享,可在线阅读,更多相关《小型学生学籍管理.docx(31页珍藏版)》请在冰豆网上搜索。

小型学生学籍管理.docx

小型学生学籍管理

沈阳航空航天大学

 

课程设计报告

 

课程设计名称:

软件综合课程设计

课程设计题目:

学生学籍管理系统

 

目录

第1章需求分析1

1.1题目的内容与要求1

1.2使用工具1

第2章概要设计3

2.1数据库概念模型设计3

2.2总体方案设计3

2.2.1功能分析3

2.2.2功能模块图4

第3章详细设计5

3.1数据库逻辑模型设计5

3.1.1专业表5

3.1.2班级表5

3.1.3学生信息表6

3.1.4课程信息表6

3.1.4成绩表7

3.2系统功能详细设计7

3.2.1信息添加模块7

3.2.2信息浏览模块8

3.2.3成绩查询模块9

第4章调试分析11

第5章用户手册12

参考文献15

附录(程序清单)16

第1章需求分析

1.1题目的内容与要求

内容:

设计和实现一个学生学籍管理系统,通过该系统可以实现对学生学籍的增删改和查询等管理工作。

1.学生信息和学籍信息进行维护,学生信息包括班级、学号、姓名、系等;

2.课程管理,课程主要信息包括,课程所在学期,课程所在系别、课程性质、学分等;

3.学生成绩录入;

4.学生成绩查询,根据输入条件返回查询结果;

5.学生成绩统计。

要求:

1.界面要优化,直观、美观、大方;

2.采用面向对象程序设计方法;

3.用数据库保存各项信息;

4.独立完成系统的设计、编码和调试工作并通过知道老师的检查;

5.按课程设计规范撰写课程设计报告。

1.2使用工具

本次课设我主要使用的软件是MicrosoftVisualStudio2010和MicrosoftOfficeAccess,语言是以C#为主。

VisualStudio是微软公司推出的开发环境。

是目前最流行的Windows平台应用程序开发环境。

VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。

VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。

除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。

MicrosoftOfficeAccess是由微软发布的关系数据库管理系统。

它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程序之一。

MicrosoftOfficeAccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。

MSACCESS以它自己的格式将数据存储在基于AccessJet的数据库引擎里。

它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。

软件开发人员和数据架构师可以使用MicrosoftAccess开发应用软件,“高级用户”可以使用它来构建软件应用程序。

和其他办公应用程序一样,ACCESS支持VisualBasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件。

可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。

C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言,是微软公司研究员AndersHejlsberg的最新成果。

C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。

但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。

它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

第2章概要设计

2.1数据库概念模型设计

由课设要求可以设计四个实体,分别为学生、课程、班级和专业。

四个实体的联系如图2.1所示。

图2.1E-R图

2.2总体方案设计

2.2.1功能分析

根据课设内容和要求,本系统分为五个模块,分别为专业信息管理模块、班级信息管理模块、学生信息管理模块、课程信息管理模块和成绩信息管理模块。

专业信息管理模块的功能有添加专业、修改专业和删除专业;班级信息管理模块的功能有添加班级信息、修改班级信息和删除班级信息;学生信息管理模块的功能有添加学生信息、修改学生信息想和删除学生信息;课程信息管理模块的功能有添加课程信息、修改课程信息和删除课程信息;成绩信息管理模块的功能有添加成绩信息、修改成绩信息、删除成绩信息和查询成绩信息。

2.2.2功能模块图

图2.2系统功能模块图

第3章详细设计

3.1数据库逻辑模型设计

3.1.1专业表

以专业名为主键,同时还有专业编号、备注等属性。

具体属性设定如表3.1所示。

表3.1专业表

列名

数据类型

允许为空

说明

filedSpecialtyID

自动编号

不允许

专业编号

filedSpecialtyName

文本

不允许

专业名称,主键

filedRemark

备注

允许

备注

3.1.2班级表

以班级编号为主键,同时还有班级编号、备注等属性。

具体属性设定如表3.2所示。

表3.2班级表

列名

数据类型

允许为空

说明

filedClassID

自动编号

不允许

班级编号,主键

filedClassName

文本

不允许

班级名称

filedSpecialtyName

文本

不允许

专业名称

filedClassNum

列名

文本

数据类型

不允许

允许为空

教室编号

说明

filedSchoolReform

数字

不允许

学制

filedHeadTeacher

文本

不允许

班主任

filedEnrolmentTime

日期/时间

不允许

入校时间

filedRemark

备注

允许

备注

3.1.3学生信息表

以学号为主键,同时还有姓名、性别等属性。

具体属性设定如表3.3所示。

表3.3学生信息表

列名

数据类型

允许为空

说明

filedStudentID

自动编号

不允许

学生编号

filedStudentNumber

文本

不允许

学号,主键

filedName

文本

不允许

姓名

filedSex

文本

不允许

性别

filedRace

文本

不允许

民族

filedAddress

文本

不允许

家庭住址

filedPhone

文本

不允许

联系电话

filedRole

文本

不允许

政治面貌

filedPostalCode

文本

不允许

邮政编码

filedClassID

文本

不允许

班级编号

filedRemark

备注

允许

备注

filedPicture

OLE对象

允许

照片

3.1.4课程信息表

以课程编号为主键,同时还有班级编号、课程名称等属性。

具体属性设定如表3.4所示。

表3.4课程表

列名

数据类型

允许为空

说明

filedCourseID

自动编号

不允许

课程编号,主键

filedClassID

数字

不允许

课程编号

filedCourseName

文本

不允许

课程名称

filedSemester

文本

不允许

学期

3.1.4成绩表

以成绩编号为主键,同时还有学期、学号等属性。

具体属性设定如表3.5所示。

表3.5成绩表

列名

数据类型

允许为空

说明

filedScoreID

自动编号

不允许

成绩编号,主键

filedSemester

文本

不允许

学期

filedStudentNumber

文本

不允许

学号

filedCourseName

文本

不允许

课程名称

filedScore

数字

不允许

分数

3.2系统功能详细设计

3.2.1信息添加模块

此模块用来添加专业、班级、学生、课程和成绩信息。

进入此界面,按要求进行操作,对相应信息进行填写或选择,以实现该模块功能。

以下只列出学生信息添加功能流程图。

如图3.1所示。

图3.1学生信息添加流程图

 

3.2.2信息浏览模块

此模块用来浏览专业、班级、课程、学生和成绩信息。

用户进入此模块后,按要求输入条件,就可以查询到相应的信息。

同时,用户可以对查询到的信息进行修改或删除。

以下只列出学生信息浏览功能流程图。

如图3.2所示。

图3.2学生信息浏览流程图

3.2.3成绩查询模块

此模块用来查询和统计成绩信息。

用户进入此模块后,按要求输入学号和学期,就可以查询到相应的成绩信息和统计信息。

学生成绩查询功能流程图如图3.3所示。

图3.3程序查询流程图

第4章调试分析

(1)SQL语句问题

问题描述:

在写代码时,SQL语句经常会出现输写错误,有时是格式出错,有时是属性添加错误,或者是添加不全,有时返回值与我想要的结果不符合。

问题分析:

对SQL的语句书写不熟练,格式不明确,对数据库的属性信息记得不够仔细。

解决方法:

通过查看书本,按照书本上的格式认真书写,并对照数据库看属性信息是否有误。

(2)对象的类型转换

问题描述:

在程序中,经常用到将对象的类型转换成另一种类型,以便更好的将其功能实现,我运用最多的是将String型转化为INT型,但在转换时经常会出错,比如intseqid=Integer.parseInt(jT1.getText())。

问题分析:

对转换的语句不熟练,不知道语句如何书写以及括号里具体添加什么。

解决方法:

上网查询,也会使用环境的提示工具来解决。

(3)窗体属性的设定

问题描述:

在运行程序时,运行完毕一个窗体的功能,点击关闭之后能返回到主窗体,都全部关闭,要想运用其他功能只能重新登录或者不关闭此次使用的窗体

问题分析:

这个问题是在程序完成之后发现的,是窗体的属性设定为EXIT_ON_CLOSE,应该设定为HIDE

解决方法:

通过上网查询了解,点击窗体,右键属性,在第一栏中的属性EXIT_ON_CLOSE改为HIDE。

 

第5章用户手册

(1)登录界面

用户登录时,先输入用户名和密码,点击登录,只有2者都正确才能登录成功,测试结果如图5.1所示。

图5.1登录界面

 

(2)浏览信息界面

用户点击按钮进入浏览信息界面,按照要求填写信息,不能漏填,填写完之后点击查询按钮,成功则显示信息,失败显示用户不存在;修改或删除信息则是选中要修改或删除的数据行,点击修改或删除按钮。

如图5.2所示。

图5.2浏览信息界面

(3)添加信息界面

用户点击按钮进入添加信息界面,按照要求填写信息,不能漏填,填写完之后点击添加按钮,成功则显示信息,失败显示学号已存在。

如图5.3所示。

图5.3添加信息界面

(4)成绩查询界面

用户点击按钮进入成绩查询界面,按照要求填写信息,不能漏填,填写完之后点击查询按钮,成功则显示成绩和统计信息,失败显示学号已存在。

如图5.4所示。

图5.4成绩查询界面

参考文献

[1]王小科:

《C#开发实战宝典》,清华大学出版社,2010年。

[2]王国胜,刘攀,尼春雨:

《C#基础与案例开发详解》,清华大学出版社,2009年。

[3]段德亮,余建,张仁才:

《C#课程设计案例精编》,清华大学出版社,2012年。

[4]郑宇军:

《C#语言程序设计基础(第二版)》,清华大学出版社,2012年。

[5]孙晓非,牛小平,冯冠,李乃文:

《C#程序设计基础教程与实验指导》,清华大学出版社,2012年。

[6]前乐秋:

《软件工程》,清华大学出版社,2007.

[7]郑宇军.C#程序设计基础[M].北京:

清华大学出版社,2011年.

[8]郑阿奇.《SQLserver数据库教程》.人民邮政出版社,2008年.

[9]王小科.《C#从入门到精通》.清华大学出版社,2011年.

[10]罗富强.《C#程序设计经典教程》.清华大学出版社,2012年.

 

附录(部分程序清单)

登录代码

namespaceScholRollSystem

{

publicpartialclassfrmLogin:

Form

{

publicfrmLogin()

{

InitializeComponent();

}

privatevoidbtLogin_Click(objectsender,EventArgse)

{

if(tbUserName.Text.Trim()==""&&tbPwd.Text.Trim()=="")

{

MessageBox.Show("请将信息输入完整!

");

}

else

{

OleDbConnectionconn=newOleDbConnection(frmMain.odbcConnStr);

conn.Open();

stringsql="selectfiledUserName,filedUserRolefromtbUserInfowherefiledUserName='"+tbUserName.Text.Trim()+

"'andfiledUserPwd='"+tbPwd.Text.Trim()+"'";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,conn);

DataSetds=newDataSet();

adp.Fill(ds);

if(ds.Tables[0].Rows.Count>0)

{

frmMain.UserName=ds.Tables[0].Rows[0][0].ToString();

frmMain.UserRole=ds.Tables[0].Rows[0][1].ToString();

this.Close();

}

else

{

MessageBox.Show("用户名或者密码错误!

");

}

}

}

privatevoidbtExit_Click(objectsender,EventArgse)

{

Application.Exit();

}

privatevoidfrmLogin_Load(objectsender,EventArgse)

{

}

}

}

浏览信息代码

namespaceScholRollSystem

{

publicpartialclassfrmBrowseStudent:

Form

{

publicfrmBrowseStudent()

{

InitializeComponent();

}

//载入专业列表

privatevoidfrmBrowseStudent_Load(objectsender,EventArgse)

{

OleDbConnectionconn=newOleDbConnection(frmMain.odbcConnStr);

conn.Open();

stringsql="selectfiledSpecialtyID,filedSpecialtyNamefromtbSpecialtyInfo";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,conn);

DataSetds=newDataSet();

adp.Fill(ds);

cbSpecialty.DataSource=ds.Tables[0].DefaultView;

cbSpecialty.DisplayMember="filedSpecialtyName";

cbSpecialty.ValueMember="filedSpecialtyID";

tbYear.Text=DateTime.Now.Year.ToString().Trim();

conn.Close();

}

//当年份发生变化时载入相应的班级

privatevoidtbYear_TextChanged(objectsender,EventArgse)

{

if(tbYear.Text.Trim()!

=""&&tbYear.Text.Trim().Length==4&&ValiYear(tbYear.Text.Trim()))

{

OleDbConnectionconn=newOleDbConnection(frmMain.odbcConnStr);

conn.Open();

stringsql="selectfiledClassID,filedClassNamefromtbClassInfowherefiledSpecialtyName='"+cbSpecialty.Text.Trim()+"'";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,conn);

DataSetds=newDataSet();

adp.Fill(ds);

cbClass.DataSource=ds.Tables[0].DefaultView;

cbClass.DisplayMember="filedClassName";

cbClass.ValueMember="filedClassID";

conn.Close();

}

else

cbClass.DataSource=null;

}

privatevoidcbClass_SelectedIndexChanged(objectsender,EventArgse)

{

OleDbConnectionconn=newOleDbConnection(frmMain.odbcConnStr);

conn.Open();

stringsql="selecttbStudentInfo.filedStudentIDas自动编号,tbStudentInfo.filedStudentNumberas学号,tbStudentInfo.filedNameas姓名,"

+"tbStudentInfo.filedSexas性别,tbStudentInfo.filedRaceas民族,tbStudentInfo.filedAddressas家庭住址,tbStudentInfo.filedPhoneas联系电话"+

",tbStudentInfo.filedRoleas政治面貌,tbStudentInfo.filedPostalCodeas邮政编码,tbClassInfo.filedClassNameas班级名称,"+

"tbStudentInfo.filedRemarkas备注fromtbStudentInfoinnerjointbClassInfoontbStudentInfo.filedClassID=tbClassInfo.filedClassID"+

"wheretbClassInfo.filedClassName='"+cbClass.Text.Trim()+"'orderbyfiledStudentNumber";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,conn);

DataSetds=newDataSet();

adp.Fill(ds);

if(ds.Tables[0].Rows.Count!

=0)

dgvStudent.DataSource=ds.Tables[0].DefaultView;

else

dgvStudent.DataSource=null;

}

///

///自定义判断年份函数

///

///年份

///

publicstaticboolValiYear(strings)

{

if(s.Trim().Length!

=4)

returnfalse;

else

{

inti=1;

for(intj=0;j<=s.Length-1;j++)

{

if(!

Char.IsNumber(s[j]))

{

i=-1;

break;

}

}

if(i==1)

returntrue;

else

returnfalse;

}

}

//当焦点移出入学年份输入框时判断输入是否合法

privatevoidtbYear_Leave(objectsender,EventArgse)

{

if(!

ValiYear(tbYear.Text))

{

MessageBox.Show("请输入合法的入学年份!

","错误提示");

tbYear.Text=DateTime.Now.Year.ToString();

cbClass.DataSource=null;

}

}

 

//修改按钮事件

privatevoidbtUpdate_Click(objectsender,EventArgse)

{

DataGridViewRowdr=this.dgvStudent.CurrentRow;

if(dr!

=null)

{

stringstudentNum=dr.Cells[1].Value.ToString().Trim();

frmUpdateStudentfrmUpate=newfrmUpdateStudent(studentNum);

frmUpate.MdiParent=this.MdiParent;

frmU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1