net框架选修课成绩管理程序.docx
- 文档编号:11156234
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:20
- 大小:217.27KB
net框架选修课成绩管理程序.docx
《net框架选修课成绩管理程序.docx》由会员分享,可在线阅读,更多相关《net框架选修课成绩管理程序.docx(20页珍藏版)》请在冰豆网上搜索。
net框架选修课成绩管理程序
实验报告
课程名称:
.NET框架
实验项目:
选修课成绩管理程序
专业班级:
计算机科学与技术1301班
姓名:
学号:
实验室号:
信息楼205实验组号:
实验时间:
2016.4.21批阅时间:
指导教师:
成绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:
学号:
姓名:
实验名称:
个人成绩档案管理程序
1.实验目的:
本实验的目的是通过实践教学使学生加深对.NET技术框架的理解,提高对C#语言和开发工具VisualStudio.NET的应用熟练程度,强化对面向对象编程、Windows程序设计和数据库编程等方面的能力训练。
2.实验内容:
应用VisualStudio.NET和C#语言开发选修课成绩管理软件,实现功能包括:
按课程添加成绩;按课程产生成绩分析结果;按学号查询学生成绩;按班级统计选修课学习情况。
具体内容详见所给出的示例程序。
3.实验方案(程序设计说明)
1.指导教师提供选课数据库XKDB.MDB,内容包括课程信息(Couse表)、学生信息(Student表)和选课表(Elective表)。
2.利用数据绑定技术实现数据集的显示。
3.利用ADO.NET对象模型完成对数据库的联机和脱机数据处理,实现数据更新、统计查询等功能。
4.实验步骤或程序(经调试后正确的源程序)
见附件
5.程序运行结果
见附件
6.出现的问题及解决方法
问题1:
通过实体框架上下文实例操作数据的时候使用SaveChanges方法将更改保存到数据库的时候不能将数据提交到数据库。
解决方法:
创建SQL语句直接将更新的数据提交到数据库,但是这个方法增加了资源的消耗
问题2:
程序DataGrid控件选定值之后在更新列表时程序报错,提示列表返回的数据为空导致程序出错。
解决方法:
在程序中添加判断,当程序中的item值不为空时才执行后续的赋值语句,否则什么都不执行。
附件A沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:
学号:
姓名:
一、系统登录模块
1.1功能简述
该模块主要用于登陆系统。
1.2程序实现
1.2.1窗体初始化事件的处理
(1)程序作用:
为用户提供登陆界面,用户可以输入账号密码以便登陆系统。
(2)实现代码:
Title="登陆界面"Height="350"Width="525">
"Margin="163,134,294,142"/> "Margin="163,184,306,89"/> Name="textBoxUserName"Margin="226,134,160,154"/> Name="password"Margin="226,184,160,103"/> Name="btnOK"Content="登录"Margin="139,257,306,28"Click="btnOK_Click"/> Name="btnCancel"Content="取消"Margin="319,257,126,28"Click="btnCancel_Click"/> 1.2.2“登陆”按钮的点击事件处理 (1)作用: 将用户输入的内容与数据库的内容相比较,实现用户登录系统的功能,验证用户输入的账号密码,并给用户相应的提示。 (2)实现代码: privatevoidbtnOK_Click(objectsender,RoutedEventArgse) { if(VI()) { stringsql=string.Format("SELECT*FROMuserxWHEREname='{0}'ANDpwd='{1}'",textBoxUserName.Text,password.Password); SqlCommandmycom=newSqlCommand(sql,conx.con); conx.con.Open(); SqlDataReadermdr=mycom.ExecuteReader(); if(mdr.HasRows) { Window1a=newWindow1(); a.Show(); this.Close(); conx.con.Close(); } else { MessageBox.Show("错误! 请检查! ","输入提示"); conx.con.Close(); } } } 1.2.3“取消”按钮的点击事件的处理 (1)作用: 用来退出系统。 (2)实现代码: privatevoidbtnCancel_Click(objectsender,RoutedEventArgse) { this.Close(); } 1.3运行效果 图1.3.1窗体初始化功能的执行效果 图1.3.2登陆提示功能的执行效果 图1.3.3登陆成功后的执行效果 二、主界面模块 2.1功能简述 (1)作用: 提供选择的功能,用户可以选择成绩管理来录入成绩,也可以选择成绩分析以及学习成绩查询。 (2)实现代码: 2.2程序实现 2.2.1窗体初始化事件的处理 (1)程序作用: 显示窗体,为用户提供界面。 (2)实现代码: publicWindow1() { InitializeComponent(); } 2.2.2“成绩管理”按钮的点击事件处理 (1)作用: 进入到成绩管理界面。 (2)实现代码: privatevoidTestAbout_Click(objectsender,RoutedEventArgse) { Window2a=newWindow2(); a.Show(); //this.Close(); } 2.2.3“成绩分析”按钮的点击事件处理 (1)作用: 进入到成绩分析界面。 (2)实现代码: privatevoidTestAbout_Click(objectsender,RoutedEventArgse) { Window3a=newWindow3(); a.Show(); //this.Close(); } 2.2.4“学习成绩查询”按钮的点击事件处理 (1)作用: 进入到成绩查询界面。 (2)实现代码: privatevoidTestAbout_Click(objectsender,RoutedEventArgse) { Window4a=newWindow4(); a.Show(); //this.Close(); } 2.3运行效果 图2.3.1主界面功能的执行效果 三、成绩录入模块 3.1功能简述 (1)作用: 为用户提供成绩录入的功能,以及查看录入情况的功能。 (2)实现代码: Title="成绩管理"Height="482.089"Width="764.179"> Key="ColumnHeaderStyle1"TargetType="{x: TypeDataGridColumnHeader}"> …… …… …… Key="BirthDateTemplate"> Text="{BindingBirthDate,StringFormat=\{0: yyyy-MM-dd\}}"/> Key="PhotoTemplate"> Key="RowStyle1"TargetType="{x: TypeDataGridRow}"> Name="comboBox1"Margin="103,0,482,0" Grid.Column="0"VerticalAlignment="Top"> …… Name="dataGrid1"AutoGenerateColumns="False"SelectedCellsChanged="dataGridcar_SelectedCellsChanged" Background="#FFDDFBF9" …… …… Binding="{Bindingcj}"/> Name="TextBox"HorizontalAlignment="Left"Height="23"TextWrapping="Wrap"VerticalAlignment="Top"Width="120"Margin="457,57,0,0"/> …… Name="TextBox1"HorizontalAlignment="Left"Height="23"TextWrapping="Wrap"VerticalAlignment="Top"Width="120"Margin="457,95,0,0"/> …… 3.2程序实现 3.2.1窗体初始化事件的处理 (1)程序作用: 显示窗体,为用户提供界面。 (2)实现代码: publicWindow2() { InitializeComponent(); } 3.2.2“加载数据”按钮的点击事件处理 (1)作用: 加载所选课程的人员信息。 (2)实现代码: privatevoidButton_Click(objectsender,RoutedEventArgse) { strings=comboBox1.Text; string[]kch1=newstring[]{"1001","1002","1003","1004"}; string[]kcm1=newstring[]{"数据结构",".net程序设计","C++程序设计","C语言程序设计"}; for(inti=0;i { if(kcm1[i]==s) { temp=kch1[i]; break; } } using(varcontext=newMyDbEntities1()) { varq2=fromt1incontext.chengji wheret1.kch==temp selectt1; dataGrid1.ItemsSource=q2.ToList(); } } 3.2.3“确定”按钮的点击事件处理 (1)作用: 将学生信息录入到数据库。 (2)实现代码: privatevoidButton_Click1(objectsender,RoutedEventArgse) { if(index! =0) { using(varcontext=newMyDbEntities1()) { floatx=float.Parse(TextBox3.Text); varq=fromt1incontext.chengji selectt1; index=q.Count(); try { varq3=fromt1in (fromtincontext.chengji wheret.kch==temp selectt) wheret1.xh==TextBox.Text selectt1; foreach(varvinq3) { v.cj=x; } inti=context.SaveChanges(); conx.con.Open(); …… conx.con.Close(); } catch(Exceptionex) { MessageBox.Show("修改失败: "+ex.Message); } } } else { using(varcontext=newMyDbEntities1()) { x=float.Parse(TextBox3.Text); varq=fromt1incontext.chengji selectt1; index=q.Count(); chengjistudent=newchengji() { …… }; …… } } } 3.2.4“录入情况”按钮的点击事件处理 (1)作用: 对录入情况进行统计。 (2)实现代码: privatevoidButton_Click_1(objectsender,RoutedEventArgse) { using(varcontext=newMyDbEntities1()) { varq2=fromt1incontext.chengji wheret1.kch==temp selectt1; varq3=fromt3in …… selectt3; varq4=fromt4in …… selectt4; intover=q2.Count()-q3.Count()-q4.Count(); MessageBox.Show("报名考生"+q2.Count()+"人\n"+"缺考"+q4.Count()+"人\n"+"以录成绩"+over+"人\n"+"零分或未录入成绩"+q3.Count()+"人","录入情况"); } } 3.3运行效果 图3.3.1加载数据功能的执行效果 图3.3.2录入情况功能的执行效果 四、成绩分析模块 4.1功能简述 该模块主要用于产生各门选修课的学生成绩分析结果。 4.2程序实现 4.2.1窗体初始化事件的处理 (1)程序作用: 显示成绩分析的结果 (2)实现代码: publicWindow3() { InitializeComponent(); } 4.2.2“成绩分析”按钮的点击事件处理 (1)作用: 用分析课程的成绩信息,例如及格率等信息。 (2)实现代码: privatevoidButton_Click(objectsender,RoutedEventArgse) { nfi.NumberDecimalDigits=2; stringtemp=""; strings=comboBox1.Text; string[]kch1=newstring[]{"1001","1002","1003","1004"}; string[]kcm1=newstring[]{"数据结构",".net程序设计","C++程序设计","C语言程序设计"}; for(inti=0;i { if(kcm1[i]==s) { temp=kch1[i]; break; } } using(varcontext=newMyDbEntities1()) { //统计总人数 varq=fromtincontext.chengji wheret.kch==temp selectt; TextBox.Text=q.Count().ToString(); //统计缺考人数 varq2=fromt2in …… selectt2; intqk=q.Count()-q2.Count(); TextBox1.Text=qk.ToString(); //90分以上的 varq3=fromt3in …… selectt3; …… TextBox2.Text=q6.Count().ToString(); floatjgl=(float)q6.Count()/q.Count()*100; TextBox3.Text=jgl.ToString("N",nfi)+"%"; varq7=fromtincontext.chengji wheret.kch==temp selectt.cj; TextBox_Copy10.Text=q7.Max().ToString(); TextBox_Copy11.Text=q7.Min().ToString(); floatpjf=(float)q7.Sum()/q.Count(); TextBox4.Text=pjf.ToString("N",nfi); …… } } 4.3运行效果 图4.3.1成绩分析功能的执行效果 五、成绩查询模块 5.1功能简述 该模块主要用于成绩查询。 5.2程序实现 1.2.1窗体初始化事件的处理 (1)程序作用: 为用户提供登陆界面,用户可以输入账号查询成绩。 (2)实现代码: publicWindow4() { InitializeComponent(); } 5.2.2“成绩查询”按钮的点击事件处理 (1)作用: 用户输入学号点击查询后系统查询数据返回到数据库。 (2)实现代码: privatevoidButton_Click(objectsender,RoutedEventArgse) { strings=TextBox.Text; using(varcontext=newMyDbEntities1()) { varq2=fromt3incontext.kecheng fromt2in (fromt1incontext.chengji wheret1.xh==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- net 框架 选修课 成绩 管理程序
![提示](https://static.bdocx.com/images/bang_tan.gif)