C#课程设计报告.docx
- 文档编号:28053706
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:15
- 大小:174.71KB
C#课程设计报告.docx
《C#课程设计报告.docx》由会员分享,可在线阅读,更多相关《C#课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
C#课程设计报告
《c#.net程序设计》
课程设计报告
专业:
班级:
姓名:
指导教师:
二0一三年月日
目录
1.课程设计任务书1
2.软件设计目的1
3.软件设计题目描述和要求1
4.设计报告内容2
5.课程设计小组总结及个人总结11
参考资料15
1、软件设计目的
该软件主要是实现对学生选课及个人信息进行系统化的管理,首先可以在获得权限后对学生基本信息进行输入和存取,其次可以读取显示学生的相关信息,然后可以删除和添加学生的相关信息,还可以按照学生的具体信息查询此学生的相关信息,学生用户可以自主选课,系统会自动绑定,避免选课学生无意中删除。
管理员还可以设置用户,课程管理。
系统的权限管理很明确,超级用户实现全方面的管理。
由此来系统化管理学生的选课,并达到用户简易操作,功能性强的目的。
能进行简单数据库应用程序设计。
2、软件设计题目描述和要求
2.1软件的题目
学生选课系统
2.2软件的要求
利用这个系统达到学生可以自主选课,查询成绩,设置个人信息,修改密码和找回密码。
管理员自主管理,查看学生信息,成绩登记,课程管理,添加一般用户。
超级用户可以添加新用户和学员,查询和修改学员信息,使用其中的所有功能,在异常中可以帮助用户选课等功能。
在软件中有人性化的设计,来帮助用户实现功能和帮助用户解答疑点。
有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
软件的安装性强,有简易的安装软件,操作简单。
软件在初次使用时系统会自动要用户设置个人信息,以便于用户的管理,及用户忘记密码时,能够重新设置密码,继续使用本账户。
软件在安装完后,需要用户配置用户信息,数据库信息,服务器名称。
有严密正确的数据验证功能和数据处理功能,系统有报错能力,异常处理能力。
软件有一定的安全性,数据库系统的独立性,软件的稳定性。
3、软件设计报告内容
3.1功能分析说明图
该软件功能分析说明图如2-2-1所示:
图:
2-2-1
3.2各项功能说明
3.2.1登录模块:
如图3-2-1所示:
图:
3-2-1
在系统弹出用户登录界面是,用户填写正确的信息就可以进入系统,如果用户忘记了密码,点击忘了密码可以找回密码,但用户先要设置个人信息。
用户之所以能登录时因为后台数据库有用户的信息,但用户权限不同管理的功能也有所不同的,在学生选课系统中就有代码来区分用户权限的,为了用户信息安全,后台数据库用户密码是加密的。
代码如下:
this.Cursor=System.Windows.Forms.Cursors.WaitCursor;
stringpsw=CPublic.GetMd5Str(txtUserPassword.Text.Trim());
stringsqlStr="selectuserPassword,userPurview,firstLoginfromtbl_UserwhereuserName='"+txtUserName.Text.Trim()+"'";
CDataBase.conn.ConnectionString=CDataBase.connStr;
CDataBase.conn.Open();
SqlCommandcmd=newSqlCommand(sqlStr,CDataBase.conn);
在用户的权限不同使用的主窗体的功能也有所不同,超级用户和学生用户的主窗体功能如图所示:
如图3-2-2所示:
如图3-2-3所示:
图:
3-2-2图:
3-2-3
3.2.2数据库配置模块:
在使用学生选课系统的时候因为用户很多,在使用中后台数据库是一样的,所以在使用此系统时,用户先要配置数据库信息;用户只要提供需要连接到的数据库服务器名、数据库名以及登陆数据库的用户名和密码即可配置系统的数据库环境.
如图3-2-4所示:
图:
3-2-4
3.2.3系统用户管理模块:
在超级用户登录后就可以使用系统用户管理系统,在该系统下可以添加和删除用户和设计用户权限。
而管理员只能对一般用户进行注册和删除操作,一般用户不具有用户管理权限.
如图3-2-5所示:
图:
3-2-5
在添加和删除用户时会自动更新后台数据库,实现此功能的部分代码如下:
添加用户的部分代码:
btnRegedit.Text="注册";
stringpsw=CPublic.GetMd5Str(txtPassword.Text.Trim());
stringsqlStr="insertintotbl_Uservalues('"+txtUserName.Text.Trim()+"','"+psw.Trim()+"','"+cmbPurview.Text.Trim()+"','是?
')";
删除用户的部分代码:
intn=this.dgrdvUser.CurrentCell.RowIndex;
userName=this.dgrdvUser.Rows[n].Cells[0].Value.ToString().Trim();
if(MessageBox.Show("确定要删除“"+userName+"”吗?
","删除用户",
MessageBoxButtons.YesNo,MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2)==DialogResult.Yes)
{stringsqlStr="deletefromtbl_UserwhereuserName='"+userName+"'";
CDataBase.UpdateDB(sqlStr);
dgrdvUser.Rows.RemoveAt(n);}
3.2.4个人信息管理模块:
在进入学生选课系统后为了更好的管理,所以用户得设置个人信息,此信息也可以是用户找回密码的权限,在忘记密码时只要问题回答正确就可以重新设置密码。
如图3-2-6所示:
图:
3-2-6
3.2.5找回用户密码模块:
用户万一忘了密码怎么办?
这也不用担心,在用户初次使用时,系统就会要用户配置个人信息;所以在用户不知道密码的情况下,只要用户回答对了个人信息的内容,就可以重新设置密码。
如图3-2-7所示:
图:
3-2-7
实现用户修改密码的部分代码如下所示:
elseif(txtNewPassword1.Text.Trim()==txtNewPassword2.Text.Trim())
stringsqlStr;
stringpsw=CPublic.GetMd5Str(txtNewPassword1.Text.Trim());
sqlStr="updatetbl_UsersetuserPassword='"+psw.Trim()+"'whereuserName='"+txtUserName.Text.Trim()+"'";
if(CDataBase.UpdateDB(sqlStr))
{CPublic.userInfo[1]=psw.Trim();
MessageBox.Show("修改成功,请记住您的新密码?
","修改密码?
");this.Close();}}
3.2.6学生信息管理模块:
在超级用户登录时,可以进行学生信息的管理,添加、修改、删除、查询等功能。
打开窗体会自动看到全部学生的信息。
如图3-2-8所示:
图:
3-2-8
实现学生信息管理功能,在其中有很多相同的代码可以用公共代码段来表示,学生信息管理功能的部分代码如下所示:
学生信息的添加部分代码:
btnAdd.Text="添加";
stringsqlStr1,sqlStr2;
stringpsw=CPublic.GetMd5Str(txtNo.Text.Trim());
sqlStr1="insertintotbl_Studentvalues('"+txtNo.Text.Trim()+"','"+txtName.Text.Trim()+"','"+cmbSex.Text.Trim()+"','"+txtAge.Text.Trim()+"','"+txtDept.Text.Trim()+"')";
sqlStr2="insertintotbl_Uservalues('"+txtNo.Text.Trim()+"','"+psw.Trim()+"','学生用户','是')";
CDataBase.UpdateDB(sqlStr1);
CDataBase.UpdateDB(sqlStr2);
RefreshData();
学生信息的查询部分代码:
stringsqlStr="";
elseif(cmbSelect.SelectedIndex==0)
sqlStr="select*fromtbl_StudentwhereSno='"+txtSelect.Text.Trim()+"'";......
DataSetds=newDataSet();
ds=CDataBase.GetDataFromDB(sqlStr);
if(ds!
=null)
{dgrdvStudent.DataSource=ds.Tables[0];
dgrdvStudent.Columns[0].HeaderText="学生学号";
dgrdvStudent.Columns[0].Width=168;
....}
3.2.7课程信息管理模块:
超级用户进入系统后可以管理课程信息,同学生的信息管理界面一样,实现的功能不同;但大部分代码是相同的.
如图3-2-9所示:
图:
3-2-9
实现课程信息管理的部分代码如下所示:
课程信息的修改部分代码:
stringsqlStr;
sqlStr="updatetbl_CoursesetCname='"+txtName.Text.Trim()+"',Ccredit='"+
txtCredit.Text.Trim()+"',Csemester='"+cmbSemester.Text.Trim()+"',Cperiod='"+txtPeriod.Text.Trim()+"'whereCno='"+txtNo.Text.Trim()+"'";
CDataBase.UpdateDB(sqlStr);
RefreshData();.....
课程信息的删除部分代码:
stringsqlStr="select*fromtbl_SelectCoursewhereCno='"+txtNo.Text.Trim()+"'";
if(CDataBase.GetDataFromDB(sqlStr)!
=null)
{MessageBox.Show("已有该课程的选课信息,不能删除该课程!
","删除出错?
MessageBoxButtons.OK,MessageBoxIcon.Error);}
elseif(MessageBox.Show("确定¨要删除课程“"+txtName.Text.Trim()+"”吗?
","删除课程ì",
MessageBoxButtons.YesNo,MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2)==DialogResult.Yes........
sqlStr="deletefromtbl_CoursewhereCno='"+txtNo.Text.Trim()+"'";
CDataBase.UpdateDB(sqlStr);
intn=dgrdvCourse.CurrentCell.RowIndex;
dgrdvCourse.Rows.RemoveAt(n);.....
3.2.8选课信息管理模块:
超级用户选课的操作方法是:
选择需要选课的开课学期,列出可选课程后,从学生列表和课程列表中选择相应的学生和课程,单机选课即可实现.选课信息查询的操作方法是:
选择查询内容为“学号”或“课程号”,单机查询即可实现,并输入相应的查询值。
学生用户选课的操作方法是:
先选择开课学期,再选择希望选择的课程,单机选课即可实现。
如图3-2-10所示:
图:
3-2-10
实现选课信息管理的部分代码如下所示:
intn=dgrdvCanSelect.CurrentCell.RowIndex;
stringselectCno;
selectCno=dgrdvCanSelect[0,n].Value.ToString().Trim();
stringsqlStr;
sqlStr="select*fromtbl_SelectCoursewhereSno='"+CPublic.userInfo[0]+"'andCno='"+selectCno+"'";......
sqlStr="insertintotbl_SelectCoursevalues('"+CPublic.userInfo[0]+"','"
+selectCno+"',0)";
CDataBase.UpdateDB(sqlStr);
RefreshSelectedData();
........
intn=dgrdvSelected.CurrentCell.RowIndex;
stringselectSno,selectCno;
selectSno=dgrdvSelected[0,n].Value.ToString().Trim();
selectCno=dgrdvSelected[2,n].Value.ToString().Trim();
3.2.9数据库备份与恢复模块:
数据库的备份与恢复对于一个软件系统来说,是非常重要的.数据库中的数据时以往工作的积累和结晶,也是以后工作的基础和必要条件,离开这些数据和文件,很多业务将无法正常开展甚至是全面瘫痪,因此可以说数据和文件是无价的.由此看来,数据库的备份与恢复对于一个数据库软件系统来说,是至关重要的.
如图3-2-11所示:
图:
3-2-11
实现数据库的备份与恢复功能的部分代码如下所示:
sdlgBackup.FilterIndex=0;
dlgBackup.FileName="";
sdlgBackup.Filter="BakFiles(*.bak)|*.bak|AllFiles(*.*)|*.*";......
stringsqlStr;
sqlStr="backupdatabaseDBSelectCoursetodisk='"+backupPath+"'";
SqlCommandsqlCom=newSqlCommand(sqlStr,CDataBase.conn);
CDataBase.conn.Open();
sqlCom.ExecuteNonQuery();
CDataBase.conn.Close();.......
odlgRestore.FilterIndex=0;
odlgRestore.FileName="";
odlgRestore.Filter="BakFiles(*.bak)|*.bak|AllFiles(*.*)|*.*";......
SqlConnection.ClearAllPools();
stringconStr="DataSource=.;Database=master;IntegratedSecurity=True";
CDataBase.conn.ConnectionString=conStr;
CDataBase.conn.Open();
StringsqlStr="selectspidfrommaster..sysprocesseswheredbid=db_id('DBSelectCourse')";
SqlDataAdaptersda=newSqlDataAdapter(sqlStr,CDataBase.conn);
DataTablespidTable=newDataTable();
sda.Fill(spidTable);
SqlCommandcmd1=newSqlCommand();
cmd1.CommandType=CommandType.Text;
cmd1.Connection=CDataBase.conn;.......
3.2.10帮助模块:
系统帮助模块是一个成功的软件系统不可缺少的模块,大家在使用一些软件的时候,如果遇到了困难,可以查看其帮助信息来解决问题.因此设计一个好的系统帮助模块对于开发一个成功的软件系统而言,是非常重要的.
如图3-2-12所示:
图:
3-2-12
实现系统帮助的功能部分代码如下所示:
链接代码:
privatevoidllblEmail_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)
{
System.Diagnostics.Process.Start("mailto:
SelectCourse@");
}
按钮代码:
privatevoidbtnHelp_Click(objectsender,EventArgse)
{
if(btnHelp.Text=="查看系统帮助信息")
{
btnHelp.Text="隐藏系统帮助信息";
this.Height=560;
}
else
{
btnHelp.Text="查看系统帮助信息";
this.Height=168;
}
4、课程设计小组总结及个人总结
4.1小组总结
通过近两星期的C#语言程序设计实习,我们从中受益匪浅,并且对C#语言程序设计这一门课程有了更深一步的认识。
在实习中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。
虽然我们对这些C#语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。
发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。
在实习中,我们一组设计了学生选课系统,它基本满足了界面友好,易于操作,报错性较好的要求,因此更利于用户操作,运行简易,从而达到对学生选课更加有效系统的管理,并且速度更快内容更直接地达到用户所想要的效果。
在该软件中我们实现了对学生信息的输入和存取、读取,对学生相关信息的删除和添加,并且可以按不同的信息查询学生的相关信息,以及超级用户的强大管理功能。
权限不同使用的功能也有所不同,用户的添加和修改,课程的管理都要很大的权限管理。
我们一边实习一边探索,理论和实践要充分地结合,是需要扎实的基本功的,在不断的学习与应用中成长,软件开发中不断的调试纠错,不断完善管理,进一步证明了学好基础知识是理论付诸实践的前提。
在实习中我们学到了很多,增强了团队意识,加强了分工管理能力。
希望在以后我们能充分利用实习的机会充实自己,并希望这样的机会能被更好更多地提供。
在此也要特别感谢我们的课程设计老师和学院及学校对我们的实习的大力支持。
在学校的机房中,在老师的不断指引下,在老师耐心的纠错下,使得我们小组在开发软件中减少了很多压力,也使我们软件不断完善。
在此由衷的感谢。
参考资料
[1][美]Jeffreyrichter著,周靖,张杰良译,《框架设计(第二版)CLRViaC#》,北京,清华大学出版社,2006年
[2]李志中,《VisualC#2008数据库编程实训教程》,北京,清华大学出版社,2010年
[3][英]JohnSharp著,周靖译,《VisualC#2008从入门到精通(StepbyStep)》,北京,清华大学出版社,2009年
[4]http:
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课程设计 报告