2024年4月12日发(作者:)

.NET课程设计报告

习 项

生 姓

2010年 8 月

1

实 目 称

学 名

指导教师

学生管理系统

一、开发背景:

随着时代的发展,学校的规模不断扩大,学生的数量也不断增多,这就要求学

校有一套完善的学生管理系统来对学生进行管理。可以通过此系统对所有学生的信

息进行查询,对所有学生进行专业、学院等信息的高效管理。而传统的纸媒介管理

信息难于查询,汇总等。随着计算机和网络的普及就迫切要求有一套高效、可靠的

系统来管理,本系统再这种背景下应运而生,不仅满足了其需求,更从根本上保证

了信息的真实性、持久性。更使得在管理上实现了系统化、规范化、自动化,从而

极大地提高了学生的管理信息效率。

二、系统需求分析:

1:系统需求

尽量采用学校现有的软硬件环境及先前的管理方案,从而达到充分利用学校资

源,提高系统开发水平和应用效果的目的。系统应符合学校学生信息管理的规定,满

足学校学生管理的需求,并达到操作简单、直观、方便、实用安全等要求。系统采用

模块化程序的设计方法,既便于协调功能的组合和修改,又便于未参与系统开发的技

术维修人员的补充和维护。

2:功能需求

本系统需要实现以下功能。

2.1 教师管理

2.1.1 教师资料管理:查询、删除、编辑

2.1.2 教师信息添加

2.2 学生管理

2.2.1

2.2.2

2.2.3

2.2.4

学生资料管理:查询、删除、编辑

学生资料添加

学生所在院系资料:查询、添加、编辑、删除

学生所在专业资料:查询、添加、编辑、删除

2.3 课程管理

2.3.1 课程资料管理:查询、添加、编辑、删除

2.3.2 课程类别资料:查询、添加、编辑、删除

2.4 成绩管理

2.4.1 学生成绩查询:查询、添加、编辑、删除

2.4.2 学生成绩录入

2.5 班级管理

2.5.1 班级资料管理:查询、添加、编辑、删除

2.6 用户管理

添加不同类型的管理员如超级管理员和普通管理员(超级管理员有此特权)

三、系统设计

2

1:系统功能设计

学生管理系统主要要实现用户、教师、学生、课程、成绩、班级的信息管理。

所以可以分成6个大板块。

学生信息管理系统

理 加 料 料

理 加 料

2:页面设计

由三部分构成:总框架、页面顶部、页面左部分、页面右部分

总框架:内嵌顶部、左边html

页面顶部:显示logo,为不变部分

页面左部分:为导航部分,点击进入详细页面,也为不变部分

页面右部分:为可变部分,用来显示具体信息

3:数据库设计

(1)数据库概念结构设计

3

学生

选修

课程

所属

班级

所属

专业

教授

教师

所属

院系

实体之间E-R图

(2)数据库逻辑结构设计

学生公寓管理系统由6个数据表构成,每个表的基本信息如下

班级信息表 Class

列名

classID

className

specialityID

specialityName

EntranceYear

MonitorID

课程信息表 Course

列名

courseID

coursename

coursetypeID

数据类型

char(7)

varchar(12)

char(5)

varchar(30)

char(4)

char(10)

可否为空

Not null

Not null

NULL

NULL

NULL

NULL

主码

说明

班号

班级名称

所属专业

专业名称

入学年份

班长

数据类型

char(8)

Varchar(20)

Varchar(3)

可否为空

Not Null

Not Null

NULL

NULL

NULL

NULL

NULL

主码

主码

说明

课程号

课程名称

课程类别

学分

总学时

周学时

备注

totalperiod tinyint

weekperiod tinyint

credithour tinyint

remark varchar(50)

课程类别表 Coursetype

4

列名 数据类型

coursetypeID Varchar(3)

typename Varchar(18)

院系信息表 Department

列名 数据类型

DepartmentID char(3)

DepartmentName Varchar(30)

DepartmentHead char(8)

成绩信息表 Grade

列名 数据类型

studentID Varchar(10)

courseID Varchar(8)

grade tinyint

系统用户表 Speciality

列名 数据类型

specialityID char(5)

specialityName Varchar(30)

departmentID char(3)

专业课程表 Speciality_course

列名 数据类型

specialityID char(5)

courseID char(8)

学生信息表 student

列名 数据类型

studentID char(10)

studentName varchar(10)

nation char(10)

sex char(2)

birthday datetime

classID char(7)

telephone varchar(16)

credithour tinyint

可否为空

Not NULL 主码

Null

说明

课程类别代码

课程类别名

可否为空

Not Null 主码

Not NULL

Null

说明

院系代码

院系名称

辅导员

可否为空

Not Null 主码

Not Null 主码

Null

说明

学号

课程号

分数

可否为空

Not Null 主码

Not Null

Null

说明

专业代码

专业名称

所属院系

可否为空

Not Null 主码

Not Null 主码

说明

专业代码

课程代码

可否为空

Not Null

Not Null

Null

Null

Null

Null

Null

Null

主码

说明

学号

学生姓名

民族

性别

出生年月

班号

电话

一修学分

5

ru_date

address

pwd

remark

教师信息表 Teacher

列名

teacherID

teacherName

departmentID

sex

technicalPost

telephone

homeAddr

pwd

remark

用户表 users

列名

username

mypassword

usertype

4:详细设计

char(4)

varchar(50)

varchar(16)

varchar(200)

Null

Null

Null

Null

入学年份

住址

密码

备注

数据类型

char(8)

varchar(10)

char(3)

char(2)

char(16)

char(16)

varchar(50)

varchar(16)

varchar(200)

可否为空

Not Null

Not Null

Null

Null

Null

Null

Null

Null

Null

主码

说明

教师号

教师姓名

所属院系

性别

职称

电话

住址

密码

备注

数据类型

char(10)

varchar(50)

varchar(20)

可否为空

Not Null 主码

Null

Null

说明

用户名

密码

用户类型

首先建立公寓管理系统数据库,在此基础上建立相关的表。建成之后导入相关工

目录下,继而实现高级语言与数据库的通信。

普通管理员:

进行所有信息的管理,添加查找,编辑,删除。不能进行用户信息管理

超级管理员:

进行用户信息添加,普通管理员无此功能

5:类图

6

6:相关技术

信息显示:

通过table显示个人信息和进行添加,这样便然我有熟悉了Dreamweaver的使用,而需

要全部显示的数据直接通过GridView绑定,例如添加学生信息的table

Untitled Page

7

 

 

 

 

 

SiteMapProvider="defaultSiteMap">

ID="TextBox7" runat="server" CssClass="text"

ID="TextBox8" runat="server"

ID="TextBox5" runat="server" CssClass="text"

ID="RadioButtonList1" runat="server"

ID="TextBox2" runat="server"

ID="TextBox1" runat="server" CssClass="text"

9

当前用户

      

学生

资料  

Width="62px">

ID="Label1" runat="server" Text="学号:"

ID="SiteMapPath1" runat="server" Font-Size="Small"

8

Width="90px">

CssClass="text">

 

RepeatDirection="Horizontal"

RepeatLayout="Flow" Width="74px">

 

Width="142px">

CssClass="text">

Width="146px">

 

TextMode="Password" Width="145px">

Width="574px">

备注

 

runat="server"

CssClass="text" Height="102px" TextMode="MultiLine" Width="672px"

OnTextChanged="TextBox6_TextChanged">

/>

/>

/>

ID="TextBox10" runat="server" CssClass="text"

10

分页显示:

protected void Page_Load(object sender, EventArgs e)

{

string sms_connstr = tings["sms_dbconn"];

// 建立连接

sms_conn = new SqlConnection(sms_connstr);

PageSize =8;

if (!IsPostBack)

{

ListBind();

ViewState["PageIndex"] = 0;

RecordCount = CalculateRecord();

= ng();

//计算总共有多少页

if ((RecordCount % PageSize) == 0)

PageCount = (RecordCount / PageSize);

else

PageCount = (RecordCount / PageSize) + 1;

= ng();

ViewState["PageCount"] = PageCount;

sms_();

string sms_sqlstr2 = "select specialityname from [speciality]";

SqlDataAdapter sms_da2 = new SqlDataAdapter(sms_sqlstr2, sms_conn);

DataSet sms_ds2 = new DataSet();

sms_(sms_ds2, "T");

sms_();

urce = sms_["T"];

xtField = "specialityname";

lueField = "specialityname";

nd();

sms_();

sms_e();

}

}

//计算总共有多少条记录

public int CalculateRecord()

{

int intCount;

11

string strCount = "select count(*) as co from class";

sms_();

SqlCommand MyComm = new SqlCommand(strCount, sms_conn);

SqlDataReader dr = eReader();

if (())

{

intCount = (dr["co"].ToString());

}

else

{

intCount = 0;

}

();

sms_();

return intCount;

}

public void ListBind()

{

sms_urce = CreateSource();

sms_nd();

d = true;

d = true;

if (CurrentPage == (PageCount - 1)) d = false;

if (CurrentPage == 0) d = false;

= (CurrentPage + 1).ToString();

}

public void Page_OnClick(Object sender, CommandEventArgs e)

{

CurrentPage = (int)ViewState["PageIndex"];

PageCount = (int)ViewState["PageCount"];

string cmd = dName;

//判定翻页方向

switch (cmd)

{

case "next":

if (CurrentPage < (PageCount - 1)) CurrentPage++;

break;

case "prev":

if (CurrentPage > 0) CurrentPage--;

break;

}

ViewState["PageIndex"] = CurrentPage;

ListBind();

12

}

:连接数据库

key="SMS_dbconn" value="SERVER=127.0.0.1;Initial Catalog=SMSstudent;Integrated

Security=True" />

<>

enabled="false" requestLimit="10"

mode="InProc"

pageOutput="false" traceMode="SortByTime"

localOnly="true"/>

name="defaultSiteMap"

type="eMapProvider"

siteMapFile="~/p"/>

p:站点图

13

四、总结

学生管理系是一个初学者经常会练习的项目,以前在学习C++或是Java的时候就已经

做过这个项目,所以现在做起来在总体上的架构还是很了解的,故作起来有一定的思路,只

是时间问题。学习了半年的.Net并且在实习中也已经练习了一些小程序,这次的项目就当是

对以前所学的知识进行一个综合的应用。我想对于一个项目,你想把它做的复杂,他就可以

做的复杂,想简单就可以简单,你可以只是简单实现功能,却不去考虑界面问题,运行效率,

安全性等问题,但是一个好的系统就应该考虑这些因素。当然,这需要付出更多的努力。本

次练习我用了以前没接触过的控件,并且认为网页制作功底很重要,因为显示信息的时候会

用到大量的网页相关知识,比如表格,表单,DIV,或是JavaScript,XML等。总之,一个

好的系统会用到很多知识,而我感觉这些都是我应该加强的,并且应该多多学习。

14