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
分页显示:
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


发布评论