C#学生管理系统课程设计报告及代码Word下载.docx
《C#学生管理系统课程设计报告及代码Word下载.docx》由会员分享,可在线阅读,更多相关《C#学生管理系统课程设计报告及代码Word下载.docx(62页珍藏版)》请在冰豆网上搜索。
![C#学生管理系统课程设计报告及代码Word下载.docx](https://file1.bdocx.com/fileroot1/2022-11/27/add5aa50-f0f1-47b3-9533-1fc355df2bbb/add5aa50-f0f1-47b3-9533-1fc355df2bbb1.gif)
5)规定时间内安要求完成代码及作业。
工作计划及安排:
第一阶段:
6月4号~6月5号,图书馆借阅图书资料,上网搜索学生信息管理系统背景资料。
第二阶段:
6月6号~6月8号,完成用户管理模块、课程管理模块、成绩管理模块的代码编写。
第三阶段:
6月9号,完成成绩管理模块的代码编写,及完善程序整体代码编写。
第四阶段:
10号,完成报告编写,及部分文档归总。
指导教师签字
年月日
课程设计(大作业)成绩
学号:
438姓名:
王辉指导教师:
王亚宁
总结:
在进行本次课程设计时,我遇到了很多困难和学习到了很多知识。
下面我将主要总结我所遇到的困难,及自己的解决方法。
以及自己学到的知识点。
开始着手在C#中建立与SQL数据库连接时,连接数据库时在连接句前加上@字符相对于单一的连接语句更容易连接得上。
在对DataAdapter数据集中数据表的行数据、列名进行修改时,可以通过数据集中表的行二维数组["
t"
].Rows[i][j].ToString()来实现,其中i为行标,j为列标。
在对数据行数进行读取时,可采用["
].来实现。
学生在从第一个登录界面窗体登录学号进入信息查看界面窗体时,要保证学号信息能准确无误的传输到信息查看界面窗体才可以在信息查看窗体中查看该学生的个人信息。
开始时我只是在信息窗体Form8中实例化Form1对象,结果无法获取Form1窗口中的中的学生学号信息。
经过进一步查找资料,我明白了在信息窗体Form8中调用Form1中的属性或函数,与在Form1中调用Form8中的属性或函数不一样。
窗体Form1下,其中的属性和函数都有确定的值或表达式,直接调用Form8将值传进去可行,因为此时Form1中的数据存在;
而在Form8窗体中调用Form1窗体中的函数和属性,则Form1窗体已经关闭,改窗体中的也就无值了,获取该窗体中中的学生学号信息也就无法实现。
通过编写代码,使我很熟练的可以运用C#中的数据集Dataset、Connection对象、Command对象、DataResder对象和DataAdapter对象。
并对SQL的select、insert、delete、update熟练掌握。
指导教师评语:
成绩:
填表时间:
指导教师签名:
一、题目分析
1.背景分析
编写目的
本需求的编写目的在于研究学籍管理系统软件的开发途径和应用方法。
以及明确所要开发的软件应具有的功能、性能与界面,是系统分析人员及软件开发人员能清楚的了解用户的需求,并再次基础上进一步提出概要设计说明书和完成后续设计与开发工作。
项目背景
近年来随着高校的扩招,需要处理的学生信息日趋加大,不仅花费大量的教师资源,处理的效果还十分低下。
为了提高学生管理的管理水平,优化资源,尽可能的降低管理成本,成为学生管理的新课题。
学生管理系统是从学生管理的现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,帮助学生管理人员有效管理学生信息,成为高校管理中必不可少的管理工具。
2.系统功能分析
管理员对功能的需求
管理员权限最大,可以对学生、班级、课程情况进行统一的管理,细分如下:
添加、修改、删除管理员;
有关学生信息的浏览,包括学生姓名、性别、民族、出生日期、入学时间、所在班级、籍贯和备注信息;
学生信息的添加、修改和删除;
学校基本课程的浏览,包括课程名、课程类型、学时、学分和课程具体描述;
学校基本课程的添加、修改和删除;
学生成绩信息的浏览与统计,可按成绩具体范围对成绩进行统计;
学生成绩信息的添加、修改和删除;
学生选课信息的管理,包括修改与删除;
学生选课人数的统计。
学生对功能的需求
学生只是利用此系统进行与自己有关的信息查询、输入等,细分如下:
浏览个人基本信息,具体内容包括姓名、学号、民族、出生日期、籍贯、所在班级、备注等;
学生登陆系统后,修改个人密码;
浏览课程信息,具体内容包括课程名、课程类型、学时、学分和课程具体描述;
学生利用此系统选修课程、在选课过程中,可查询待选课程基本信息;
浏览个人选课情况。
二、可行性分析
1.技术可行性
本系统采用WindowsXP及其以上版本作为操作平台。
数据库管理系统选用SQL,该数据库管理系统,提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。
本系统的应用程序开发平台选用MicrosoftVisualstudio2005。
2.经济可行性
采用前台学籍信息管理系统可取代原系统的单手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期提高学生信息的利用率,使教学质量更上一个台阶。
3.营运可行性
本系统操作简单,易于理解,只需通过简单培训,上手较快,学校学籍管理处的教职员以及相关教师均能进行操作,营运环境要求低。
面对于系统设计还应该以“标准性、安全性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。
软件的开发应能在较长时间内满足学校的发展需要。
标准性:
系统编写与运行必须符合标准,既可以保证系统运行又可以在此标准上每一项功能运行。
可靠性:
由于学籍信息的重要性,系统必须稳定可靠,从而避免或减少数据损失。
安全性:
通过系统权限控制使用者,从而确保使用者无法操作与其无关的数据。
高效性:
由于学校学生信息每次处理信息量较大,系统对信息处理能力响应能力都应是快捷有效的。
可维护性:
采用结构化模块设计,便于开发与维护,也有利于情况随时
三、总体设计
1.总体功能描述
本系统主要是实现前台参与者(管理员和学生)的界面实际操作来更改后台数据库信息,并能够在前台显示出来。
其归根结底也就是对数据的插入、修改、删除和查询。
2.系统层次图
学生信息管理系统是一个典型的数据库应用程序,由用户管理、课程管理、选课管理和成绩管理四大模块组成。
这四大模块针对管理员和学生角色其功能也不一样。
(1)用户管理模块:
该模块的主要任务是管理员对系统的使用权限进行设定,从而来管理管理员与学生的系统登录权限。
(2)课程管理模块:
该模块的使用角色为管理员,管理员对课程进行管理。
如添加、修改、删除课程。
(3)选课管理模块:
该模块的角色为管理员和学生,管理员。
学生可以进行合理的选课、退选课,管理员则通过此模块查看学生选课信息。
(4)成绩管理模块:
该模块的角色为管理员,管理员通过此模块进行合理的成绩添加。
3.数据流图
4.数据库设计
系统E-R图
(1)学生管理系统实体间关系E-R图
(2)学生管理系统用户信息实体图
(3)学生管理系统学生信息实体图
(4)学生管理系统课程信息实体图
(5)学生管理系统学生-课程信息实体图
记录编号
表/字段分析
(1)用户信息数据表(Users)
列名
数据类型
大小
字段描述
User_id
varchar
50
用户名,设为主键
User_password
用户密码
User_power
int
4
记录用户类型,0-学生,1-管理员
(2)学生信息数据表(Student)
Student_id
学生学号,设为主键
Student_name
学生姓名
Student_sex
char
5
学生性别(CHECK=‘男’或‘女’)
Student_nation
学生民族
Student_birthday
datetime
8
学生出生日期
Student_time
学生入学时间
Student_class
学生所在班级
Student_home
学生住址
Student_else
备注
(3)课程信息数据表(Course)
Course_id
课程号,设为主键
Course_name
课程名
Course_period
课程学时
Course_credit
课程学分
Course_describe
课程具体描述
(4)学生选课记录数据表(Student_Course)
ID
bigint
学生选课记录ID号,设为主键,自动编号
学生学号,外键
学生所学课程号,外键
Student_grade
学生成绩
Course_year
年度学期
四、开发工具
硬件:
惠普笔记本一台
软件:
WindowsXP操作系统、SQLServer2005、VisualStudio2005
五、运行结果
获取连接字符串:
数据库中主要表的建立:
课程表
学生表
运行界面
管理员、学生登陆窗口
管理员管理窗口
管理员成绩添加窗口
学生查看课程信息
六、参考资料
1.C#程序设计教程蒙祖强等编著清华大学出版社2010年第一版
2.数据库应用技术(第二版)SQLServer2005申时凯、李海燕主编中国铁道出版社
七、代码
一共有12个界面,也就有12个窗口的代码。
1)Form1,登陆界面窗口
usingSystem;
using;
using
namespaceStudents
{
publicpartialclassForm1:
Form
{
publicForm1()
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
i++)
"
].Rows[i][0].ToString());
intitem=;
if(item==-1)
item=0;
=[item].ToString();
for(inti=0;
i<
["
].;
i++)
if["
].Rows[i][0].ToString()==
=["
].Rows[i][1].ToString();
].Rows[i][2].ToString();
break;
catch(Exceptionex)
;
finally
if(conn!
=null)();
();
intj=0;
intflag=0;
j=i;
flag=1;
if!
="
"
&
&
!
=="
0"
||=="
1"
))
if(flag==1)
("
此用户已存在,请另添用户!
);
else
stringstrsql="
insertintousersvalues("
;
strsql+="
'
+;
'
"
++"
)"
SqlCommandcmd1=newSqlCommand();
try
=conn;
=strsql;
intn=();
if(n>
0)("
成功插入数据"
catch(Exceptionexe)
showdata();
添加格式不正确,请从新添加!
privatevoidbutton2_Click(objectsender,EventArgse)
stringbb=;
intaa=(bb);
stringstrsql1="
updateUsersset"
strsql1+="
User_password='
User_power="
+aa;
whereUser_id='
SqlCommandcmd2=newSqlCommand();
=strsql1;
成功更新数据!
修改格式不正确,请从新修改!
数据库中无此用户的ID,无法进行修改!
privatevoidbutton3_Click(objectsender,EventArgse)
stringstrsql2="
deletefromUserswhereUser_id='
SqlCommandcmd3=newSqlCommand();
=strsql2;
成功删除数据!
privatevoidbutton4_Click(objectsender,EventArgse)
Form2f2=newForm2();
privatevoidlistBox1_SelectedIndexChanged(objectsender,EventArgse)
}
2)Form4学生信息窗口
usingStudents
publicpartialclassForm4:
SqlConnectionconn=null;
SqlDataAdapterDataAdapter=null;
DataSetdataset=null;
stringConnectionString=@"
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=stu_admin;
DataSource=LBDZ-05020115\SQLEXPRESS"
publicForm4()
privatevoidForm4_Load(objectsender,EventArgse)
conn=newSqlConnection(ConnectionString);
privatevoidshowdata()
DataAdapter=newSqlDataAdapter();
dataset=newDataSet();
SqlCommandcmd=newSqlCommand();
="
select*fromStudent"
=cmd;
(dataset,"
ows[i];
].Rows[i][1].ToString());
].Rows[i][1].ToString()==
].Rows[i][0].ToString();
].Rows[i][3].ToString();
].Rows[i][4].ToString();
].Rows[i][5].ToString();
].Rows[i][6].ToString();
].Rows[i][7].ToString();
].Rows[i][8].ToString();
="
)
return;
insertintoStudentvalues("
strs