综合程序课程设计-学生成绩管理系统_第1页
综合程序课程设计-学生成绩管理系统_第2页
综合程序课程设计-学生成绩管理系统_第3页
综合程序课程设计-学生成绩管理系统_第4页
综合程序课程设计-学生成绩管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

综合程序课程设计说明书课程设计名称:综合程序设计课程设计题目:学生成绩管理系统学院名称:专业:班级:学号:姓名:评分:教师:2016年3月15日综合程序课程设计任务书2015-2016学年第2学期第1周-2周题目学生成绩管理系统内容及要求(一)功能要求:(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息。(2)信息查询:要求:查询时可实现按姓名查询、按学号查询。(3)成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)。(二)其它要求:(1)只能使用C或C++语言,源程序要有适当的注释,使程序容易阅读。(2)采用文本菜单界面。(3)学生可增加新功能模块。进度安排第一周确定学生成绩管理系统索要实现的功能,查询与实现所需功能相关的资料,并完成一些实现较为简单的功能模块;第二周通过第一周所查询到的资料,编写完成所确定的较为复杂的功能,对系统进行调试,尽可能排除各种bug并完善系统,增加界面友好。学生姓名:指导时间2016年2月29日~2016年3月13日指导地点:任务下达年月日任务完成年月日考核方式1.评阅□2.答辩□3.实际操作□4.其它□指导教师系(部)主任

综合程序课程设计任务书2015-2016学年第2学期第1周-2周题目学生成绩管理系统内容及要求(一)功能要求:(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息。(2)信息查询:要求:查询时可实现按姓名查询、按学号查询。(3)成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)。(二)其它要求:(1)只能使用C或C++语言,源程序要有适当的注释,使程序容易阅读。(2)采用文本菜单界面。(3)学生可增加新功能模块。进度安排第一周确定学生成绩管理系统索要实现的功能,查询与实现所需功能相关的资料,并完成一些实现较为简单的功能模块;第二周通过第一周所查询到的资料,编写完成所确定的较为复杂的功能,对系统进行调试,尽可能排除各种bug并完善系统,增加界面友好。学生姓名:指导时间2016年2月29日~2016年3月13日指导地点:任务下达2016年2月29日任务完成2016年3月13日考核方式1.评阅□2.答辩□3.实际操作□4.其它□指导教师系(部)主任

摘要在学校或班级,经常会对某次考试中所有学生的成绩进行统计和管理,由于学生数量非常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,为方便对学生的成绩进行统计和管理,利用C++语言及MicroSoft2010程序和数据库软件SQL2008运行平台,设计了一种小型的学生成绩管理系统,该系统具有学生成绩相关信息的录入、显示、查询、修改、删除和统计等功能。 关键字:学生成绩管理系统、MicroSoft2010、SQL2008、模块化设计。目录需求分析······················································1=1\*GB2⑴设计目的················································1=2\*GB2⑵设计任务················································1=3\*GB2⑶软件性能需求············································1数据表的设计··················································2软件结构设计··················································3软件程序的详细设计············································4=1\*GB2⑴软件主界面··············································4=2\*GB2⑵信息维护模块············································5=1\*GB3①添加·············································6 =2\*GB3②修改·············································8 =3\*GB3③删除·············································14=3\*GB2⑶信息查询模块············································15=4\*GB2⑷成绩统计模块············································18=5\*GB2⑸排序模块················································20系统的调试与测试分析··········································24用户使用手册··················································26设计总结······················································27参考文献······················································28附录··························································29

一、需求分析1、设计目的=1\*GB3①掌握运用数据库原理进行系统分析和设计的方法;=2\*GB3②掌握关系数据库的设计方法;=3\*GB3③掌握利用SQLServer2008技术;=4\*GB3④加强C++的编程能力;2、设计任务=1\*GB3①设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。=2\*GB3②设计用户的操作界面,主要实现数据的查询,录入,显示,修改,删除,统计基本功能。3、软件的性能需求学生成绩管理系统主要是提供成绩查询,方便网上信息查阅的平台。教师可以通过程序管理系统查询所有学生的各科成绩,根据学生的成绩情况为自己的后续教学安排提供依据。老师同时还对成绩管理系统具有添加、修改、删除、查询、信息统计等相关操作。二、数据表的设计数据表包含学生的姓名、学号、语文、数学、英语、政治成绩和个人总成绩、个人平均成绩。教师在输入或修改学生的各科成绩后,相应学生的个人总成绩和平均成绩就会相应的即时更新。其实体关系图如下所示:学生学生学号语文数学英语政治个人总成绩平均成绩学号语文数学英语政治个人总成绩平均成绩姓名创建数据表的代码如下所示:createtable学生成绩信息(姓名CHAR(10)NOTNULL,学号CHAR(10)NOTNULL,语文CHAR(5)NOTNULL,数学CHAR(5)NOTNULL,英语CHAR(5)NOTNULL,政治CHAR(5)NOTNULL,个人总成绩CHAR(5)NOTNULL,平均成绩CHAR(5)NOTNULL);三、软件结构设计成绩管理系统主要分为五个功能模块:信息维护模块(添加、修改、删除)、信息查询模块(按学号、姓名查询)、成绩统计模块(查询分数段内学生情况、人数)、排序模块(按单科成绩、总成绩、平均成绩排序)、查询所有模块。其关系图如下所示:成绩管理系统查询所有添加修改删除按学号分数段及此分数段人数按姓名个人总成绩降序成绩管理系统查询所有添加修改删除按学号分数段及此分数段人数按姓名个人总成绩降序排序成绩统计信息查询信息维护排序成绩统计信息查询信息维护单科成绩降序单科成绩升序平均成绩降序单科成绩降序单科成绩升序平均成绩降序四、软件程序的详细设计软件主界面在软件主界面中有四个按钮,分别可以进入四个功能模块,还有一个查询所有学生成绩信息的菜单栏按钮选项。主界面的交互界面如图1所示:图1实现页面跳转的主要代码如下所示:在form1的构造函数中定义变量如下:Form2^f2;Form3^f3;Form4^f4;Form5^f5;再在系统的头文件库stdafx.h中包含各个头文件,代码如下:#include"Form2.h"#include"Form3.h"#include"Form4.h"#include"Form5.h"点击页面跳转代码如下:private:System::Voidbutton2_Click(System::Object^sender,System::EventArgs^e){//打开信息查询窗口 f2=gcnewForm2(); f2->Show(); }private:System::Voidbutton1_Click(System::Object^sender,System::EventArgs^e){//打开信息维护窗口 f3=gcnewForm3(); f3->Show(); }private:System::Voidbutton3_Click(System::Object^sender,System::EventArgs^e){//打开成绩统计窗口 f4=gcnewForm4(); f4->Show(); }private:System::Voidbutton4_Click(System::Object^sender,System::EventArgs^e){//打开成绩统计窗口 f5=gcnewForm5(); f5->Show(); }2、信息维护模块图2 信息维护模块交互界面如图2所示。此模块可实现对学生成绩信息的添加、修改和删除。=1\*GB3①添加在信息输入栏中输入完整的学生信息,再点击添加按钮,即可完成学生成绩信息的添加,且在添加学生四科成绩之后,系统可自动计算出所添加学生的个人总成绩和平均成绩并显示在数据库文件当中,为避免重复添加,系统还会检测学生信息是否已经添加,若存在则系统会提示当前所添加学生已经添加。输入输入数据输入的输入的信息是否完整 NY Y 学号已学号已存在 添加成功添加成功此模块功能实现的主要代码如下所示:private:System::Voidbutton1_Click(System::Object^sender,System::EventArgs^e){//添加学生成绩信息 if(textBox1->Text==""||textBox2->Text==""||textBox3->Text==""||textBox4->Text==""||textBox5->Text==""||textBox6->Text=="") { MessageBox::Show("请输入完整的学生成绩信息!");///判断是否有输入添加的信息 return; } String^abc="select*from学生成绩where学号="+textBox2->Text;//判断所添加的学号是否已经存在 DataTable^abctable=gcnewDataTable(); SqlDataAdapter^abcda=gcnewSqlDataAdapter(abc,con); abcda->Fill(abctable); if(abctable->Rows->Count==1) { MessageBox::Show("此学号已存在!"); return; } String^sql="insertinto学生成绩(姓名,学号,语文,数学,英语,政治)values('"+textBox1->Text+"','"+textBox2->Text+"','"+textBox3->Text+"','"+textBox4->Text+"','"+textBox5->Text+"','"+textBox6->Text+"')"; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con);////添加学生信息 try { ourda->Fill(ourtable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } MessageBox::Show("添加成功!");//////////////更新个人总成绩////////////// String^zf="update学生成绩set个人总成绩=语文+数学+英语+政治"; DataTable^zftable=gcnewDataTable(); SqlDataAdapter^zfda=gcnewSqlDataAdapter(zf,con); try { zfda->Fill(zftable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return;} ///////////////更新平均成绩///////////////// String^ave="update学生成绩set平均成绩=个人总成绩/4"; DataTable^avetable=gcnewDataTable(); SqlDataAdapter^aveda=gcnewSqlDataAdapter(ave,con); try { aveda->Fill(avetable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return;}}=2\*GB3②修改 在信息栏中输入所要修改的学生姓名与学号,且在所要修改的科目一栏输入修改后的分数,并勾选所要修改的科目,若要全部修改可在填写完分数后点击全部勾选即可,若想要单独修改某一科成绩,则只需单独勾选该一科成绩即可。并且在修改成功后系统会自动更新该学生成绩修改后的个人总成绩和平均成绩。输入要修改的内容输入要修改的内容输入的输入的学号与姓名是否匹配 NY是否已勾选是否已勾选所要修改的成绩 N Y修改成功修改成功此功能的实现代码如下所示:private:System::Voidbutton2_Click(System::Object^sender,System::EventArgs^e){//修改学生成绩信息 if(textBox1->Text==""||textBox2->Text=="")//判断姓名和学号是否为空 { String^sql="请输入姓名和学号!"; MessageBox::Show(sql); return;} String^abc="select*from学生成绩where姓名='"+textBox1->Text+"'and学号="+textBox2->Text; DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(abc,con); ourda->Fill(ourtable); if(ourtable->Rows->Count==0)////判断输入的学号在数据库中是否存在 { MessageBox::Show("输入的姓名与学号不匹配或此学生不存在!"); return; } if((textBox3->Text==""||checkBox1->Checked==false)&&(textBox4->Text==""||checkBox2->Checked==false)&&(textBox5->Text==""||checkBox3->Checked==false)&&(textBox6->Text==""||checkBox4->Checked==false)) { MessageBox::Show("请输入需要修改内容的值并勾选相应的方框!");///判断是否已经输入正确的需改内容和操作 return; } if(checkBox1->Checked==true&&textBox3->Text!="")//////语文成绩的修改 { String^sql="update学生成绩set语文"+"='"+textBox3->Text+"'"+"where姓名"+"='"+textBox1->Text+"'"+"and学号="+textBox2->Text+""; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^our=gcnewSqlDataAdapter(sql,con); try { our->Fill(ourtable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } } if(checkBox2->Checked==true&&textBox4->Text!="")//数学成绩的修改 { String^sql="update学生成绩set数学"+"='"+textBox4->Text+"'"+"where姓名"+"='"+textBox1->Text+"'"+"and学号="+textBox2->Text+""; DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } } if(checkBox3->Checked==true&&textBox5->Text!="")//英语成绩的修改 { String^sql="update学生成绩set英语"+"='"+textBox5->Text+"'"+"where姓名"+"='"+textBox1->Text+"'"+"and学号="+textBox2->Text+""; DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } } if(checkBox4->Checked==true&&textBox6->Text!="")//政治成绩的修改 { String^sql="update学生成绩set政治"+"='"+textBox6->Text+"'"+"where姓名"+"='"+textBox1->Text+"'"+"and学号="+textBox2->Text+""; DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } } MessageBox::Show("修改成功!"); //////////////更新个人总成绩////////////// String^zf="update学生成绩set个人总成绩=语文+数学+英语+政治"; DataTable^zftable=gcnewDataTable(); SqlDataAdapter^zfda=gcnewSqlDataAdapter(zf,con); try { zfda->Fill(zftable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } ///////////////更新平均成绩///////////////// String^ave="update学生成绩set平均成绩=个人总成绩/4"; DataTable^avetable=gcnewDataTable(); SqlDataAdapter^aveda=gcnewSqlDataAdapter(ave,con); try { aveda->Fill(avetable); } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } }全部选择功能实现代码如下所示:private:System::VoidcheckBox5_CheckedChanged(System::Object^sender,System::EventArgs^e){//全部修改checkBox选择操作 if(checkBox5->Checked==true) { checkBox1->Checked=true; checkBox2->Checked=true; checkBox3->Checked=true; checkBox4->Checked=true; } if(checkBox5->Checked==false) { checkBox1->Checked=false; checkBox2->Checked=false; checkBox3->Checked=false; checkBox4->Checked=false; } }=3\*GB3③删除在姓名和学号栏中输入要删除的学生信息,点击删除按钮,若此学生在数据库中存在则会显示删除成功,若不存在则会提示所要删除的学生不存在。输入姓名和学号输入姓名和学号姓名姓名与学号是否匹配 NY删除删除成功其代码实现如下所示:private:System::Voidbutton3_Click(System::Object^sender,System::EventArgs^e){//删除学生成绩信息 if(textBox1->Text==""||textBox2->Text=="")//判断是否有输入必要信息 { String^sql="请输入姓名和学号!"; MessageBox::Show(sql); return; } String^abc="select*from学生成绩where姓名='"+textBox1->Text+"'and学号="+textBox2->Text; DataTable^f3=gcnewDataTable(); SqlDataAdapter^f4=gcnewSqlDataAdapter(abc,con); f4->Fill(f3); if(f3->Rows->Count==0)//判断所要删除的学号是否存在 { MessageBox::Show("输入的姓名与学号不匹配!"); return; } String^sql="delete学生成绩where姓名"+"='"+textBox1->Text+"'and"+"学号="+textBox2->Text+""; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable();//信息输入正确后删除次学生信息的操作 SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); } catch(System::Data::SqlClient:SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); return; } String^ac="select*from学生成绩where姓名='"+textBox1->Text+"'and学号="+textBox2->Text; DataTable^f1=gcnewDataTable(); SqlDataAdapter^f2=gcnewSqlDataAdapter(abc,con); ourda->Fill(f1); if(f1->Rows->Count==0)//删除后再次查询此学生信息,验证是否删除成功 { MessageBox::Show("删除成功!"); }}3、信息查询模块图3信息查询模块的交互界面如图3所示,此模块可实现按照学号、姓名两种方式对学生的所有成绩信息进行查询。在查询内容一栏中输入与所选查询方式相对应的查询内容并点击查询按钮就会在窗口下方显示符合条件的学生的所有成绩信息。选择选择查询方式输入查询内容输入查询内容输入输入内容是否存在 NY显示相关显示相关信息此功能实现的代码如下所示:private:System::Voidbutton1_Click(System::Object^sender,System::EventArgs^e){ con=gcnewSqlConnection();//链接数据库 con->ConnectionString=L"DataSource=DESKTOP-0FETV4R;InitialCatalog=学生成绩管理系统;IntegratedSecurity=True"; if(textBox1->Text=="")//判断是否有输入内容 { String^sql="请输入所要查询的内容!"; MessageBox::Show(sql); return; } if(radioButton1->Checked==true)//按学号查询 { String^sql="select*from学生成绩where学号"+"='"+textBox1->Text+"'"; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); } } if(radioButton2->Checked==true)//按姓名查询 { String^sql="select*from学生成绩where姓名"+"='"+textBox1->Text+"'"; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息");}}}4、成绩统计模块图4 成绩统计模块的交互界面如图4所示。此模块主要实现对学生成绩的分布情况进行查询,在课程名一栏输入所要查询的课程名称包括恶人总成绩和平均成绩,并且输入分数段,点击确认按钮,在栏目下方即可显示此分数段内学生的成绩信息,并且在右边方框中会显示此分数段内的学生人数。输入输入课程名与分数段输入输入信息是否完整 N显示分数段内的显示分数段内的学生信息与学生人数其主要功能实现的代码如下所示:private:System::Voidbutton1_Click(System::Object^sender,System::EventArgs^e){ con=gcnewSqlConnection();//连接数据库 con->ConnectionString=L"DataSource=DESKTOP-0FETV4R;InitialCatalog=学生成绩管理系统;IntegratedSecurity=True"; if(textBox1->Text==""||textBox2->Text==""||textBox3->Text=="")//判断是否有输入完整信息 { String^sql="请填写完整所要统计的内容!"; MessageBox::Show(sql); return;} String^sql="select*from学生成绩where"+textBox1->Text+"between"+textBox2->Text+"and"+textBox3->Text; MessageBox::Show(sql);DataTable^ourtable=gcnewDataTable();//查询输入分数段的所有学生的情况 SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; String^i=""+ourtable->Rows->Count;//显示在输入分数段内的学生人数 textBox4->Text=i; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); } }5、排序模块图5 排序模块的交互界面如图5所示。此模块的主要功能是对学生的成绩情况进行统计排序,方便教师更加直观的对学生成绩的分布情况进行了解。所列出的排序有四种方法,分别为单科成绩升序、降序,总成绩降序,平均成绩降序。输入课程名并点击确定按钮,则在栏目下方会显示按照排序规则排序后的学生成绩信息。输入输入排序的课程名选择选择排序方式输出输出排序结果其主要功能实现的代码如下所示:private:System::Voidbutton1_Click(System::Object^sender,System::EventArgs^e){//排序 if(radioButton3->Checked==true)//总成绩排序 { String^sql="select*from学生成绩where个人总成绩orderby个人总成绩desc"; //MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息");} return;} if(radioButton4->Checked==true)//平均成绩排序 { String^sql="select*from学生成绩where平均成绩orderby平均成绩desc"; //MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); } return;} if(radioButton1->Checked==true||radioButton2->Checked==true)//单科成绩排序 { if(textBox1->Text=="") { MessageBox::Show("请输入排序课程名!"); return; } if(radioButton1->Checked==true)//单科成绩升序 { String^sql="select*from学生成绩where"+textBox1->Text+"orderby"+textBox1->Text+"asc"; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); } } if(radioButton2->Checked==true)//单科成绩降序 { String^sql="select*from学生成绩where"+textBox1->Text+"orderby"+textBox1->Text+"desc"; MessageBox::Show(sql); DataTable^ourtable=gcnewDataTable(); SqlDataAdapter^ourda=gcnewSqlDataAdapter(sql,con); try { ourda->Fill(ourtable); this->dataGridView1->DataSource=ourtable; } catch(System::Data::SqlClient::SqlException^ex) { MessageBox::Show("数据异常信息是:"+ex->Errors,"提示信息"); }}}}五、系统的调试与测试分析在系统调试过程中遇到的第一个主要问题就是成绩统计模块的分数段内的人数显示问题,其部分代码为:String^i=""+ourtable->Rows->Count;//显示在输入分数段内的学生人数textBox4->Text=i;由于一开始写的代码为String^i=ourtable->Rows->Count;在程序编译时会显示无法把int类型数据转化为string类型。导致无法把查询到的学生人数送至textBox4中显示。于是在等号后面加上空符号,则生成的数据类型为string类型并可以送至textBox4中显示,此问题得以成功解决。在调试过程中遇到的第二个主要问题是信息维护模块的修改功能的实现。一开始的问题代码如下:if(textBox3->Text==""&&textBox4->Text==""&&textBox5->Text==""&&textBox6->Text=="") { MessageBox::Show("请输入需要修改的内容!"); return; }if(checkBox1->Checked==false&&checkBox2->Checked==false&&checkBox3->Checked==false&&checkBox4->Checked==false) { MessageBox::Show("请勾选所要修改课程右边的方框!"); return;}在输入要修改的成绩之后不勾选本成绩的方框而是去勾选别的没有填入修改成绩的方框,则也会提示修改成功。例如修改小米的成绩:姓名:小米 学号:09 语文:80(不勾选)数学:不输入(勾选)点击修改按钮,弹出窗口显示修改成功。但是查询后发现小米同学的成绩并没有修改。经过进一步对程序的调试及逻辑分析,将此段代码修改如下:if((textBox3->Text==""||checkBox1->Checked==false)&&(textBox4->Text==""||checkBox2->Checked==false)&&(textBox5->Text==""||checkBox3->Checked==false)&&(textBox6->Text==""||checkBox4->Checked==false)) { MessageBox::Show("请输入需要修改内容的值并勾选相应的方框!"); return; }修改后的程序运行上述修改内容后,则会提示:”请输入需要修改内容的值并勾选相应的方框!”再勾选语文成绩并去除勾选数学成绩后点击修改按钮,提示修改成功,再查询小米同学的成绩则会看到小米同学的成绩被修改为80,程序运行正确。 在调试运行中遇到的第三个主要问题是将数据库中的学生成绩信息导入到excel中。在编译过程中始终会提示Microsoft为引用的是非法命名空间,上网查询了去多资料,在项目中引用了com程序集Microsoftoffice15.0ObjectLibrary还是不能成功解决此问题。在尝试多种方法未果后,于是就放弃了这部分的功能。但是在以后的学习当中,我会不断的学习新的知识与技能,一定会成功解决这部分的问题。六、用户使用手册点击软件进入主界面,有如下按钮及功能查询所有:查看所有学生成绩的信息。信息维护:对学生的成绩进行维护,包含添加学生信息、修改学生信息和删除学生信息。添加:在姓名、学号、语文、数学、英语、政治各栏中填入相应的信息,点击添加按钮即可成功添加。修改:输入所要修改的姓名、学号和成绩,并且勾选要修改的成绩(若要全部修改勾选全部修改即可),再点击修改按钮即可成功修改。删除:输入正确的姓名与学号,点击删除按钮即可成功删除。若输入的姓名与学号不匹配则会提示错误且不会删除成功。信息查询:首先选择查询的方式,再输入查询方式所对应的查询内容,点击查询按钮,即可成功查询学生信息。成绩统计:输入所需要统计的课程名(包括个人总成绩和平均成绩)和分数段,点击确认按钮,即可显示符合条件的学生成绩情况和符合条件的学生人数。排序:输入课程名并选择排序方式(总成绩排序和平均成绩排序不需要输入课程名),点击确认按钮就会显示排序结果。七、总结本次课程设计实现了对学生成绩管理系统的设计与完成,在实验过程中碰到了许多难题,不过大部分得到了较为成功的解决。学生成绩管理系统利用计算机对学生成绩进行管理,大大降低了人工管理的难度和工作量。本次设计的学生成绩管理系统较为一般,功能还不是特别强大,很多的地方还需要完善和进一步的改进,比如说excel对表格数据的处理具有无可比拟的强大功能,在成绩系统中加入将数据库文件转换输出为excel文件的功能,更加方便对学生成绩的分析与处理。由于学生成绩管理系统在每个学校都发挥这巨大的作用,它不仅可以为老师提供学生的成绩信息,同时也可以让老师通过分析学生成绩的分布状况相应的开展针对性的教学活动,促进教育的良好而又全面的发展,可见学生成绩管理系统在学校中的巨大影响。同样,由于学生成绩管理系统在学校中的地位举足轻重,可也决定了它有一个广阔的市场前景。一个好的成绩管理系统可以对学校提供更好的数据参考,其潜在价值是巨大的。 通过本次课程设计收益良多,不仅学会了如何将数据库软件和C++编程软件配合使用,同时还提升了自己的软件结构的设计能力,为以后的软件开发奠定了一个初步的基础。通过此次对学生成绩系统的设计,使我更加熟练地掌握了SQL语言和C++语言的使用,并且也同时提高了小组的合作设计能力。八、参考文献方芳、赵敏主编《VisualC++基础教程》.北京理工大学出版社.2015年8月。苗雪兰、刘瑞新等主编《数据库系统原理及应用教程》.机械工业出版社.2006年1月。严蔚敏、吴伟民主编《数据结构(C语言版)》.清华大学出版社.2007年。九、附录系统功能层次图成绩管理系统查询所有添加修改删除按学号分数段及此分数段人数按姓名个人总成绩降序成绩管理系统查询所有添加修改删除按学号分数段及此分数段人数按姓名个人总成绩降序排序成绩统计信息查询信息维护排序成绩统计信息查询信息维护单科成绩降序单科成绩升序平均成绩降序单科成绩降序单科成绩升序平均成绩降序数据库:基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制

温馨提示

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

评论

0/150

提交评论