《C#版本学生信息管理系统.pdf》由会员分享,可在线阅读,更多相关《C#版本学生信息管理系统.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 -1-目录 一、课程设计目的-3 二、功能描述-3 三、系统分析-3 3.1 需求分析-3 3.2 开发环境-3 四、总体设计-4 4。1功能构成-4 4。2 业务流程图-4 五、数据库设计-5 5.1 需求分析-5 5.2 实体 ER 图-5 5。3 数据表设计-6 六、实现过程-7 6.1 登录的实现-7 6。2 主界面-9 6。3 学生管理信息界面-11 6.4 成绩信息管理界面-13 6。5 选课信息界面-15 6。6 添加学生信息界面-16 6。7 学生列表界面-18 -2-6。8 添加成绩界面-19 6。9 选课添加界面-20 6。10 用户注册界面-21 一、课程设计目的 建立
2、学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。二、功能描述 考勤管理系统由学生信息管理模块、选课信息模块、成绩信息模块和用户管理模块四个主要功能模块构成。学生信息管理模块主要包括添加学生、查看学生信息等操作。、系统 选课信息管理模块主要包括添加课程信息、修改学分等操作。成绩信息模块主要包括查看学生的选课成绩等操作。用户管理模块主要可以用来注册新用户,并可以用新用户来登陆系统。三、系统分析 3.1 需求分析 学生信息管理系统的用户是学校的老师,它可以有效的管理学生信息情况。管理员可以创建
3、用户,增加和修改用户信息以及删除用户信息,和对学校一些学生信息的编辑等。该系统包括基本学生基本信息、成绩信息管理、选课信息管理 -3-等主要模块。每一个功能模块都需要针对不同的表来完成相同的数据库操作,即添加记录,修改记录,删除记录以及查询显示记录信息。具体功能有以下几个方面。3.2 开发环境 Visual Studio2010 是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发 Windows 环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与 Windows 的专业开发工具 SDK 相媲美,而且程序开发人员不必具有 C/C+编程基础。在 Visual St
4、udio。net 2010 环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用 Windows 内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出 Windows 环境下功能强大、图形界面丰富的应用软件系统。四、总体设计 4。1 软件功能构成 学生信息管理系统是一个典型的数据库应用程序,由学生信息管理模块、课程信息管理模块、成绩信息管理模块等模块组成,允许授予权限的用户操作相应的菜单,从而实现数据信息的修改,查询,打印,统计等功能。考勤管理系统由学生信息管理模块、选
5、课信息模块、成绩信息模块和用户管理模块四个主要功能模块构成。学生信息管理模块主要包括添加学生、查看学生信息等操作。、系统 选课信息管理模块主要包括添加课程信息、修改学分等操作。成绩信息模块主要包括查看学生的选课成绩等操作。用户管理模块主要可以用来注册新用户,并可以用新用户来登陆系统。4.2 业务流程图 五、数据库设计 5。1 数据库需求分析 在设计数据库结构时,以及可能地满足用户所提出的各项要求,同时又避免同时又要避免冗余数据产生。由于在学生信息管理系统中,需要采集大量的信息,学生信息管理系统 系统管理 专业设置 班级管理 学生管理 课程管理 添加 功能 修改功能 删除功能 成绩管理 用户操作
6、 -4-包括学生信息,班级信息,课程信息,成绩信息,专业信息等,如果不能够合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么后期进行的数据的整理以及汇总时,就会增加编程人员的开发难度,并造成成绩效益的大幅度下降。根据学生基本信息以及其他相关信息的特点,归纳出以下规律:1。一个专业包括多个班级;2.一个班在一个学期内开设多门课程;3。每一门课程记录每一名学生的成绩;4.一种角色对应一个和多个用户;5.每一个学生可以贷款多项费用;6。一个班级对应一个入学年份及学制;7。一个班级包含多名学生;8.每一个学生都有不同的学号;9。每一个学生可以受奖励或处罚多次;10。每一个学生可以获奖学金
7、多次;5。2 信息实体 ER 图 5.2.1 学生信息实体 ER 图 5.2。2 课程信息实体 ER 图 1 N 1 N 学生 年龄 学号 性别 姓名 所在系别 课程 年龄 性别 姓名 专 业 班 级 学 生 包 含 包 含 -5-1 N 5。2.3 学生信息管理系统总 E-R 图 5.3 数据表设计 学生信息管理数据库采用 Microsoft SQL SERVER 2010,在使用数据库过程中,接触最多的就是数据库中的表,表是数据存储的地方,是数据库最重要的部分。这个系统数据库表由 4 个表构成,具体如下。表 student 主键是 sno 字段 数据类型 长度 是否允许空值 字段描述 sn
8、o int N 学生学号 sname char 10 N 学生姓名 ssex char 2 Y 学生性别 sage int Y 学生年龄 sdept char 10 Y 所在系别 表 course 主键是 sno 字段 数据类型 长度 是否允许空值 字段描述 cno int N 课程编号 cname char 10 Y 课程名称 cpno char 10 Y 先修课程编号 credit int Y 学分 表 Sc 主键是 sno 字段 类型 长度 是否允许空值 字段描述 sno int N 学号 cno int Y 课程号 sname char 10 Y 姓名 cname char 10 Y
9、课程名称 grade int Y 成绩 课 程 拥 有 -6-表 admin 主键是用户名 字段 类型 长度 是否允许为空值 字段描述 用户名 char 20 N 密码 char 20 N 六、实现过程 6.1 系统登录功能的实现 用户要使用本系统,首先必须通过系统的身份认证.如果用户名错误或者不存在,密码错误3 次后,对话框自动关闭。具体代码如下:namespace 学生选课 publicpartialclassForm1:Form public Form1()InitializeComponent();privatevoid button2_Click(object sender,Even
10、tArgs e)Application.Exit();privatevoid textBox3_TextChanged(object sender,EventArgs e)MessageBox。Show(学生信息管理系统”);publicstaticForm fm=null;privatestaticint ErrorTimes=0;-7-privatevoid button1_Click(object sender,EventArgs e)if(textBox1。Text=”|textBox2.Text=”)MessageBox.Show(”提示:请输入用户名和密码!,警告);SqlConn
11、ection conn=newSqlConnection(”Server=TC-PC;Integrated Security=true;DataBase=学生”);conn.Open();SqlCommand cmd=newSqlCommand(”select*from admin where 用户名=”+textBox1。Text.Trim()+and 密码=+textBox2。Text.Trim()+”,conn);SqlDataReader sdr=cmd.ExecuteReader();sdr.Read();if(sdr。HasRows)MessageBox.Show(登录成功!,”提
12、示);Form2 fm=newForm2();fm.Show();this。Hide();else ErrorTimes+;MessageBox.Show(用户名或密码不正确!您还有+(3-ErrorTimes)+次输入密码的机会,请重新输入!如果超过 3 次,系统将自动关闭”);if(ErrorTimes=3)ErrorTimes=0;conn。Close();6.2 主界面 -8-具体代码如下:namespace 学生选课 publicpartialclassForm2:Form public Form2()InitializeComponent();publicstaticForm fr
13、=null;privatevoid button1_Click(object sender,EventArgs e)if(fr=null)Form3 fr2=newForm3();fr2.Show();MessageBox.Show(”您已成功进入-学生管理!);else fr。TopLevel=true;publicstaticForm fw=null;privatevoid button2_Click(object sender,EventArgs e)if(fw=null)Form4 fw3=newForm4();-9-fw3.Show();MessageBox。Show(”您已成功进入
14、-成绩信息!);else fw。TopLevel=true;publicstaticForm fe=null;privatevoid button3_Click(object sender,EventArgs e)if(fe=null)Form5 fe2=newForm5();fe2。Show();MessageBox.Show(您已成功进入-选课信息!”);else fe。TopLevel=true;publicstaticForm fu=null;privatevoid button4_Click(object sender,EventArgs e)if(fu=null)Form10 fr
15、2=newForm10();fr2.Show();MessageBox.Show(”您已成功进入-用户管理!”);else fr。TopLevel=true;privatevoid button5_Click(object sender,EventArgs e)this.Close();privatevoid Form2_Load(object sender,EventArgs e)-10-6.3 学生管理信息界面 具体代码如下:namespace 学生选课 publicpartialclassForm3:Form public Form3()InitializeComponent();pri
16、vatevoid button4_Click(object sender,EventArgs e)privatevoid 添加学生 ToolStripMenuItem_Click(object sender,EventArgs e)Form6 f2=newForm6();f2.MdiParent=this;f2.StartPosition=FormStartPosition.CenterScreen;f2。Show();privatevoid 学生列表 ToolStripMenuItem_Click(object sender,EventArgs e)Form7 f2=newForm7();f
17、2.MdiParent=this;f2。StartPosition=FormStartPosition.CenterScreen;f2.Show();-11-privatevoid 退出 ToolStripMenuItem_Click(object sender,EventArgs e)this.Close();privatevoid Form3_Load(object sender,EventArgs e)6。4 成绩信息管理界面 代码具体如下:namespace 学生选课 publicpartialclassForm4:Form public Form4()InitializeCompon
18、ent();string strcon=”Server=TCPC;Integrated Security=true;DataBase=学生”;SqlConnection con;SqlDataAdapter da;DataSet ds;privatevoid Form4_Load(object sender,EventArgs e)/TODO:这行代码将数据加载到表“学生 DataSet.sc”中。您可以根据需要移动或删除它。this。scTableAdapter。Fill(this.学生 DataSet1。sc);con=newSqlConnection(strcon);da=newSqlD
19、ataAdapter(”select from sc”,con);ds=newDataSet();-12-da.Fill(ds);dataGridView1。DataSource=ds。Tables0;privatevoid button1_Click(object sender,EventArgs e)Form8 f2=newForm8();f2.Show();privatevoid button2_Click(object sender,EventArgs e)ds。Tables.Clear();con=newSqlConnection(strcon);da=newSqlDataAdapt
20、er(select*from sc”,con);string sql=update sc set grade=grade where sno=sno”;da。UpdateCommand=newSqlCommand(sql,con);da.UpdateCommand.Parameters。Add(grade,SqlDbType.Int,8,”grade);SqlParameter prams_ID=da.UpdateCommand。Parameters。Add(sno,SqlDbType。Int);prams_ID.SourceColumn=sno”;prams_ID.SourceVersion
21、=DataRowVersion.Original;da.Fill(ds);for(int i=0;i ds.Tables0.Rows。Count;i+)int x=Convert。ToInt32(dataGridView1.Rowsi。Cells4。Value);ds。Tables0.Rowsi”grade”=x;da。Update(ds);dataGridView1。DataSource=ds。Tables0;MessageBox。Show(”您已成功修改数据!”);privatevoid button3_Click(object sender,EventArgs e)this.Close(
22、);privatevoid dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e)privatevoid button4_Click(object sender,EventArgs e)string str=dataGridView1.SelectedCells0.Value。ToString();string sql=delete from sc where sno=”+str+”;string consqlserver=Server=TC-PC;Integrated Security=true;Da
23、taBase=学生;SqlConnection con=newSqlConnection(consqlserver);con.Open();SqlCommand cmd=newSqlCommand();-13-cmd.CommandText=sql;cmd.Connection=con;cmd。ExecuteNonQuery();con.Close();MessageBox。Show(”您已成功删除数据!);6.5 选课信息界面 具体代码如下:namespace 学生选课 publicpartialclassForm5:Form public Form5()InitializeComponen
24、t();string strcon=Server=TC-PC;Integrated Security=true;DataBase=学生”;SqlConnection con;SqlDataAdapter da;DataSet ds;privatevoid Form5_Load(object sender,EventArgs e)/TODO:这行代码将数据加载到表“学生 DataSet.course”中。您可以根据需要移动或删除它。this.courseTableAdapter.Fill(this。学生 DataSet.course);con=newSqlConnection(strcon);-
25、14-da=newSqlDataAdapter(select from course”,con);ds=newDataSet();da.Fill(ds);dataGridView1。DataSource=ds。Tables0;privatevoid dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e)privatevoid 添加_Click(object sender,EventArgs e)Form9 f2=newForm9();f2.Show();privatevoid label1_Click(
26、object sender,EventArgs e)privatevoid button1_Click(object sender,EventArgs e)this.Close();privatevoid button3_Click(object sender,EventArgs e)string str=dataGridView1.SelectedCells0.Value。ToString();string sql=delete from course where cno=”+str+”;string consqlserver=Server=TC-PC;Integrated Security
27、=true;DataBase=学生;SqlConnection con=newSqlConnection(consqlserver);con.Open();SqlCommand cmd=newSqlCommand();cmd。CommandText=sql;cmd.Connection=con;cmd.ExecuteNonQuery();con.Close();MessageBox.Show(”您已成功删除数据!”);da.Update(ds);dataGridView1.DataSource=ds。Tables0;6。6 添加学生信息界面 具体代码如下 namespace 学生选课 publ
28、icpartialclassForm6:Form public Form6()InitializeComponent();-15-privatevoid button1_Click(object sender,EventArgs e)SqlConnection conn=newSqlConnection(server=TCPC;database=学生;integrated Security=true”);string sql=”insert into student(sid,sname,ssex,sage,sdept)values(”+textBox1。Text+”,+textBox2。Tex
29、t+”,+textBox3.Text+”,”+textBox4。Text+”,+textBox5.Text+”)”;conn。Open();SqlCommand comm=newSqlCommand(sql,conn);if(conn。State=ConnectionState.Closed)conn.Open();if(Convert。ToInt32(comm。ExecuteNonQuery())0)label6.Text=”成功!”;else label6。Text=失败!;privatevoid button2_Click(object sender,EventArgs e)this.C
30、lose();privatevoid Form6_Load(object sender,EventArgs e)6.7 学生列表界面 -16-代码具体如下 using System。Data.SqlClient;namespace 学生选课 publicpartialclassForm7:Form public Form7()InitializeComponent();privatevoid Form7_Load(object sender,EventArgs e)/TODO:这行代码将数据加载到表“学生 DataSet.student”中.您可以根据需要移动或删除它。this.student
31、TableAdapter。Fill(this.学生 DataSet。student);this.StartPosition=FormStartPosition.CenterScreen;6.8 添加成绩界面 具体代码如下:using System。Data.SqlClient;namespace 学生选课 publicpartialclassForm8:Form -17-public Form8()InitializeComponent();privatevoid button1_Click(object sender,EventArgs e)SqlConnection conn=newSql
32、Connection(”server=TCPC;database=学生;integrated Security=true);string sql=”insert into sc(sno,sname,cno,cname,grade)values(”+textBox1。Text+,”+textBox2.Text+”,+textBox3。Text+”,”+textBox4。Text+,+textBox5.Text+”);conn.Open();SqlCommand comm=newSqlCommand(sql,conn);if(conn.State=ConnectionState.Closed)co
33、nn。Open();if(Convert。ToInt32(comm。ExecuteNonQuery()0)label6。Text=成功!;else label6.Text=失败!;privatevoid button2_Click(object sender,EventArgs e)this.Close();privatevoid Form8_Load(object sender,EventArgs e)6。9 选课添加界面 具体代码如下:privatevoid button1_Click(object sender,EventArgs e)SqlConnection conn=newSqlC
34、onnection(”server=TCPC;database=学生;integrated Security=true”);string sql=”insert into course(cno,cname,cpno,credit)values(”+textBox1.Text+”-18-,+textBox2.Text+,”+textBox3.Text+,”+textBox4.Text+);conn。Open();SqlCommand comm=newSqlCommand(sql,conn);if(conn.State=ConnectionState.Closed)conn.Open();if(C
35、onvert。ToInt32(comm。ExecuteNonQuery()0)label5。Text=”成功!”;MessageBox。Show(您已成功添加数据!);else label5.Text=失败!”;privatevoid button2_Click(object sender,EventArgs e)this.Close();privatevoid Form9_Load(object sender,EventArgs e)6.10 用户注册界面 具体代码如下:namespace 学生选课 publicpartialclassForm10:Form public Form10()I
36、nitializeComponent();privatevoid button1_Click(object sender,EventArgs e)if(textBox1。Text=|textBox2。Text=”)MessageBox。Show(”提示:请输入用户名和密码!”,警告);SqlConnection conn=newSqlConnection(Server=TCPC;Integrated Security=true;DataBase=学生);conn.Open();SqlCommand cmd=newSqlCommand(select*from admin where 用户名=”+
37、textBox1.Text。-19-Trim()+”and 密码=”+textBox2。Text.Trim()+”,conn);SqlDataReader sdr=cmd.ExecuteReader();sdr。Read();if(sdr.HasRows)MessageBox。Show(该用户已注册,请使用其他用户名”,提示”);else sdr。Close();string myinsert=insert into admin(用户名,密码)values(”+textBox1.Text+,+textBox2。Text+)”;SqlCommand mycom=newSqlCommand(myinsert,conn);mycom。ExecuteNonQuery();conn.Close();conn。Dispose();MessageBox。Show(您已注册成功!”);privatevoid button2_Click(object sender,EventArgs e)this。Close();