基于Csharp学生信息管理系统.docx
《基于Csharp学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《基于Csharp学生信息管理系统.docx(17页珍藏版)》请在冰点文库上搜索。
基于Csharp学生信息管理系统
一、概述
在过去的二十年里,C和C++已经成为在商业软件的开发领域中使用最广泛的语言。
它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。
与诸如Microsoft?
VisualBasic?
等语言相比,同等级别的C/C++应用程序往往需要更长时间来开发。
由于C/C++语言的复杂性,许多程点。
目前有些语言,以牺牲灵活性的代价来提高效率。
可是这些灵活性正是C/C++程序员所需要的。
这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),其所提供的功能难以令人满意。
这些语言无法方便地同早先的系统交互,也无法很好地和当前的网络编程相结合。
对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。
他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。
另外,一些C/C++开发人员还需要在必要的时候进行一些底层的编程。
微软推出C#
C#(Csharp)是微软对这一问题的解决方案。
C#是一种最新的、面向对象的编程语言。
它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选--无论是高级的商业对象还是系统级的应用程序。
使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
效率与安全性
新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁。
开发者必须不断缩短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个"标志性"的版本。
C#在设计时就考虑了这些问题。
它使开发者用更少的代码做更多的事,同时也不易出错。
支持现有的网络编程新标准
新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标准,例如HTML,XML,SOAP等。
现存的开发工具往往都是早于Internet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。
所以,它们一般无法很好地支持最新的网络技术。
C#程序员可以在Microsoft.NET平台上事半功倍的构建应用程序的扩展框架。
C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。
随着科学技术的发展,计算机已经向全社会渐渐普及。
计算机逐渐成为人们生活中不可或缺的部分,与我们的生活息息相关。
然而在普及计算机的过程中,许多的初学者打字速度慢或者不会打字,而打字的速度在人们使用计算机工作和娱乐的过程中又有着极其重要的作用。
通过调查发现打字慢的主要原因是因为初学者对键盘的熟悉度还不够。
练习打字是个枯燥而乏味的过程,为了让许多的初学者能够迅速而快乐的提高打字的速度我们设计了这款关于练习打字的软件。
让大家告别因为打字速度慢而影响工作,娱乐的烦恼。
让大家在娱乐中提高打字速度。
通过实训能够结合实例进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。
深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。
二、需求分析
随着社会的发展,经过本院全体师生的共同努力,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。
学生信息管理系统以计算机为工具,通过对学生信息所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。
2.1系统目标
开发这款软件的意图是为了让大家能够快速的提高打字速度,迅速熟悉键盘,让大家在玩游戏的过程中练习打字,提高打字的速度。
其中还包括中文英文日文的练习。
更加方便大家对生中文疏字、英文、日文的练习。
快乐练习打字
2.2应用范围
本款软件适用于一切的计算机初学者和所有的期待提高打字速度的计算机使用者。
男女老少皆适用。
2.3功能要求
文本参照:
即按照现有的文本进行对照打字练习
文件:
其中包括对计算机上的文本挑选进行练习和练习的开始、暂停、结束和退出功能。
测试文本:
即对软件本身所配文本的联系其中包括英文,中文,和日文三种语言的联系。
限时测试:
在练习的时候可以让使用者自己自由选择在规定的时间内完成打字任务。
成绩显示:
让使用者能够在完成打字任务的过程中明白自己的成绩,其中包括正确个数,错误个数,以及正确率,平均速度锁用时间。
英文字母:
即本款软件的游戏内容。
游戏简单实用。
在游戏界面上方有英文字母掉下,游戏者只需快速的在键盘中输入界面中锁显示出来的字母即可。
游戏共5关,游戏者在通过第一关的情况下才能往后接着下一关。
游戏者若在游戏过程中没有达到过关要求游戏就会自动结束。
界面中包括游戏的分数的显示,正确个数,错误个数以及正确率的显示。
2.4使用权限
所有用户都可以使用。
2.5用户平台要求
安装有Microsoft.NETFramework2.0的所有windows系统。
2.5其他需求
要求界面简单,美观,优雅。
实用性强。
所占空间较小。
三、总体设计
3.1文本参照模块
本模块为对照文本输入练习模式,系统为使用者提供了3种语言的参照文本,另外使用者也可以通过添加用户计算机上的文本文档作为参照文本,以方便使用者的练习要求。
本系统还设有倒计时练习功能,用户自定义一个时间范围,系统会以倒计时的方式对用户的训练时间进行规范,自定义时间到达以后,系统会停止用户的输入。
3.2字母参照模块
本模块是对使用者的英文字母输入进行练习,系统运行以后,界面上会出现5个自上而下的英文字母,每个字母的颜色不相同,相应的得分值也不相同,用户只需键入看到的字母该字母便会消失,得到或扣除相应的得分。
分数达到一定数值便会通过一关,每一关的字母下落速度不同,当关数超过5关,系统会通知结束。
3.3系统逻辑关系图
主程序
文本参照
字母参照
Back=true
Back=false
结束
输入错误point减分
开始第N+1关
输入正确point加分
总分
Point>500
结束
Point<500
正计时输入
倒计时输入
图3-1逻辑关系图
3.4开发环境
Microsoftwindows7visualstudio2005
四、详细设计
4.1主界面设计
主界面是连接各个模块的桥梁,主界面的设计本着以简洁明了、美观大方的原则,采用了两个子模块的连接按钮和一个退出按钮组成。
4.2文本参照模块设计
文本参照模块是本软件的一个重要子模块,本模块界面如下图所示:
图4-1文本对照界面
当用户载入文本并开始以后,计时器会自动计时,当用户输入文本达到参照文本以后,系统会提示输入结束;当用户选择显示测试并开始以后,系统会以倒计时的方式开始时间统计,当统计时间到或者用户输入文本达到参照文本的长度后,系统会自动提示输入完成。
在测试文本的下拉菜单中,系统为用户准备了三种语言的参照文本,每种语言各三个参照文本。
系统也为用户设定了自定义参照文本。
在文件----打开中,用户可以从自己的计算机中自定义选择文本文件作为参照文本。
如下图:
图4-2文本对照模块流程图
当用户输入文本时,参照文本框里,会根据用户输入的正确与否自动为输入的汉字更换背景颜色,正确的文本背景色为绿色,错误的为红色。
此功能的实现是在richTextBox2_TextChanged进行一个判断,此判断功能的实现代码如下:
privatevoidselect()
{
stringstr=richTextBox2.Text;
if((str.Length-count)>1)
{
for(inti=count;i<=str.Length-1;i++)
if(str.Substring(i,1)==richTextBox1.Text.Substring(i,1))
{
richTextBox1.Select(i,1);
richTextBox1.SelectionBackColor=Color.Green;
right++;
}
else
{
richTextBox1.Select(i,1);
richTextBox1.SelectionBackColor=Color.Red;
wrong++;
}
}
else
{
if(str.Length{
richTextBox1.Select(str.Length,1);
richTextBox1.SelectionBackColor=Color.White;
wrong--;
}
elseif(str.Length-1>=0)
{
if(str.Substring(str.Length-1,1)==richTextBox1.Text.Substring(str.Length-1,1))
{
richTextBox1.Select(str.Length-1,1);
richTextBox1.SelectionBackColor=Color.Green;
right++;
}
else
{
richTextBox1.Select(str.Length-1,1);
richTextBox1.SelectionBackColor=Color.Red;
wrong++;
}
}
}
textBox1.Text=right.ToString();
textBox2.Text=wrong.ToString();
if(richTextBox2.Text=="0")
textBox3.Text="0";
else
textBox3.Text=Convert.ToString(((double)right/richTextBox1.Text.Length)*100)+"%";
textBox4.Text=Convert.ToString((double)richTextBox2.Text.Length*60/min);
count=str.Length;
}
在每次richTextBox2的richTextBox2_TextChanged事件触发后都会执行select()方法,以此达到更换背景色的目的。
在限定时间的功能里系统为用户提供了自定义时间,用户可以通过自定义时间来进行限时练习的目的。
4.3字母对照
此游戏界面如下:
图4-3字母对照主界面
在此模块中,系统会自动选择”A”——“Z”的字母。
以下落的方式供用户选择,在下落过程中如果用户没有击中字母则会被判为miss,相应字母的分值也会被扣除。
如下图:
图4-4字母对照模块流程图
此功能的实现是首先在timer1_Tick事件里对每一个label进行位置的移动,例举label10的代码如下:
if(this.label10.Top>=(label1.Location.Y-10))
{
point=point-1;
this.label10.Top=0;
this.label10.Left=r.Next(this.label10.Width,this.Width-this.label10.Width);
chart=Convert.ToChar(r.Next('A','Z'));
this.label10.Text=t.ToString();
misscount++;
label8.Text=misscount.ToString();
label9.Text=((((float)rightcount)/((float)rightcount+(float)misscount))*100).ToString()+"%";
}
键盘的键入是在Form4_KeyDown事件里边完成例举label10的代码,如下:
if(e.KeyCode.ToString().Equals(this.label10.Text))
{
this.label10.Top=0;
this.label10.Left=r.Next(this.label10.Width,this.Width-this.label10.Width);
chart=Convert.ToChar(r.Next('A','Z'));
this.label10.Text=t.ToString();
point++;
this.label6.Text=point.ToString();
rightcount++;
label7.Text=rightcount.ToString();
label9.Text=((((float)rightcount)/((float)rightcount+(float)misscount))*100).ToString()+"%";
}
当总分数达到-100分时,系统会提示用户,“GameOver是否重新开始”当用户选择的是“是”系统会重新开始,如果选择的是“否”系统会退出游戏,到达主界面。
当用户的积分达到100的整数倍时,系统会提示过关对话框,此时,游戏暂停,选择“确定”后,游戏会继续,背景图会变化,当总管数超过5关是,游戏会弹出对话框提示已经通关完毕,是否重新开始。
如果选择的是“是”游戏会重新开始关卡,但是字母下落的速度会明显增加。
五、总结展望
经过这次的实训我们总结与心得如下:
这次实训做起来很是吃力。
虽然实训是枯燥乏味的,面对电脑有时觉的确实非常难受,但是无论如何不管怎样我们都坚持下来了,这就是一次巨大的挑战。
虽然我们在网络上找了些资料,不管别人怎么说,只要我们努力了,就一定会有收获。
从中我们也明白一个道理:
如果想要在软件编程方面有所建树,就必须有坚持不懈的毅力和耐性。
古人云:
“古之成大事者不为有超世之才,亦必有坚韧不拔之志!
”如果你想做你坚持的东西,就一定要吃苦耐劳,放弃表面的东西,才能获的成功,坚持就是胜利。
其次就是要认真,编程写代码来不的一丝马虎,有时由于一点的错误就可能功败垂成!
虽然这次实训做的并不完美,很多功能都不能实现;这次实训我们组的六个成员都很用心,这毕竟是我们上大学以来第一次工程量较大的实训,大家都分工不同的工作并且努力完成;在此之中我们互相探讨,共同研究,不会的就通过网络查询、通过和同学的交流,学会了不少以前所不知道的东西,尽管此次实训完成的结果不是那么的完美,但也让我们感受到:
平时不努力,想在最后关头有所成就是不可能的!
单靠一个人完成也是非常难的,必须拥有团队的合作精神;也让我们懂得努力学习才能在以后的实训中有所成绩,在以后的工作中有所建树。
通过这次的实训,感受到团队的重要性,要完成一个完美的编程必须有一个完善的合作分工;它使我学会了许多课上还没学到的知识,也学会许多课上没学到的知识(团队的合作精神);它也明确我们以后学习的方向。
六、软件测试
以下为本款软件测试全过程过程(附详图):
一、主界面
图7-1
程序运行进入主界面如图7-1;
二、文本对照;
1、
图7-2
进入文本对照界面如图7-2;
2、
图7-3
进入文本参照开始打字,如图7-3;
3、
如图7-4
文本参照输入结束,如图7-4;
三、英文字母;
1、
如图7-5
进入英文字母界面,如图7-5;
2、
图7-6
进入游戏界面,开始游戏,如图7-6;
图7-7
游戏过程中分为5关,只有通过一关才能进入第二关,如图7-7;
3、
图7-8
当分数小于等于-100的时候,游戏结束,如图7-8;
测试过程中所遇问题及其解决方法:
1、游戏过程中发现界面字母太小,看起来不够明显清晰;
解决方法:
调节字体大小。
2、游戏过程中发现文本对照中的计算正确率的控件出现错误,计算出来的正确率没有*100;
解决方法:
进入该控件修改其代码,在原来基础上*100。
七、参考文献
① 刘志军,李戈文。
C#程序设计与应用[M].北京:
中国计划出版社,2007.
② 苏国彬。
VisualBasic.NET程序设计基础教程[M].北京:
机械工业出版社,2005.
③ 张跃廷,等。
c#程序开发范例宝典[M].北京:
人民邮电出版社,2007.
④ NAGELC.c#入门经典[M]。
齐立波,等译.3版.北京:
清华大学出版社.2006.