VC课程设计报告.docx

上传人:b****1 文档编号:1996486 上传时间:2023-05-02 格式:DOCX 页数:22 大小:422.83KB
下载 相关 举报
VC课程设计报告.docx_第1页
第1页 / 共22页
VC课程设计报告.docx_第2页
第2页 / 共22页
VC课程设计报告.docx_第3页
第3页 / 共22页
VC课程设计报告.docx_第4页
第4页 / 共22页
VC课程设计报告.docx_第5页
第5页 / 共22页
VC课程设计报告.docx_第6页
第6页 / 共22页
VC课程设计报告.docx_第7页
第7页 / 共22页
VC课程设计报告.docx_第8页
第8页 / 共22页
VC课程设计报告.docx_第9页
第9页 / 共22页
VC课程设计报告.docx_第10页
第10页 / 共22页
VC课程设计报告.docx_第11页
第11页 / 共22页
VC课程设计报告.docx_第12页
第12页 / 共22页
VC课程设计报告.docx_第13页
第13页 / 共22页
VC课程设计报告.docx_第14页
第14页 / 共22页
VC课程设计报告.docx_第15页
第15页 / 共22页
VC课程设计报告.docx_第16页
第16页 / 共22页
VC课程设计报告.docx_第17页
第17页 / 共22页
VC课程设计报告.docx_第18页
第18页 / 共22页
VC课程设计报告.docx_第19页
第19页 / 共22页
VC课程设计报告.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VC课程设计报告.docx

《VC课程设计报告.docx》由会员分享,可在线阅读,更多相关《VC课程设计报告.docx(22页珍藏版)》请在冰点文库上搜索。

VC课程设计报告.docx

VC课程设计报告

HarbinInstituteofTechnologyatWeihai

课程设计报告

课程名称:

学生成绩管理系统

设计题目:

关于学生成绩管理系统

院系:

计算机科学与技术

班级:

1004101

设计者:

刘鹏

学号:

100410126

指导教师:

郑宏珍

设计时间:

2011.09

哈尔滨工业大学(威海)

哈尔滨工业大学(威海)计算机学院

《VC++课程设计》验收及成绩评定表(项目组)

班号

1004101

项目名称

学生成绩管理系统

职责

学号

姓名

主要分工

组长

100410123

王施雨

信息的添加与删除

成员

100410126

刘鹏

信息的查询与修改

成员

成员

指导教师

郑宏珍

设计地点

H537

设计开始日期

2011.08.22

项目完成日期

2011.09.08

文档评审成绩(共35分)

评审项目

评审内容

成绩标准

评审成绩

文档格式

文档格式是否规范;文字是否规范;图表是否规范;术语是否准确

10分

文档质量

程序设计思想与整体框架是否清晰

20分

文档一致性

文档与程序是否一致

5分

文档总体评价

 

总成绩

界面友好和美观性评价(共10分)

评审项目

评审内容

成绩标准

评审成绩

实现方法

图形界面或命令行界面,美观程度

5分

实现语言

面向过程或面向对象

5分

界面总体评价

 

总成绩

程序功能完备性评审成绩(共40分)

评审项目

评审内容

成绩标准

评审成绩

程序运行状况

程序是否能正常运行;是否出现死锁;是否遇到错误而中止运行

10分

程序正确性

对于给定的输入数据,是否能得到正确的输出结果

15分

程序与文档的一致性

程序与各种文档的内容是否一致

5分

程序的代码量

程序代码量的大小

10分

程序总体评价

 

总成绩

哈尔滨工业大学(威海)计算机学院

《VC++课程设计》验收及成绩评定表(项目组)

实现技术难易程度(共15分)

评审项目

评审内容

成绩标准

评审成绩

难易性评价

采用的关键技术,实现方法

5分

实用性评价

采用的方法是否适合

5分

程序实现语言

采用何种语言实现

5分

总体评价

 

总成绩

项目综合评价

 

项目组总成绩

评审日期

年月日

评审人签字

 

备注

 

哈尔滨工业大学(威海)课程设计任务书

姓名:

刘鹏

学号:

100410126

院(系):

计算机科学与技术学院专业:

计算机科学与技术

任务起止日期:

2011年08月22日至2011年09月08日

课程设计题目:

学生成绩管理系统

问题阐述与分析:

为部分学校需求,设计学校学生成绩信息管理系统,以帮助学校达到学生管理办公自动化、节约管理成本、提高工作效率的目的。

此设计为了实现学校对学生成绩信息的管理与查询,方便了对学生的认知和理解。

设计实现意义是为了在进行对学生的统筹工作时能更快速,简单的操作,提供更人性化的设施。

主要面对的问题是对成绩信息的提取和处理以及在查询时的更人性化的操作。

工作量:

主要是实现对学生成绩信息的查询与修改

工作计划安排:

将学生成绩信息的查询与修改系统分别做好然后再整理合并

同组设计者及分工:

王施雨:

进行相应的学生成绩添加与删除功能

VC++课程设计报告

Ø软硬件运行环境

Window环境下

VisualC++6.0

报告正文要求:

正文统一用宋体5号字体,文中所有英文字符均须用TimesNewRoman字体,正文部分每段句首须空两格,均须两端对齐。

(就跟本段文字格式一样)字体均用黑色。

图,表均要有标题。

图题用类似于“图1XX流程图”的格式,在图下居中放,用小五号字体。

表题用类似于“表1XX参数列表”的格式,在表上居中放,用小五号字体。

正文中图表均要求清晰规范。

(正式填写时请删除本段)

Ø问题及难点所在

主要是如何实现查询和修改的功能。

查询的时候是根据学号查询的,只能查询数据库的信息(姓名,课程号,成绩,学分),利用类的成员变量和成员函数可以对表进行记录的查询和排序。

其中需要执行条件查询和结果排序的函数。

修改需要不同的指针将修改结果输入到数据库。

 

Ø涉及算法的思想

查询:

当要根据学号查询时,如果学号为空,要弹出“要查询的学号不能为空!

”的提示框。

如果记录集打开,则先关闭。

设定查询条件,按照学号来查询。

如果打开记录集有记录,自动更新表单中控件显示的内容。

否则弹出“没有查到你要找到学号记录!

修改:

设定指针,存到数据库。

将修改结果存入数据库。

 

Ø系统的流程图

Ø

学生成绩查询修改流程图

 

Ø系统的设计与分析

本部分应包括所用数据结构体及关键函数的详细定义及说明(正式填写时请删除本

查询记录:

使用CRecordSet类的成员变量m_strFilter,m_strSort和成员函数Open可以对表进行记录的查询和排序。

在表单中添加一个编辑框和一个“查询”按钮,单击“查询”按钮,将按编辑框中的学号内容对数据表进行查询,并将查找到的记录表显示在前面添加的控件中。

(1)打开应用程序的表单资源,按图的布局添加控件,其中添加的编辑框ID号设为IDC_EDIT_QUERY,“查询”按钮的ID号设为IDC_BUTTON_QUERY。

(2)打开MFCClassWizard对话框,为控件IDC_EDIT_QUERY添加关联变量m_strQuery。

(3)在CEX_ODBCView类中添加按钮控件IDC_BUTTON_QUERY的BN_CLICKED的消息映射,并在映射函数中添加代码。

(4)在代码中m_strFilter和m_strSort是CRecordSet的成员变量,用来执行条件查询和结果排序。

其中,m_strFilter称为“过滤字符串”,相当于SQL语句中WHERE后的条件串;而m_strSort称为“排序字符串”,相当于SQL语句中ORDERBY后的字符串。

若字段的数据类型是文本,则需要在m_strFilter字符串中用单引号将查询的内容括起来;对于数字,则不需要用单引号。

(5)需要注意的是:

只有在调用Open函数之前设置m_strFilter和m_strSort才能保证查询和排序有效。

如果有多个条件查询,则可以使用ANDORNOT来组合。

(6)编译运行并测试,需要说明的是,如果查询的结果有多条记录,则可以用CRecordSet类的MoveNext(下移一个记录),MovePrev(上移一个记录),MoveFirst(定位到第一个记录)和MoveLast(定位到最后一个记录)等函数来移动当前位置进行操作。

修改记录:

函数CRecordSet:

Edit可以用来修改记录,例如:

m_pset->Edit();//修改当前记录

………………

m_pset->Update();//将修改结果存入数据库

m_pset->Requery();

Ø运行结果与分析(测试)

要有多组测试数据及相应结果,并对多组结果进行分析比较。

(正式填写时请删除本行)

 

学生成绩管理开始界面

 

在没有输入学号就点查询

 

输入学号出现左边的成绩信息

 

就当前信息修改出现的界面

 

修改完成的界面

 

Ø总结(收获与体会)

经过几周的实验,渐渐地对vc++课程设计有了了解。

由最初的不知道该怎么做,在老师和同学的帮助下,终于编写一个简单的学生成绩管理系统。

对课程设计有了全面的认识,虽然编写的程序不是很优秀的,但比起刚开始有了大的进步。

更是从中学到了以前没学到的知识。

这次实验为我以后的学习点亮了一盏指明灯。

它使我懂的了“实践出真知”的道理。

每件事的形成绝不是一个简单的过程,生活中“耐心+细心+用心”是我们成功的必需品。

同时也明白做好一件事不是一个人可以完成的,而是需要团队的合作,需要具备团队合作精神。

同时编写程序应该考虑到使用者的要求,尽量满足他们的需求。

站在他们的角度去分析。

学校是一个大的环境,需要处理学生的成绩。

而这个成绩管理系统是给谁使用的呢?

就要满足他们的使用。

如果是要输入成绩老师的使用,就需要添加功能和删除功能;如果是学生使用呢,只能使用查询功能,最重要是不能使用修改功能;

本软件要完善的地方还有很多,主要包含的内容不够多,只有查询,修改,添加,删除四个功能。

安全性能几乎没有,需要有权限的设置。

欠缺一个登陆界面,需要设置老师,学生不同的口令。

老师输入正确的口令进入的界面和学生输入口令进入的界面是不同的。

数据应该有备份和恢复的功能。

编写的软件应用的人群尽量多,界面应该简洁美观,但功能要全,使大多数人容易上手。

最重要的是编写的软件能打动需求者,来获得基本的商业利益。

 

Ø附:

源代码

//学生成绩管理View.cpp:

implementationoftheCMyViewclass

//

#include"stdafx.h"

#include"学生成绩管理.h"

#include"学生成绩管理Set.h"+

#include"学生成绩管理Doc.h"

#include"学生成绩管理View.h"

#include"ScoreDlg.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CMyView

IMPLEMENT_DYNCREATE(CMyView,CRecordView)

BEGIN_MESSAGE_MAP(CMyView,CRecordView)

//{{AFX_MSG_MAP(CMyView)

ON_BN_CLICKED(IDC_BUTTON_QUERY,OnButtonQuery)

ON_BN_CLICKED(IDC_AddNew,OnAddNew)

ON_BN_CLICKED(IDC_Edit,OnEdit)

ON_BN_CLICKED(IDC_Delete,OnDelete)

//}}AFX_MSG_MAP

//Standardprintingcommands

ON_COMMAND(ID_FILE_PRINT,CRecordView:

:

OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT,CRecordView:

:

OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW,CRecordView:

:

OnFilePrintPreview)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CMyViewconstruction/destruction

CMyView:

:

CMyView()

:

CRecordView(CMyView:

:

IDD)

{

//{{AFX_DATA_INIT(CMyView)

m_pSet=NULL;

m_strQuery=_T("");

//}}AFX_DATA_INIT

//TODO:

addconstructioncodehere

}

CMyView:

:

~CMyView()

{

}

voidCMyView:

:

DoDataExchange(CDataExchange*pDX)

{

CRecordView:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyView)

DDX_Text(pDX,IDC_EDIT_QUERY,m_strQuery);

DDX_FieldText(pDX,IDC_SCORE,m_pSet->m_score,m_pSet);

DDV_MinMaxFloat(pDX,m_pSet->m_score,0.f,100.f);

DDX_FieldText(pDX,IDC_CREDIT,m_pSet->m_credit,m_pSet);

DDV_MinMaxFloat(pDX,m_pSet->m_credit,1.f,20.f);

DDX_FieldText(pDX,IDC_COURSENO,m_pSet->m_course,m_pSet);

DDV_MaxChars(pDX,m_pSet->m_course,7);

DDX_FieldText(pDX,IDC_STUNAME,m_pSet->m_stuname,m_pSet);

DDX_FieldText(pDX,IDC_STUNO,m_pSet->m_studentno,m_pSet);

//}}AFX_DATA_MAP

}

BOOLCMyView:

:

PreCreateWindow(CREATESTRUCT&cs)

{

//TODO:

ModifytheWindowclassorstylesherebymodifying

//theCREATESTRUCTcs

returnCRecordView:

:

PreCreateWindow(cs);

}

voidCMyView:

:

OnInitialUpdate()

{

m_pSet=&GetDocument()->m_mySet;

CRecordView:

:

OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////

//CMyViewprinting

BOOLCMyView:

:

OnPreparePrinting(CPrintInfo*pInfo)

{

//defaultpreparation

returnDoPreparePrinting(pInfo);

}

voidCMyView:

:

OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)

{

//TODO:

addextrainitializationbeforeprinting

}

voidCMyView:

:

OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)

{

//TODO:

addcleanupafterprinting

}

/////////////////////////////////////////////////////////////////////////////

//CMyViewdiagnostics

#ifdef_DEBUG

voidCMyView:

:

AssertValid()const

{

CRecordView:

:

AssertValid();

}

voidCMyView:

:

Dump(CDumpContext&dc)const

{

CRecordView:

:

Dump(dc);

}

CMyDoc*CMyView:

:

GetDocument()//non-debugversionisinline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));

return(CMyDoc*)m_pDocument;

}

#endif//_DEBUG

/////////////////////////////////////////////////////////////////////////////

//CMyViewdatabasesupport

CRecordset*CMyView:

:

OnGetRecordset()

{

returnm_pSet;

}

 

/////////////////////////////////////////////////////////////////////////////

//CMyViewmessagehandlers

voidCMyView:

:

OnButtonQuery()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData();

m_strQuery.TrimLeft();//这个成员函数的没有参数的版本用来将字符串最前面的空格修整掉。

当在没有参数的情况下调用时,TrimLeft删除换行符,空格和tab字符。

  这个成员函数的需要参数的版本用来将一个特定的字符或一群特定的字符从字符串的开始处删除。

if(m_strQuery.IsEmpty())

{

MessageBox("要查询的学号不能为空!

");

return;

}

if(m_pSet->IsOpen())

m_pSet->Close();//如果记录打开,则先关闭

m_pSet->m_strFilter.Format("Studentno='%s'",m_strQuery);

//Studentno是score表的字段名,用来指定查询条件

m_pSet->m_strSort="course";

//course是score表的字段名,用来按course字段从小到大排序

m_pSet->Open();

if(!

m_pSet->IsEOF())//如果打开记录集有记录

UpdateData(FALSE);

//自动更新表单中控件显示的内容

else

MessageBox("没有查到你要找的学号记录!

");

}

voidCMyView:

:

OnAddNew()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CScoreDlgdlg;

if(dlg.DoModal()==IDOK)

{

m_pSet->AddNew();

m_pSet->m_course=dlg.m_strCourseNO;

m_pSet->m_studentno=dlg.m_strStudentNO;

m_pSet->m_score=dlg.m_fScore;

m_pSet->m_credit=dlg.m_fCredit;

m_pSet->m_stuname=dlg.m_strStuname;

m_pSet->Update();

m_pSet->Requery();

}

}

voidCMyView:

:

OnEdit()

//实现修改功能

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CScoreDlgdlg;

dlg.m_strCourseNO=m_pSet->m_course;

dlg.m_strStudentNO=m_pSet->m_studentno;

dlg.m_fScore=m_pSet->m_score;

dlg.m_fCredit=m_pSet->m_credit;

dlg.m_strStuname=m_pSet->m_stuname;

if(dlg.DoModal()==IDOK)

{

m_pSet->Edit();

m_pSet->m_course=dlg.m_strCourseNO;

m_pSet->m_studentno=dlg.m_strStudentNO;

m_pSet->m_score=dlg.m_fScore;

m_pSet->m_credit=dlg.m_fCredit;

m_pSet->m_stuname=dlg.m_strStuname;

m_pSet->Update();

UpdateData(FALSE);

}

}

voidCMyView:

:

OnDelete()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CRecordsetStatusstatus;

if(MessageBox("真要删除此记录吗?

","删除记录?

",MB_YESNO|MB_ICONQUESTION)==IDYES)

{m_pSet->GetStatus(status);

MessageBox("确定要删除!

");

m_pSet->Delete();

if(status.m_lCurrentRecord==0)

m_pSet->MoveNext();

else

m_pSet->MoveFirst();

}

else

return;

//MessageBox("确定要删除!

");

UpdateData(FALSE);

//if(MessageBox("真要删除此记录吗?

","删除记录?

",MB_YESNO|MB_ICONQUESTION)==IDYES)

//m_pSet->Delete();

//m_pSet->MovePrev();

//if(m_pSet->IsBOF())m_pSet->MoveLast();

//if(m_pSet->IsEOF())m_pSet->SetFieldNull(NULL);

//UpdateData(FALSE);

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2