net框架选修课成绩管理程序.docx

上传人:b****7 文档编号:11156234 上传时间:2023-02-25 格式:DOCX 页数:20 大小:217.27KB
下载 相关 举报
net框架选修课成绩管理程序.docx_第1页
第1页 / 共20页
net框架选修课成绩管理程序.docx_第2页
第2页 / 共20页
net框架选修课成绩管理程序.docx_第3页
第3页 / 共20页
net框架选修课成绩管理程序.docx_第4页
第4页 / 共20页
net框架选修课成绩管理程序.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

net框架选修课成绩管理程序.docx

《net框架选修课成绩管理程序.docx》由会员分享,可在线阅读,更多相关《net框架选修课成绩管理程序.docx(20页珍藏版)》请在冰豆网上搜索。

net框架选修课成绩管理程序.docx

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==

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1