C学生成绩管理.docx

上传人:b****7 文档编号:16450111 上传时间:2023-07-13 格式:DOCX 页数:23 大小:77.68KB
下载 相关 举报
C学生成绩管理.docx_第1页
第1页 / 共23页
C学生成绩管理.docx_第2页
第2页 / 共23页
C学生成绩管理.docx_第3页
第3页 / 共23页
C学生成绩管理.docx_第4页
第4页 / 共23页
C学生成绩管理.docx_第5页
第5页 / 共23页
C学生成绩管理.docx_第6页
第6页 / 共23页
C学生成绩管理.docx_第7页
第7页 / 共23页
C学生成绩管理.docx_第8页
第8页 / 共23页
C学生成绩管理.docx_第9页
第9页 / 共23页
C学生成绩管理.docx_第10页
第10页 / 共23页
C学生成绩管理.docx_第11页
第11页 / 共23页
C学生成绩管理.docx_第12页
第12页 / 共23页
C学生成绩管理.docx_第13页
第13页 / 共23页
C学生成绩管理.docx_第14页
第14页 / 共23页
C学生成绩管理.docx_第15页
第15页 / 共23页
C学生成绩管理.docx_第16页
第16页 / 共23页
C学生成绩管理.docx_第17页
第17页 / 共23页
C学生成绩管理.docx_第18页
第18页 / 共23页
C学生成绩管理.docx_第19页
第19页 / 共23页
C学生成绩管理.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C学生成绩管理.docx

《C学生成绩管理.docx》由会员分享,可在线阅读,更多相关《C学生成绩管理.docx(23页珍藏版)》请在冰点文库上搜索。

C学生成绩管理.docx

C学生成绩管理

《C#程序设计》

课程设计报告

(20—20学年第学期)

题目:

学生成绩信息管理系统

专业:

班级:

姓名学号:

指导教师:

成绩:

目录

摘  要1

第一章绪 论2

1.1设计目的2

1.2开发工具选择2

1.3开发环境2

1.4本报告的主要内容2

第二章需求分析3

2.1系统需求简介3

2.1.1系统目标3

2.1.2功能需求分析3

2.1.3性能需求分析3

第三章总体设计4

3.1设计概述4

3.2系统总体结构及功能模块划分4

3.2.1学生信息查询模块4

3.2.2学生信息管理模块5

3.3系统数据库概念结构设计5

3.3.1系统E-R图5

3.3.2系统数据库的设计6

3.4安全保密设计7

3.4.1用户登录安全性7

第四章详细设计8

4.1概述8

4.2系统程序流程图8

4.3系统主要功能模块简介9

4.3.1系统登录9

4.3.2学生信息查询模块9

4.3.3学生信息管理模块10

第五章主要功能模块代码12

5.1公共类代码设计12

5.2登录界面代码设计14

5.3查询模块代码设计15

5.4添加模块代码设计16

5.5更新模块代码设计17

5.6删除模块代码设计20

第六章课程设计心得21

第七章设计日志22

C#学生成绩管理系统

摘  要

本文描述的是基于Windows环境的学生信息管理系统,主要功能模块包括:

学生信查询,学生信息管理,学生成绩录入,主要工具MicrosoftVisualStudio2010设计窗体,SQLserver2005建立数据库,实现学校信息管理的各个功能。

本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。

涉及到学生信息管理的基本功能在本报告中都有相应的描述。

第一章绪 论

1.1设计目的

本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。

1.2开发工具选择

本系统后台数据库采用MicrosoftSQLServer数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft公司的VisualStudio2008作为主要开发工具,可与SQLServer2005数据库无缝链接。

1.3开发环境

系统开发平台:

MicrosoftVisualStudio2005

系统开发语言:

C#

数据库管理软件:

SQLServer2005

1.4本报告的主要内容

本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:

系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。

第二章需求分析

2.1系统需求简介

2.1.1系统目标

(1)根据查询条件实现学生信息的查询

(2)学生选课信息查询、成绩信息的查询

(3)学生信息、课程信息、成绩信息的增加、删除、修改

(4)对基本信息完成增加、删除、修改时,需注意表与表之间的关联

2.1.2功能需求分析

本系统的功能需求分析如下:

(1)学生信息查询:

学生可以根据学号、姓名、专业进行查询.

(2)学生信息管理:

主要是用于学生信息更新、插入、删除;

(3)学生成绩录入:

用于学生成绩管理,录入学生成绩,也可以更新;

2.1.3性能需求分析

(1)登录、用户界面需求:

简洁、易懂、易用、友好的用户界面。

(2)安全保密性需求:

只有凭借用户名和密码登陆系统,才能进行信息的管理等。

第三章总体设计

3.1设计概述

根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。

把这些模块结合起来组成一个整体。

逐一实现各个功能;

3.2系统总体结构及功能模块划分

经过对系统的需求分析,学生信息管理系统主要划分为三个部分:

学生信息查询,学生信息管理,学生成绩录入三个功能模块。

如图3.2.1系统的总体结构。

图3.2.1系统的总体结构

3.2.1学生信息查询模块

学生信息查询:

学生可以根据学号、姓名、专业进行查询。

如图3.2.2学生信息查询模块结构。

图3.2.2学生信息管理模块结构

3.2.2学生信息管理模块

学生信息管理:

主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。

图3.2.3学生信息管理模块结构

3.3系统数据库概念结构设计

根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。

3.3.1系统E-R图

系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。

如图3.3.1系统E-R图结构。

图3.3.1系统E-R图结构

3.3.2系统数据库的设计

综合以上分析,要实现上面的所有功能模块,主要设计表如下:

表3.3.1用户表(usedata)

表3.3.2成绩表(SC)

表3.3.3课程表(C)

表3.3.4学生表(S)

3.4安全保密设计

3.4.1用户登录安全性

系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。

第四章详细设计

4.1概述

详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

4.2系统程序流程图

程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。

它可将整个程序的总体流程清楚明白的显示出来。

如图4.2.1系统总流程图结构。

图4.2.1系统总体流程图

4.3系统主要功能模块简介

4.3.1系统登录

用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。

用户界面如图4.3.1用户登录界面所示。

图4.3.1用户登录界面

4.3.2学生信息查询模块

学生信息查询:

在程序主界面(如图4.3.2程序主界面)学生可以根据学号、姓名进行查询。

学生也可以只用一种条件进行信息查询,也可以多个条件查询。

双击记录任一单元格可显示学生的更详细信息(如图4.3.3详细信息窗口)。

图4.3.2程序主界面

图4.3.3详细信息窗口

4.3.3学生信息管理模块

学生信息管理:

通过右击程序主界面的相应记录弹出的上下文菜单(如图4.3.4上下文菜单)可对当前选定学生信息进行详细信息查询(如图4.3.3详细信息窗口)、修改信息(如图4.3.5修改信息窗口)、删除信息(如图4.3.6删除信息提示)。

更新时如果输入的学号不存在,可选择是否添加学生信息。

通过程序主界面的新建信息记录可添加学生信息(如图4.3.7添加信息窗口)。

图4.3.4上下文菜单

图4.3.5修改信息窗口

图4.3.6删除信息提示

图4.3.7添加信息窗口

第五章主要功能模块代码

5.1公共类代码设计

namespaceMySql

{

publicclassmySql

{

publicStringconnectionString=@"SERVER=.\SQLEXPRESS。

AttachDbFilename=D:

\学习\C#\课程设计\StuScoreManSystem\StuScoreManSystem\StuScoManSys.mdf。

IntegratedSecurity=True。

ConnectTimeout=30。

UserInstance=True。

"。

publicStringcommondText。

publicboolflag。

//指示有条该条记录

publicSystem.Data.DataViewtable。

publicvoidrunSql()//执行查询、删除SQL语句

{

using(SqlConnectionconnection=newSqlConnection(connectionString))

{

connection.Open()。

SqlCommandcmdQuery=newSqlCommand(commondText,connection)。

SqlDataAdaptersda=newSqlDataAdapter(commondText,connection)。

DataSetds=newDataSet()。

sda.Fill(ds)。

if(commondText.IndexOf("SELECT")>=0)

{

table=ds.Tables[0].DefaultView。

}

connection.Close()。

}

}

publicboolgetFlag()//判断是否有该条记录

{

using(SqlConnectionconnection=newSqlConnection(connectionString))

{

connection.Open()。

SqlCommandcmdQuery=newSqlCommand(commondText,connection)。

SqlDataReaderreader=cmdQuery.ExecuteReader()。

if(reader.Read())flag=true。

elseflag=false。

reader.Close()。

connection.Close()。

returnflag。

}

}

publicStringgetContent(Stringrequire,StringSNO)//获取视图表的的指定单元格内容

{

try

{

commondText="SELECT"+require+"FROMdetailWHERE学号="+SNO。

if(require=="up课程名称")

commondText="SELECT课程名称FROMdetailWHERE学号="+SNO。

if(require=="up成绩")

commondText="SELECT成绩FROMdetailWHERE学号="+SNO。

SqlDataAdaptersda=newSqlDataAdapter(commondText,connectionString)。

DataSetds=newDataSet()。

sda.Fill(ds)。

Stringresult=""。

if(require=="课程名称"||require=="成绩")

{

inti=newint()。

for(i=0。

i

i++)

{

result=result+ds.Tables[0].Rows[i][require].ToString()+"\n"。

}

}

else

result=ds.Tables[0].Rows[0][require].ToString().Trim()。

returnresult。

}

catch

{

return"无"。

}

}

publicvoidupdate()

{//添加、更新语句

try

{

using(SqlConnectionconnection=newSqlConnection(connectionString))

{

connection.Open()。

SqlCommandcmdInsert=newSqlCommand(commondText,connection)。

cmdInsert.ExecuteNonQuery()。

connection.Close()。

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.ToString(),"提示")。

}

}

}

}

5.2登录界面代码设计

privatevoidlogin_Click(objectsender,EventArgse)

{//用户名及密码组合判断

if(username.Text.ToString().Trim()!

=""&&password.Text.ToString().Trim()!

="")

{

mySqlsql=newmySql()。

mondText="SELECT*FROMuserdataWHEREUSERNAME='"+username.Text.ToString().Trim()+"'ANDPASSWORD='"+password.Text.ToString().Trim()+"'"。

try

{

booltemp=newbool()。

temp=sql.getFlag()。

if(temp)

{

this.Visible=false。

mainfacemain=newmainface(this)。

main.Show()。

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.ToString(),"提示")。

}

}

else

{

MessageBox.Show("请输入用户名和密码","提示")。

}

}

5.3查询模块代码设计

privatevoidbtQuery_Click(objectsender,EventArgse)

{

mySqlquery=newmySql()。

if(sNInput.Text.Trim()==""&&sNoinput.Text.Trim()!

="")mondText="SELECTSNOAS学号,SNAS姓名,MNAS专业名称,SEXAS性别,BIRDAYAS出生日期,TSAS总学分,COMAS备注FROMSWHERESNO="+sNoinput.Text.Trim()+""。

if(sNInput.Text.Trim()!

=""&&sNoinput.Text.Trim()=="")mondText="SELECTSNOAS学号,SNAS姓名,MNAS专业名称,SEXAS性别,BIRDAYAS出生日期,TSAS总学分,COMAS备注FROMSWHERESN='"+sNInput.Text.Trim()+"'"。

if(sNInput.Text.Trim()!

=""&&sNoinput.Text.Trim()!

="")mondText="SELECTSNOAS学号,SNAS姓名,MNAS专业名称,SEXAS性别,BIRDAYAS出生日期,TSAS总学分,COMAS备注FROMSWHERESN='"+sNInput.Text.Trim()+"'andSNO="+sNoinput.Text.Trim()+""。

if(sNInput.Text.Trim()==""&&sNoinput.Text.Trim()=="")MessageBox.Show("您输入的信息为空,请重新输入!

","错误信息")。

else

{

if(query.getFlag())

{

query.runSql()。

dataGridView1.DataSource=query.table。

}

elseMessageBox.Show("您查找的信息不存在","错误信息")。

}

}

5.4添加模块代码设计

privatevoidaddbtOK_Click(objectsender,EventArgse)

{

if(addStuNo.Text.Trim()!

=""&&addStuName.Text.Trim()!

=""&&addStuMajor.Text.Trim()!

="")

{

mySqlsql=newmySql()。

mondText="SELECTCNOFROMCWHERECN='"+listmn.Text.ToString().Trim()+"'"。

sql.runSql()。

Stringtemp=sql.table.Table.Rows[0]["CNO"].ToString()。

StringsexTemp=radioButton1.Checked?

"男":

"女"。

StringcomTemp。

if(addStuCom.Text.ToString().Trim()=="")

comTemp=""。

elsecomTemp=addStuCom.Text.ToString().Trim()。

StringbirTemp=""。

if(addStuBir.Text.ToString().Trim()=="")

comTemp=""。

elsebirTemp=addStuCom.Text.ToString().Trim()。

mondText="INSERTINTOS(SNO,SN,MN,SEX,BIRDAY,COM)VALUES("

+addStuNo.Text.ToString().Trim()+",'"

+addStuName.Text.ToString().Trim()+"','"

+addStuMajor.Text.ToString().Trim()+"','"

+sexTemp+"','"

+birTemp+"','"

+comTemp+"')。

"。

sql.update()。

if(score.Text.ToString().Trim()!

=""){

mondText="INSERTINTOSC(SNO,CNO,SCORE)VALUES("+addStuNo.Text.ToString().Trim()

+","+temp+","+score.Text.ToString().Trim()+")。

"。

sql.update()。

}

this.Close()。

}

else

{

MessageBox.Show("学号、姓名和专业名称都不可以为空!

","错误!

")。

}

}

privatevoidAddNew_Load(objectsender,EventArgse)

{//获取专业列表

mySqlsql=newmySql()。

mondText="SELECTDISTINCTCNFROMC"。

SqlDataAdaptersda=newSqlDataAdapter(mondText,sql.connectionString)。

DataSetds=newDataSet()。

sda.Fill(ds)。

listmn.DataSource=ds.Tables[0].DefaultView。

listmn.DisplayMember="CN"。

listmn.DisplayMember=listmn.DisplayMember.ToString().Trim()。

}

5.5更新模块代码设计

privatevoidupbtOK_Click(objectsender,EventArgse)

{

mySqlsql=newmySql()。

mondText="SELECT学号FROMdetailWHERE学号="+upStuNo.Text.ToString().Trim()。

boolflagtemp=sql.getFlag()。

if(!

flagtemp)//如果表中无该条记录,提示是否进行添加新记录操作

{

if(MessageBox.Show("查无当前记录,无法进行更新操作!

\n是否进行添加新记录的操作?

","提示",MessageBoxButtons.OKCancel)==DialogResult.OK)

{

if(upStuNo.Text.Trim()!

=""&&upStuName.Text.Trim()!

=""&&upStuMajor.Text.Trim()!

="")

{

mySqlsqlme=newmySql()。

mondText="SELECTCNOFROMCWHERECN='"+listmn.Text.ToString().Trim()+"'"。

sqlme.runSql()。

Stringtemp=sqlme.table.Table.Rows[0]["CNO"].ToString()。

//课程号

StringsexTemp=radioButton1.Checked?

"男":

"女"。

StringcomTemp。

if(upStuCom.Text.ToString().Trim()=="")

comTemp=""。

elsecomTemp=upStuCom.Text.ToString().Trim()。

StringbirTemp。

if(upStuBir.Text.ToString().Trim()=="")

birTemp=""。

elsebirTemp=upStuCom.Text.ToString().Trim()。

mondText="INSERTINTOS(SNO,SN,MN,SEX,BIRDAY,COM)VALUES("

+upStuNo.Text.ToString().Trim()+",'"

+upStuName.Text.ToString().Trim()+"','"

+upStuMajor.Text.ToString().Trim()+"','"

+sexTemp+"','"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2