C#学生成绩管理系统课程设计报告.docx
《C#学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《C#学生成绩管理系统课程设计报告.docx(21页珍藏版)》请在冰点文库上搜索。
C#学生成绩管理系统课程设计报告
XXXXX学院
c#课程考查
项目题目:
学生成绩信息管理系统
专业班级:
学生姓名:
XX年XX月XX日
摘要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
4.3.4音乐播放器12
第五章主要功能模块代码15
5.1公共类代码设计15
5.2登录界面代码设计16
5.3查询模块代码设计17
5.4添加模块代码设计18
5.5更新模块代码设计19
5.6删除模块代码设计19
5.7图片显示代码设计19
5.8播放器打开代码设计20
第六章课程设计心得22
C#学生成绩管理系统
摘要
本文描述的是基于Windows环境的学生信息管理系统,主要功能模块包括:
学生信查询,学生信息管理,学生成绩录入,主要工具MicrosoftVisualStudio2010设计窗体,SQLserver2008建立数据库,实现学校信息管理的各个功能。
本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能
和函数的实现思想。
涉及到学生信息管理的基本功能在本报告中都有相应的描述。
第一章绪论
1.1设计目的
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序
的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实
际问题的能力。
1.2开发工具选择
本系统后台数据库采用MicrosoftSQLServer数据库,该数据库系统在安全性、准确
性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft公司
的VisualStudio2010作为主要开发工具,可与SQLServer2008数据库无缝链接。
1.3开发环境
系统开发平台:
MicrosoftVisualStudio2010
系统开发语言:
C#
数据库管理软件:
SQLServer2008
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学生信息管理模块结构
322学生信息管理模块
学生信息管理
绩更新
基本信息更新
成绩录入
基本信息录入
3.3系统数据库概念结构设计
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。
3.3.1系统E-R图
系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。
如图3.3.1系统E-R图结构。
图331系统E-R图结构
332系统数据库的设计
综合以上分析,要实现上面的所有功能模块,主要设计表如下:
表3.3.1用户表(usedata)
列名
数据类型
弁许Nul值
理id
5>nt
B
username
varchar{50)
團
userpsw
varchar{50)
El
表3.3.4学生表(S)
列名
敎据类型
允许NuN值
昨id
ht
B
Name
mvarchar(5O)
El
Sex
rru-archar(5O)
English
mt
圈
Chinese
mt
Math
int
Img
varbinaryfMAX)
El
A]n
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学生信息查询模块
学生信息查询:
在程序主界面(如图432程序主界面)学生可以根据学号、姓名进行查询。
学生也可以只用一种条件进行信息查询,也可以多个条件查询。
单击记录任一单元格可显示学生的更详细信息(如图433详细信息窗口)
日文件尺褊辑vxm曲帮助纶退出
就绪当前用户:
EwiKziWfa:
制作人:
Ewiand隹理请选捽一个操押
图432程序主界面
湄号
姓名
性别
英语
语文
数学
1
90
90
90
2
卑
B9
99
99
3
吴淸
男
88
88
88
14
23
55
77
TT
15
弓丘
卑
99
88
8T
IT
傻蛋
男
17
aa
66
律大奔
男
88
毎
77
21
99
88
77
23
女
aa
99
77
25
秀吉
女
88
99
99
28
aa
里
66
66
66
图433详细信息窗口
433学生信息管理模块
学生信息管理:
通过右击程序主界面的相应记录弹出的上下文菜单(如图434
上下文菜单)可对当前选定学生信息进行详细信息查询(如图4.3.3详细信息窗口)、修改信息(如图435修改信息窗口)、删除信息(如图436删除信息提示)。
更新时如果输入的学号不存在,可选择是否添加学生信息。
通过程序主界面的新建信息记录可添加学生信息(如图4.3.7添加信息窗口)、条件筛选(如图438),可按性别查询和学生姓名查询。
C文件F编辑TTM曲帮助张退出
mAxl&l
图4.3.4上下文菜单
图435修改信息窗口
图436删除信息提示
IS回
姓名:
F图片:
性别:
男衣
打开.
确定
取消
图437添加信息窗口
图438查询
4.3.4音乐播放器
音乐播放:
当用户登录成功,进入主窗口之后,会很明显的看到一个播放器,
如图439所示,在播放器的下面有三个按钮,可以实现打开(图4310),播放
/暂停,和默认音乐
图439
图4310
歌词流动显示:
进入主界面后可以看到右边有一块区域(图4311),这里便是显示歌词的
当打开的音乐搜索不到歌词的话,会显示(图4312)让用户自己去下载歌词.
图4.3.11
图4312
第五章主要功能模块代码
5.1公共类代码设计
publicstaticintExecuteNonQuery(stringcmdText,paramsSqlParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connstr)){
conn.Open();
using(SqlCommancfcmd=conn.CreateCommand())
{
cmd.CommandText=cmdText;
cmd.Parameters.AddRange(parameters);
returncmd.ExecuteNonQuery();
}
}
}
publicstaticobjectExecuteScalar(stringcmdText,paramsSqlParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connstr)){
conn.Open();
using(SqlCommancfcmd=conn.CreateCommand())
{
cmd.CommandText=cmdText;
cmd.Parameters.AddRange(parameters);
returncmd.ExecuteScalar();
}
}
}
publicstaticDataTableExecuteDataTable(stringcmdText,
paramsSqIParameter[]parameters)
{
using(SqlConnectionconn=newSqlConnection(connstr))
{
conn.Open();
using(SqlCommancfcmd=conn.CreateCommand())
{
cmd.CommandText=cmdText;
cmd.Parameters.AddRange(parameters);
using(SqlDataAdapteradapter=newSqlDataAdapter(cmd)){
DataTabledt=newDataTable();
adapter.Fill(dt);
returndt;
}
}
}
}
publicstaticSqlDataReaderExecuteDataReader(stringcmdText,paramsSqlParameter[]parameters)
{
SqlConnectionconn=newSqlConnection(connstr);
conn.Open();
using(SqlCommancbmd=conn.CreateCommand())
{
cmd.CommandText=cmdText;
cmd.Parameters.AddRange(parameters);
returncmd.ExecuteReader(CommandBehavio.CloseConnection);
}
}
}
}
5.2登录界面代码设计
{
if(txtUserName.Text=="Ewi"||txtUserName.Text=="强强”)
{
if(txtPsw.Text=="111")
{
MessageBoxShow(”登录成功!
",”提示?
",
MessageBoxButtons.OK,MessageBoxIcon.lnformation);
DialogResult=DialogResult.OK;
}
else
{
MessageBoxShow("密码错误,您还有”+i+"次机会...");
i--;
}
}
else
{
MessageBoxShow(”亲,没有此用户名”);
}
}
5.3查询模块代码设计
QueryFrmquery=newQueryFrm();
if(query.ShowDialog()==DialogResult.OK)
{
DataTabledt=SqlHelper.ExecuteDataTable("selectidas'编号',Nameas'姓名',Sexas'性别',Englishas'英语',Chineseas'语文',Mathas'数学'fromT_Studentwherename=@name",newSqlParameter("@name"query.Name));
if(dt.Rows.Count>=1)
{
dataGridView1.DataSource=dt;
}
else
MessageBoxShow(”没有找到您所查询的结果,请重新查询",”提
示",MessageBoxButtons.OK,MessageBoxIcon.lnformation);}
5.4添加模块代码设计
)
{
MessageBoxShow("请将信息填写完整","警告?
",
MessageBoxButtons.OK,MessageBoxIcon.lnformation);return;
}
else
{
if(rbMale.Checked)
{
SqlHelper.ExecuteNonQuery("insertinto
T_Student(name,sex,english,math,chinese)values(@name,@sex,@Eng,@Math,@Chi)"
newSqlParameter("@name"txtName.Text),
newSqlParameter("@Eng:
Convert.Tolnt32(txtEng.Text)),
newSqlParameter("@sex",:
男D"),
newSqlParameter("@Chi",
Convert.Tolnt32(txtChi.Text)),
newSqlParameter("@Math",
Convert.Tolnt32(txtMath.Text))
);
}
else
{
SqlHelper.ExecuteNonQuery("insertinto
T_Student(name,sex,english,math,chinese)values(@name,@sex,@Eng,@Math,@Chi)"
newSqlParameter("@name"txtName.Text),
newSqlParameter("@Eng:
txtEng.Text),
newSqlParameter("@sex","女?
"),
newSqlParameter("@Chi",txtChi.Text),
newSqIParameter("@Math",
txtMath.Text)
);
}
MessageBoxShow(”添加成功?
");
DialogResult=DialogResuIt.OK;
this.Close();
5.5更新模块代码设计
voidLoadDataGradView()
{
DataTabledt=SqlHelper.ExecuteDataTable("selectidas'编号',Nameas'姓名',Sexas'性别',Englishas'英语',Chineseas'语文',Mathas'数学'fromT_Student");
dataGridViewl.DataSource=dt;
dataGridViewl.SelectionMode=
DataGridViewSelectionMode.FullRowSelect;
}
5.6删除模块代码设计
DialogResultdrCurr=MessageBoxShow("确定删除?
","提示?
..."MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if(DialogResult.OK==drCurr)
{
SqlHelper.ExecuteNonQuery("deleteT_Studentwhereid=@id"newSqlParameter("@id",selectId));
LoadDataGradView();
}
5.7图片显示代码设计
voidGet_Img(intid)
{
byte[]imagebytes=null;
SqlDataReaderdr=SqlHelper.ExecuteDataReader("select*fromT_Studentwhereid="+id);
while(dr.Read()){
try
{imagebytes=(byte[])dr.GetValue(6);
MemoryStreamms=newMemoryStream(imagebytes);Bitmapbmpt=newBitmap(ms);
}
catch(Exception)
{
stringstrImgFile=Application.StartupPath;
strImgFile=strImgFile.Substring(0,
strlmgFile.LastlndexOf("\\"));
strImgFile=strImgFile.Substring(0,strImgFile.LastIndexOf("\\"));
strImgFile=strImgFile+@"\default.jpg";
//MessageBox.Show(strlmgFile);
5.8播放器打开代码设计
privatevoidbtnOpen_Click(objectsender,EventArgse)
{
OpenFileDialogofd=newOpenFileDialog();ofd.Filter="*.mp3|*.mp3|*.wma|*.wma";
if(ofd.ShowDialog()==DialogResult.OK)
{
if(ofd.FileName.Trim().EndsWith(".mp3")||
".wma"))
ofd.FileName.Trim().EndsWith(
timer2.Stop();}
else
{
MessageBoxShow("本版本暂不支持此格式?
");
第六章课程设计心得
为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。
我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。
在这短短的五天里我收获如下:
1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。