目录

利用SQL Sever和 VS C#实现

一、程序流程图

二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库

1、新建一个名为MySchool的数据库​​​​​​​

2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作

(1)主界面

(2)学生登录页面

(3)个人主页

(4)注册页面

(5)管理员登录页面

(6)管理员主页

(7)登录日志页面

(8)学生信息页面

(9)课程信息页面

(10)学生成绩信息页面

(11)成绩统计页面

(12)在主界面点击右上角的“×”即退出系统。


利用SQL Sever和 VS C#实现

一、程序流程图

图1:程序流程图

二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库

1、新建一个名为MySchool的数据库

(1)首先,连接数据库,一定一定要选择“SQL Sever身份验证”方式建立连接,不懂怎么用这种方式连接的可以自行搜索一下,很简单。

图2:数据库连接

(2)新建一个名为“MySchool”的数据库,其中含有的表如下:

图3:MySchool数据库

对应的SQL语句如下:

USE MySchool;DROP TABLE IF EXISTS SC       /*成绩*/
DROP TABLE IF EXISTS Student  /*学生信息*/
DROP TABLE IF EXISTS Course   /*课程*/
DROP TABLE IF EXISTS StudentUser  /*学生用户信息*/
DROP TABLE IF EXISTS Administrator  /*管理员用户信息*/
DROP TABLE IF EXISTS SysLog   /*注册日志*/
DROP TABLE IF EXISTS SysLog1   /*登陆日志*/
DROP TABLE IF EXISTS AVG1   /*登陆日志*/CREATE TABLE StudentUser          ( ID NCHAR(20) PRIMARY KEY,               /*学号*/  PassWord NCHAR(32) ,                    /*密码*/Sex CHAR(2) ,                         /*性别*/Birthday datetime,                        /*生日*/UserMobile NCHAR(11),                 /*电话号码*/); CREATE TABLE Administrator          (    ID NCHAR(20) PRIMARY KEY,               /*工号*/  PassWord NCHAR(32) ,             /*密码*/Sex CHAR(2),                         /*性别*/Birthday datetime,                /*生日*/UserMobile NCHAR(11),                 /*电话号码*/);CREATE TABLE SysLog          (    [UserMobile]UserID NCHAR(20) ,  /*id*/dentity CHAR(20),  /*学生或管理员*/DateAndTime datetime,  /*注册时间*/UserOperation NCHAR(200)  /*操作方式*/);
CREATE TABLE SysLog1          ( UserID NCHAR(20) ,  /*id*/dentity CHAR(20),  /*学生或管理员*/DateAndTime datetime,  /*登陆时间*/UserOperation NCHAR(200)  /*登陆操作方式*/);CREATE TABLE Student          ( Sno CHAR(9) PRIMARY KEY,        /* 列级完整性约束条件,Sno是主码*/                  Sname CHAR(20) UNIQUE,             /* Sname取唯一值*/Ssex CHAR(2),                   /*性别*/Sage SMALLINT,                    /*年龄*/Sdept CHAR(20)                    /*专业*/); CREATE TABLE  Course(  Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),            Cpno CHAR(4),                                      Ccredit SMALLINT, ); CREATE TABLE  SC(Sno CHAR(9), Cno CHAR(4),  Grade SMALLINT,PRIMARY KEY (Sno,Cno),                     /* 主码由两个属性构成,必须作为表级完整性进行定义*/FOREIGN KEY (Sno) REFERENCES Student(Sno),  /* 表级完整性约束条件,Sno是外码,被参照表是Student */FOREIGN KEY (Cno)REFERENCES Course(Cno)     /* 表级完整性约束条件, Cno是外码,被参照表是Course*/); INSERT  INTO  StudentUser VALUES ('20181101111','123456','女',1999-1-1,'13812345678',NULL);
INSERT  INTO  Administrator VALUES ('2018110',substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32),'女',1989-1-1,'13812345687',NULL);
INSERT  INTO  Administrator VALUES ('2018111',substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32),'女',1989-2-1,'13812655687',NULL);INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215121','李勇','男','CS',20);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215122','刘晨','女','CS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215123','王敏','女','MA',18);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215125','张立','男','IS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215128','陈冬','男','IS',20);SELECT * FROM StudentINSERT  INTO Course(Cno,Cname,Cpno,Ccredit)    VALUES ('1','数据库',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('2','数学',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('3','信息系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('4','操作系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('5','数据结构',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('6','数据处理',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit) VALUES ('7','Pascal语言',NULL,4);UPDATE Course SET Cpno = '5' WHERE Cno = '1'
UPDATE Course SET Cpno = '1' WHERE Cno = '3'
UPDATE Course SET Cpno = '6' WHERE Cno = '4'
UPDATE Course SET Cpno = '7' WHERE Cno = '5'
UPDATE Course SET Cpno = '6' WHERE Cno = '7' SELECT * FROM CourseINSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','1',92);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','2',85);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','3',88);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','2',90);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','3',80);SELECT * FROM SC--当学生用户信息更新,触发器启动,将更新的内容存至注册日志
IF(OBJECT_ID('regist_recorder1') is not null)        -- 判断名为 regist_recorder 的触发器是否存在
DROP TRIGGER regist_recorder1        -- 删除触发器
GO
CREATE TRIGGER regist_recorder1
ON StudentUser
AFTER
INSERT
AS declare @UserName    nchar(20)declare @DateTime    datetimedeclare @UserOperation nchar(200)declare @dentity CHAR(20)select @UserName = ID FROM StudentUserselect @DateTime = CONVERT(datetime,GETDATE(),120) select @dentity ='StudentUser'declare @op varchar(10)select @op=case when exists(select 1 from inserted) and exists(select 1 from deleted)then 'Update'when exists(select 1 from inserted) and not exists(select 1 from deleted)then 'Insert'when not exists(select 1 from inserted) and exists(select 1 from deleted)then 'Delete' endselect @UserOperation = @opINSERT INTO SysLog(UserID,dentity,DateAndTime,UserOperation)VALUES (@UserName,@dentity,@DateTime,@UserOperation)--当管理员信息更新,触发器启动,将更新的内容存至注册日志
IF(OBJECT_ID('regist_recorder2') is not null)        -- 判断名为 regist_recorder 的触发器是否存在
DROP TRIGGER regist_recorder2        -- 删除触发器
GO
CREATE TRIGGER regist_recorder2
ON Administrator
AFTER
INSERT
AS declare @UserName    nchar(20)declare @DateTime    datetimedeclare @UserOperation nchar(200)declare @dentity CHAR(20)select @UserName = ID FROM Administratorselect @DateTime = CONVERT(datetime,GETDATE(),120) select @dentity ='Administrator'declare @op varchar(10)select @op=case when exists(select 1 from inserted) and exists(select 1 from deleted)then 'Update'when exists(select 1 from inserted) and not exists(select 1 from deleted)then 'Insert'when not exists(select 1 from inserted) and exists(select 1 from deleted)then 'Delete' endselect @UserOperation = @opINSERT INTO SysLog(UserID,dentity,DateAndTime,UserOperation)VALUES (@UserName,@dentity,@DateTime,@UserOperation)--建一个表存储各科平均分
--建一个表存储各科平均分
CREATE TABLE AVG1(Cname CHAR(10),   /* 科目*/ avg1 INT);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('数据库',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('数学',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('信息系统',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('操作系统',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('数据结构',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('数据处理',NULL);
INSERT  INTO AVG1(Cname,avg1)   VALUES ('Pascal语言',NULL);--将成绩信息通过下列存储过程算出各科平均分并存储至AVG表
IF (exists (select * from sys.objects where name = 'COURSE_AVG1'))DROP PROCEDURE COURSE_AVG1GOCREATE  PROCEDURE COURSE_AVG1ASBEGIN TRANSACTION TRANS  DECLARE @SX INT,    /* 数学总分 */@XXXT INT,    /* 信息系统总分 */@CZXT INT,    /* 操作系统总分 */@SJJG INT,    /* 数据结构总分 */@SJK_C INT,   /* 数据库总分 */@SJCL INT,   /*数据处理总分*/@P INT       /*Pascal语言*/SELECT @SX=AVG(Grade) FROM SCWHERE  Cno='2 'SELECT @XXXT=AVG(Grade) FROM SCWHERE  Cno='3'SELECT @CZXT=AVG(Grade) FROM SCWHERE  Cno='4'SELECT @SJJG=AVG(Grade) FROM SCWHERE  Cno='5'SELECT @SJK_C=AVG(Grade) FROM SCWHERE  Cno='1'SELECT @SJCL=AVG(Grade) FROM SCWHERE  Cno='6'SELECT @P=AVG(Grade) FROM SCWHERE  Cno='7'BEGIN UPDATE AVG1 SET avg1=@SJK_C WHERE Cname='数据库'UPDATE AVG1 SET avg1=@SX WHERE Cname='数学'UPDATE AVG1 SET avg1=@XXXT WHERE Cname='信息系统'UPDATE AVG1 SET avg1=@CZXT WHERE Cname='操作系统'UPDATE AVG1 SET avg1=@SJJG WHERE Cname='数据结构'UPDATE AVG1 SET avg1=@SJCL WHERE Cname='数据处理'UPDATE AVG1 SET avg1=@P WHERE Cname='Pascal语言'COMMIT TRANSACTION TRANS; END

2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作

(1)主界面:主界面包含欢迎文本和两个可选项,如下图3所示分别为“学生登录”和“管理员登录”,选择不同的选项则分别进入不同的页面。

图4:主界面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class FormLogin : Form{public FormLogin(){InitializeComponent();}private void buttonStuLogin_Click(object sender, EventArgs e){FormStuLogin FormStuLogin = new FormStuLogin(); //学生登录窗体FormStuLogin.Show();//跳转至学生登录窗体this.Hide();  //隐藏原窗体}private void buttonManagerLogin_Click(object sender, EventArgs e){FormManagerLogin FormManagerLogin = new FormManagerLogin(); //管理员登录窗体FormManagerLogin.Show();//跳转至管理员登录窗体this.Hide();}private void FormLogin_FormClosing_1(object sender, FormClosingEventArgs e){}private void FormLogin_FormClosed(object sender, FormClosedEventArgs e){while (MessageBox.Show("即将退出系统,您确认退出吗?", "提示!", MessageBoxButtons.YesNo)== DialogResult.Yes){System.Environment.Exit(System.Environment.ExitCode);}}}
}

(2)学生登录页面:在主界面选择学生登录按钮则进入学生登录页面,页面功能如下图所示。若用户有该系统的账号,则可选择直接登录:先输入用户名,密码以及验证码,三者均正确才能登陆成功。

图5:学生登录页面

图6:学生登录成功

若其中一项不正确则会弹窗提示你重新输入,如下图所示:

图7:学生登录失败

对应C#实现如下(连接数据库的代码实现部分大家根据自身情况自行修改,下同):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class FormStuLogin : Form{public FormStuLogin(){InitializeComponent();}public string code;private string EncryptWithMD5(string source)//MD5加密{byte[] sor = Encoding.UTF8.GetBytes(source);MD5 md5 = MD5.Create();byte[] result = md5.ComputeHash(sor);StringBuilder strbul = new StringBuilder(40);for (int i = 0; i < result.Length; i++){strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位}return strbul.ToString();}private void buttonLogin_Click(object sender, EventArgs e){string username = tBUserName.Text.Trim();  //取出账号string password = EncryptWithMD5(tBPassword.Text.Trim());  //取出密码并加密string myConnString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";SqlConnection sqlConnection = new SqlConnection(myConnString);  //实例化连接对象sqlConnection.Open();string sql = "select ID,PassWord from StudentUser where ID = '" + username + "' and PassWord = '" + password + "'";                                            //编写SQL命令SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();//读取数据if (sqlDataReader.HasRows && tBVerifyCode.Text == code)//验证是否有该用户及密码且验证码正确{MessageBox.Show("欢迎使用!");             //登录成功StuMain stuMain = new StuMain();stuMain.GetId(username);stuMain.Show();//显示下一界面this.Hide();}else if (sqlDataReader.HasRows && tBVerifyCode.Text != code){MessageBox.Show("验证码错误,登录失败!");return;}else{MessageBox.Show("账号密码有误,登录失败!");return;}sqlDataReader.Close();sql = "insert into SysLog1 values ( '" + username + "' , 'Student','" + DateTime.Now + "' , '" + "Login" + "')";                                            //编写SQL命令,把登陆信息存入登录日志SqlCommand sqlCommand1 = new SqlCommand(sql, sqlConnection);sqlCommand1.ExecuteNonQuery();sqlConnection.Close();}private void buttonReg_Click(object sender, EventArgs e){this.Hide();RegisterForm registerForm = new RegisterForm();registerForm.Show();}private void FormStuLogin_Load_1(object sender, EventArgs e){//随机实例化 Random ran = new Random();int number;char code1;//取五个数 for (int i = 0; i < 5; i++){number = ran.Next();if (number % 2 == 0)code1 = (char)('0' + (char)(number % 10));elsecode1 = (char)('A' + (char)(number % 26)); //转化为字符 this.code += code1.ToString();}lbVerifyCode.Text = code;}private void lbVerifyCode_Click(object sender, EventArgs e){}private void buttonCancel_Click_1(object sender, EventArgs e){this.Close();}private void FormStuLogin_FormClosing_1(object sender, FormClosingEventArgs e){FormLogin m2 = new FormLogin();m2.Show();}private void lbPassword_Click(object sender, EventArgs e){}}
}

(3)个人主页:学生用户若成功登录则进入个人主页,个人主页共包含“个人基本信息”和“成绩单”两个分页,所展示的信息如下图所示,学生能够看到自己的个人信息和个人成绩,以及各门课程的详细信息。

图8:个人主页——个人信息页

图9:个人主页——成绩单页

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class StuMain : Form{public StuMain(){InitializeComponent();}private void buttonExit_Click(object sender, EventArgs e){this.Close();}string Id;public void GetId(string id)//上个窗体调用此函数,将id值传过来{lbStuId.Text = id;lbStuId.Refresh();Id = id;}private void StuMain_Load_1(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet.Course”中。您可以根据需要移动或移除它。this.courseTableAdapter.Fill(this.mySchoolDataSet.Course);string name, sex, dept, tel;int age;string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串SqlConnection conn = new SqlConnection(connString);//创建connection对象conn.Open();//打开数据库  //创建数据库命令  SqlCommand cmd = conn.CreateCommand();//创建查询语句  cmd.CommandText = "select * from Student where Sno = '" + Id + "';select * from StudentUser where ID = '" + Id + "'";//从数据库中读取数据流存入reader中  SqlDataReader reader = cmd.ExecuteReader();//从reader中读取下一行数据,如果没有数据,reader.Read()返回flase  while (reader.Read()){name = reader.GetString(reader.GetOrdinal("Sname"));sex = reader.GetString(reader.GetOrdinal("Ssex"));age = reader.GetInt16(reader.GetOrdinal("Sage"));dept = reader.GetString(reader.GetOrdinal("Sdept"));lbStuName.Text = name;lbStuName.Refresh();lbStuSex.Text = sex;lbStuAge.Text = age.ToString();lbStuDept.Text = dept;break;}reader.NextResult();//执行下一句操作//从reader中读取下一行数据,如果没有数据,reader.Read()返回flase  while (reader.Read()){tel = reader.GetString(reader.GetOrdinal("UserMobile"));lbPhone.Text = tel;break;}reader.Close();SqlDataAdapter dap = new SqlDataAdapter("select * from SC where Sno='" + Id + "'", conn);//查询DataSet ds = new DataSet();//创建DataSet对象dap.Fill(ds);//填充DataSet数据集dataGridView1.DataSource = ds.Tables[0].DefaultView;//显示查询后的数据conn.Close();int i = 0;int x = 0, h = 0;int a;for (; i < ds.Tables[0].Rows.Count; i++)//读取DataSet中的指定数据{x += int.Parse(ds.Tables[0].Rows[i][2].ToString());if (int.Parse(ds.Tables[0].Rows[i][2].ToString()) > 59)h++;}if (i == 0) a = 0;else a = x / i;lbPassnum.Text = h.ToString();lbAvgSco.Text = a.ToString();}private void StuMain_FormClosing_1(object sender, FormClosingEventArgs e){FormLogin m2 = new FormLogin();m2.Show();}private void StuMain_FormClosed(object sender, FormClosedEventArgs e){}}
}

(4)注册页面:若学生用户没有登陆账号,则需在学生登录界面选择注册按钮,进入注册界面输入相应信息进行注册。成功注册的前提是你为该校的学生且各信息已填写完整。

图10:注册页面

图11:注册成功

图12:注册失败

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class RegisterForm : Form{public RegisterForm(){InitializeComponent();}private void buttonRegister_Click(object sender, EventArgs e){if (tBStuId.Text.Trim() != "" && tBPassword.Text.Trim() != "" && cBSex.Text.Trim() != "" && tBPhoneNum.Text.Trim() != ""){//确认一些信息输入非空try{string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串SqlConnection connection = new SqlConnection(connString);//创建connection对象string username = tBStuId.Text.Trim();  //取出账号string sex = cBSex.Text.Trim();  //取出性别connection.Open();string sql1 = "select Sno,Ssex from Student where Sno = '" + username + "' and Ssex = '" + sex + "'";                                            //编写SQL命令,查找学生信息中是否有该用户SqlCommand sqlCommand1 = new SqlCommand(sql1, connection);//确认是否有该学员SqlDataReader sqlDataReader1 = sqlCommand1.ExecuteReader();bool a = sqlDataReader1.HasRows;sqlDataReader1.Close();if (a){string sql2 = "select ID from StudentUser where ID = '" + username + "'";                                            //编写SQL命令SqlCommand sqlCommand2 = new SqlCommand(sql2, connection);//确认是否已经注册过SqlDataReader sqlDataReader2 = sqlCommand2.ExecuteReader();if (!sqlDataReader2.HasRows){string sql3 = "insert into StudentUser (ID,   PassWord ,Sex, UserMobile, Birthday) " +"values (@userid, @userpassword,@sex,@usermobile,@Birthday)";SqlCommand command = new SqlCommand(sql3, connection);SqlParameter sqlParameter = new SqlParameter("@userid", tBStuId.Text);command.Parameters.Add(sqlParameter);sqlParameter = new SqlParameter("@userpassword", EncryptWithMD5(tBPassword.Text));command.Parameters.Add(sqlParameter);sqlParameter = new SqlParameter("@sex", cBSex.Text);command.Parameters.Add(sqlParameter);sqlParameter = new SqlParameter("@usermobile", tBPhoneNum.Text);command.Parameters.Add(sqlParameter);sqlParameter = new SqlParameter("@Birthday", dateTimePicker1.Value);command.Parameters.Add(sqlParameter);sqlDataReader2.Close();//打开数据库连接command.ExecuteNonQuery();connection.Close();MessageBox.Show("注册成功");}else{MessageBox.Show("该用户已注册。");}}else{MessageBox.Show("我校无该学员");}}catch (Exception ex){MessageBox.Show(ex.Message);}this.Close();}else{MessageBox.Show("请将信息填写完整!");}}public Byte[] mybyte = new byte[0];public static string EncryptWithMD5(string source){byte[] sor = Encoding.UTF8.GetBytes(source);MD5 md5 = MD5.Create();byte[] result = md5.ComputeHash(sor);StringBuilder strbul = new StringBuilder(40);for (int i = 0; i < result.Length; i++){strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位}return strbul.ToString();}private void tBPassword_Leave(object sender, EventArgs e)//校验密码格式{if (tBStuId.Text.Trim() != ""){//使用regex(正则表达式)进行格式设置 至少有数字、大写字母、小写字母各一个。最少3个字符、最长20个字符。Regex regex = new Regex(@"(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{3,20}");if (regex.IsMatch(tBPassword.Text))//判断格式是否符合要求{//MessageBox.Show("输入密码格式正确!");}else{MessageBox.Show("至少有数字、大写字母、小写字母各一个。最少3个字符、最长20个字符!");tBPassword.Focus();}}else{MessageBox.Show("请填写密码!");}}private void RegisterForm_FormClosing(object sender, FormClosingEventArgs e){FormStuLogin m2 = new FormStuLogin();m2.Show();}private void buttonCancel_Click_1(object sender, EventArgs e){this.Close();}}
}

(5)管理员登录页面:若您的身份为管理员,则可在主界面选择“管理员登录”选项,进入管理员登录界面。与学生登录相似,管理员登录成功的前提是正确输入各类信息。但管理员登录不提供“注册”选项,因为管理员身份必须由系统授予——即在数据库中填入相应信息才可成为管理员。

图13:管理员登录页面

图14:管理员登录成功

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class FormManagerLogin : Form{public FormManagerLogin(){InitializeComponent();}public string code;private void buttonLogin_Click(object sender, EventArgs e){string username = tBWorknum.Text.Trim();  //取出账号string password = EncryptWithMD5(tBPassword.Text.Trim());  //取出密码并加密string myConnString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";SqlConnection sqlConnection = new SqlConnection(myConnString);  //实例化连接对象sqlConnection.Open();string sql = "select ID,PassWord from Administrator where ID = '" + username + "' and PassWord = '" + password + "'";                                            //编写SQL命令SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();if (sqlDataReader.HasRows && tBVerifyCode.Text == code){MessageBox.Show("欢迎使用!");             //登录成功ManagerMain managerMain = new ManagerMain();managerMain.Show();this.Hide();}else if (sqlDataReader.HasRows && tBVerifyCode.Text != code){MessageBox.Show("验证码错误,登录失败!");return;}else{MessageBox.Show("账号密码有误,登录失败!");return;}sqlDataReader.Close();sql = "insert into SysLog1 values ( '" + username + "' , 'Administrator','" + DateTime.Now + "' , '" + "Login" + "')";                                            //编写SQL命令SqlCommand sqlCommand1 = new SqlCommand(sql, sqlConnection);sqlCommand1.ExecuteNonQuery();sqlConnection.Close();}private string EncryptWithMD5(string source){byte[] sor = Encoding.UTF8.GetBytes(source);MD5 md5 = MD5.Create();byte[] result = md5.ComputeHash(sor);StringBuilder strbul = new StringBuilder(40);for (int i = 0; i < result.Length; i++){strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位}return strbul.ToString();}private void FormManagerLogin_Load_1(object sender, EventArgs e){//随机实例化 Random ran = new Random();int number;char code1;//取五个数 for (int i = 0; i < 5; i++){number = ran.Next();if (number % 2 == 0)code1 = (char)('0' + (char)(number % 10));elsecode1 = (char)('A' + (char)(number % 26)); //转化为字符 this.code += code1.ToString();}lbVerifyCode.Text = code;}private void FormManagerLogin_FormClosing_1(object sender, FormClosingEventArgs e){FormLogin m2 = new FormLogin();m2.Show();}private void buttonCancel_Click_1(object sender, EventArgs e){this.Close();}}
}

(6)管理员主页:管理员主页一共包含五个可选项,如下图所示。其中,对于“学生信息”,“课程信息”,“学生成绩”,管理员可按需进行增、删、改、查操作。

图15:管理员主页

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class ManagerMain : Form{public ManagerMain(){InitializeComponent();}private void buttonLog_Click(object sender, EventArgs e){this.Hide();LogMain m = new LogMain();m.Show();}private void buttonStu_Click(object sender, EventArgs e){this.Hide();StuMessageMain m = new StuMessageMain();m.Show();}private void buttonCourse_Click(object sender, EventArgs e){this.Hide();CourseMessageMain m = new CourseMessageMain();m.Show();}private void buttonGrade_Click(object sender, EventArgs e){this.Hide();StuGradeMain m = new StuGradeMain();m.Show();}private void buttonExit_Click(object sender, EventArgs e){this.Close();}private void ManagerMain_FormClosed(object sender, FormClosedEventArgs e){//Application.Exit();}private void ManagerMain_FormClosing(object sender, FormClosingEventArgs e){FormLogin m2 = new FormLogin();m2.Show();}private void ManagerMain_Load(object sender, EventArgs e){}}
}

(7)登录日志页面:登录日志为管理员提供该系统所有用户的登录记录

图16:登录日志页面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class LogMain : Form{public LogMain(){InitializeComponent();}private void LogMain_Load(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet1.SysLog1”中。您可以根据需要移动或移除它。this.sysLog1TableAdapter.Fill(this.mySchoolDataSet1.SysLog1);}private void buttonReturn_Click(object sender, EventArgs e){this.Close();}private void LogMain_FormClosing(object sender, FormClosingEventArgs e){ManagerMain m2 = new ManagerMain();m2.Show();}}
}

(8)学生信息页面:为管理员提供学生信息,且管理员可按需进行增、删、改、查操作。

图17:学生信息页面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class StuMessageMain : Form{public StuMessageMain(){InitializeComponent();}private void StuMessageMain_Load(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet2.Student”中。您可以根据需要移动或移除它。this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);}private void buttonReturn_Click(object sender, EventArgs e){this.Close();}private void buttonAdd_Click(object sender, EventArgs e){String StuID = tBStuId.Text.Trim();//读取文本框的值String StuName = tBStuName.Text.Trim();String StuSex = tBStuSex.Text.Trim();String StuSdept = tBStuDept.Text.Trim();int StuAge = int.Parse(tBStuAge.Text.Trim());SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string insertStr = "INSERT INTO  Student (Sno,Sname,Ssex,Sdept,Sage)    " +"VALUES ('" + StuID + "','" + StuName + "','" + StuSex + "','" + StuSdept + "'," + StuAge + ")";SqlCommand cmd = new SqlCommand(insertStr, con);//通过sql语句对表添加数值cmd.ExecuteNonQuery();}catch{MessageBox.Show("输入数据违反要求!");}finally{con.Dispose();tBStuId.Text = "";tBStuName.Text = "";tBStuSex.Text = "";tBStuAge.Text = "";tBStuDept.Text = "";}this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);//刷新表}private void buttonDelete_Click(object sender, EventArgs e){SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是IDstring delete_by_id = "delete from Student where Sno=" + select_id;//sql删除语句SqlCommand cmd = new SqlCommand(delete_by_id, con);cmd.ExecuteNonQuery();}catch{MessageBox.Show("请正确选择行!");}finally{con.Dispose();}this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);}private void buttonEdit_Click(object sender, EventArgs e){String StuID = tBStuId.Text.Trim();String StuName = tBStuName.Text.Trim();String StuSex = tBStuSex.Text.Trim();String StuSdept = tBStuDept.Text.Trim();int StuAge = 0;if (tBStuAge.Text != "") {StuAge = int.Parse(tBStuAge.Text.Trim());}SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();if(StuName != "") {string insertStr = "UPDATE Student SET Sname = '" + StuName + "' WHERE Sno = '" + StuID + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if (StuSex != ""){string insertStr = "UPDATE Student SET Ssex = '" + StuSex + "' WHERE Sno = '" + StuID + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if (StuSdept != ""){string insertStr = "UPDATE Student SET Sdept = '" + StuSdept + "' WHERE Sno = '" + StuID + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if (tBStuAge.Text != ""){string insertStr = "UPDATE Student SET Sage = '" + StuAge + "' WHERE Sno = '" + StuID + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}}catch{MessageBox.Show("输入数据违反要求!");}finally{con.Dispose();tBStuId.Text = "";tBStuName.Text = "";tBStuSex.Text = "";tBStuAge.Text = "";tBStuDept.Text = "";}this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);}private void buttonSearch_Click(object sender, EventArgs e){String StuID = tBStuId.Text.Trim();String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象try{sqlConnection.Open();String select_by_id = "select * from Student where Sno='" + StuID + "'";SqlCommand sqlCommand = new SqlCommand(select_by_id, sqlConnection);SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();BindingSource bindingSource = new BindingSource();bindingSource.DataSource = sqlDataReader;dataGridView1.DataSource = bindingSource;}catch{MessageBox.Show("查询语句有误,请认真检查SQL语句!");}finally{sqlConnection.Close();tBStuId.Text = "";}}private void StuMessageMain_FormClosing(object sender, FormClosingEventArgs e){ManagerMain m2 = new ManagerMain();m2.Show();}}
}

(9)课程信息页面:为管理员提供课程信息,且管理员可按需进行增、删、改、查操作。

图18:课程信息页面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class CourseMessageMain : Form{public CourseMessageMain(){InitializeComponent();}private void CourseMessageMain_Load(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet3.Course”中。您可以根据需要移动或移除它。this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);}private void buttonAdd_Click(object sender, EventArgs e){String cno = tBCno.Text.Trim();String cn = tBCname.Text.Trim();String cpo = tBCpno.Text.Trim();int cd = 0;if(tBCcredit.Text != ""){cd = int.Parse(tBCcredit.Text.Trim());}if (cpo == "") {cpo = "NULL";}SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{if(cno == "" || cn =="" || cd == 0){MessageBox.Show("输入数据违反要求!");}else{con.Open();string insertStr = "INSERT INTO  Course (Cno,Cname,Cpno,Ccredit)    " +"VALUES ('" + cno + "','" + cn + "','" + cpo + "','" + cd + "')";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}}catch{}finally{con.Dispose();tBCno.Text = "";tBCname.Text = "";tBCpno.Text = "";tBCcredit.Text = "";}this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);}private void buttonDelete_Click(object sender, EventArgs e){SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是IDstring delete_by_id = "delete from Course where Cno=" + select_id;//sql删除语句SqlCommand cmd = new SqlCommand(delete_by_id, con);cmd.ExecuteNonQuery();}catch{MessageBox.Show("请正确选择行!");}finally{con.Dispose();}this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);}private void buttonEdit_Click(object sender, EventArgs e){String cno = tBCno.Text.Trim();String cn = tBCname.Text.Trim();String cpo = tBCpno.Text.Trim();int cd = 0;if(tBCcredit.Text != ""){cd = int.Parse(tBCcredit.Text.Trim());}if (cpo == ""){cpo = "NULL";}SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");con.Open();if(cn != ""){string insertStr = "UPDATE Course SET Cname = '" + cn + "' WHERE Cno = '" + cno + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if (cpo != ""){string insertStr = "UPDATE Course SET Cpno = '" + cpo + "' WHERE Cno = '" + cno + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if (tBCcredit.Text != ""){string insertStr = "UPDATE Course SET Ccredit = '" + cd + "' WHERE Cno = '" + cno + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}if(cno == ""){MessageBox.Show("输入数据违反要求!");}con.Dispose();tBCno.Text = "";tBCname.Text = "";tBCpno.Text = "";tBCcredit.Text = "";this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);}private void buttonSearch_Click(object sender, EventArgs e){String cno = tBCno.Text.Trim();String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象try{sqlConnection.Open();String select_by_id = "select * from Course where Cno='" + cno + "'";SqlCommand sqlCommand = new SqlCommand(select_by_id, sqlConnection);SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();BindingSource bindingSource = new BindingSource();bindingSource.DataSource = sqlDataReader;dataGridView1.DataSource = bindingSource;}catch{MessageBox.Show("查询语句有误,请认真检查SQL语句!");}finally{sqlConnection.Close();tBCno.Text = "";}}private void buttonReturn_Click(object sender, EventArgs e){this.Close();}private void CourseMessageMain_FormClosing(object sender, FormClosingEventArgs e){ManagerMain m2 = new ManagerMain();m2.Show();}}
}

(10)学生成绩信息页面:为管理员提供学生成绩信息,且管理员可按需进行增、删、改、查操作。

图19:学生成绩信息页面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class StuGradeMain : Form{public StuGradeMain(){InitializeComponent();}private void StuGradeMain_Load(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet4.SC”中。您可以根据需要移动或移除它。this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);}private void buttonAdd_Click(object sender, EventArgs e){String sno = tBSId.Text.Trim();String cno = tBCno.Text.Trim();int gra = int.Parse(tBGrade.Text.Trim());SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string insertStr = "INSERT INTO  SC (Sno,Cno,Grade)    " +"VALUES ('" + sno + "','" + cno + "','" + gra + "')";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}catch{MessageBox.Show("输入数据违反要求!");}finally{con.Dispose();tBSId.Text = "";tBCno.Text = "";tBGrade.Text = "";}this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);}private void buttonDelete_Click(object sender, EventArgs e){SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是IDstring select_cid = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//选择的当前行第二列的值,也就是CIDstring deletesql = "delete from SC where Sno='" + select_id + "' AND Cno='" + select_cid + "'";//sql删除语句SqlCommand cmd = new SqlCommand(deletesql, con);cmd.ExecuteNonQuery();}catch{MessageBox.Show("请正确选择行!");}finally{con.Dispose();}this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);}private void buttonEdit_Click(object sender, EventArgs e){String sno = tBSId.Text.Trim();String cno = tBCno.Text.Trim();int gra = int.Parse(tBGrade.Text.Trim());SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");try{con.Open();string insertStr = "UPDATE SC SET Grade='" + gra + "' WHERE Sno = '" + sno + "' AND Cno = '" + cno + "'";SqlCommand cmd = new SqlCommand(insertStr, con);cmd.ExecuteNonQuery();}catch{MessageBox.Show("输入数据违反要求!");}finally{con.Dispose();tBSId.Text = "";tBCno.Text = "";tBGrade.Text = "";}this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);}private void buttonSearch_Click(object sender, EventArgs e){String sno = tBSId.Text.Trim();String cno = tBCno.Text.Trim();String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象try{String selectsql = "select * from SC where Sno='" + sno + "'";sqlConnection.Open();if(sno != "" && cno == ""){selectsql = "select * from SC where Sno='" + sno + "'";}if (sno != "" && cno != ""){selectsql = "select * from SC where Sno='" + sno + "' AND Cno='" + cno + "'";}SqlCommand sqlCommand = new SqlCommand(selectsql, sqlConnection);SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();BindingSource bindingSource = new BindingSource();bindingSource.DataSource = sqlDataReader;dataGridView1.DataSource = bindingSource;}catch{MessageBox.Show("查询语句有误,请认真检查SQL语句!");}finally{sqlConnection.Close();tBSId.Text = "";tBCno.Text = "";}}private void buttonMes_Click(object sender, EventArgs e){string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串SqlConnection connection = new SqlConnection(connString);//创建connection对象string sql1 = "EXEC COURSE_AVG1";//编写SQL命令SqlCommand sqlCommand1 = new SqlCommand(sql1, connection);connection.Open();sqlCommand1.ExecuteNonQuery();connection.Close();this.Hide();StatisiticMain m2 = new StatisiticMain();m2.Show();}private void buttonReturn_Click(object sender, EventArgs e){this.Close();}private void StuGradeMain_FormClosing(object sender, FormClosingEventArgs e){ManagerMain m2 = new ManagerMain();m2.Show();}}
}

(11)成绩统计页面:为管理员提供统计信息。

图20:成绩统计页面

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SchoolManage
{public partial class StatisiticMain : Form{public StatisiticMain(){InitializeComponent();}private void StatisiticMain_Load(object sender, EventArgs e){// TODO: 这行代码将数据加载到表“mySchoolDataSet6.AVG1”中。您可以根据需要移动或移除它。this.aVG1TableAdapter.Fill(this.mySchoolDataSet6.AVG1);}private void buttonReturn_Click(object sender, EventArgs e){this.Close();}private void StatisiticMain_FormClosing(object sender, FormClosingEventArgs e){StuGradeMain m2 = new StuGradeMain();m2.Show();}}
}

(12)在主界面点击右上角的“×”即退出系统。

(注:以上页面中的“返回”、“退出”、“取消”、“×”选项均使得页面从当前界面返回到上一界面或上一级界面,并不使程序退出,仅主界面的“×”号可退出系统。)

图21:退出系统

以上就是本次数据库课程设计的全部内容啦,欢迎小伙伴们交流心得,批评指正。

转载请注明出处,未经同意禁止转载!

数据库课程设计——学生信息管理系统C#,SQL Sever相关推荐

  1. oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...

    数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...

  2. 【记录贴】数据库课程设计——学生信息管理系统

    前言 记录下学习的点点滴滴,留下属于我的足迹. 以此篇记录我的第一次课程设计. 课设实现 一.课程设计题目 题目一 学生信息管理系统 二.总体设计 原理及工具 JAVA的前端搭建:JAVA GUI M ...

  3. 数据库课程设计——学生信息管理系统

    学生信息管理系统 0 前言 0.1效果演示 0.2 开发工具 0.3 创新点 1.系统需求分析 1.1 系统功能分析 1.2 系统功能模块设计(划分) 1.3 与其它系统的关系 1.4 数据流程图 2 ...

  4. 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的

    <JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...

  5. ASP.NET程序设计课程设计——学生信息管理系统

    点击查看详细信息 ASP.NET程序设计课程设计--学生信息管理系统 一.实验目的 综合运用们所学的ASP.NET知识,开发学生信息管理系统,完成相关功能: (1)教师管理 (2)学生信息 (3)课程 ...

  6. 数据库应用设计学生宿舍管理系统java+SQL

    数据库应用设计学生宿舍管理系统java+SQL 具体功能如下: 1.用户登录界面 学生通过用户名和密码获取登录权限,宿舍楼管理员通过用户名和密码获取登录权限. 2.学生用户界面 本宿舍楼的学生能查询其 ...

  7. 数据库课程设计-员工信息管理系统(基于python和MySQL实现)

    一.项目地址 具体项目相关信息可移步至我的Github查看,那里有整套项目文件以及课程设计报告等,仅供交流学习和参考,如有错误之处请多多指正哦. 二.系统定义 随着计算机技术的不断发展,计算机作为知识 ...

  8. C语言课程信息管理系统课程设计,c语言课程设计学生信息管理系统.doc

    c语言课程设计学生信息管理系统 课程设计报告 课程名称: 高级语言程序设计课程设计 姓 名: 汤璞君 班级学号: BX1209 121003410937 指导教师: 吉顺如 完成日期: 2013.6. ...

  9. java查询学生信息_分别显示女生_女生学生基本信息的代码_java课程设计学生信息管理系统_毕业论文.doc...

    java课程设计学生信息管理系统_毕业论文 学 号: 课 程 设 计 题 目学生信息管理系统学 院计算机科学与信息工程学院专 业金融信息化服务外包班 级学生姓名指导教师 2015年12月28日 课程设 ...

  10. 数据库课程设计----学生信息与选课、成绩评价管理系统

    目录 一.需求分析 4 二.概念设计 5 2.1 概念模型(E-R图) 6 2.2 数据字典 6 三.逻辑结构设计 5 3.1 关系模式 6 3.2 系统结构图 6 四.物理设计 5 4.1 存储安排 ...

最新文章

  1. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
  2. 更改计算机名引起的奇怪问题:“重新启动计算机之前控制台无法刷新”
  3. 今天痛下决心,把开发人员的外网给断了,不断是不好管了,人心散了队伍就不好带...
  4. 「大数据概述四」数据中台建设
  5. css display属性理解
  6. 图网络笔记-知识补充与node2vec代码注解
  7. azure 入门_Azure Cosmos DB中的子文档入门
  8. Helm 3 完整教程(十二):Helm 函数讲解(6)字典函数
  9. 西门子定时器有几种_西门子定时器类型
  10. 苹果ID登陆第三方有漏洞?硬核!Gartner报告腾讯云数据库增速国内第一;“小米快递”商标注册,这是要入局物流领域?...
  11. arcgis矢量文件计算多个同类属性面积总和
  12. @Secured()、 @PreAuthorize() 、 @RolesAllowed()
  13. python logging日志模块以及多进程日志
  14. plotly绘制3D图技巧
  15. Qt--QMetaObject
  16. 多用户商城系统流程设计和流程图,以及退换货流程图说明
  17. 神奇的手指——可以取代”切水果“的清屏小软件
  18. 2022国际数维杯C题题解:利用大脑结构特征和认知行为特征诊断阿尔茨海默病
  19. 电机控制(2)直流电机的simulink仿真
  20. 直播 | 来了!松果基金让你的科研更厉害

热门文章

  1. 基于微信小程序的毕业设计题目(25)php体育馆场地预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  2. Android百度地图自定义添加Marker点
  3. MySQL添加删除账户及授予权限
  4. C语言 输入今天的日期,显示明天的日期
  5. 如何解决“数据错误,循环冗余检查”
  6. 苹果手机微信怎么接龙_【手机】微信接龙
  7. 条形码在android上的代码,使条码生成器在android
  8. 拔丝芋头的Java学习日记---Day9
  9. 微信小程序实现控制标题栏背景色
  10. JAVA实现排列组合