C#学生成绩管理系统课程设计剖析_c
C#学生成绩管理系统课程设计剖析由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c”。
目录
一、设计目的.............................................1
二、需求分析.............................................2 2.1系统需求简介.......................................2 2.1.1系统目标......................................2 2.1.2功能需求分析..................................2 2.1.3性能需求分析..................................2 2.2系统业务功能分析...................................2 2.2.1具体分析有两个角色:老师和学生................3 2.2.2流程图.......................................3
三、模块分析及设计.......................................3
四、数据库设计...........................................4 4.1数据字典..........................................4 4.1.1数据流.......................................4 4.1.2 数据存储.....................................4 4.2 E-R图...........................................5 4.3系统数据库的设计...................................6
五、设计过程及要点.......................................9 5.1数据库及窗体设计...................................9 5.2 主要代码........................................11
六、设计总结............................................12
七、参考资料............................................12
一、设计目的为了提高高校学生成绩信息的管理效率,方便学生和教师对学生成绩信息进行查询、方便学校里面管理员去管理和查询学生信息,建立一个学生成绩管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生成绩管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。本次课程设计题目为《学生成绩管理系统》,涉及成绩管理系统的登录界面、老师对学生成绩的查询、学生对学生成绩的查询、以及老师对学生成绩的增删改查分析统计等内容。本功能实现对学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和数据库的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2008作为主要开发工具,可与SQL Server 2005数据库无缝链接。本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:设计目的、需求分析、模块分析及设计、数据库设计、制作过程及要点、设计总结。
二、需求分析
2.1系统需求简介
2.1.1系统目标
根据查询条件实现学生信息的查询 学生选课信息查询、成绩信息的查询
(3)学生信息、课程信息、成绩信息的增加、删除、修改(4)对基本信息完成增加、删除、修改时,需注意表与表之间的关联
2.1.2功能需求分析
本系统的功能需求分析如下:
学生信息查询:学生可以根据学号、姓名、专业进行查询.学生信息管理:主要是用于学生信息更新、插入、删除; 学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新。
2.1.3性能需求分析
(1)登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管 理等。
2.2系统业务功能分析2.2.1具体分析有两个角色:老师和学生
学生只能有查询的权利,其中包括按学号查询,按姓名查询和按课程号查询;
而老师则有查询以及对学生成绩增删改查分析统计功能,而分析主要是分析每一课程的及格人数,不及格人数和及格率等,统计则是统计各个班级和课程成绩的升序排序等。
2.2.2流程图
图一 总流程图
三、模块分析及设计
《学生成绩管理系统》包括 5个模块:登录及主界面,成绩添加,成绩查询,成绩增删改,成绩分析与统计。登陆及主界面:用户人员在登录界面中输入用户名与密码。通过用户名与数据库里的用户表相比配,将学生与教师区分开,二者各自进入自己的页面。二者拥有各自权限,分别拥有不同的功能。
成绩添加:主要实现学生成绩的添加功能,将学生的各种信息添加到数据库中。
成绩查询:主要三种方式,按学号,按姓名,按课程号查询学生的成绩。
成绩增删改:主要是老师对学生的各项信息或成绩的修改,删除,添加等,以实现学生成绩管理系统的及时更新。
成绩分析统计:对学生成绩的分析统计包括各个学生或课程的及格人数,不及格人数,及格率,学生成绩的排序等等。
四、数据库设计
4.1数据字典
4.1.1数据流
课程信息:课程号,课程名称,学期,课程时间,学分等信息 学生信息:学号,姓名,专业,性别,生日,年龄,现状等信息 教师信息:教师编号,姓名等信息 4.1.2 数据存储
成绩表:包括学生姓名,学号,课程号,成绩等信息 登录信息表:包括学生学号,密码及教师编号,密码等信息4.2 E-R图
图二 学生信息E-R图
图三 课程信息E-R图
图四 教师信息E-R图
图五 总E-R图
4.3系统数据库的设计
综合以上分析,要实现系统功能,应该建立如下表:
表一 课程表
表二 学生表
表三 成绩表
表四 教师表
表五 用户表
五、设计过程及要点
这次课程设计我主要做数据库和登陆界面的设计并实现该系统的登录功能。
5.1数据库及窗体设计
其中数据库我一共设计了五个表,分别是学生表,课程表,成绩表,教师表和用户表,这些表的详细信息已经在上面有了介绍。
然后就是登录功能的实现。
图六 登录窗体
登录窗体主要用了3个label控件,2个textbox控件,2个radioButton控件,2个button控件,实现了教师跟学生的登录,用户名跟密码输入正确后,选择老师或者学生后分别进入各自的主界面,在主界面中可以对学生的成绩进行查询,删除等等操作。老师和学生的主界面分别如下图:
图七 学生主界面
图八 教师主界面
5.2 主要代码
namespace WindowsFormsApplication1 { public partial cla 登录 : Form { public 登录(){
InitializeComponent();sqlhelper = new Sqlhelper(“server=.;database=xscj;integrated security=true”);} Sqlhelper sqlhelper private void button1_Click(object sender, EventArgs e){ string sn;string str = “server=.;database=xscj;integrated security=true”;SqlConnection conn = new SqlConnection(str);conn.Open();
if(radioButton1.Checked){ textBox1.Text.Trim()+ “'and paword='” +textBox2.Text.Trim()+ “'”;SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if(dr.Read()){ sn = textBox1.Text.Trim();教师界面 f1 = new 教师界面();f1.Show();this.Visible = false;} else { MeageBox.Show(“输入有误,请重新输入!”);textBox1.Text = “”;textBox2.Text = “”;} } if(radioButton2.Checked){ string cstr = “select * from [user] where type='教师'and uid='” + 11
string cstr = “select * from [user] where type='学生'and uid='” +textBox1.Text.Trim()+ “'and paword='” + textBox2.Text.Trim()+ “'”;SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if(dr.Read()){ sn = textBox1.Text.Trim();学生界面 f2 = new 学生界面();f2.Show();this.Visible = false;} else { MeageBox.Show(“输入有误,请重新输入!”);textBox1.Text = “”;textBox2.Text = “”;} } conn.Close();conn.Dispose();} } }
六、设计总结
为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我们小组按照系统工程软件设计的要求,从设计目的、需求分析、模块分析及设计、数据库设计等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息增删改,学生信息添加等模块的功能。
在这短短的五天里收获如下:巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
4、更加深刻的了解了小组团队协作的重要性,只有整个小组的人通力合作才可能会完成一个项目并且进步。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
七、参考资料
[1] 钱能.C++程序设计,2008,16(2):233-237 [2] 钱能.C++程序设计试验指导,2008.34(3):35-38 [3] 谭浩强.C程序设计.北京:清华大学出版社,2001 13