C#+sql学生成绩管理系统Word文档格式.docx
《C#+sql学生成绩管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C#+sql学生成绩管理系统Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
对学生信息的进行添加,删除,修改,查询操作。
教师管理:
对教师信息的进行添加,删除,修改,查询操作。
课程管理:
对课程信息的进行添加,删除,修改,查询操作。
成绩管理:
对学生成绩信息的进行添加,删除,修改,查询操作。
用户管理:
对用户进行删除操作。
4可扩展性
能够适应应用要求的变化和修改,具有灵活的可扩充性。
5安全性
具有较高的安全性。
系统对不同的用户提供不同的功能模块,只有具有高级权限的部门管理者或维护人员用户才能对用户和图书信息进行增加、修改和删除等管理,一般的读者用户只能查看图书信息和借阅情况。
还应具有一定的保护机制,防止系统被恶意攻击,信息被恶意修改和窃取。
有完善的备份机制,如果系统被破坏应该能快速恢复。
三数据库设计
1四个表的E-R实体模型图分析
用E-R图总体描述实体,如下图2所示
图2E-R
图
在教学管理中,学校开设若干门学科,一门课程可以由多个教师来教,每个学生
也需要学习其中的几门课程,因此,教学管理中涉及的对象有学生,教师和课程。
用E-R图描述他们之间的联系。
其中学生和课程之间是多对多的关系,教师和课程是多对一有关系
2设计数据表
通过E-R图分析,现在已经对数据库有一个很清梦的认识,此学生成绩信息表中有5个表需要建立
学生信息表(Student),包括学号(Sno)、姓名(Sname)、民族(Snation)、性别(Ssex)、年龄(Sage);
教师信息表(Teacher),包括教师编号(Tno)、姓名(Tname)、性别(Tsex)、年龄(Tage)、毕业院校(Tcollege)、讲授课程(Ton);
课程信息表(Course),包括课程编号(Cno)、课程名称(Cname),课程学分(Cgrade)
学生成绩表(Grade)、包括学生学号(Sno)、课程编号(Cno)、成绩(Ggrade)
用户表(Users),包括用户名(Uname)、密码(Umima)
3实际操作
建立数据库US,建立以下各表
(1)学生信息表
包括学号、姓名、民族、性别、年龄等,用于存储学生的主要信息,可以通过前台对学生表数据进行增加、删除、修改、查询操作。
学生表的主键是Sno(学生学号)。
学生表是本数据库的重要信息表。
表1学生表
(2)教师基本信息
包括教师编号、姓名、性别、年龄、毕业院校、讲授课程等。
用于存储教师的主要信息,可以通过前台对课程表数据进行增加、删除、修改、查询操作。
教师表的主键是Tno(教师编号),外键是Ton(课程号)教师表是本数据库的重要信息表。
表2教师表
(3)课程基本信息
包括课程编号、课程名称,课程学分等,用于存储课程的主要信息,可以通过前台对课程表数据进行增加、删除、修改、查询操作。
课程表的主键是Cno(教师编号),外键是Ton(课程号),课程表是本数据库的重要信息表。
表3课程表
(4)学生成绩信息
包括学生学号、课程编号、成绩等。
用于存储学生成绩的主要信息,可以通过前台对成绩表数据进行增加、删除、修改、查询操作。
课程表的主键是(Sno(学生学号),Cno(课程编号),成绩表是本数据库的重要信息表。
表4成绩表
(5)用户管理信息
包括用户名、密码等,用于存储用户信息,在登录时进行验证。
表5用户表
四各功能模块设计
1建库代码
--创建数据库SU
createdatabaseSU;
--连接数据库SU
useSU;
--创建Student表
createtableStudent(
Snochar(10)primarykey,
Snamevarchar(8)notnull,
Snationvarchar(20)notnull,
Ssexchar
(2)check(Ssexin('
男'
'
女'
)),
Sagesmallintcheck(Sage>
=5andSage<
=30)
);
--创建Course表
createtableCourse(
Cnochar(3)primarykey,
Cnamechar(36)notnull,
Cgradesmallint,check(Cgrade>
=0andCgrade<
=6),
)
--创建Teacher表
createtableTeacher(
Tnochar(3)primarykey,
Tnamevarchar(8)notnull,
Tsexchar
(2)check(Tsexin('
Tagesmallintcheck(Tage>
=25andTage<
=60),
Tcollegevarchar(36),
Tonchar(3),
foreignkey(Tno)referencesCourse(Cno)
--创建Grade表
createtableGrade(
Snochar(10),
Cnochar(3),
Ggradeintcheck(Ggrade>
=0andGgrade<
=100)
primarykey(Sno,Cno)
foreignkey(Sno)referencesStudent(Sno)
ondeletecascade
onupdatecascade,
foreignkey(Cno)referencesCourse(Cno)
--创建用户表
createtableusers(
Unamevarchar(8)primarykey,
Umimavarchar(20)notnull
2C#后台主要代码
(1)学生信息添加模块,输入要添加的学生信息,点击添加键即可将学生信息添加到学生表中,具体效果如图3所示
图3学生信息添加效果图
{
try
{
conn.Open();
stringsql=@"
select*fromStudentwhereSno='
"
+this.studentID.Text+"
'
;
SqlCommandcmd=newSqlCommand(sql,conn);
SqlDataReadersdr=cmd.ExecuteReader();
if(sdr.Read()==true)
Response.Write("
<
script>
window.alert('
该学生已经存在,请换名!
/script>
conn.Close();
}
else
cmd.CommandText=@"
insertintoStudent(Sno,Sname,Snation,Ssex,Sage)values('
+this.studentName.Text+"
+this.studentMZ.Text+"
+this.DropDownList1.Text+"
+this.studentAge.Text+"
)"
cmd.ExecuteNonQuery();
恭喜您,添加成功!
catch(Exceptionex)
添加失败!
}
(2)学生信息删除模块,直接点击删除键,则将该学生信息从学生表中删除,具体效果如图4所示
图4学生信息删除效果图
protectedvoidshanchu(objectsender,EventArgse)
conn.Open();
stringsql=@"
deletefromStudentwhereSno='
+this.StudentID.Text+"
SqlCommandcmd=newSqlCommand(sql,conn);
删除成功!
}
(3)学生信息修改模块,修改学生信息,点击提交键,具体效果如图5所示
图5学生信息编辑效果图
publicpartialclassST_studentmodify:
System.Web.UI.Page
SqlConnectionconn=newSqlConnection(ConfigurationSettings.AppSettings["
connString"
]);
protectedvoidPage_Load(objectsender,EventArgse)
if(!
this.IsPostBack)
stringUserId=this.Request.QueryString["
id"
].ToString();
select*fromstudentwhereSno='
+UserId+"
SqlDataReadersdr=cmd.ExecuteReader();
if(sdr.Read())
this.StudentID.Text=sdr["
Sno"
this.StudentName.Text=sdr["
Sname"
this.StudentMZ.Text=sdr["
Snation"
this.DropDownList1.Text=sdr["
Ssex"
this.StudentAge.Text=sdr["
Sage"
conn.Close();
protectedvoidtijiao(objectsender,EventArgse)
updateStudentsetSno='
Sname='
+this.StudentName.Text+"
Snation='
+this.StudentMZ.Text+"
Ssex='
Sage='
+this.StudentAge.Text+"
whereSno='
SqlCommandcmd=newSqlCommand(sql,conn);
cmd.ExecuteNonQuery();
conn.Close();
修改成功!
(4)学生信息搜索模块,输入要查询的学生的学号,点出搜索即可,具体效果如图6所示
图6学生信息搜索效果图
protectedvoidButtonSearch_Click(objectsender,EventArgse)
SqlConnectioncon=newSqlConnection(ConfigurationSettings.AppSettings["
stringsql="
if(this.studentID.Text=="
sql=@"
select*fromStudentwhereSnolike'
%'
select*fromStudentwhereSno='
DataSetds=newDataSet();
con.Open();
SqlDataAdaptersda=newSqlDataAdapter(sql,con);
sda.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataBind();
(5)登录后台代码,具体效果如图7所示
图7学生信息添加效果图
ProtectedvoidLoginOK_Click(objectsender,ImageClickEventArgse)
select*fromUserswhereUname='
+this.UsersName.Text+"
andUmima='
+this.UsersPwd.Text+"
if(sdr.Read()==true)
Response.Redirect("
Default.aspx"
{
您输入的用户密码有误!
(6)学生信息显示前台及后台代码
前台代码:
%@PageLanguage="
C#"
AutoEventWireup="
true"
CodeFile="
ST_student.aspx.cs"
Inherits="
ST_studest"
%>
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
"
>
htmlxmlns="
>
headrunat="
server"
<
title>
无标题页<
/title>
/head>
body>
formid="
form1"
runat="
div>
tablealign="
center"
width="
95%"
tr>
tdbgcolor="
#999999"
学生信息显示:
/td>
/tr>
td>
学生学号:
asp:
TextBoxID="
studentID"
/asp:
TextBox>
&
nbsp;
ButtonID="
ButtonSearch"
OnClick="
ButtonSearch_Click"
Text="
搜索"
/>
tdstyle="
height:
20px"
GridViewID="
GridView1"
AutoGenerateColumns="
False"
Width="
100%"
OnSelectedIndexChanged="
GridView1_SelectedIndexChanged"
Columns>
BoundFieldDataField="
HeaderText="
学号"
姓名"
民族"
性别"
年龄"
TemplateFieldHeaderText="
修改/删除"
ItemTemplate>
ahref="
ST_studentmodify.aspx?
id=<
%#DataBinder.Eval(Container.DataItem,"
)%>
删除/修改<
/a>
/ItemTemplate>
TemplateField>
/Columns>
GridView>
LinkButtonID="
Stianjia"
PostBackUrl="
~/ST_studentadd.aspx"
学生添加<
LinkButton>
/table>
/div>
/form>
/body>
/html>
后台代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassST_studest:
DataViewddd;
{
select*fromStudent"
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
ddd=ds.Tables[0].DefaultView;
this.GridView1.DataSource=ddd;
this.GridView1.DataBind();
protectedvoidButtonSearch_Click(objectsender,EventArgse)
if(this.studentID.Text