新生录取系统试验报告_第1页
新生录取系统试验报告_第2页
新生录取系统试验报告_第3页
新生录取系统试验报告_第4页
新生录取系统试验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号编号华北水利水电学院NorthChinaInstituteofWaterConservancyandHydroelectricPower实验报告课程软件工程题目新生录取管理系统院系信息工程学院专业计算机科学与技术〔2011级〕小组长何蒙蒙〔201114212〕小组成员1骆希希〔201114226〕小组成员2郭玉妍〔201114227〕指导教师庄晋林2014年6月15日华北水利水电学院软件工程实验报告2013~2014学年第二学期2011级计算机科学与技术专业小组长:何蒙蒙〔201114212〕分工:需求分析、编码、错误调试、实验报告小组成员1:骆希希〔201114226〕分工:编码、数据库建立、实验报告的修改小组成员2:郭玉妍〔201114227〕分工:演示成果,说明程序实验内容:1.1题目:新生录取管理系统问题定义:任务:某校录取新生的标准下限为:六门课均及格,或虽有一门课不及格但在50分以上且平均成绩到达60分以上。1.2要求〔1〕从键盘输入每个考生的准考证号、姓名、身份证号、各科成绩,生成一个文件。〔2〕可以对考生记录进行添加、修改但不得删除。〔3〕找出符合录取标准的考生记录,计算该生总分,生成另一个文件。〔4〕打印符合录取标准的考生报表。报表按总分依次从大到小排序,表格内容包括准考证号、姓名、总分、各单科成绩。设置管理员和普通用户两种登录系统身份,每个用户应有自己的口令;管理员身份可以完成上述根本要求的功能,普通用户可以通过同时输入准考证号和身份证号查询个人成绩。二、实验过程2.1功能需求分析:具体功能的详细描述如下1.添加学生信息2.学生信息管理3.查询学生信息4.学生信息修改5.查询录取条件的学生6.退出系统2.2数据流需求分析:登录信息 返回信息用户登用户登录进入系统操作数据库错误信息2.3系统功能概述图:2.4E—R图的建立管理员信息E-R图:符合条件的学生信息E-R图:学生成绩信息E-R图:2.5数据库的表的建立与实现:学生成绩表:符合条件的学生表:管理员信息表:三、详细设计:3.1硬件环境Windows7专业版32位操作系统,SQLserver2005,VS20103.2主要内容〔1〕从键盘输入每个考生的准考证号、姓名、身份证号、各科成绩,生成一个文件。〔2〕可以对考生记录进行添加、修改但不得删除。〔3〕找出符合录取标准的考生记录,计算该生总分,生成另一个文件。〔4〕打印符合录取标准的考生报表。报表按总分依次从大到小排序,表格内容包括准考证号、姓名、总分、各单科成绩。设置管理员和普通用户两种登录系统身份,每个用户应有自己的口令;管理员身份可以完成上述根本要求的功能,普通用户可以通过同时输入准考证号和身份证号查询个人成绩。3.3模块划分分为三个模块:数据库的建立、代码实现、调试与改错详细设计:首先根据需求分析来确定程序要实现的功能,然后细化数据库,把数据库和需求确定之后整体开始设计界面,之后是填写代码来实现各个功能。最后通过对各个功能,各种数据的调试来测试程序的稳定性、健壮性。程序分为学生登录、管理员登录两种登录方式。学生登录之后只有查询自己成绩的功能,及在学生查询功能里边只有根据登录时的身份证号和准考证号来直接查询自己的成绩,不需要重新输入自己的信息。管理员的功能比拟多,首先可以查询学生的成绩并计算总分和平均分,然后再根据这些条件选择符合条件的学生并进行录取之后保存信息。管理员还可以修改和添加学生的信息,添加和修改之后的数据都会保存到数据库中。3.4系统欢送界面 建立一个窗口,从公共控件中添加label,button控件到窗口,编辑按钮程序;连接数据库Student表对管理员输入的信息进行验证,判断是否可以通过。相关运行截图如下:3.5学生登录界面建立一个窗口,从公共控件中添加label,button和TextBox控件到窗口,编辑按钮程序;连接数据库Student表对管理员输入的信息进行验证,判断是否可以通过。相关运行截图如下:在身份证号和考试号的文本框内填入相应的数据登录验证登录出错点击确定,身份证号和准考证号数据清空,需重新输入 登录成功点击确定,进入系统3.6管理员登录界面建立一个窗口,从公共控件中添加label,button,TextBox控件到窗口,编辑按钮程序;连接数据库Admin表对管理员输入的信息进行验证,判断是否可以通过。相关运行截图如下: 登录验证输入用户名和密码,点击登录按钮 登录出错点击确定,用户名和密码框内数据清空,需重新输入 登录成功点击确定,进入系统3.7学生成绩查询界面建立一个窗口,从公共控件中添加label,button,textbox,GirdView等控件到窗口,编辑按钮程序;GirdView需要配置数据源,对数据库中的内容进行显示,对学生的考试成绩信息,包括身份证号,准考证号,姓名,语文成绩,数学成绩,英语成绩,物理成绩,化学成绩,生物成绩,以及总成绩进行查询。关于DatagridView设置为不可编辑的,它的AutoSizeRowsMode属性设置为AllCells,CollummHeadersHeightSizeMode属性设置为AutoSize。运行截图如下:学生登录成功,进入系统查询成绩点击“查询”按钮查询出学生成绩,点击“返回”按钮返回登录界面。3.8管理员操作界面建立一个窗口,从公共控件中添加,TabelLayoutPanel,label,button,textbox,GirdView等控件到窗口,编辑按钮程序;GirdView需要配置数据源,对数据库中的内容进行显示,对学生的考试成绩信息,包括身份证号,准考证号,姓名,语文成绩,数学成绩,英语成绩,物理成绩,化学成绩,生物成绩,以及总成绩进行查询。整个操作界面分三局部,第一局部是查询符合录取条件的学生,具录取条件是六门课均及格,或虽有一门课不及格但在50分以上且平均成绩到达60分以上,关于DatagridView设置为不可编辑的,因为这局部只查询合格的学生,并保存或打印出来。它的AutoSizeRowsMode属性设置为AllCells,CollummHeadersHeightSizeMode属性设置为AutoSize。第二局部是修改学生信息,根据学生的身份证号查询学生的信息,然后修改学生的成绩,修改之后保存或者返回到主界面。关于DatagridView设置为可编辑的,它的AutoSizeRowsMode属性设置为AllCells,CollummHeadersHeightSizeMode属性设置为AutoSize。第三局部是添加学生信息,当要录入学生信息的时候,根据DatagirdView中的顺序依次录入数据,然后保存,关于DatagridView设置为可编辑的,它的AutoSizeRowsMode属性设置为AllCells,CollummHeadersHeightSizeMode属性设置为AutoSize,Rowtemplate属性设置为DataGridViewRow{Index=-1}。相关运行截图如下: 查询界面点击“符合条件的学生”按钮,如下: 符合录取条件的学生 修改界面在文本框中输入身份证号,点击“确定”按钮,结果如下: 查询出需要修改的学生点击“保存”按钮,将修改后的数据保存到数据库中。 添加界面 添加成功在表格中输入相应的数据,点击“保存”按钮,保存到数据库。四、测试方案设计 1. 检查学生或管理员登录的账号和密码是否正确,检查方法是与数据库中的数据表进行比拟,匹配那么进入系统,不匹配那么进不去系统。2.设置身份证号的位数限制为18位或19位,超过那么输不进去,少于该位数那么提示数据不完整,准考证号限制为14为,少于那么提示数据不完整,超过那么输不进去。语文、数学、英语成绩限制范围,最小为0分,最大为150分。物理、化学、生物成绩限制在100以内。3.添加学生信息的时候,如果信息没有全部填完,保存的时候提示信息部完整错误。测试结果分析:在测试过程中,假设输入的密码或用户名是错误的,会出现密码错误提示并提示重新输入。在输入身份证号的时候会有输入不多于19位的限制,输入准考证号有不多于14位的限制,这个没有提示,只有在输入的时候当你输入数据超过了限制的话会输不进去。因为学生姓名不是主键,也就是可以有重名的,在上述结果中有重名的出现。保存取消等功能都会有提示。六、实验小结这次课程实验提供了一个很好的学习时机,通过这次课程实验发现这其中需要的很多知识我们没有接触过,去查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。而且知道了分工合作的重要性,同时作为一个软件开发的课程实验,让我们明白了设计一个软件要站在实用性和用户的角度去考虑问题,用户看不懂代码,他们只在乎你实现了什么功能,在乎这个软件是否好用。所以在需求分析的过程中要充分考虑到各种会出现的情况。在需求分析过程中,我们通过上网查资料,结合我们自己的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题。由于没有软件开发的经验,有些需求没有考虑清楚,做出来的东西没有让老师很满意,老师是站在用户的角度来看问题的,所以给我们找出了一些问题,让我们意识到自己还有很多的缺乏,需要许多的学习。我们学习并应用了SQL语言,对数据库的创立、修改、删除方法有了一定的了解,通过导入表和删除表、更改表学会了对于表的一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。数据库的设计关系整个程序的设计过程,因为当数据库出问题的时候,整个设计过程根本不能继续,要回来重新修改数据库,然后再重新修改代码。所以一旦数据库确定了,就不能随意更改了,这个建立数据库的过程是一个很慢很繁琐的过程,也是需要考虑很多的问题。我们是利用的C#进行的编码,因为本身对C#也不是特别的了解,所以我们在编码过程中发现了很多问题,通过上网和请教同学,我们慢慢的解决问题。也许我们做的不快、做的不好,但是每一步都是通过我们自己的努力来实现的。我们学习到了很多的知识,有很多细节的地方让我们记忆深刻。比方数据库要改为本地的,那样就不用带着电脑来回跑了,直接把数据库别离到U盘里很方便下次使用。每次遇到不会的,我们都会积极的去上网搜资料或去问同学,这个过程虽然很枯燥,但是当看到自己想要的结果的时候我们是快乐的。也许做出来的东西并不是那么让人满意,但是我们学到的东西是不容无视的,只有通过不断地改错不断地学习才能到达很完美的境界。程序有些存在的问题,要求打印的功能因为无法连接打印机所以就没有实现,不过可以换成保存到数据库的另一个表。还有就是要求做的是一个软件,所以数据库和软件应该是别离的,但是由于知识有限,没有实现这个功能,我们会在课下继续努力,争取下次对程序进行封装并且实现这个功能。七、参考文献C#高级编程清华大学出版社出版社〔第七版〕八、附录C#语言代码如下:1.欢送界面namespaceMain{publicpartialclassMain:Form{publicMain(){InitializeComponent();}privatevoidbtnStuLoad_Click(objectsender,EventArgse){this.SetVisibleCore(false);StuLoadlo=newStuLoad();lo.Show();}privatevoidbtnAdmLoad_Click(objectsender,EventArgse){this.SetVisibleCore(false);AdmLoadlo=newAdmLoad();lo.Show();}}}2.学生登录namespaceMain{publicpartialclassStuLoad:Form{publicStuLoad(){InitializeComponent();}privatevoidbtnCancel_Click(objectsender,EventArgse){this.SetVisibleCore(false);Mainmain=newMain();main.Show();}privatevoidbtnLoad_Click(objectsender,EventArgse){stringname=textBox1.Text;stringtid=textBox2.Text;varcontext=newStu_SysEntities1();varstu=(fromsincontext.Studentwhere(s.身份证号==name)&&(s.准考证号==tid)selects).FirstOrDefault();if(stu!=null){StuInfoFrmsif=newStuInfoFrm();sif.Identity=textBox1.Text;sif.Testid=textBox2.Text;MessageBox.Show("登Ì?录?成¨¦功|!ê?");this.SetVisibleCore(false);sif.Show();}else{MessageBox.Show("输入的身份证号或准考证号错误请检查后重新输入”);textBox1.Text="";textBox2.Text="";textBox1.Focus();}}}}3.管理员登录namespaceMain{publicpartialclassAdmLoad:Form{publicAdmLoad(){InitializeComponent();}privatevoidbtnLoad_Click(objectsender,EventArgse){stringname=textBox1.Text;stringpwd=textBox2.Text;varcontext=newStu_SysEntities1();varadm=(fromsincontext.Adminwhere(s.工¡è号?==name)&&(s.密码==pwd)selects).FirstOrDefault();if(adm!=null){MessageBox.Show("登录成功!");this.SetVisibleCore(false);AdmFrmsif=newAdmFrm();sif.Show();}else{MessageBox.Show("输入的用户名或密码错误,请检查后重新输入!");textBox1.Text="";textBox2.Text="";textBox1.Focus();}}privatevoidbtnCancel_Click(objectsender,EventArgse){this.SetVisibleCore(false);Mainmain=newMain();main.Show();}}}4.管理员操作namespaceMain{publicpartialclassAdmFrm:Form{Stu_SysEntities1Entities=newStu_SysEntities1();publicAdmFrm(){InitializeComponent();}privatevoidbtnsave_Click(objectsender,EventArgse){//保存到数据库varcontext=newStu_SysEntities1();List<Student>m_list=newList<Student>();intline_num=dataGridView1.NewRowIndex;for(inti=0;i<line_num;++i){Studentstudent=newStudent();student.身份证号?=(String)this.dataGridView1.Rows[i].Cells[0].Value;student.准考证号=(String)this.dataGridView1.Rows[i].Cells[1].Value;student.姓名=(String)(this.dataGridView1.Rows[i].Cells[2].Value);student.语文=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[3].Value);student.数学=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[4].Value);student.英语=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[5].Value);student.物理=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[6].Value);student.化学=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[7].Value);student.生物=Convert.ToInt32(this.dataGridView1.Rows[i].Cells[8].Value);m_list.Add(student);}intkk=m_list.Count();for(inti=0;i<kk;++i){(m_list[i]);}context.SaveChanges();MessageBox.Show("保存成功!");}privatevoidbtnOK_Click(objectsender,EventArgse){//筛选出需要修改的学生varcontext=newStu_SysEntities1();List<Student>data=newList<Student>();varst=(fromdincontext.Studentwhered.身¦份证号selectd).ToList();data.AddRange(st);dataGridView2.DataSource=st;}privatevoidbtnBack_Click(objectsender,EventArgse){this.SetVisibleCore(false);AdmLoadadmlo=newAdmLoad();admlo.Show();}privatevoidbtnSelectOk_Click(objectsender,EventArgse){//筛选出符合条件的学生varcontext=newStu_SysEntities1();List<Student>data=newList<Student>();varst=(fromdincontext.Studentwhere(d.语文>60&&d.数学>60&&d.英语>60&&d.物理>60&&d.化学>60&&d.生物?>60)||(((d.语文+d.数学+d.英语+d.物理+d.化学+d.生物)/6)>60&&(((d.语文>50)&&(d.语文<60))||((d.数学>50)&&(d.数学<60))||((d.英语>50)&&(d.英语<60))||((d.物理>50)&&(d.物理<60))||((d.化学>50)&&(d.化学<60))||((d.生物>50)&&(d.生物<60))))selectd).ToList();data.AddRange(st);dataGridView3.DataSource=st;}privatevoidbtnsave1_Click(objectsender,EventArgse){//保存到数据库varcontext=newStu_SysEntities1();Studentstudent=newStudent();student.身份证号=(String)this.dataGridView2.Rows[0].Cells[0].Value;student.准考证号=(String)this.dataGridView2.Rows[0].Cells[1].Value;student.姓名=(String)(this.dataGridView2.Rows[0].Cells[2].Value);student.语文=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[3].Value);student.数学=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[4].Value);student.英语=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[5].Value);student.物理=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[6].Value);student.化学¡=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[7].Value);student.生物=Convert.ToInt32(this.dataGridView2.Rows[0].Cells[8].Value);}privatevoiddataGridView1_CellValidating(objectsender,DataGridViewCellValidatingEventArgse){DataGridViewdgv=(DataGridView)sender;if(dgv.Columns[e.ColumnIndex].Name=="身份证号"&&()==""){//向所在行设定错误文本dgv.Rows[e.RowIndex].ErrorText="没有输入值";e.Cancel=true;}}privatevoiddataGridView1_CellValidated(objectsender,DataGridViewCellEventArgse){DataGridViewdgv=(DataGridView)sender;//删除错误文本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论