C#期末测试大作业Word下载.docx
《C#期末测试大作业Word下载.docx》由会员分享,可在线阅读,更多相关《C#期末测试大作业Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
计算机科学与技术
所在院(系):
电子信息与工程学
姓名:
孙尊路
指导教师:
填写日期:
2014年6月
一.系统概要设计
1.系统总体模块结构设计
学生管理系统总体结构的设计分为两个部分的设计,分别是前台界面的设计,后台代码模块的设计。
其中前台界面的设计,即对用户所属功能模块设计;
而后台代码模块的设计,即对功能代码的具体实现。
系统总体模块结构图如下图4-3所示。
学生管理系统
用户管理
后台管理模块
学生管理
用户注册
用户
登录
注销
学生添加
学生删除
学生修改
学生查询
图1-1系统总体模块结构图
其中,后台管理模块由用户管理和学生管理等模块组成。
在后台管理模块中,各级管理员可以通过此模块对学生,用户,以及权限进行管理。
1.1系统总体处理流程
学生管理系统总体流程图的设计,后台管理模块的设计。
系统总体的流程图如图所示。
学生管理信息系统
用户登录
身份验证
失败
系统总体的流程图
1.2.数据库设计
1.2.1概念结构设计
通过了解学生管理系统要实现的功能,可以得学生管理数据库包含的实体有“管理员”、和“学生”。
管理员的属性有:
用户名、密码,权限
读者的属性有:
学生姓名、学号、性别、专业、、入学时间、家庭住址、所在校区、班级
在本系统中,涉及到用户、学生等实体。
它们之间的关系如图:
E-R图所示。
学生
学号
入学时间
班级
姓名
家庭住址
专业
性别
密码
权限
实体间的E-R图
1.2.2逻辑结构设计
数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。
在本系统中,主要设计了管理员表和学生信息表。
表的具体设计如下:
学生信息表用于存储读者的相关信息,如:
姓名,学号,入学时间,性别,班级,专业,家庭住址,所在校区等。
表的结构如下表4-1所示
学生信息表
字段名
类型与宽度
是否主键
是否允许空值
说明
varchar(50)
√
×
char(8)
所在校区
管理员表用于存储借出图书的相关信息,如:
用户名,权限。
表的结构如下表2-2所示
管理员表
用户名
char(10)
二系统详细设计与实现
2.1登录界面的详细设计与实现
在进入系统进行各项具有相关操作功能的操作之前,首先会先进入登录界面,在此需要输入相关的登录名和密码,并选择是登录,登录运行界面如图所示:
图5-1登录运行界面
当管理员登录进入系统后,将会进行相关的操作。
下面具体的介绍管理员各个功能模块的界面设计与实现。
实现此功能的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace学生管理系统
{
publicpartialclass登录:
Form
{
publicstaticstringname;
publicstaticstringpassword;
publicstaticstringentry;
public登录()
InitializeComponent();
}
privatevoidlabel2_Click(objectsender,EventArgse)
privatevoid登录_Load(objectsender,EventArgse)
privatevoidbutton1_Click(objectsender,EventArgse)
if(this.textBox1.Text=="
"
||this.textBox2.Text=="
)
MessageBox.Show("
请输入用户名和密码"
);
else
SqlConnectioncon=newSqlConnection();
//创建连接
con.ConnectionString="
server=(local);
database=StudentDBMS;
uid=sa;
pwd=123456"
;
con.Open();
SqlCommandcmd=con.CreateCommand();
cmd.CommandText="
select*from登录"
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
stringpower=dr[0].ToString();
主界面main=new主界面();
main.Tag=this.FindForm();
this.Visible=false;
main.ShowDialog();
this.Close();
用户名或密码错误!
con.Close();
privatevoidbutton2_Click(objectsender,EventArgse)
publicvoidtextBox1_TextChanged(objectsender,EventArgse)
name=this.textBox1.Text;
cmd.CommandText="
select权限from登录where姓名='
+this.textBox1.Text+"
'
SqlDataReadersqlread=cmd.ExecuteReader(CommandBehavior.CloseConnection);
if(sqlread.Read())
label4.Text=sqlread["
权限"
].ToString();
entry=this.label4.Text.Trim();
publicvoidtextBox2_TextChanged(objectsender,EventArgse)
password=this.textBox2.Text;
}
2.2后台管理模块的详细设计与实现
2.2.1学生查询模块设计与实现
学生查询模块的功能主要是根据“学号“,“姓名”,“入学时间”,“所在班级”,“家庭住址”“专业”等查询学生信息。
此页面主要是操作数据库StudenDBMS的“学生”表,使用模糊查询。
学生查询运行界面如图所示:
图:
学生查询运行界面
从界面中,实现此功能的代码如下:
usingSystem;
usingSystem.Linq;
namespace学生管理系统
publicpartialclass查询学生:
public查询学生()
privatevoidlabel1_Click(objectsender,EventArgse)
privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)
stringtempValue=comboBox1.Items[comboBox1.SelectedIndex].ToString();
password=123456;
database=StudentDBMS"
if(tempValue=="
姓名"
stringco="
select*from学生where姓名='
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(co,con);
da.Fill(ds);
dataGridView1.DataSource=ds.Tables[0];
入学时间"
select*from学生where入学时间='
学号"
select*from学生where学号='
班级"
select*from学生where班级='
专业"
select*from学生where专业='
家庭住址"
select*from学生where家庭住址='
所在校区"
select*from学生where所在校区='
2.2.2学生添加模块的设计与实现
学生添加运行界面如图5-3所示:
学生添加运行界面
:
publicpartialclass添加学生:
public添加学生()
privatevoid添加学生_Load(objectsender,EventArgse)
privatevoidgroupBox1_Enter(objectsender,EventArgse)
if(this.textBox1.Text!
="
stringa=this.textBox1.Text;
stringc=this.textBox2.Text;
stringb=this.dateTimePicker1.Value.ToShortDateString();
stringd=this.textBox4.Text;
stringer=this.textBox5.Text;
stringf=this.textBox6.Text;
stringg=this.textBox7.Text;
stringh=this.textBox8.Text;
insertinto学生(姓名,入学时间,学号,班级,性别,专业,家庭住址,所在校区)"
+"
values('
+a+"
'
+b+"
+c+"
+d+"
+er+"
+f+"
+g+"
+h+"
)"
intdd=cmd.ExecuteNonQuery();
if(dd==1)
添加成功!
请输入用户名!
privatevoidtextBox6_TextChanged(objectsender,EventArgse)
privatevoidlabel7_Click(objectsender,EventArgse)
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
2.2.3删除学生模块的设计与实现
删除学生模块的功能主要是根据学生姓名。
删除学生运行界面如图5-4所示:
删除运行界面
publicpartialclass删除学生:
public删除学生()
DialogResultresult=newDialogResult();
result=MessageBox.Show("
确定要删除该学生?
"
警告!
MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
switch(result)
caseDialogResult.OK:
deletefrom学生where姓名='
cmd.Connection=con;
intd=cmd.ExecuteNonQuery();
if(d==1)
删除成功"
}break;
caseDialogResult.Cancel:
break;
privatevoidbutton3_Click(objectsender,EventArgse)
textBox1.Clear();
privatevoidbutton3_Click_1(objectsender,EventArgse)
2.2.4浏览学生模块的设计与实现
浏览学生运行界面如图5-5所示:
浏览学生运行界面
浏览按钮的主要代码:
using