面向对象程序设计课程设计报告
C-shap课程设计报告
《面向对象程序设计C#》期末课程设计报告 / 学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2012一、主要内容及要求:创建一个应用程序,实现下面的UML图。
Step1:(共60分,其中Account类编写10分,SavingAccount和Checking类的编写分别25分)创建Account类,作为各种账户的基类。
然后用继承来创建两个专用的账户类:SavingAccount(储蓄账户)类和CheckingAccount(支票账户)类。
(1)SavingAccount类,从Account派生其新特征:A.储蓄账户能获得利息,增加一个属性interestRate 表示利率。
B.着时间的推移,储蓄账户可以获得利息,所以为SavingAccount类增加一个addInterest()方法(注:未在UML图中画出),用于把利息增加到原balance上。
利息的计算规则为interestRate*balance;(2)CheckingAccount类,从Account派生新特征:A.帐户允许有透支额度,增加属性overdraftProtection表示最大透支额度。
B.取款规则发生了改变:如果当前余额足够支付要提取的金额amount ,按照常规进行处理。
如果当前余额不够,但帐户有透支额度,那么所差的部分作为透支处理。
透支处理规则:比较amount(当前提款金额)和balance(当前帐户余额)若当前透支额amount-balance>overdraftProtection,那么整个交易应该放弃,提款失败。
否则提款后的balance应为0,提款后的最大透支额度overdraftProtection应该为原有最大透支额度减去(amount-balance )。
(3)再看Account类其withdraw行为要在其具体的子类中才能确定,故将其withdraw方法设计成一个抽象方法,由子类去改写。
c++课程设计报告书
河南城建学院《面向对象程序设计》课程设计报告书设计题目:企业人事管理系统指导老师:崔雪冰蔡照鹏张妍琰学生学号:*****************同组人员:于文文、梁泽玉、宋应取时间:2011年12月28日目录第1章选题 (2)1.1题目背景 (2)1.2系统实现的具体分工 (2)1.2.1 标题 (2)1.2.2题目要求 (2)1.3开发环境 (2)2.1实现功能 (3)2.2概要设计(涉及类的框图) (3)2.3界面设计 (4)第3章系统实现 (5)3.1涉及知识点 (5)3.2系统运行(主要运行界面抓图) (5)3.3源程序代码 (8)第4章结束语(心得体会) (19)第1章选题1.1 题目背景企业人事管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。
早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代企业管理的首选。
1.2系统实现的具体分工系统分为职工类、职工数据类、权限设置类以及主函数等几大模块,其中职工类实现对公司职工个人基本信息的描述,职工数据类实现公司对职工的维护,权限设置类实现对使用者的操作权限设置功能,main() 函数实现对程序主界面的引导。
1.2.1 标题企业人事管理系统1.2.2 题目要求设计一个小型人事管理系统,假设公司只有经理、业务经理、普通职工,需要描述他们的信息,如职工编号、姓名、电话、住址等信息,且需要设置系统操作权限,实现界面的转换,增、删、查、改、显示功能。
1.3开发环境Visual C++ 6.0机型:方正电脑处理器名称:Intel(R)Core(TM)********************硬盘驱动器:WDC WD1600AAJS-22WAAO系统内存:金士顿内存2GB显示卡:NVIDIA GeFORCE 9400 GT显示器:方正科技FG981-W9操作系统:Microsoft Windows XP Professional第2章设计内容2.1实现功能系统主要包括企业系统管理人员对企业职工信息的增、删、查、改等功能和普通职工对职工信息的查看功能。
C++课程设计报告(复数计算器)
南京信息工程大学《面向对象程序设计》课程设计实验报告课程名:面向对象程序设计专业:网络工程班级:2班作者:张煜荻、吴辉煌、张一东日期:2011年5~6月实验内容题目:设计一个复数计算器。
要求:1)所设计的复数计算器可以进行+、-、×运算。
2)设计输入重载函数,要求能接收从键盘输入a+b i形式的复数,在程序中可以识别出实部、虚部并进行赋值。
3)设计算器测试程序,对加减法进行测试,要求在两位数以内,对乘法进行测试,乘法要求为一位数的运算。
小组分工程序源码#include<iostream>#include<cmath>#define EPS 1e-5//定义精度为10^-5using namespace std;namespace NameCalculator //定义空间NameCalculator{class Calculator //定义Calculator类{private:double Real,Image; //私有成员:实部Real、虚部Image public:Calculator(double real=0,double image=0) //构造函数{Real=real;Image=image;}int operator==(Calculator &com); //等于重载Calculator operator+(Calculator &com); //加法重载Calculator operator-(Calculator &com); //减法重载Calculator operator*(Calculator &com); //乘法重载Calculator operator*=(Calculator &com);//乘法赋值重载friend istream & operator>>(istream &is,Calculator &com); //输入重载friend ostream & operator<<(ostream &os,Calculator &com); //输出重载};int Calculator::operator==(Calculator &com) //重载等于{if(Real==com.Real && Image==com.Image)return 1;elsereturn 0;}Calculator Calculator::operator+(Calculator &com) //加法重载{Calculator sum;sum.Real=Real+com.Real;sum.Image=Image+com.Image;return sum;}Calculator Calculator::operator-(Calculator &com) //减法重载{Calculator sub;sub.Real=Real-com.Real;sub.Image=Image-com.Image;return sub;}Calculator Calculator::operator*(Calculator &com) //乘法重载{Calculator multi;multi.Real=Real*com.Real-Image*com.Image;multi.Image=Real*com.Image+Image*com.Real;return multi;}Calculator Calculator::operator*=(Calculator &com) //重载乘法赋值{double nReal=Real*com.Real-Image*com.Image;double nImage=Real*com.Image+Image*com.Real;Real=nReal;Image=nImage;return *this;}istream & operator>>(istream &is,Calculator &com) //重载输入{cout<<"请输入复数:";char s[20];is>>s; //用字符串形式接受输入的复数int len=strlen(s);int n=0,sign=1;com.Image=com.Real=0;for(int k=0;k<len;k++){if((s[k]<'0'||s[k]>'9')&&(s[k]!='+'&&s[k]!='-'&&s[k]!='i')){cout<<"输入错误"<<endl;return is;}}for(k=0;k<len;) //检查输入字符串{if(n!=0 &&(s[k]=='-'||s[k]=='+')) //字符是否是符号{com.Real=sign*n;n=0; //将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-') //字符为负号{sign=-1;k++;}if(s[k]=='+') //字符为正号{sign=1;k++;}if(s[k]=='i') //字符为'i'{if(k!=len-1) //判断字符'i'是否为最后一个字符cout<<"error\n";elsecom.Image=sign*n; //复数对象接受完成,用sign*n为虚部赋值break;}while(s[k]>='0'&&s[k]<='9') //字符在0~9之间,则将字符转换成数值{n=n*10+s[k]-'0';k++;}}if(s[len-1]!='i'&&n!=0) //如果最后一个字符不是'i',则没有虚部{com.Real=n*sign;}return is;}ostream & operator<<(ostream &os,Calculator &com) //重载输出{if(fabs(com.Image)<EPS) //如果虚部为0os<<com.Real; //只输出实部else if((fabs(com.Real)<EPS)) //如果实部为0os<<com.Image<<"i"; //只输出虚部else if(com.Image>0)os<<com.Real<<"+"<<com.Image<<"i";elseos<<com.Real<<com.Image<<"i"; //虚部为正return os;}void Add() //加法运算函数{Calculator num1,num2,sum,zero(0,0);cout<<"加法计算\n"<<"最少输入两个复数,并且以0结束\n";cout<<"第1个复数:";cin>>num1;cout<<"第2个复数:";cin>>num2;sum=num1+num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){sum=sum+num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"加法结果是:"<<sum<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();cin.get();}void Sub() //减法运算函数{Calculator num1,num2,sub,zero(0,0);cout<<"最少输入两个复数,并且以0结束\n";cout<<"第1个复数:";cout<<"第2个复数:";cin>>num2;sub=num1-num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){sub=sub-num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"减法结果是:"<<sub<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();cin.get();}void Mul() //乘法运算函数{Calculator num1,num2,mul,zero(0,0);cout<<"乘法计算\n"<<"最少输入两个复数,并且以零结束\n";cout<<"第1个复数:";cin>>num1;cout<<"第2个复数:";cin>>num2;mul=num1*num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==zero)){mul*=num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"乘法结果是:"<<mul<<endl;cout<<"请按回车键继续\n";cout.flush();cin.get();}}using namespace NameCalculator;int main() //主函数{char Choise[20];do{system("cls"); //清屏cout<<"1:复数加法\n";cout<<"2:复数减法\n";cout<<"3:复数乘法\n";cout<<"0:退出程序\n\n";cout<<"请选择:";cin>>Choise;if(strcmp(Choise,"1")==0)Add();else if(strcmp(Choise,"2")==0)Sub();else if(strcmp(Choise,"3")==0)Mul();else if(strcmp(Choise,"0")==0){break;}else{cout<<"\n输入错误,按回车键继续\n";cin.get();cin.get();}}while((strcmp(Choise,"0")));return 0;}测试结果实验总结本实验的难点在于:如何让程序识别输入的“复数字符串”。
面向对象方法与UML建模课程设计报告-网上图书销售系统
面向对象方法与UML建模课程设计报告一、需求分析1.系统总体的功能需求网上图书销售系统是一个复杂的电子商务系统,它必须提供用户的接口以供用户登录并选择喜好的图书;同时还必须提供系统的管理接口以供管理员和一般的网站工作人员处理客户订单并维护网站正常运作。
系统总体功能需求框图如图1所示。
1)用户接口模块用户接口是网站用户使用图书销售系统服务的入口,所有的在线用户都通过浏览器登录网站,并进行一系列的查询,订购操作。
用户接口模块包括了用户信息维护、商品查询、订购商品和订单维护4个部分。
用户登录系统后,用户ID将会被保存在服务器的缓存中,用户在系统中所做的操作,包括查询、订购等都将被系统存储在数据库中,以供系统进行销售情况以及销售走势分析。
2)管理员接口模块这是系统提供给网站维护和管理人员的接口。
管理员接口模块包括商品信息维护、内部员工信息维护、订单处理、销售情况查询、报表维护5个部分。
网站的一般工作人员通常只具有订单处理的权限,他们获得用户提交的订单,并根据库存情况来决定发货或者推迟发货。
网站的管理员具有所有的管理权限,可以处理客户的订单,可以阅览网站商品的销售情况、销售走势,以便根据不同的情况及时的调整经营战略,将库存成本和资金占用率降到最低的限度。
3)数据服务模块数据服务模块是系统正常运行的基础,包括客户的查询,订单的保存;网站工作人员的订单处理;网站管理员的销售情况查询与分析。
2.用户接口模块用户接口模块包括如图2所示的几个方面。
1)用户信息维护每个使用该系统的用户必须经过注册,而注册时的用户名是用户的惟一标识。
系统可以接收更多可用的客户信息,比如购物方面的喜好、经济能力等。
系统的后台程序会自动记录每个用户在登录网站后进行的所有操作,包括查询和订购信息。
这些信息对于系统的管理员都是珍贵的数据,系统分析程序可以根据用户的查询记录判断该客户的喜好,可以根据用户的购买情况判断该客户的经济情况。
系统后台程序可以根据分析的结果自动得出给该用户的推荐商品,在用户登录时显示在醒目的位置。
面向对象程序设计(C++课程设计报告)
(2)问题描述:
使用MFC,应用MFC中已有函数以及画图类完成一个划线程序,使得能用鼠标在MFC视图中划出一道可以自定义线的格式的线,然后完成拾取、保存以及读取工作。
(3)问题分析:
该题目需要我们在熟练运用MFC的基础上,对MFC中函数进行掌握,并学会划线类地应用。首先需要我们完成划线操作利用buttondown和buttonup两个消息响应函数,然后将所有的线的属性放入vector容器中,实现线的存储,利用两边之和约等于第三边完成线的选取工作,再利用文本输入输出流完成保存和读取。
void CHuaxianView::OnMenuitem32771()
{
// TODO: Add your command handler code here
dialog a;
a.DoModal();
m_b=a.m_b;
m_r =a.m_r;
m_w =a.m_w;
m_y =a.m_y;
}
在ChuaxianView类的OnLButtonDown()函数中完成记录起始点的工作:
// TODO: add draw code for native data here
for(int i = 0; i < m_vLines.size() ;i++)
m_vLines[i].Draw(pDC);//将容器中所有线进行重绘
}
在ChuaxianView类的对话框函数中完成数据输入与更新:
void CHuaxianView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
《 面向对象程序设计》课程设计实验报告
《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。
void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。
要求从主函数输入a 、b 、c 的值并输出结果。
使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
2024年C++面向对象程序设计教案(含多款)
C++面向对象程序设计教案(含多款)C++面向对象程序设计教案一、教学目标1.理解面向对象程序设计的基本概念,包括类、对象、继承、多态等。
2.掌握C++面向对象程序设计的基本语法和编程技巧。
3.能够运用面向对象的思想进行程序设计,解决实际问题。
二、教学内容1.面向对象程序设计的基本概念(1)类与对象类是对具有相同属性和行为的一组对象的抽象描述。
对象是类的实例,具有类定义的属性和行为。
(2)继承继承是面向对象程序设计的一个重要特性,用于表示类之间的层次关系。
子类可以继承父类的属性和行为,并在此基础上添加新的属性和行为。
(3)多态多态是指同一个操作作用于不同的对象时,可以有不同的解释和行为。
多态分为编译时多态和运行时多态。
2.C++面向对象程序设计的基本语法(1)类的定义与实现类定义包括类名、属性(成员变量)和方法(成员函数)。
类实现包括成员函数的定义。
(2)构造函数与析构函数构造函数用于创建对象时初始化成员变量,析构函数用于对象销毁时释放资源。
(3)继承与派生继承使用关键字class和public、protected、private访问限定符。
派生类可以添加新的成员变量和方法,也可以重写父类的方法。
(4)多态的实现多态可以通过虚函数、抽象类和接口实现。
虚函数使用关键字virtual声明,抽象类包含至少一个纯虚函数,接口是一种特殊的抽象类,只包含纯虚函数。
3.面向对象程序设计实例(1)设计一个简单的银行账户管理系统,包括账户类、储蓄账户类和信用卡账户类。
(2)设计一个图形类库,包括点、线、矩形和圆形等基本图形类。
三、教学方法1.讲授法:讲解面向对象程序设计的基本概念、语法和编程技巧。
2.案例分析法:通过分析实际案例,让学生理解面向对象程序设计的应用。
3.实践法:让学生动手编写代码,加深对面向对象程序设计的理解。
4.讨论法:组织学生讨论面向对象程序设计在实际项目中的应用。
四、教学评价1.课后作业:布置课后作业,检查学生对课堂知识的掌握程度。
小学算术运算测试程序JAVA课程设计报告
小学算术运算测试程序JAVA课程设计报告面向对象程序设计(JAVA)课程设计说明书学院名称:计算机与信息工程学院班级名称:20XX级计算机科学与技术题目:小学算术运算测试程序面向对象程序设计(JAVA)课程设计任务书学院计算机与信息工程学院专业20XX级计算机科学与技术课程名称面向对象程序设计(JAVA)题目小学算术运算测试程序完成期限2021年01月02日至2021年01月08日共1周内容及任务一、项目的目的1.加深学生对面向对象程序设计(Java)课程基本知识的理解,综合应用所学的知识,独立完成一个以面向对象程序设计应用为课题的设计;2.根据问题需要,通过查阅手册和文献资料,培养分析和解决实际问题的能力;3.灵活运用类、对象、输入输出流、GUI、多线程、数据库编程等相关知识编写程序。
二、项目任务的主要内容和要求主要内容:编写一个可供小学数学运算的程序:可选择题目难度,并根据选择的难度分配加、减、乘、除法的题目,能根据输入题数并分配分值(总分100),判断做题是否正确,最后计算分数。
要求:1、编写图形化界面,每组4人,分工独立完成;2、能够按照要求完成系统设计并撰写课程设计报告。
三、项目设计思路题目要求设计一个可以自动出题(算数运算)的测试程序,首先需要明确该系统的功能:选择题目难度、选择题数、依据题数自动分配分值、自动出题、评卷并给出答对题数和总得分;接着根据功能设计图形化界面:选择题目难度界面、试卷界面和评分界面;然后结合功能和图形化界面编写代码,进行测试,不断完善代码;最后得到我们所需要的测试程序。
四、具体成果形式和要求程序和课程设计文档进度安排起止日期工作内容2021年01月02日至2021年01月02日需求分析2021年01月03日至2021年01月04日系统设计,根据前期的需求分析结果设计各个功能模块2021年01月05日至2021年01月06日编码,调试和测试程序2021年01月07日至2021年01月08日撰写课程设计报告,进行答辩主要参考资料[1]赵生慧.Java面向对象程序设计(第二版)[M].北京:中国水利水电出版社,2021.[2]毕广吉.Java程序设计实例教程[M].北京:冶金工业出版社,2021.[3]王保罗.Java面向对象程序设计[M].北京:清华大学出版社,2021.[4]高林,周海燕.JSP网上书店系统与案例分析[M].北京:人民邮电出版社,2021.指导教师意见(签字):年月日系(教研室)主任意见(签字):年月日目录摘要11.引言11.1选题背景11.2选题意义11.3主要内容及分工11.4组织结构22.需求分析22.1系统流程图22.2系统功能图23.系统设计33.1类的设计33.2功能模块设计33.2.1用户选择信息模块33.2.2题目信息模块43.2.3答案信息模块43.2.4成绩信息模块44.编码44.1导入相关包和类44.1.1包44.1.2类44.2各模块代码54.2.1用户选择信息模块54.2.2题目信息模块54.2.3答案信息模块74.2.4成绩信息模块85.测试结果95.1用户选择信息模块95.2题目信息模块105.3答案信息模块105.4成绩信息模块116.结束语12附录12参考文献21致谢22摘要本文使用了Java面向对象程序设计语言实现了一个小学算数运算的测试程序。
蜘蛛纸牌游戏
《面向对象程序设计》课程设计报告题目:蜘蛛纸牌游戏软件设计与实现院(系):信息科学与工程学院专业班级:计算机科学与技术1201班学生姓名:程伟学号: 20121183011指导教师:吴奕20 14 年 12 月 29 日至20 15 年 1 月 9 日华中科技大学武昌分校制面向对象程序设计课程设计任务书目录1需求与总体设计 (1)1.1 需求分析 (1)1.2 功能图 (1)1.3 类图 (2)2详细设计 (3)2.1程序流程图 (3)2.2功能设计 (3)2.2.1 SpiderMenuBar.java类 (3)2.2.2 PKCard.java类 (4)2.2.3 AboutDialog.java类 (5)2.2.4 Spider.java类 (6)3编码实现 (7)4系统测试 (36)总结 (40)1需求与总体设计1.1需求分析编写程序以实现游戏蜘蛛纸牌的功能。
1、设计游戏界面。
2、纸牌以及其背景的设定。
3、移动纸牌。
4、回收纸牌。
5、发牌。
6、若玩家不了解游戏规则可以点击帮助获得游戏方法。
7、级别设定。
8、退出游戏。
主要由四个部分组成,分别是Spider.java(生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括纸牌的随机生成、位置摆放等)、SpiderMenuBar.java(生成蜘蛛纸牌游戏的菜单栏)、PKCard.java(定义纸牌的属性)、AboutDialog.java(生成游戏的帮助栏)。
1.2 功能图1.3 类图2详细设计2.1程序流程图2.2功能设计2.2.1 SpiderMenuBar.javaSpiderMenuBar.java包含名为SpiderMenuBar的public类,其主要功能是生成游戏的菜单栏,实现菜单栏中各个组件的事件侦听。
主要包括3个模块:图形用户界面的构建;组件监听接口的实现;显示可执行操作的线程。
2.2.2 PKCard.javaPKCard.java包含名为PKCard的public类,其主要功能是定义纸牌的属性,包括名称、位置等相关信息。
《面向对象程序设计(课程设计)》报告解析
福建农林大学计算机与信息学院计算机类课程设计报告课程名称:面向对象程序设计(课程设计)课题名称:猜数字游戏姓名:学号:专业:计算机科学与技术年级:2012级指导教师:职称:讲师2013年11月面向对象程序设计(课程设计)成绩评定表目录1. 课题来源 (1)2. 任务描述 (1)2.1. 课题的总体结构 (1)2.2. 核心功能模块与类设计 (2)2.3. 任务分工与工作量说明 (3)3. 程序(系统)详细设计 (3)4. 程序(系统)实现与测试 (5)5. 分析与讨论 (11)6. 结束语 (12)1.课题来源该作品为原创。
课题灵感是能否做一个小游戏,寻找了很多小游戏比如俄罗斯方块等,发现其太复杂以目前的水平无法完成,于是就选择了一个比较简单的猜数字游戏,编写益智类的游戏可以让我们日常生活中自己使用来达到增加乐趣的作用。
猜数字游戏的原游戏规则:通常由两个人玩,一方出数字,一方猜。
出数字的人要想好一个没有重复数字的4位数,不能让猜的人知道。
猜的人就可以开始猜。
每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
如正确答案为5234,而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。
接着猜的人再根据出题者的几A几B继续猜,直到猜中(即4A0B)为止。
原游戏规则是两个人玩,于是我们想到了将规则改为人机对战,电脑出题玩家来猜。
2.任务描述猜数字游戏:产生随机数,统计完全猜中的数字的个数以及统计猜中但位置错误数字的个数,并给出提示。
最后计算积分。
此程序体现了面向对象程序设计的继承性和封装性。
2.1.课题的总体结构程序有三个类,其中randNumber类用来产生随机数,contrast类用来做对比并得出猜数字的结果,score类用来读取文件内容并统计分数,主函数进行循环输入猜数字,并将结果输入文件。
面向对象程序设计课程实验总结报告
舉申科按衣專课程实验报告课程名称:面向对象程序设计院系:专业班级:____________学号:__________姓名:_______________指导教师:____________实验一.面向过程的整型栈编程 (1)1. 需求分析 (1)1.1题目要求 (1)1.2需求分析 (1)2. 系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4. 软件测试 (4)5. 特点与不足 (4)5.1技术特点 (4)5.2不足和改进的建议 (5)6. 过程和体会 (5)6.1遇到的主要问题和解决方法 (5)6.2课程设计的体会 (5)7. 源码和说明 (5)7.1文件清单及其功能说明 (5)7.2用户使用说明书 (5)7.3源代码 (5)实验二.面向对象的整型栈编程 (12)1. 需求分析 (12)1.1题目要求 (12)1.2需求分析 (12)2. 系统设计 (13)2.1概要设计 (13)2.2详细设计 (13)3. 软件开发 (14)4. 软件测试 (14)5. 特点与不足 (14)5.1技术特点 (14)5.2不足和改进的建议 (15)6. 过程和体会 (15)7. ......................................................................................................................................... 源码和说明. (15)7.1文件清单及其功能说明 (15)7.2用户使用说明书 (15)7.3源代码 (15)实验三.基于算符重载的整型栈编程 (19)1. 需求分析 (19)1.1题目要求 (19)1.2需求分析 (19)2. 系统设计 (20)2.1概要设计 (20)2.2详细设计 (20)3. 软件开发 (20)4. 软件测试 (20)5. 特点与不足 (21)5.1技术特点 (21)5.2不足和改进的建议 (21)6. 过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7. 源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验四.面向对象的整型队列编程 (25)1. 需求分析 (25)1.1题目要求 (25)1.2需求分析 (25)2. 系统设计 (26)3. 软件开发 (26)4. 软件测试 (26)5. 特点与不足 (26)5.1技术特点 (26)5.2不足和改进的建议 (26)6. 过程和体会 (26)6.1遇到的主要问题和解决方法 (26)6.2课程设计的体会 (27)7. ..................................................................................................................................... 源码和说明 (27)7.1文件清单及其功能说明 (27)7.2用户使用说明书 (27)7.3源代码 (27)实验五.基于组合的整型队列编程 (31)1. 需求分析 (31)1.1题目要求 (31)1.2需求分析 (31)2. 系统设计 (31)3. 软件开发 (32)4. 软件测试 (32)5. 特点与不足 (32)5.1技术特点 (32)5.2不足和改进的建议 (32)6. 过程和体会 (32)6.1遇到的主要问题和解决方法 (32)6.2课程设计的体会 (32)7. 源码和说明 (33)7.1文件清单及其功能说明 (33)7.2用户使用说明书 (33)7.3源代码 (33)实验六.基于继承的整型队列编程 (37)1. 需求分析 (37)1.1题目要求 (37)1.2需求分析 (38)2. 系统设计 (38)3. 软件开发 (38)4. 软件测试 (38)5. 特点与不足 (38)5.1技术特点 (38)5.2不足和改进的建议 (38)6. 过程和体会 (39)7. .......................................................................................................................................... 源码和说明. (39)7.1文件清单及其功能说明 (39)7.2用户使用说明书 (39)7.3源代码 (39)实验一.面向过程的整型栈编程1. 需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。
面向对象程序设计课程设计
面向对象程序设计课程设计本课程设计是在学习面向对象程序设计之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过课程设计在下述各方面得到锻炼:1、能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2、提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法和程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
课程设计内容1、了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5、课题的代码要求达到一定工作量,并具有一定的深度和难度;6、根据课题程序的分析和设计过程,撰写课程设计报告。
课程设计要求课程设计结束应提交程序源代码、课程设计报告的电子稿和打印稿,以作为整个课程设计评分的书面依据和存档材料。
课程设计报告以规定的格式书写、打印并装订,排版及图、表要清楚、工整。
课程设计报告的内容如下:1.封面:题目、班级、学号、姓名、指导教师和完成日期。
2.正文包括以下内容:1、根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2、为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。
同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3、编程简练,程序功能齐全,能正确运行。
4、说明书、流程图要清楚,规范。
5、总结和体会:程序编写和调试过程中遇到了哪些问题,是如何解决的,以及对设计与实现过程的回顾和分析;经验和体会等。
c面向对象程序课程设计
c面向对象程序课程设计一、教学目标本节课的教学目标是让同学们掌握C面向对象程序的基本概念和语法,包括类、对象、继承、多态等核心概念。
通过学习,同学们能够熟练使用C++编写简单的面向对象程序,培养编程思维和解决问题的能力。
同时,在学习过程中,培养同学们的团队合作意识和自主学习能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.面向对象程序概述:介绍面向对象程序的基本概念,如类、对象、封装、继承、多态等。
2.类和对象:讲解如何定义一个类,如何创建和使用对象,以及构造函数和析构函数的概念。
3.继承:介绍继承的概念和实现方式,以及继承的好处和注意事项。
4.多态:讲解多态的概念、实现方式以及多态的好处。
5.面向对象程序设计实例:通过实例讲解如何运用面向对象程序设计的方法解决实际问题。
三、教学方法为了更好地实现教学目标,本节课采用以下几种教学方法:1.讲授法:讲解面向对象程序的基本概念、语法和实例。
2.讨论法:同学们进行小组讨论,分享学习心得和解决问题的方法。
3.案例分析法:分析实际编程案例,让同学们更好地理解面向对象程序设计的方法。
4.实验法:安排课后的编程实践,让同学们动手编写面向对象的程序,巩固所学知识。
四、教学资源为了支持本节课的教学内容和教学方法的实施,准备以下教学资源:1.教材:《C++面向对象程序设计》等相关教材。
2.参考书:提供一些关于C++面向对象程序设计的参考书籍,供同学们课后自主学习。
3.多媒体资料:制作精美的PPT,直观地展示面向对象程序设计的相关概念和实例。
4.实验设备:提供计算机和编程环境,让同学们能够进行实际的编程练习。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价同学们的学习成果。
评估方式包括:1.平时表现:考察同学们在课堂上的参与程度、提问回答、小组讨论等,占总评的20%。
2.作业:布置与课程内容相关的编程作业,让同学们巩固所学知识,占总评的30%。
面向对象程序设计教程第四版课程设计
面向对象程序设计教程第四版课程设计简介本课程设计是基于《面向对象程序设计教程第四版》教材的,旨在通过设计一个实际的程序让学生能够更好地理解和掌握面向对象程序设计的相关知识。
课程设计的重点在于让学生能够将所学的知识应用到实际中,提高学生的应用能力和实践能力。
课程目标•理解OOP(面向对象编程)的相关概念和实现原理;•掌握Java语言的基本语法和面向对象编程特征;•可以设计并实现一个程序,并能够将所学知识应用到程序设计中。
课程内容本课程设计的内容主要分为以下几个部分:第一步:需求分析在本部分中,学生需要根据实际情况设计一个程序的需求,包括程序的功能模块、用户交互界面等等,并将需求文档编写成Markdown格式。
第二步:程序设计在本部分中,学生将根据需求文档完成程序的设计,包括类的设计、方法的编写等等,并将代码编写成Java语言,并将代码上传至Github 上管理并进行版本控制。
第三步:程序测试在本部分中,学生将对程序进行测试,并对程序中的代码逐行进行测试,测试程序是否能够正常运行,并给出测试报告。
同时,学生还需要针对测试结果进行修正和优化程序。
第四步:项目总结在本部分中,学生将对整个课程设计过程进行总结,包括具体的步骤、碰到的问题以及解决方案,总结自己所掌握的知识和经验,并给出对整个课程设计的评价。
课程安排本课程设计将按照以下步骤进行:步骤时间内容第一步第1周需求分析第二步第2-5周程序设计第三步第6-7周程序测试第四步第8周项目总结评分标准学生的成绩将根据以下几个方面进行评分:•需求分析文档的质量和完整性;•程序设计的质量和完整性;•程序测试的质量和完整性;•项目总结的质量和完整性。
结语通过本课程设计的实践,希望学生能够理解和掌握面向对象程序设计的相关知识,并将所学知识应用到实际中,提高学生的应用能力和实践能力。
希望学生认真完成本课程设计,并获得一个满意的成绩。
(面向对象程序设计C)实践考核报告书
九江学院信息科学与技术学院《面向对象程序设计(C++)》课程设计(实训)报告书题目:C++类与对象的设计专业:应用电子技术班级:B1321班姓名:缪谢非学号:21311100136同组人员:指导老师:设计时间:年月日1.课程设计(实训)计划完成银行贷记卡模拟系统,具体要求如下:●客户余额的输出采用“5元5角5分”●允许客户存款、取款,并允许客户取款透支●设计一个主程序进行基本情况的演示2.功能分析与设计(根据课题的要求进行简单的分析,设计相应的类图和基本流程)(1)、需求与功能分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。
现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。
近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。
随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。
如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。
JAVA课程设计报告_完整版
《JAVA面向对象程序设计》课程设计报告(2011-2012学年第2学期)系别:厦门理工学院计算机科学与技术系专业名称:10级网络工程1班课程设计科目:《JAVA面向对象程序设计》课程设计学生姓名:学号:指导教师:***成绩:完成时间:2012年7月6日题目JAVA程序课程设计任务一手机号码检测器(一)设计任务与目标任务:手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。
要求目标:检测所输入的手机号码是否是11位检测每一位是否都为数字。
分析论证:本题目要求对用户输入的手机号码进行检测,判断输入的正确性。
曾经有做过类似字符比较的题目,可以借鉴。
将字符的比较运用进来,把用户的输入字符和正确的进行比较。
但是必须满足多次输入和错误提醒。
同时还可以添加提示错误的位置和错误字符是什么。
程序正确运行时可以满足以上功能,基本可以达到题目要求了。
(二)方案设计与论证为了满足多次输入的要求,将提示和输入的操作放在一个循环体中,我采用了do_whiele()循环。
每次输入结束后提示是否继续输入。
在循环中逐步对输入的号码位数和字符类型进行检测。
位数可以分超出和不足,并均给出错误提示。
如果位数满足要求后对手机号码类型进行检测。
一般手机号在0~9之间,所以不满足的字符将报错。
通过将输入的整个字符串调用charAt(int i)方法对字符串逐位比较。
本程序的特点在于可以满足了多次输入和错误字符的显示(内容和位置)。
在程序的调试过程中,有过多次输入正确的号码也会报错(还会报错0位错误),这是因为记录错误位子的变量放在错误条件下并且未在循环体中初始化为0。
最终解决了此问题。
(三)程序框图或流程图,程序清单与调用关系(四)程序运行的测试与分析实现了多次输入和错误提示,可以判断输入的号码的错误位置及字符,错误类型,满足了设计构思要求。
最终结果如下图:实验结果截图:(五)结论心得实验过程中对于判断条件的选择出现了问题,开始时觉得要对输入的字符一个一个的比较,这样增加了难度也不方便实现。
《VB面向对象的程序设计》校本课程设计
《VB面向对象的程序设计》校本课程设计一、校本课程:VB面向对象的程序设计教学材料:创编课程类型:讲授型、实验探究型、活动交流型。
授课时间:一学年。
授课对象:高一年级中程序设计的爱好者。
二、校本课程的具体内容:知识与技能:认识VB对象的属性与方法,理解事件、事件过程和事件驱动的概念,了解VB的可视化编程。
过程与方法:熟悉VB界面,制作简单的程序界面,能够通过属性窗口更改对象属性,认识事件和事件过程的概念并制作出一个小程序。
情感态度与价值观:通过实践演示并由学生自己动手操作编辑简单实用小程序,引发学生学习计算机程序的兴趣,从而形成积极主动学习使用计算机解决问题的习惯。
校本课程目录:第一课:我的第一个VB程序第二课编写程序代码第三课:认识各国国旗第四课:做个简单的文本编辑器第五课:“你猜对了吗?”----分支结构的程序设计第六课:让飞机飞起来----循环结构的程序设计第七课:编译软件三、校本课程实施方法和形式:实施方法:教案讲授,学生讨论分析综合实践。
实施形式:教师设计、组织主持,学生设计、集体实践四、校本课程教学评价:部分学生评价:VB程序设计是一个比较抽象的概念,不易理解,但在老师的举一反三的例证和深入浅出的讲解之下,能最大层度的激发我们的兴趣,调动我们学习参与的积极性。
在整个课程中,我们不但能了解了VB的一些最基本的功能,也能简单的编辑一些实用的小程序。
我想,这也为我们以后进一步的学习打下良好的基础。
教师教学自我评价:本校本课程是VB面向对象的程序部分,根据我校学生的自身特点,在教材自身的知识基础上加入了一些常规对话框的制作,如自然数相加自然数的制作,文本框的设计等等,充实了教材的内容,满足了学生的求知欲和好奇心,学生基本能全程参与,积极动手。
经过一学年的学习,学生基本能了解的程序设计的对象的概念,设计并制作一些简单的实用的对象,如仿制操作系统中的文本框,制作文件的保存对话框等等,基本达到了开设这门课的目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生课程实验报告书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功能模块分记录查询recordidnamestates 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()//记录查询{HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库cout<<"---------------------------------"<<endl;cout<<"请输入查询的账号:";string number;cin>>number;string sql="select * from record where id ='"+number+"'";RECORDSET rs=db.JExecuteWithRecordset(sql);while(rs->rsEOF){cout<<"---------------------------------"<<endl;cout<<"该卡号不存在,请重新输入:";cin>>number;sql="select * from record where id ='"+number+"'";rs=db.JExecuteWithRecordset(sql);}while(!rs->rsEOF){cout<<"*********************************"<<endl;cout<<"用户卡号:"<<db.GetTextFiledVal(rs,"id")<<endl;cout<<"姓名:"<<db.GetTextFiledVal(rs,"name")<<endl;cout<<"状态类型:"<<db.GetTextFiledVal(rs,"states")<<endl;cout<<"时间"<<db.GetTextFiledVal(rs,"times")<<endl;cout<<"金额: "<<db.GetDoubleFieldVal(rs,"zmoney")<<endl;cout<<"*********************************"<<endl;rs->MoveNext();}db.Close();}void ATM::zhuan()//转账{gettime();HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库if(hr==-1){cout<<"Connection fail!"<<endl;return;}cout<<"************************************"<<endl;cout<<"请输入您的卡号:";string number;cin>>number;cout<<"请输入您的姓名:";string user_name;cin>>user_name;string sql="select id from user_bank_info where id ='"+number+"'";RECORDSET rs=db.JExecuteWithRecordset(sql);while(rs->rsEOF){cout<<"##################################"<<endl;cout<<"该账号不存在,请重新输入:";cin>>number;sql="select id from user_bank_info where id ='"+number+"'";rs=db.JExecuteWithRecordset(sql);}cout<<"**************************************"<<endl;cout<<"请输入对方卡号:";string number2;cin>>number2;cout<<"请输入对方姓名:";string user_name2;cin>>user_name2;string sql1="select id from user_bank_info where id ='"+number2+"'";RECORDSET rs1=db.JExecuteWithRecordset(sql1);while(rs1->rsEOF){cout<<"###################################"<<endl;cout<<"无此卡号,请重新输入:";cin>>number2;sql1="select id from user_bank_info where id ='"+number2+"'";rs1=db.JExecuteWithRecordset(sql1);}cout<<"请输入您要转账的金额:"<<endl;string money;cin>>money;string take_state;take_state= "转账";string sql3="update user_bank_info set blance=blance-"+money+" where id='"+number+"'";long status=db.JExecuteWithoutRecordset(sql3);if(status>0){cout<<"***********************************"<<endl;cout<<"转账成功!"<<endl;}else{cout<<"***********************************"<<endl;cout<<"转账失败!"<<endl;}string sql4="update user_bank_info set blance=blance+"+money+" where id='"+number2+"'";long status2=db.JExecuteWithoutRecordset(sql4);if(status>0){cout<<"************************************"<<endl;cout<<"收款成功!"<<endl;}else{cout<<"************************************"<<endl;cout<<"收款失败!"<<endl;}string sql5="insert into record values('"+number+"','"+user_name+"','"+take_state+"', '"+money+"','"+time2+"') ";long status1=db.JExecuteWithoutRecordset(sql5);if(status1>0){cout<<"---------------------------------"<<endl;cout<<"您的转账记录添加成功!"<<endl;}else{cout<<"---------------------------------"<<endl;cout<<"您的转账记录添加失败!"<<endl;}string take_state2="收款";string sql6="insert into record values('"+number2+"','"+user_name2+"','"+take_state2+ "','"+money+"','"+time2+"') ";long status3=db.JExecuteWithoutRecordset(sql6);if(status3>0){cout<<"---------------------------------"<<endl;cout<<"对方转账记录添加成功!"<<endl;}else{cout<<"---------------------------------"<<endl;cout<<"对方转账记录添加失败!"<<endl;}db.Close();}void ATM::balance()//余额查询{gettime();HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库if(hr==-1){cout<<"Connection fail!"<<endl;return;}cout<<"*************************************"<<endl ;cout<<"请输入您要查询的账号:";string number1;cin>>number1;cout<<"请输入姓名:"<<endl;string user_name1 ;cin>>user_name1;string sql="select * from user_bank_info where id ='"+number1+"'";RECORDSET rs=db.JExecuteWithRecordset(sql);while(rs->rsEOF){cout<<"*********************************"<<endl;cout<<"该账号不存在,请重新输入:";cin>>number1;sql="select * from user_bank_info where id ='"+number1+"'";rs=db.JExecuteWithRecordset(sql);}cout<<"*********************************"<<endl;cout<<"当前余额:"<<db.GetDoubleFieldVal(rs,"blance")<<endl;db.Close();}int ATM::withdraw()//取款{gettime();HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库if(hr==-1){cout<<"Connection fail!"<<endl;return 0;}cout<<"---------------------------------"<<endl;string number;string user_name;string take_state;cout<<"请输入您的卡号:";cin>>number;string sql="select id from user_bank_info where id ='"+number+"'";RECORDSET rs=db.JExecuteWithRecordset(sql);while(rs->rsEOF){cout<<"---------------------------------"<<endl;cout<<"该账号不存在,请重新输入"<<endl;cin>>number;sql="select id from user_bank_info where id ='"+number+"'";rs=db.JExecuteWithRecordset(sql);}cout<<"---------------------------------"<<endl;string sql2="select name from user_bank_info where id ='"+number+"'";RECORDSET rs2=db.JExecuteWithRecordset(sql2);user_name =db.GetTextFiledVal(rs2,"name");cout<<"请输入取款金额:"<<endl;string cash;cin>>cash;string sql3="update user_bank_info set blance=blance-"+cash+" where id ='"+number+"'";long rs3=db.JExecuteWithoutRecordset(sql3);//主要用于增删改if(rs3>0){cout<<"&&&&&&&&&&&&&交易成功!&&&&&&&&&&&&&&&&"<<endl;}else{cout<<"&&&&&&&&&&&&&余额不足!&&&&&&&&&&&&&&&"<<endl;}take_state = "取款";string sql4="insert into record values('"+number+"','"+user_name+"','"+take_state+"', '"+cash+"','"+time2+"') ";//将信息插入到record表 RECORDSET rs4=db.JExecuteWithRecordset(sql4);long status=db.JExecuteWithoutRecordset(sql4);if(status>0){cout<<"……………………………………………"<<endl;cout<<"取款记录添加成功!"<<endl;}else{cout<<"………………………………………………"<<endl;cout<<"取款记录添加失败!"<<endl;}return 0;db.Close();menu1();}int ATM::interfac()//登陆{HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库cout<<"请输入您的卡号:";string user_number;cin>>user_number;string sql="select id from user_bank_info where id ='"+user_number+"'";RECORDSET rs=db.JExecuteWithRecordset(sql);//主要用于查询和链接while(rs->rsEOF){cout<<"---------------------------------"<<endl;cout<<"该账号不存在,请重新输入"<<endl;cin>>user_number;sql="select id from user_bank_info where id ='"+user_number+"'";rs=db.JExecuteWithRecordset(sql);}cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"< <endl;cout<<"请输入您的密码:";string user_password ;cin>>user_password;string sql1="select passwd from user_bank_info whereid ='"+user_number+"' and passwd='"+user_password+"'";RECORDSET rs1=db.JExecuteWithRecordset(sql1);while(rs1->rsEOF){cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;cout<<"密码错误,请重新输入:";cin>>user_password;sql1="select password from user_bank_info where id ='"+user_number+"' and passwd='"+user_password+"'";rs1=db.JExecuteWithRecordset(sql1);}cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<end l;cout<<"登陆成功!"<<endl;db.Close();return 1;}2.2 主控模块实现void main(){HRESULThr=db.Connect("(local)","ATMinfo","li","123","1433"); //链接数据库if(hr==-1){cout<<hr<<"Connection fail!"<<endl;}cout<<"\t\t\t\t欢迎使用ATM机 "<<endl;int flag = 0;//记录登陆状态ATM atm;flag = atm.interfac();if(flag = 1){while(1){int index=atm.menu1();switch(index){case 1:atm.withdraw();break;//取款 case 2:atm.zhuan();break;case 3:atm.balance();break;case 4:atm.record_info();break;case 5:exit(0);}}}}2.3 效果展示3项目总结在实验开始时,很迷茫,不知道如何下手,老师发的例子也不理解,看了几遍还是不清楚,不知如何把数据写进数据库?看了同学的代码,似乎有点理解,和合作的同学一起构造思路,询问班里的学霸,一点点改错,增加功能,每写一个功能就测试下,花了很多时间,但是能把项目做出来还是很欣慰的。