当前位置:文档之家› 面向对象课程设计(濮)

面向对象课程设计(濮)

面向对象课程设计(濮)
面向对象课程设计(濮)

湖南师范大学工程与设计学院面向对象系统课程设计

课题名称: 学生考试系统

姓名:濮湘华

学号: 2011180532

专业:计算机科学与技术

指导老师:

目录

1、需求分析 (3)

2、系统设计 (3)

3、数据库设计 (6)

4、关键模块设计 (10)

5、课程设计心得 (31)

【课程设计名称】:学生考试系统

【学习内容】:学习数据库的概念模型的设计、数据库的使用、C++的面向对象的学习,VC数据库连接。

一、需求分析

根据学生考试的特点和学校的实际情况,以考试流程为基础,从专业角度出发,提供科学有效的考试模式。考试时采用系统自动从数据表中选题的方式,评卷时通过核对考生答案与正确答案得出考生的分数。

二、系统设计

2.1系统功能结构

学生考试系统功能结构图如图所示。

2.2 系统预览

学生考试系统主要由登陆界面、试题界面、及考试成绩管理等模块组成,学生考试管理系统主窗口用于考生选题答题操作,考试结果信息模块用于对考生的答题结果进行评分。

登陆界面:

主窗口界面:

考试结果窗口界面:

试题管理模块用于增添考试科目,并可以添加、修改和删除试题,如图4所示;学生成绩查询模块用于查询考生的考试成绩,如下图

成绩管理:

2.2 学生考试系统流程

二、数据库设计

1、数据库概念设计

根据前面介绍的需求分析和系统设计规划出本系统中使用的数据库实体对象分别为用户信息实体、科目信息实体、试题信息实体、试题答案信息实体、答案暂存信息实体和考试结果信息实体等。

(1)用户信息实体

用户信息实体包括用户编号、用户名、密码、密码提示问题、答案、真实姓名、年龄、性别、联系电话、用户权限、身份证号和注册日期。用户信息实体E-R图,如下图所示。用户实体:

(2)科目信息实体

科目信息实体包括科目ID和科目名称。科目信息实体E-R图,如下图

(3)试题信息实体

试题信息实体包括试题ID、试题内容、试题答案、试题分数和科目ID。试题信息实体E-R图,如下图

(4)试题答案信息实体

试题答案信息实体包括试题ID、A选项答案、B选项答案、C选项答案和D选项答案。试题答案信息实体E-R图,如下图

(5)答题暂存信息实体

答题暂存信息实体包括题号、试题内容、考生答案、考生得分和考生ID。答题暂存信息实体E-R图,如下图

(6)考试结果信息实体

考试结果信息实体包括起始时间、截止时间、考试科目、考试成绩和学生编号。考试结

果信息实体E-R图,如下图

2、数据库逻辑表

用户信息表主要用于记录用户注册信息、账号信息及密码,保障只有合法用户才能登录系统。该表的结构如图

注册后信息:

(2)考试科目表(subject)

考试科目表主要用于记录要考试的科目信息。该表的结构如图

(3)试题信息表(test)

试题信息表主要用于存放各科目考试题信息。该表的结构如下图

(4)试题答案信息表

试题答案信息表主要用于存放试题的答案选项。该表的结构如图

(5)答题信息暂存表

答题信息暂存表主要用于暂时存储考生在考试过程中的答题信息

(6)考试结果信息表

考试结果信息表主要用于存储考生考试的时间、科目、成绩等信息

三、关键模块设计

1、注册模块设计

注册过程中要用户登记身份证信息,在用户注册的同时系统将自动对身份证信息进行验证,验证身份证信息要从身份证号位数、出身年月、用户性别等资料进行验证。代码如下:

if(m_IDcard.GetLength() != 18)

{

AfxMessageBox("输入身份证号码无效");

return;

}

else

{

int num=0;

char ch;

for(int i=0;i<17;i++)

{

ch = m_IDcard.GetAt(i);

if(ch>47 && ch<58)

num++;

}

if(i==17)

{

ch = m_IDcard.GetAt(i);

if((ch>47 && ch<58) || (ch==88 || ch==120)) / num++;

}

if(num != 18)

{

AfxMessageBox("输入身份证号码无效");

return;

}

else

{

CString syear = m_IDcard.Mid(6,4);

int year = atoi(syear);

CString smonth = m_IDcard.Mid(10,2);

int month = atoi(smonth);

CString sday = m_IDcard.Mid(12,2);

int day = atoi(sday);

BOOL leap;

if(month<1||month>12)

{

AfxMessageBox("输入身份证号码无效");

return;

}

switch(month)

{

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

if(day<0 || day>31)

{

AfxMessageBox("输入身份证号码无效");

return;

}

break;

case 4: case 6: case 9: case 11:

if(day<0 || day>30)

{

AfxMessageBox("输入身份证号码无效");

return;

}

break;

case 2:

if(year % 4 == 0)

{

if(year % 100 != 0)

leap = TRUE;

else if(year % 400 == 0)

leap = TRUE;

else

leap = FALSE;

}

else

leap = FALSE;

if(leap)

if(day<0 || day>29)

{

AfxMessageBox("输入身份证号码无效"); //提示

return;

}

else

if(day<0 || day>28)

{

AfxMessageBox("输入身份证号码无效"); //提示错误信息

return;

}

break;

}

}

}

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

单击“注册”按钮后系统自动将用户所填入的数据一一添加进数据表中,从而达到注册的目的。代码如下:

UpdateData();

if(m_UserName.IsEmpty())

{

AfxMessageBox("请输入用户名");

return;

}

if(m_Passwd.IsEmpty())

{

AfxMessageBox("请输入密码");

return;

}

if(m_Passwd!=m_PasswdRepeat)

{

AfxMessageBox("两次输入密码不一致,请重新输入");

return;

}

u if(m_QuestionCombo.GetCurSel()==-1||m_QuestionCombo.GetCurSel()==0) // {

AfxMessageBox("请选择密码提示问题");

return;

}

if(m_Answer.IsEmpty())

{

AfxMessageBox("请输入提示问题的答案");

return;

}

if(m_RealName.IsEmpty())

{

AfxMessageBox("请输入真实姓名");

return;

}

v m_QuestionCombo.GetLBText(m_QuestionCombo.GetCurSel(),str);

CString sex;

if(radio==0)

sex.Format("");

if(radio==1)

sex.Format("男");

if(radio==2)

sex.Format("女");

CTime time;

time=CTime::GetCurrentTime();

CString nowtime=time.Format("%Y-%m-%d");

int id;

try

{

m_AdoConn.OnInitADOConn();

//打开数据库连接

CString sql="select*from register where username='"+m_UserName+"'";

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);

if(!m_pRs->adoEOF)

{

AfxMessageBox("用户名已存在");

return;

}

else

{

sql.Format("select studentid from register");

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); /

if(m_pRs->adoEOF)

id=1001;

else

{

m_pRs->MoveLast();

id=atoi((_bstr_t)m_pRs->GetCollect("studentid"));

id+=1; }

//向注册信息表中插入用户名、密码、提示问题、答案等信息

sql.Format("insert into register(username,[password],question,answer,name,\

age,sex,phone,studentid,power,login_date)values('%s','%s','%s','%s','%s',\

%d,'%s',%d,%d,'学生','%s')",m_UserName,m_Passwd,str,m_Answer,m_RealName,m_Age,\

sex,m_Phone,id,nowtime);

m_AdoConn.ExecuteSQL((_bstr_t)sql);

m_AdoConn.ExitConn();

AfxMessageBox("注册成功"); //提示注册成功

CDialog::OnCancel();

CLOGIN dlg; //定义一个登录类实例

dlg.DoModal();

//打开登录窗口

}

}

catch(...)

{

AfxMessageBox("操作失败");

return;

}

2、登陆窗口模块设计

BOOL CLOGIN::OnInitDialog()

{

CDialog::OnInitDialog();

m_TypeList.SetCurSel(1);

CenterWindow();

DWORD dwStyle = AW_CENTER;

HINSTANCE hInst = LoadLibrary("User32.DLL");

typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));

MYFUNC* AnimateWindow;

AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");

AnimateWindow(this->m_hWnd,1000,dwStyle);

FreeLibrary(hInst);

return TRUE;

}

void CLOGIN::OnButtonCancel()

{

DWORD dwStyle = AW_CENTER;

HINSTANCE hInst = LoadLibrary("User32.DLL");

typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));

MYFUNC* AnimateWindow;

AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");

AnimateWindow(this->GetSafeHwnd(),700,AW_HIDE|dwStyle);

FreeLibrary(hInst);

CDialog::OnCancel();

}

UpdateData();

CString str;

m_TypeList.GetLBText(m_TypeList.GetCurSel(),str);

if(m_UserName.IsEmpty())

{

AfxMessageBox("用户名不能为空");

return;

}

if(m_UserPasswd.IsEmpty())

{

AfxMessageBox("密码不能为空");

return;

}

CString sql="select*from register where username='"+m_UserName+"' and [password]='"+m_UserPasswd+"' and

power='"+str+"'";

try

{

_RecordsetPtr m_pRs;

ADOConn m_AdoConn; //定义一个数据库连接类变量

m_AdoConn.OnInitADOConn();

//连接数据库

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); //获if(m_pRs->adoEOF)

{

sql="select*from register where username='"+m_UserName+"'"; //如果为空判断是否存在此用户

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); //获

if(!m_pRs->adoEOF)

{

if(m_UserPasswd!=(char*)(_bstr_t)m_pRs->GetCollect("password"))

{

if(MessageBox("密码错误,是否找回密码?","提示",MB_YESNO)==IDYES) //提示找回密码

{

CFind dlg;

https://www.doczj.com/doc/3312549365.html,=m_UserName;

CDialog::OnCancel();

dlg.DoModal();

}

}

else

{

if(str!=(char*)(_bstr_t)m_pRs->GetCollect("power"))

{

AfxMessageBox("权限错误");

return;

}

}

}

else

{

if(MessageBox("用户名不存在,是否注册?","提示",MB_YESNO)==IDYES) //提示注册

{

CDialog::OnCancel();

CRegister dlg;

dlg.m_UserName=m_UserName;

dlg.DoModal();

}

else

CDialog::OnCancel();

}

}

else

{

if(str=="教职工")

{

CDialog::OnCancel();

CBack dlg;

dlg.DoModal();

}

else

CDialog::OnOK();

}

m_AdoConn.ExitConn();

}

用于打开数据库连接,在函数中添加如下代码。

void ADOConn::OnInitADOConn()

{

::CoInitialize(NULL);

try

{

m_pCon.CreateInstance("ADODB.Connection"); //创建Connection对象

m_pCon->ConnectionTimeout=3;

m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=ExamOnline.mdb","","",adModeUnknown);

}

catch(_com_error e)

{

AfxMessageBox(e.Description());

}

}

主窗口设计

系统将自动将数据表中所拥有的科目信息显示到下拉列表框控件中。添加代码如下:

BOOL CExamInfo::OnInitDialog()

{

CDialog::OnInitDialog();

m_AdoConn.OnInitADOConn();

//打开数据库连接

CString sql="select* from subject";

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);

//获取科目表记录

while(m_pRs->adoEOF==0)

{

CString subject=(char*)(_bstr_t)m_pRs->GetCollect("subjectname"); //

m_SubjectCombo.AddString(subject);

m_pRs->MoveNext();

}

m_AdoConn.ExitConn();

//关闭数据库连接

return TRUE;

}

当考生单击考试信息对话框中的“确定”按钮时,系统将自动将所选科目信息及试题信息发送到主窗体中。添加代码如下:

UpdateData();

if(m_SubjectCombo.GetCurSel()==-1)

{

AfxMessageBox("请选择科目"); //提示选择选项

return;

}

m_SubjectCombo.GetLBText(m_SubjectCombo.GetCurSel(),Subject);

m_AdoConn.OnInitADOConn();

//打开数据库连接

CString sql="select * from subject where subjectname='"+Subject+"'"; //查询科目表中科目信息

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);

Sid=atoi((char*)(_bstr_t)m_pRs->GetCollect("subjectid")); //获取科目的ID号信息

sql.Format("select *from test where subjectid=%d order by testid",Sid); /

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);

//获取试题记录

Question=(char*)(_bstr_t)m_pRs->GetCollect("question"); //获取试题信息

m_AdoConn.ExitConn();

//关闭数据库连接

CDialog::OnOK();

//传递信息给主窗体

主窗体:

关键代码:

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

在单击“下一题”按钮时,系统将自动判断下一题是否做过,如果做过则直接调出考试做过的信息,反之则保存当前试题答题信息再从数据表中调出下一题得信息。为“下一题”按钮如下代码。

UpdateData();

CButton* m_checkA=(CButton*)GetDlgItem(IDC_RADIO_A);

CButton* m_checkB=(CButton*)GetDlgItem(IDC_RADIO_B);

CButton* m_checkC=(CButton*)GetDlgItem(IDC_RADIO_C);

CButton* m_checkD=(CButton*)GetDlgItem(IDC_RADIO_D);

CString sql;

CString question,answer;

m_Test.GetWindowText(question);

//获取当前试题题目信息

CString Id;

Id.Format("题号:%d",testnum+1); //将下一题题号转换成CString型

m_AdoConn.OnInitADOConn();

//打开数据库连接

sql.Format("select*from test where question='%s'",question); //查询试题信息表中试题信息

m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);

CString testid=(char*)(_bstr_t)m_pRs->GetCollect("testid");

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

《面向对象程序设计》课程设计报告:同学通讯录管理程序

目录 1.设计题目................................. 错误!未定义书签。 2.设计目的和内容........................... 错误!未定义书签。 设计目的................................... 错误!未定义书签。 设计内容................................... 错误!未定义书签。 3.基本功能描述............................. 错误!未定义书签。 4.设计思路................................. 错误!未定义书签。 5.软件设计................................. 错误!未定义书签。 设计步骤................................... 错误!未定义书签。 界面设计................................... 错误!未定义书签。 关键功能的实现............................. 错误!未定义书签。 添加记录................................ 错误!未定义书签。 删除记录................................ 错误!未定义书签。 选中记录................................ 错误!未定义书签。 确认修改................................ 错误!未定义书签。 保存记录................................ 错误!未定义书签。 退出.................................... 错误!未定义书签。 6.结论与心得体会........................... 错误!未定义书签。 7.参考文献................................. 错误!未定义书签。 8.附录..................................... 错误!未定义书签。 调试报告及测试结果 ......................... 错误!未定义书签。

《面向对象程序设计》课程设计要求和任务书

《面向对象程序设计》课程设计任务书 课程设计名称:面向对象程序设计指导老师:王淮亭 课程设计周(时)数:2周 课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合 课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料: 《C++程序设计》谭浩强编著,清华大学出版社 《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社 服务课程名称:面向对象程序设计 一、课程设计的目的要求 《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。 本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。 二、课程设计内容及安排 1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明 确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以 数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图; 3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中, 要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。 详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;

C#面向对象课程设计--拼图游戏

《C#程序设计》课程设计 题目:拼图游戏 专业:计算机科学与技术 学号: 姓名: 指导老师: 完成日期: 2012/12/26

《C#课程设计》评分标准 题目:拼图游戏专业:计算机科学与技术学号:姓名:

目录 1 前言 (4) 2 需求分析 (4) 要求 (4) 任务 (4) 运行环境 (4) 开发工具 (4) 3 概要设计与详细设计 (5) 系统流程图 (5) 结构功能图 (5) 4 编码与实现 (6) 编码分析 (6) 具体代码实现(附源代码) (9) 5 课程设计总结 (18) 参考文献 (19)

1.前言 拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块按照图片的原来的顺序排好。 2 需求分析 要求 (1)用C#语言实现程序设计; (2)利用PictureBox控件来实现图片的移动 (3)超过200步提示重新来 (4)界面友好(良好的人机互交),程序要有注释。 任务 (1)制作流程图 (2)编写代码; (3)程序分析与调试。 运行环境 (1)WINDOWS2000/XP/win7系统 (2)编译环境 开发工具

面向对象课程设计任务-可选题

面向对象课程设计任务书 一、设计基本要求 1、利用面向对象的方法和C++编程思想来完成系统的分析和设计; 在设计过程中,建立清晰的类层次;用UML画出类及类间的关系图; 程序中包含面向对象的基本知识:封装、继承、多态,基本的信息应该能长期保存(用文件存放) 2、系统启动运行时读取存储在文件中的记录解析成对象数据放入内存(以STL向量或链表存放) 3、基本的信息管理包括:读数据(从文件中读到内存)、增加、删除、查询、修改、存盘(将内存中数据写回文件)。可以自己根据题目要求增加新的功能。增、删、改、查操作在内存中进行(针对STL向量或链表的操作而不是针对文件的操作) 4、系统关闭前将内存数据存入文件(可以新建文件或覆盖原有文件) 5、类中属性以private或protected属性为主 6、层次分明,结构合理,加上简单界面的设计,如菜单,界面清新美观,维护容易 7、按照指导书的要求编写文档。 二、使用的主要技术 C++编程:基础编程,文件流,STL,必要的异常处理机制 环境:VC++6.0 三、设计的方法和步骤 设计步骤: 第一步:进行完整的需求分析,写出需求分析报告。 第二步:进行详细设计,写出详细的设计报告。 第三步:各模块编码实现。 第四步:合并调试并试运行,记录实现过程中出现的问题及解决方案。 第五步:提交完整可执行软件,准备答辩。 第六步:答辩,演示软件,评分。 第七步:整合各报告,修改并提交。 四、主要参考资料 1.课程教材 2. 面向对象程序设计实用教程张海藩清华大学出版社 3. C++语言程序设计(第1版)吕凤翥清华大学出版社 4. C++语言程序设计(第1版)郑莉清华大学出版社 5.C++及Windows可视化程序设计刘振安清华大学出版社 6.其他相关的书籍及网络资源 五、选题 以下为一组可选的选题,每个选题可以从中选择一部分来实现,但需要达到基本要求。 1. 班主任工作管理系统 班主任的日常工作非常繁琐,需要管理学生的信息、班级的日常活动等。结合班主任工作实际,开发一个管理系统,系统主要功能如下: (1)学生资料管理:提供学生基本档案、学生评语、家访记录的维护,并可以按照年

面向对象程序设计课程设计

《面向对象程序设计》课程设计 课程代码:*****(采用现行5位数字的课程代码) 课程名称:面向对象程序设计课程设计 设计周数:1周 学分:0.5学分 课程类别:必修课 一、课程设计的目的与任务 面向对象程序设计课程设计是计算机科学与技术、网络工程、信息管理与信息系统等专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。通过课程设计,学生可以将本课程所学知识点融会贯通,举一反三,加深实践与理解,提高学生综合运用所学知识的能力;另一方面,在参与一系列子项目的实践过程中,能使学生获得相关项目管理和团队合作等众多方面的实践经验。其目的在于加深对面向对象程序设计理论和基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,使学生掌握基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养学生的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质有提供了良好的实践平台,为后续课程的学习打下一定的基础。 二、本课程设计的基本理论 本课程设计使用面向对象程序设计的方法解决实际问题,涵概了课程的所有重要知识点,如类与对象、继承与组合、虚函数与多态性等。 三、课程设计的形式与基本要求 形式:召开课程设计动员会,根据学生的学习水平和特长进行分组,每组选择指定课程设计的题目和内容。学生在规定的时间内,经过小组的协同工作和指导教师的辅导,完成所选课题的设计,最后由指导教师进行验收及评定。 基本要求:要求学生做好预习,认真分析设计过程中涉及到的算法,并确定所选课题的功能模块,详细描述各模块的具体内容;用流程图描述实现算法,根据算法进行代码的编写,最后进行反复上机调试修改,直到输出正确结果为止。 认真写好课程设计报告,根据每组学生的分工,各自写出对解决问题的详细分析、模块功能、调试结果,最后将课程设计报告上交给指导教师。 四、课程设计的内容 选题一:员工管理信息系统 (1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、部门、参加工作时间和年龄(必须计算得到)。

面向对象课程设计

面向对象课程设计

目录 1.课程设计目的及要求 (02) 2.总体方案设计 (03) 2.1总体功能框图 (03) 2.2类的设计说明 (03) 2.3主要算法流程图 (04) 3.程序清单及注释 (07) 4.运行结果与分析 (13) 5.课程设计总结 (16) 6. 参考文献 (17)

1.课程设计目的及要求: 1)目的:全面熟悉、掌握面向对象程序设计基本知识,掌握面向对象程序设计中的几个重要概念和特性,即类、对象、继承、封装和多态,和面向对象程序设计基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础。 2)内容及要求: 程序功能简介 个人财政支出管理程序,完成收入,支出,盈余的记录和管理。 课程设计要求 (1) 增加函数,完成财政账目的管理功能。 (2) 将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。 (3) 可自行增加程序的功能。 (4) 设计测试主程序,在主程序中完成测试。 课程设计说明 (1) SetGoal()函数账目中有问题,改正。 (2) 可将整修记录装入一个字符串,在两条记录间用特殊符号隔开。 (3) 查找相应记录时,可采用逐个字节比较的方法。

2.总体方案设计 2.1 总体功能框图: 图2.1总体功能框图 2.2类的设计说明 在这个程序中的定义类为,class Mangaer。类是把各种不同类型的数据和对数据的操作组织在一起而形成的用户自定义的数据类型。此程序中的构造成员函数:Desposit, ViewTotal ,SetGoal, ViewTotal, SetZero。Deposit函数是记录函数,记录用户的收入,及对目录的更新。SetGoal函数是制定函数,制定用户的目标金额。ViewTotal函数用于查看用户的帐户。SetZero函数的用途为将用户之前的账户内容,历史进行清零。Withdram函数的用途是,记录用户的支出记录,并且进行保存。

面向对象程序设计课程设计报告同学通讯录管理程序

目录 1.设计题目 (1) 2.设计目的和内容 (1) 2.1设计目的 (1) 2.2设计内容 (1) 3.基本功能描述 (1) 4.设计思路 (1) 5.软件设计 (2) 5.1设计步骤 (2) 5.2界面设计 (3) 5.3关键功能的实现 (3) 5.3.1添加记录 (3) 5.3.2删除记录 (4) 5.3.3选中记录 (4) 5.3.4确认修改 (4) 5.3.5保存记录 (4) 5.3.6退出 (4) 6.结论与心得体会 (4) 7.参考文献 (4) 8.附录 (5) 8.1调试报告及测试结果 (5)

8.2关键源代码 (10) 8.2.1 Student类 (10) 8.2.2全局 (10) 8.2.3List Control初始化 (10) 8.2.4添加记录 (11) 8.2.5删除记录 (11) 8.2.6选中记录 (12) 8.2.7修改记录 (12) 8.2.8保存记录 (13) 8.2.9退出程序 (13)

1.设计题目 同学通讯录管理程序 2.设计目的和内容 2.1设计目的 1)学习Visual C++的MFC开发程序的步骤。. 2)综合运用所学的类、继承和多态的知识。 3)进一步掌握程序的调试方法。 2.2设计内容 1)利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件; 2)设计通讯录的数据结构(如:以数组或者动态链表)和相应的类; 3)完成对通讯录中记录的增加、修改、删除和显示; 4)将通讯录存入文本文件。 3.基本功能描述 可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。 4.设计思路 1)创建基于对话框的MFC应用程序,添加控件:5个Edit Control、6个Button、1 个List Control; 2)在5个Edit Control分别输入相应信息,点击“添加记录”Button可在List Control 中显示相应信息,同时清空五个Edit Control以便下一个学生信息的输入; 3)点中List Control选中已有一组学生信息,点击“删除记录”Button可删除该组 信息; 4)点中List Control选中已有一组学生信息,点击“选择该列”Button将该列信息 返回到5个Edit Control。修改完成后点击“确认修改”Button,对List Control 中选中列完成修改; 5)点击“确认保存”将信息保存到文本文档; 6)点击“退出”退出程序。 7)可在D盘查看保存的信息。

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

面向对象课程设计任务书

面向对象课程设计任务书

河南城建学院 《面向对象语言程序设计》课程设计任务书 班级0814101/2 专业计算机科学与技术 课程名称面向对象语言程序设计 指导教师耿永军刘荣辉周二强 计算机科学与工程系 2012年06月

《面向对象语言程序设计》课程设计任务书 一、设计时间及地点 1、时间:第19周 2、地点:计算机系实验中心、本班教室10#A103 二、设计目的和要求 本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 三、设计题目和内容 主要有以下设计题目: 题目1 高校人事管理系统 一、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握C++程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的C++程序设计问题。 2、基本要求: (1)要求利用C++的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法; (4)在系统的设计中,要求运用C++的机制(继承、派生及多态性)来

面向对象程序课程设计任务书

面向对象程序设计课程设计任务书 课程性质:设计 总学时数:1周 适用专业:软件工程10 1-6 嵌软10 1-2 软件学院 2012-6

一、课程设计目的和任务 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 二、设计内容和基本要求 设计任务书提供设计题目供学生选择。在指导教师同意的情况下,学生也可以自己选择感兴趣的设计题目,以调动学生参加创新设计的积极性和创造性,给学生充分的自主空间。 基本要求: ?设计工作量为完成一个中小型规模的软件和1份软件设计报告书 ?设计必须根据进度计划按期完成 三、课程设计参考题目 以下题目列出的仅为完成的基本功能,可根据需要完善与课题相关的其他功能。以下题目涉及窗体的设计、菜单设计、数据库设计、文件的读写等多种编程的实现,根据题目的要求自行进行编程设计。 1、设计一个GUI猜数字游戏程序 该游戏可以由程序随机产生四个0到9之间的整数,且不重复。玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。假设随机数据为3792 时,分析如下 数据:3792 输入:1234 0A2B 输入:5678 0A1B 输入:0867 0A1B 输入:9786 1A1B 输入:1794 2A0B 输入:2793 2A2B

输入:3792 4A0B 2、编写一个记事本程序,要求如下: (1)用图形用户界面实现。 (2)能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 3、设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。要求如下: (1)具有简单的录入,查询和修改功能。 (2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改; (3)使用文件存储数据。 (4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专 业、班级自我简介,其余可自行丰富。 (5)具有对姓名,出生日期和身份证号进行简单效验的功能。 4、日历记事本 要求:带有日程提醒功能的日历。 (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询 下一个月的日期。 (2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信 息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 (3)查询信息:用户可以查询到某个月的所有的提示信息。 5、ATM柜员机模拟程序 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: (1)查询余额功能:初始余额为10000元 (2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 (3)ATM存款功能:不能出现负存款。 (4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

面向对象程序设计课设题目

2012计算机科学与技术专业 面向对象课程设计题目 一设计要求 每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。 (若两人一个题目,需各自独立完成,题目相同者的课程设计报告不能完全相同。)二题目列表 三题目内容及要求 题目1 矩阵运算 内容及要求: 定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。 用程序实现验证n*n矩阵的如下定理: A(BC)=(AB)C。

题目2 填XO游戏程序 内容及要求: 游戏规则和胜利条件: 棋盘共有5行5列: 选择难度(1):两个斜对角之一都为X或O,则玩家胜。一横行都为X或O则玩家胜。)一竖行都为X或O则玩家胜。 选择难度(2):两个斜对角之一都为X或O,则玩家胜。 选择难度(3):两个斜对角都为X或O,则玩家胜。 输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键; 玩者下一步X或O,计算机也自动下一步X或O。 程序运行示例: 题目3 统计学生成绩 内容及要求: 要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作: (1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。(2)要求对“<<”和“>>”运算符进行重载。 (3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。 (4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息: 学号姓名算术语文平均 (5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。 (6)编写能检索文件中某个学生信息的子程序。如无此学生,输出“未查到”信息。 (7)使用多文件编程和菜单操作。 题目4 会议记录管理系统 内容及要求: 定义会议信息类class Conference

面向对象课程设计报告

. .. . 信息学院 课程设计 设计名称:面向对象课程设计 设计题目:重载运算符 学生: 学生学号:11 专业班级: 计1501 指导教师: 起止日期:2017.6.19~2017.6.30

摘要 在本次实验中,要求我编写一个程序,目的是实现处理一个复数和一个double 数相加的运算的功能,结果存放在一个double型的变量d1中,输出d1的值,再以复数形式输出此值。在完成这个设计的时候,需要注意的要点之一是需要定义Complex(复数)类,在成员函数中包含重载类型转换运算符。这样才能有效的完成复数与double类型数的运算并能更好地完成试验题目要求的设计。在本次设计中,以最便捷完成要求的功能为前提,要求使用C++完成。由于使用C++已经有了一些经验,在完成题目的同时还应该尽量减少存的占用,并尽量减少输出程序的复杂度和时间。 关键词类,对象

ABSTRACT In this experiment, I asked to write a program, the purpose is to achieve a complex number and a double number of the operation of the operation, the results stored in a double variable d1, the output d1 value, and then in the plural form of output This value. One of the points to note when completing this design is the need to define the Complex class, which contains the overloaded type conversion operator in the member function. So as to effectively complete the complex number and double type of operation and can better complete the design of the test requirements. In this design, the most convenient to complete the required function as a prerequisite, requires the use of C + + to complete. As a result of the use of C + + already have some experience in the completion of the problem at the same time should also minimize the memory footprint, and minimize the complexity of the output process and time. Keywords: Class, object

《C#面向对象程序设计》课程设计

《C#面向对象程序设计》 课程设计题目及要求 一、课程设计的目的与任务 课程设计的目的是让学生掌握面向对象概念、原理基础上,能够熟练地运用C#程序设计语言实现编程。 二、课程设计要求 1.根据设计题目,独立进行分析和设计; 2.采用账户登陆的方式来进入系统; 3.用菜单的形式提供各种功能的选择; 4.将所需信息存放到一个文件中; 5.认真书写课程设计报告 三、课程设计选题原则 本课程的选题应遵循题目的难易程度适中,能够体现出设计的综合性,能够充分锻炼学生的动手能力,适合该专业学生设计的要求。 四、课程设计的内容 题目1:学生成绩管理系统 题目2:学生学籍管理系统 题目3:高校学生选课系统 题目4:高校师资管理系统 题目5:图书信息管理系统 题目6:图书借阅管理系统 题目7:企业工资管理系统 题目8:图书销售管理系统 题目9:企业人力资源管理系统 题目10:题库管理系统 题目11:房屋中介管理系统 题目12:酒店客房管理系统 题目13:图书进货管理系统 题目14:旅行社管理系统 题目15:汽车美容管理系统

题目16:自来水公司营业收费系统 题目17:电信公司营业收费系统 题目18:移动公司营业收费系统 题目19:桶装矿泉水配送管理系统 题目20:电动自行车租赁管理系统 题目21:日用品销售管理系统 题目22:小区物业管理系统 题目23:电力公司营业收费管理系统 题目24:广电公司营业收费管理系统 题目25:高校教材征订管理系统 题目26:学校学生住宿管理系统 题目27:影碟租赁管理系统 题目28:房屋销售管理系统 题目29:汽车租赁管理系统 题目30:景区门票销售管理系统 五、考核方式与成绩评定 (1)课程设计结束时,要求学生写出课程设计报告(附源程序),可运行的软件系统。 (2)设计成绩分两部分,课程设计报告占50%,答辩占50%,课程设计成绩将按15%计入总评成绩。 提交要求: 1.提交的材料包括:课程设计报告,可以运行软件系统。 2.把提交材料添加到以“姓名+学号”命名的压缩文件中,以附件的形式发送到邮箱 184747281@https://www.doczj.com/doc/3312549365.html,,例如你的姓名是张三、学号是2010010023,则压缩文件名是“张三2010010023”。

面向对象课程设计报告

面向对象课程设计报告 导语:基于面向对象技术的基本思想和开发过程,介绍了面向对象技术的实现方法。结合具体实例对面向对象技术在数据库系统结构设计和详细设计中的应用进行了详细的探讨,利用面向对象的数据库系统分析和设计方法,使用UML 工具建立了具体的对象模型,给出了一种比较通用的数据库系统开发模式。使用该模式设计的系统重用性好,且易于维护,从而有效提高了数据库系统的开发质量。下面是小编整理的相关内容,希望对你有帮助。 随着计算机科学的发展、应用领域的不断扩大,对计算机技术本身的要求越来越高。现在越来越多的软件开发过程采用了面向对象的开发技术,面向对象的研究遍及计算机软硬件的各个领域,如面向对象的程序设计语言、面向对象的程序设计方法、面向对象的设计、面向对象的分析、面向对象的操作系统、面向对象的DBMS、面向对象的开发工具、面向对象的开发环境等。目前不仅在研究领域已取得了丰硕的成果,而且有些软件产品已经投放市场。面向对象技术是一种新的设计技术,与传统的面向过程技术相比,它试图依据人们对问题的看法来解释软件的架构,并力求将问题域中的问题映像到分析模型中,再转换成对应的程序代码。面向对象技术倡导一种新的认知和表示世界的思想,计算机专业人

士利用它提出了面向对象的计算机程序设计语言、面向对象的软件设计方法、面向对象的数据库等,使面向对象技术在今天的应用设计中得到了最广泛的运用。 面向对象技术为软件开发提供了一种新的方法学,引入了许多新的概念,这些概念是理解和使用面向对象技术的基础和关键。 对象(Object)、方法(Method)及消息(Message) 客观世界的问题都是由客观世界中的实体及其相互之间的关系构成的。我们将客观世界中的实体抽象为问题空间中的对象。由于我们需要解决的问题不同,我们面向的对象也就不同,因此对象是不固定的。一本书可以是一个对象,一家图书馆也可以是一个对象。从动态的观点看,对象及其操作就是对象的行为,一个对象的通常定义是:对象是对一组信息及其上面的操作的描述。 私有数据结构和处理,这些处理又称为操作(Operation)或方法(Method),包括控制和过程。其中私有数据表示了对象的状态,该状态只能由私有操作来改变,每当需要改变对象的状态时,只能由其它对象向该对象发送消息。 消息是用来请求对象执行某一操作或回答某些信息的要求,消息统一了数据流和控制流,程序的执行是靠在对象间传递消息来完成的。表示消息的形式是消息模式。对同一消息模式的不同消息,同一对象所作的解释和处理都相同,

面向对象课程设计(濮)

湖南师范大学工程与设计学院面向对象系统课程设计 课题名称: 学生考试系统 姓名:濮湘华 学号: 2011180532 专业:计算机科学与技术 指导老师:

目录 1、需求分析 (3) 2、系统设计 (3) 3、数据库设计 (6) 4、关键模块设计 (10) 5、课程设计心得 (31)

【课程设计名称】:学生考试系统 【学习内容】:学习数据库的概念模型的设计、数据库的使用、C++的面向对象的学习,VC数据库连接。 一、需求分析 根据学生考试的特点和学校的实际情况,以考试流程为基础,从专业角度出发,提供科学有效的考试模式。考试时采用系统自动从数据表中选题的方式,评卷时通过核对考生答案与正确答案得出考生的分数。 二、系统设计 2.1系统功能结构 学生考试系统功能结构图如图所示。 2.2 系统预览 学生考试系统主要由登陆界面、试题界面、及考试成绩管理等模块组成,学生考试管理系统主窗口用于考生选题答题操作,考试结果信息模块用于对考生的答题结果进行评分。 登陆界面:

主窗口界面: 考试结果窗口界面:

试题管理模块用于增添考试科目,并可以添加、修改和删除试题,如图4所示;学生成绩查询模块用于查询考生的考试成绩,如下图 成绩管理:

2.2 学生考试系统流程 二、数据库设计 1、数据库概念设计 根据前面介绍的需求分析和系统设计规划出本系统中使用的数据库实体对象分别为用户信息实体、科目信息实体、试题信息实体、试题答案信息实体、答案暂存信息实体和考试结果信息实体等。 (1)用户信息实体 用户信息实体包括用户编号、用户名、密码、密码提示问题、答案、真实姓名、年龄、性别、联系电话、用户权限、身份证号和注册日期。用户信息实体E-R图,如下图所示。用户实体: (2)科目信息实体 科目信息实体包括科目ID和科目名称。科目信息实体E-R图,如下图

面向对象程序设计课程设计报告

学生课程实验报告书 14 级计算机与信息科学系系 软件专业 1401 班 学号 3148907101 姓名钟媛媛 学号 3148907107 姓名蔡丽萍 2015 --2016 学年第 2 学期实验项目: 模拟实现银行ATM自动取款机系统 实验时间: 2016.5 实验内容: 一、课程设计的目的 1、掌握面向对象编程的思想和方法; 2、熟悉C++项目开发代码风格; 3、理解项目需求,划分项目模块,学会设计数据库或数据结构及接口; 4、掌握C++编程调试的基本技能; 5、掌握项目实现流程。 二、具体内容 模拟实现银行ATM自动取款机系统。系统主要功能: (1)客户登录 (2)余额查询 (3)取款 (4)转账 (5)借存记录查询 1 项目分析

了解项目应用领域的ATM流程、操作规范,明确项目需求、确定项目功能。 1.1功能描述 画出功能结构图,介绍系统中各模块的主要功能。 1.2 ATM流程 画出系统ATM流程图。 1.3数据库设计 根据系统数据需求,进行数据库概念设计、数据表设计。用户信息表: 1.4功能模块分 记 录 查 询 record id name states zmoney 记录查询

介绍系统的功能模块设计思路,画出模块工作流程图。 2 项目实现 使用C++编程实现项目。 2.1 功能模块设计 系统中各类关系图,类的设计(类的定义)。 class ATM { public: int withdraw();//取款 void zhuan();//转账 void balance();//余额查询 int interfac();//登陆 int menu1();//菜单 void record_info();//记录查询 public: string name;//用户名 string number;//账号 float money;//余额 string password;//密码 }; 2.2 项目实现 系统中各类的实现(各类成员函数的实现)。 void ATM::record_info()//记录查询 { HRESULT hr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库 cout<<"---------------------------------"<>number; string sql="select * from record where id ='"+number+"'"; RECORDSET rs=db.JExecuteWithRecordset(sql); while(rs->rsEOF) { cout<<"---------------------------------"<>number; sql="select * from record where id ='"+number+"'"; rs=db.JExecuteWithRecordset(sql); } while(!rs->rsEOF) { cout<<"*********************************"<

相关主题
文本预览
相关文档 最新文档