1、C#课程设计姓名:班级:学号:指导老师:介绍该系统是用VisuaStudio和Access,经过C#语言进行相关代码编写,生成相关程序。学生成绩管理系统是构建于VisualC#.NET平台上Windows应用程序。本文描述是基于Windows环境学生成绩管理系统,关键工具MicrosoftVisualStudio设计窗体,Access建立数据库,学生成绩管理管理系统为用户提供充足信息和快捷查询手段,实现学生基础信息、成绩录入,删除,查询,维护和成绩统计分析等几方面功效,是现实问题迫切要求。本篇汇报介绍一个学生信息管理系统从分析到设计最终到开发全过程为,给出了学生信息管理系统设计和技术实现过程,
2、尤其在细节上分析功效和函数实现思想。包含到学生信息管理基础功效在本汇报中全部有对应描述。管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了愈加好管理学生考试成绩而开发数据管理软件。它对于一个学校是不可缺乏关键部分,它内容对于学校决议者和管理者来说全部至关关键。在这次课程设计中,让我了解到Microsoft Visual Studio ,同时学习了Access数据库建立和连接和导入。能在Visual C#.NET平台上进行Access数据库修改和控制,将C#语句和SQL语句混合使用, 成功完成了学生成绩管理系统整体设计,加深巩固了选择条件语句,还有曾经学习过基础运算语句
3、,同时也为以后深入学习垫下了了良好基础。目录第一章 绪论41.1设计目标41.2开发工具选择41.3开发环境4第二章 需求分析52.1系统目标52.2功效需求分析62.3性能需求分析6第三章 总体设计73.1设计概述73.1功效模块设计7第四章 数据库设计84.1数据库需求分析84.2数据库表设计9第五章 具体设计105.1系统程序步骤图115.2系统关键功效模块135.2.1系统登录135.2.2学生登录模块155.2.3管理员登录模块20第六章 总结41第一章 绪论1.1课程设计目标此次课程设计目标是使学生能熟练掌握简单简单Windows窗体应用程序设计和.net应用,复习熟练基础运算符,
4、和基础条件语句、判定语句,将Access使用和MicrosoftVisualStudio使用结合起来,期望经过此次课程设计锻炼我们使用C#语言处理实际问题能力。1.2系统开发环境系统开发平台:MicrosoftVisualStudio系统开发语言C#数据库管理软件:Access系统开发程序本系统后台数据库采取Access数据库,该数据库系统在安全性、正确性和运行速度方面有绝正确优势,而且处理数据量大,效率高;前台采取Microsoft企业VisualStudio作为关键开发工具,可和Access数据库无缝链接。1.4汇报关键内容本汇报具体介绍了学生信息管理系统开发过程,关键包含到工作以下:系统
5、需求分析、系统总体设计设计思绪、系统数据库设计、系统各模块具体设计、系统运行测试。第二章 需求分析2.1 系统设计目标(1)登录模块中,有不一样权限设置,分为学生登录和管理员登录(2)学生用户可依据不一样用户名和对应密码进行登录,并可修改密码。(3)管理员能够依据不一样用户名和对应密码进行登录,并可修改密码。(4)学生界面中学生能够根据姓名,学号,邮箱来查询成绩(5)管理员界面中管理员能够实现学生成绩录入,删除,修改,查询,成绩分析,将成绩导出到Excel表中,还能够依据成绩画出柱状图。2.2功效需求分析 本系统功效需求分析以下:(1)学生密码修改:学生可在成功登录后对自己密码进行修改,以防个
6、人信息外泄。(2)学生成绩查询:学生依据姓名,学号,邮箱进行查询。(3)学生成绩和信息录入:用于学生成绩管理,录入学生成绩和学生个人信息,也能够实现对成绩其它操作。2.3性能需求分析(1)登录、用户界面需求:简练、易懂、易用、友好用户界面。(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息管理,同时也能够进行密码修改。(3)数据分析需求:可依据学生要求进行条件查询,分不一样姓名,学号,邮箱进行对应查询。(4)数据统计要求:可对学生成绩和个人信息进行添加更改和删除。第三章 总体设计3.1设计总体概述依据需求把整个系统分化成不一样模块,每个模块完成一个特定子功效。把这些模块结合起来组
7、成一个整体。逐一实现各个功效;3.2功效模块设计(1)登录模块,依据不一样权限,链接数据库,然后登录。(2)管理员登录模块,在此模块中有成绩查询,修改,删除,添加,分析,导出Excel表,绘出矩形图,退出登录,帮助,密码修改等功效模块。(3)学生登录模块,在此模块中有查询,退出登录,帮助,密码修改等模块功效。(4)成绩查询模块,连接数据库,用SELECT语句实现(5)成绩修改模块,连接数据库,用UPDATE语句实现(6)成绩删除模块,连接数据库,用DELETE语句实现(7)成绩添加模块,连接数据库,用INSERT语句插入实现(8)成绩分析模块,连接数据库,读出数据库中成绩,根据个门成绩分别求出
8、她们最高分,最低分,平均分等。(9)导出Excel表模块,将想要保留信息导出到Excel表中(10)绘出矩形图模块,依据成绩分析模块绘出矩形图。(11)退出登录模块,退出目前登录,切换用户(12)帮助模块,给和部分非法操作处理措施(13)密码修改模块,修改目前用户密码第四章 数据库设计4.1数据库需求分析数据库中存放学生基础信息和成绩、管理员和学生登录号和密码。4.2数据库E-R图以下密码成绩班级姓名学号密码用户名性别学生管理员邮箱4.3数据库表设计本系统在登录时需要验证使用者身份,用户需要输入用户名和密码,所建立数据库表以下:1、管理员表:2、学生表:3、学生基础信息和成绩表:第五章 具体设
9、计5.1系统总体结构经过对系统需求分析,学生成绩管理系统关键划分为两个部分:学生成绩查询,管理员模块。管理员登录模块学生登录模块成绩管理系统系统程序模块步骤图:成绩管理系统学生登录模块管理员登录模块帮助成绩查询退出登录密码修改其它成绩管理导出Excel表绘出矩形图密码修改退出登录帮助四处Excel表成绩分析成绩删除成绩修改成绩查询成绩添加5.1.1学生登录模块学生登录模块退出登录密码修改帮助成绩查询5.1.2管理员登录模块退出登录密码修改帮助导出Excel表成绩分析成绩删除成绩修改成绩查询成绩添加绘出矩形图其它成绩管理管理员登录模块5.2系统关键功效模块5.2.1系统登录模块登录:代码:pri
10、vate void buttonLogin_Click(object sender, EventArgs e) /判定登录状态并弹出对应提醒框 if (BoxUser.Text.Trim() = string.Empty) | (BoxPassword.Text.Trim() = string.Empty) MessageBox.Show(请输入用户名或密码); else if (this.student.Checked = true) string user = BoxUser.Text; string password = BoxPassword.Text; string strConne
11、ction = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); OleDbCommand objCommand = new OleDbCommand(select * from student, objConnection); DataSet ds
12、= new DataSet(); OleDbDataAdapter sda= new OleDbDataAdapter(select * from student , objConnection); sda.Fill(ds, student); OleDbDataReader reader = objCommand.ExecuteReader(); int i; for (i = 0; i ds.Tablesstudent.Rows.Count; i+) reader.Read(); if (readerusername.Equals(user) & readerpassword.Equals
13、(password) this.DialogResult = DialogResult.OK; this.Close(); break; if (i = ds.Tablesstudent.Rows.Count) MessageBox.Show(用户名或密码输入有误!); / 关闭Reader. reader.Close(); objConnection.Close(); else if (this.admin.Checked = true) string user = BoxUser.Text.ToString(); string password = BoxPassword.Text.ToS
14、tring(); string strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); OleDbCommand objCommand = new OleDbCommand(select * from admin, objCo
15、nnection); DataSet ds = new DataSet(); OleDbDataAdapter sda = new OleDbDataAdapter(select * from admin , objConnection); ; sda.Fill(ds, admin); OleDbDataReader reader = objCommand.ExecuteReader(); int i; for (i = 0; i ds.Tablesadmin.Rows.Count; i+) reader.Read(); if (readerusername.Equals(user) & re
16、aderpassword.Equals(password) this.DialogResult = DialogResult.OK; this.Close(); break; if (i = ds.Tablesadmin.Rows.Count) MessageBox.Show(用户名或密码输入有误!); / 关闭Reader. reader.Close(); objConnection.Close(); 5.2.2学生登录模块(1)学生界面模块(2)成绩查询模块代码:/查询学生信息 string checkInfo = ; string strConnection = Provider=Mic
17、rosoft.Jet.OleDb.4.0; strConnection += Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); OleDbCommand objCommand = new OleDbCommand(select * from information, objConnection); OleDbDataReader reader = ob
18、jCommand.ExecuteReader(); switch (flag) /分别依据姓名,学号,邮箱查询学生信息 case 1: checkInfo = textBox1.Text.ToString(); break; case 2: checkInfo = textBox2.Text.ToString(); break; case 3: checkInfo = textBox3.Text.ToString(); break; if (checkInfo.Length = 0 | checkInfo.Trim() = string.Empty) /输入查询信息为空,直接列出全部学生信息
19、this.listViewInfo.Items.Clear(); this.init(reader); else /依据输入查询信息checkInfo查询学生信息并显示到显示区 this.listViewInfo.Items.Clear(); while (reader.Read() if (readername.ToString().Equals(checkInfo) | readerstudentID.ToString().Equals(checkInfo) | readeremail.ToString().Equals(checkInfo) ListViewItem lvi = new
20、ListViewItem(readername.ToString(); lvi.SubItems.Add(readerstudentID.ToString(); lvi.SubItems.Add(readerclass.ToString(); lvi.SubItems.Add(readersex.ToString(); lvi.SubItems.Add(readeremail.ToString(); lvi.SubItems.Add(readercourseOne.ToString(); lvi.SubItems.Add(readercourseTwo.ToString(); lvi.SubI
21、tems.Add(readercourseThree.ToString(); this.listViewInfo.Items.Add(lvi); / 关闭Reader. reader.Close(); objConnection.Close();(3)密码修改模块代码:private void toolStripMenuItem8_Click(object sender, EventArgs e) xiugaimima2 xiu = new xiugaimima2(); xiu.Show(); private void button1_Click(object sender, EventArg
22、s e) string user = tbusername.Text; string password = tbpassword.Text; string strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); OleDbCo
23、mmand objCommand = new OleDbCommand(select * from student, objConnection); DataSet ds = new DataSet(); OleDbDataAdapter sda = new OleDbDataAdapter(select * from student , objConnection); ; sda.Fill(ds, student); OleDbDataReader reader = objCommand.ExecuteReader(); int i; for (i = 0; i ds.Tablesstude
24、nt.Rows.Count; i+) reader.Read(); if (readerusername.Equals(user) & readerpassword.Equals(password) string s = update student set username= + user + ,password= + this.tbnewpassword.Text + where username= + user + ; OleDbCommand cmd = new OleDbCommand(s, objConnection); cmd.ExecuteNonQuery(); Message
25、Box.Show(修改成功!); break; if (i = ds.Tablesstudent.Rows.Count) MessageBox.Show(请确定密码!); / 关闭Reader. reader.Close(); objConnection.Close(); (4)退出登录模块private void toolStripMenuItem1_Click(object sender, EventArgs e) Application.Restart(); (5)帮助模块private void toolStripMenuItem4_Click(object sender, Event
26、Args e) MessageBox.Show(请确定是不是没考!); private void toolStripMenuItem6_Click(object sender, EventArgs e) MessageBox.Show(请联络管理员!); private void toolStripMenuItem7_Click(object sender, EventArgs e) MessageBox.Show(请联络老师!); 5.2.3管理员登录模块(1)管理员界面模块(2)成绩添加模块代码:private void toolStripMenuItem3_Click(object se
27、nder, EventArgs e) /初始化信息录入窗口,进行输入 InfoInput inputForm = new InfoInput(); inputForm.Show(); private void buttonAdd_Click(object sender, EventArgs e) /将学生信息录入 string sex; if (this.radioButtonMale.Checked) sex = 男; else sex = 女; string strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection +=
28、 Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); OleDbCommand cmd = new OleDbCommand(insert into information + (name,studentID,class,sex,email,courseOne,courseTwo,courseThree)values ( + this.textBoxName.Text + , + this.tex
29、tBoxStudentID.Text + , + this.textBoxClass.Text+ ,+sex+, + this.textBoxEmail.Text + , + this.textBoxCourse1.Text + , + this.textBoxCourse2.Text + , + this.textBoxCourse3.Text + ), objConnection); objConnection.Open(); /添加成功或失败分别弹出对应提醒框 if (cmd.ExecuteNonQuery() = 1 & (textBoxName.Text.Trim() != stri
30、ng.Empty) & (textBoxStudentID.Text.Trim() != string.Empty) MessageBox.Show(成功添加 + this.textBoxName.Text + 同学信息!); this.Close(); else MessageBox.Show(添加失败,请确定是否添加该同学相关信息); objConnection.Close(); (3)成绩查询模块代码:private void toolStripMenuItem1_Click(object sender, EventArgs e) /查询学生信息 string checkInfo = ;
31、 string strConnection = Provider=Microsoft.Jet.OleDb.4.0; strConnection += Data Source= + Application.StartupPath + StudentInfo.mdb; OleDbConnection objConnection = new OleDbConnection(strConnection); objConnection.Open(); OleDbCommand objCommand = new OleDbCommand(select * from information, objConn
32、ection); OleDbDataReader reader = objCommand.ExecuteReader(); switch (flag) /分别依据姓名,学号,邮箱查询学生信息 case 1: checkInfo = textBox1.Text.ToString(); break; case 2: checkInfo = textBox2.Text.ToString(); break; case 3: checkInfo = textBox3.Text.ToString(); break; if (checkInfo.Length = 0 | checkInfo.Trim() = string.Empty) /输入查询信息为空,直接列出全部学生信息 this.listViewInfo.Items.Clear(); this.init(reader);