《面向对象程序设计》课程设计报告模板
《 面向对象程序设计》课程设计实验报告
《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 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 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
面向对象程序设计_课程设计报告书
设计的软件环境: windows XP; Visual C++ 6.0
1
设计过程和内容(可加附页) : 设计过程: 一:思路构成
While()
添加职工信息
修改职工信息
主菜单
Switch()
职工删除信息 职工信息查询
读取数据
职工信息排序 保存员工信息
开始 main() 退出
2
Байду номын сангаас
二:模板分析:
(1) 主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行 的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。 (2) 信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别,出生 年月、学历、职务、工资、住址、电话等。 (3) 信息显示模块完成已录入职工信息的显示。 (4) 信息查询模块完成职工信息的查询, 查询时对应有按编号查询和按姓名查询两种方 式。 (5) 信息修改模块完成职工信息的修改功能。 (6) 信息删除功能模块完成职工信息的删除功能。 (7) 信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。 (8) 信息保存模块完成对职工信息的保存。
3
三:功能实现 1. 添加职工信息
添加员工信息,提供员工信息的添加,在该模块中设计了安全检查机制,即确认是否添加员工的信 息,若对员工信息的添加不满意,则可以选择重新输入。还设置有返回主菜单的选项以方便用户。
2. 修改职工信息
修改员工信息设置了员工人数检查,果员工人数 NUM 的值为 0,则返回主菜单。如果员工人数 NUM 不为 0,则进入删除员工信息的界面。修改员工信息板块功能强大,界面友好,用循环控制修改 某员工属性,这样使得操作极为方便。
《面向对象程序设计》课程设计报告
目录一、课程设计的目的和要求 (2)1、课程设计目的 (2)2、课程设计要求 (2)二、实验环境 (2)三、系统需求分析与设计 (2)1、系统总框架图 (2)2、软件功能描述 (3)四、系统功能的实现 (3)1、系统设计的具体步骤 (3)2、数据结构描述与定义 (4)3、各模块设计 (5)4、特色函数分析 (6)五、系统测试与分析 (7)1、调试步骤 (7)2、调试中出现的问题及其解决方法 (7)3、软件试用(测试) (8)4、软件存在的不足与完善对策 (11)六、结论与心得 (11)七、参考文献 (12)一、课程设计的目的和要求1、课程设计目的:1)通过课程设计能使学生掌握学习理论知识时没有注意到的细节, 加深对面向对象程序设计课程的理解,以便更好地掌握基本概念、基本原理及基本实现方法。
2)以C++程序设计语言为基础,通过VC++程序的编写、调试、运行工作,进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧。
3)同时,可通过实践教学环节增强学生动手解决实际问题的能力,为以后汲取实践经验,具有更强的工程应用能力。
2、课程设计要求:1)采用面向对象设计思想, 设计数据结构,能够管理2类人员信息(教师信息学生信息);2)完成输入/输出设计,通过ACCESS文件的表结构存储教师信息和学生信息。
3)能实现增、删、查、改等基本功能,并能够运用所学的知识进行创新实现个性化的设计。
二、实验环境1)硬件平台:PC机一台;2) 软件平台: Windows 2000操作系统,Visual C++6.0程序设计软件;三、系统分析与设计1、系统总框架图2、软件功能描述软件根据使用者权限的不同提供不同限制的功能:1)其中已注册的普通用户可直接通过登录框登录进入功能实现框进行查询及查看原文件、修改密码等操作,但不能更改人员信息原文件内容;2)未注册的用户可通过新用户注册框进行注册,成功后便可以普通用户的身份使用该软件;3)管理员则可以管理员权限身份登录进行查询、修改、增加记录、删除记录、查看原文件等操作,可以通过软件提供的功能直接更改原文件中人员信息;四、系统功能的实现1、系统设计的具体步骤1)运行Access软件创建相关数据库文件(student.mdb文件),其中包含四张表:student信息表、teacher信息表、login普通用户密码信息存储表、loginAdm管理员密码信息存储表;2)在操作系统下打开ODBC数据源管理器(可在控制面板中找到),选择用户DSN选项卡,添加新数据源(连接的数据库文件为student.mdb),取名为“info”;3)运行VC++6.0软件,新建MFC AppWizard[exe]工程;4)根据系统功能需求分析创建相应的对话框,添加各控件,并编辑相关代码,打开数据源,将数据源中的各表映射为VC中对应的类(注意:基类为CrecordSet 类):student表映射为s类,teacher表映射为t类,login表映射为login类,loginAdm 表映射为loginAdmin类;5)编译,调试,运行软件;2、数据结构描述与定义登录对话框类class CZDlg : public CDialog{public:CZDlg(CWnd* pParent = NULL);enum { IDD = IDD_Z_DIALOG };CComboBox m_type;CString m_11;CString m_12;protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV supportprotected:HICON m_hIcon;virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void Onok();afx_msg void OnButton2();afx_msg void OnRegister();afx_msg void OnModifySecret();DECLARE_MESSAGE_MAP()};功能实现框类:class z2 : public CDialog{public:z2(CWnd* pParent = NULL);// Dialog Data//{{AFX_DATA(z2)enum { IDD = IDD_DIALOG1 };CListCtrl m_list;CButton m_sk;CString m_e1;CString m_e2;long m_e3;CString m_e4;CString m_te2;long m_te3;CString m_te4;CString m_te5;CString m_te7;CString m_e5;//}}AFX_DATApublic:int sORt;CRect rectL;CRect rectS;// Overridesprotected:virtual void DoDataExchange(CDataExchange* pDX);virtual BOOL OnInitDialog(); protected:// Generated message map functions//{{AFX_MSG(z2)virtual void OnCancel();virtual void OnOK();afx_msg void Onselect();afx_msg void OnModify();afx_msg void Onadd();afx_msg void Ondelete();afx_msg void Onshow();afx_msg void OnRadio1();afx_msg void OnRadio2();afx_msg void OnButton5();afx_msg void Onhide();//}}AFX_MSGDECLARE_MESSAGE_MAP()};teacher表映射到vc的t类:class t : public CRecordset{public:t(CDatabase* pDatabase = NULL);DECLARE_DYNAMIC(t)long m_column1;CString m_column2;long m_column3;CString m_column4;CString m_column5;CString m_column6;CString m_column7;overridespublic:virtual CString GetDefaultConnect();virtual CString GetDefaultSQL();virtual void DoFieldExchange(CFieldExchange* pFX); };Student表映射到vc的s类:class s : public CRecordset{public:s(CDatabase* pDatabase = NULL);DECLARE_DYNAMIC(s)// Field/Param Data//{{AFX_FIELD(s, CRecordset)CString m_column1;CString m_column2;long m_column3;CString m_column4;CString m_column5;//}}AFX_FIELD// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(s)public:virtual CString GetDefaultConnect(); // Default connection stringvirtual CString GetDefaultSQL(); // Default SQL for Recordsetvirtualvoid DoFieldExchange(CFieldExchange* pFX);};3、各模块设计1)登录模块:a、登录功能实现思想流程图:b、修改密码模块和新用户注册模块操作流程雷同:②如有空提示用户重新输入,否则通过密码表核对信息是否正确2)主要功能实现模块a、查询按钮功能的实现流程图:b、另外修改、增加、删除记录等功能的实现也类似于查询,只需分别在实现查询一步后,调用Crecordset类的相关成员函数即可实现;c、折叠对话框中列表框部分功能的实现在特色函数解析中有详细介绍d、单选按钮选择查询对象功能的实现思想也较为简单:在其父框类中设置一“全局”变量“sORt”(生命周期为此父框类执行期间),当sORt=0时,显示学生信息框,保持教师信息隐去的状态,并将sORt变量值传递到查询、修改、增加、删除等功能函数中,以便确定操作对象是student表;当sORt=1时,类似,仅是将操作对象改为了teacher表,并显示教师信息框,保持学生信息隐去的状态;当sORt为其他值时,返回一操作提示框,不能进行任何有效操作。
面向对象程序设计课程设计报告
学生课程实验报告书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项目总结在实验开始时,很迷茫,不知道如何下手,老师发的例子也不理解,看了几遍还是不清楚,不知如何把数据写进数据库?看了同学的代码,似乎有点理解,和合作的同学一起构造思路,询问班里的学霸,一点点改错,增加功能,每写一个功能就测试下,花了很多时间,但是能把项目做出来还是很欣慰的。
面向对象程序设计课程设计报告模板(个人报告)
课题:物业管理系统专业:软件工程班级:软件一班学号:12174598姓名:戴志豪指导教师:周林设计日期:2013/6/20成绩:重庆大学城市科技学院电气信息学院目录第一章课程设计的目标及其要求 (3)1.1.课程设计的目的 (3)1.2.课程设计的要求 (3)第二章正文 (4)2.1系统分析 (4)2.2 系统设计 (9)2.3 系统实施 (16)第三章课程设计总结或结论 (21)第四章参考文献 (22)附录 (22)《物业管理系统》一、课程设计的目的与要求1、课程设计的目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C++)》课程后进行的一次全面的综合设计。
本课程设计的目的和任务:①巩固和加深学生对C++语言课程的基本知识的理解和掌握。
②掌握C++语言编程和程序调试的基本技能。
③利用C++语言进行基本的软件设计。
④掌握书写程序设计说明文档的能力。
⑤提高运用C++语言解决实际问题的能力。
2、课程设计的要求进一步巩固《C++程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++ 语言解决实际问题的能力,为以后后续课程的学习打好基础。
二、正文1 系统分析1.1系统开发背景、开发范围、建设目标与必要性随着我国市场经济的快速发展和人们生活水平的不断提高,简单的社区服务已不能满足人们的需求。
如何利用先进的管理手段,提高物业管理水平,是当今社会所面临的一个重要课题。
要想提高物业管理水平,必须全方位地提高物业管理意识。
只有高标准、高质量的社区服务才能满足人们的需求。
面对信息时代的挑战,利用高科技手段来提高物业管理无疑是一条行之有效的途径。
在某种意义上,信息与科技在物业管理与现代化建设中显现出越来越重要的地位。
面向对象程序设计课程设计报告模板
使用MyEclipse为开发工具,使用Rational Rose为建模工具,使用MySQL为数据库服务器,基于GUI和JDBC技术,分析、设计并实现一个管理信息系统。
3.需求分析3.1需求描述3 Nhomakorabea2用例描述
4.功能设计
4.1系统层次方框图
4.2算法设计(活动图或时序图)
5.数据设计
5.1类图设计
5.2数据表设计
6.运行结果
7.关键代码
8.实训总结
成绩
Score
教师签字日期
姓名
学号
班级
代码行数
项目名称
1.实训目的
面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。
面向对象的程序设计课程设计报告
面向对象的程序设计课程设计报告姓名:学号:班级:院系:日期:一、设计目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
本次课程设计通过设计和实现几个应用程序,达到以下目标:1.使学生能够比较熟练地掌握C++语言的基本语法规则;2.熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例—对象、实现类的继承等;3.掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现、运算符重载、使用C++标准库等。
4.掌握在VC++平台上进行程序设计和调试的方法。
题目1:通过组合和派生构成新的类本设计题目的任务是使用Point类产生Line类。
分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。
本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。
另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。
题目3:成绩管理系统输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5)要求:●用户录入每个学生每门课程的分数;●能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;●计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;●显示每门科目中,成绩在90分以上的学生信息。
另外还输出每门科目中不及格的学生信息;●能按姓名或者学号查找,增加,删除和保存各个学生的信息。
题目1:通过组合和派生构成新的类组合类:#include<iostream>using namespace std;class Point{public:Point(){cout<<"Point的默认构造函数被调用!"<<endl;}Point(int x,int y){cout<<"Point的构造函数被调用!"<<endl;}Point(Point &p){cout<<"Point的拷贝构造函数被调用!"<<endl;} ~Point(){cout<<"Point的析构函数被调用!"<<endl;}void set(int x1,int y1){x=x1;y=y1;}int getx(){return x;}int gety(){return y;}void display(){cout<<"("<<x<<","<<y<<")"<<endl;}private:int x,y;};class Line{public:Line(){cout<<"Line的默认构造函数被调用!"<<endl;}Line(Point &a,Point &b){BeginPoint=a;EndPoint=b;cout<<"Line的构造函数被调用!"<<endl;}Line(Line &l){cout<<"Line的拷贝构造函数被调用!"<<endl;}~Line(){cout<<"Line的析构函数被调用!"<<endl;}void setBeginPoint(Point &p){x1=p.getx();y1=p.gety();}void setEndPoint(Point &p1){x2=p1.getx();y2=p1.gety();}Point getBeginPoint(){return BeginPoint;}Point getEndPoint(){return EndPoint;}void display(){cout<<"直线的起点坐标为:";BeginPoint.display();cout<<"直线的终点坐标为:";EndPoint.display();cout<<endl;}private:int x1,x2,y1,y2;Point BeginPoint;Point EndPoint;};void main(){Point p,p1;p.set(1,2);p.display();p1.set(3,4);p1.display();Line line(p,p1);line.setBeginPoint(p);line.setEndPoint(p1);line.display();}用组合类实现时运行结果:本实验小结:开始写完之后运行结果输出的数据是随机数,不是自己想要得到的结果,经检查发现,在了Line类的构造函数中设置的参数不起作用,随后修改了它的参数,从而使它其中的函数set()能够运用Point类中的对象,然后,修改main()函数中调用的对象,从而得到了正确的结果。
面向对象程序设计课程设计报告模板个人报告.doc
面向对象程序设计课程设计报告模板个人报告课题物业管理系统专业软件工程班级软件一班学号12174598 姓名戴志豪指导教师周林设计日期2013/6/20 成绩重庆大学城市科技学院电气信息学院目录第一章课程设计的目标及其要求3 1.1.课程设计的目的3 1.2.课程设计的要求 3 第二章正文4 2.1系统分析 4 2.2 系统设计9 2.3 系统实施16 第三章课程设计总结或结论21 第四章参考文献22 附录22 物业管理系统一、课程设计的目的与要求1、课程设计的目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计基础C课程后进行的一次全面的综合设计。
本课程设计的目的和任务①巩固和加深学生对C语言课程的基本知识的理解和掌握。
②掌握C语言编程和程序调试的基本技能。
③利用C语言进行基本的软件设计。
④掌握书写程序设计说明文档的能力。
⑤提高运用C语言解决实际问题的能力。
2、课程设计的要求进一步巩固C程序设计所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C 语言解决实际问题的能力,为以后后续课程的学习打好基础。
二、正文1 系统分析1.1系统开发背景、开发范围、建设目标与必要性随着我国市场经济的快速发展和人们生活水平的不断提高,简单的社区服务已不能满足人们的需求。
如何利用先进的管理手段,提高物业管理水平,是当今社会所面临的一个重要课题。
要想提高物业管理水平,必须全方位地提高物业管理意识。
只有高标准、高质量的社区服务才能满足人们的需求。
面对信息时代的挑战,利用高科技手段来提高物业管理无疑是一条行之有效的途径。
在某种意义上,信息与科技在物业管理与现代化建设中显现出越来越重要的地位。
物业管理方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。
面向对象程序设计报告
课程设计报告题 目 文件备份管理系统课 程 名 称 面向对象程序设计课程设计院 部 名 称 计算机工程学院专 业 计算机科学与技术班 级 14计算机科学与技术(单)(1)学 生 姓 名 邵佳楠学 号 ********** 课程设计地点 A101课程设计学时 20学时指 导 教 师 赵金陵科技学院教务处制 成绩一、课程设计的目的和要求该课程设计的目的采用面向对象的程序设计语言,学会综合运用已学的C++知识,用面向对象的技术和文件打开,关闭,保存等实现一个小型的应用程序.开发实现一个应用程序,主要目的是使学生更好的掌握面向对象程序设计语言及其开发工具,掌握如何使用面向对象的程序设计语言设计一个小的软件系统。
通过该课程设计培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法的能力,真正做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。
二、系统需求分析(1)设计浏览文件按钮,点击弹出选择文件提示框(2)选取文件后把文件地址保存到静态变量(3)设计备份按钮,点击弹出保存文件提示框(4)选择保存目录后把目录地址保存到静态变量(5)执行文件保存函数传入两个地址达到文件备份的目的(6)成功保存后将文件名,备份时间,备份地址保存到txt文档中(7)读取txt文档内容在列表控件中显示(8)还原功能系统界面如下:1.浏览文件按钮2.源文件地址预览3.备份历史记录列表4.备份文件按钮5.取消按钮6.备份按钮三、总体设计文件备份顾名思义就是将一个文件复制到另一个文件夹中,但要实现复制最起码要知道两个参数:1.源文件 2.目的目录总体流程:四、详细设计(1)此处是窗口初始化函数以及初始化列表信息BOOL CFileCopyDlg::OnInitDialog(){CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
面向对象程序设计课程设计报告
面向对象程序设计课程设计报告㈡类设计定义Complex类:1.实部real ,虚部 imag double real,imag;2.构造函数:Complex(){} ,Complex(double r,double i){}3.析构函数:~Complex(){}4.加法重载: Complex operator+(Complex &c){}5.减法重载: Complex operator-(Complex &c){}6.乘法重载: Complex operator*(Complex &c){}7.除法重载: Complex operator/(Complex &c) {}8.重载==: int Complex:: operator==(Complex &c){}9.重载!=: int Complex:: operator!=(Complex &c)㈢函数设计1.多个复数四则运算的设计① void Add() {} //复数加法运算函数② void Sub() {} //复数减法运算函数③ void Mul() {} //复数乘法运算函数④ void Div() {} //复数除法运算函数2.主函数的设计数字选择功能菜单,根据输入的数字选择执行不同的功能。
用户输入复数的实部,虚部,从而得到计算结果。
void main() //主函数开始{char strChoise[20]; //定义字符串名system("cls");cou t<<"\t这是一个复数计算器,可以实现以下功能,请按对应的按键(0-4)\n\n\n";cou t<<"\t**************************菜单**************************\n";cou t<<"\t1:多复数加法,以0结束\n";cou t<<"\t2:多复数减法,以0结束\n";cou t<<"\t3:多复数乘法,以0结束\n";cou t<<"\t4:多复数除法,以0结束\n";cou t<<"\t0:退出程序\n\n:";cou t<<"\t请您选择:";cin>>strChoise;教师评语。
面向对象程序设计课程设计报告书
面向对象程序设计课程设计报告书一、课程设计目的面向对象程序设计课程设计是对所学面向对象程序设计知识的综合运用和实践,旨在通过实际项目的开发,加深对面向对象编程思想的理解,提高编程技能和问题解决能力。
二、课程设计要求本次课程设计要求学生独立完成一个具有一定规模和复杂度的面向对象程序项目。
具体要求包括:1、运用面向对象的分析和设计方法,对项目进行需求分析和系统设计。
2、选择合适的编程语言和开发工具,实现项目的功能。
3、遵循良好的编程规范和代码风格,确保程序的可读性和可维护性。
4、对程序进行充分的测试,确保其稳定性和正确性。
三、课程设计题目及背景本次课程设计的题目为“学生成绩管理系统”。
随着学校规模的不断扩大,学生数量的不断增加,传统的手工管理学生成绩的方式已经无法满足需求。
因此,开发一个学生成绩管理系统,实现学生成绩的录入、查询、统计和分析等功能,具有重要的现实意义。
四、系统需求分析1、功能需求学生信息管理:包括学生基本信息的录入、修改、删除和查询。
课程信息管理:包括课程基本信息的录入、修改、删除和查询。
成绩录入:教师能够录入学生的课程成绩。
成绩查询:学生和教师能够查询学生的课程成绩。
成绩统计:能够统计学生的总成绩、平均成绩等。
成绩分析:能够对学生的成绩进行分析,如成绩分布、优秀率等。
2、性能需求系统响应时间要短,能够快速处理用户的请求。
系统要稳定可靠,能够长时间运行。
3、数据需求学生信息:包括学号、姓名、性别、年龄、班级等。
课程信息:包括课程编号、课程名称、学分等。
成绩信息:包括学号、课程编号、成绩等。
五、系统设计1、总体设计系统采用 C/S 架构,分为客户端和服务器端。
客户端负责与用户进行交互,服务器端负责数据的存储和处理。
系统分为学生信息管理模块、课程信息管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩分析模块。
2、详细设计学生信息管理模块类设计:设计一个学生类(Student),包含学生的基本属性和操作方法,如设置和获取学生信息。
《面向对象程序设计》课程设计报告模板
课程设计20 ~20 学年第学期设计题目职工工资管理系统设计院(系)计算机科学与信息工程学院专业班级学号学生姓名设计时间20 年 1 月日-—2011 年 1 月日指导教师提交日期 20 年月日上海应用技术学院课程设计任务书二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)(1)分析职工工资管理系统程序结构:画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起);(2)对你已经实现的功能(修改的、新编写的)做详细的说明,并附上流程图及程序清单.(3)自己对该职工工资管理系统的进一步设想;(4)对于有设想但最终未实现的功能的大致编程思路的阐述;(5)论述在设计过程中遇到的并且对你具有启发性的问题。
(6)严禁抄袭,发现雷同,双方扣分。
三、课程设计工作进度计划:周一、二:教师布置任务,讲解本课设模块.画出主程序粗略的流程图和各个模块的详细流程图。
设计程序及调试程序。
周三、四:设计程序及调试程序。
同时着手写报告。
周五:完成设计,提交报告,接受教师考评。
四、主要参考资料(1)《面向对象程序设计》,郑莉,清华大学出版社,(2)《面向对象程序设计C++语言》,朱战立等编西安电子科技大学出版社(3)《面向对象程序设计---—Visual C++》,刘斌等编,清华大学出版社(4)《面向对象程序设计—-—-C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社,2003目录1概述: ..................................................................................... 错误!未定义书签。
1.1基本功能 (5)1.2拓展功能: (6)2课题分析 (7)2。
1类的设计 (7)2。
2类的实现 (8)3详细设计说明 (9)3.1程序主界面 (9)3。
OOP面向对象课程设计报告格式
Xxxxxx大学课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:姓名:系:专业:年级:学号:指导教师:职称:2010年06 月20 日福建农林大学计算机与信息学院计算机类课程设计报告结果评定目录1.设计目的 (4)2.设计要求 (4)3.设计方案 (4)4.设计内容 (9)4.1 XXXXXXXXXXXXXXXX (10)4.2 XXXXXXXXXXXXXXXX (10)4.3 XXXXXXXXXXXXXXXX (10)5.总结 (10)参考文献 (10)(目录格式说明:“目录”二字为黑体,三号字。
目录内容要求给出两级目录,一级目录采用黑体,小四号字,二级目录采用宋体,小四号字,1.5倍行距。
)(正文格式说明:课程设计题目名称采用黑体,三号字.正文部分一律用小四号字,宋体,1.5倍行距。
一级大标题靠左,加粗。
二级大标题靠左,不加粗。
参考文献的正文部分用五号字,汉字用宋体,英文用Times New Roman体,行距采用固定值16磅,段前空3磅,段后空0磅。
每一条文献的内容要写在同一页。
遇有被迫分页的情况,可通过“留白”或微调本页行距的方式将同一条文献内容放在一页。
设计报告正文如下:)1.设计目的2.设计要求3.设计方案(包括设计的系统框图、类图、用例图等)(以下是教师说明,供同学们设计类图和用例图时参考)一、用例图•用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作。
•通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。
•用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。
面向对象程序课程设计 报告模版
《面向对象程序设计》课程设计报告题目:计算器的设计实现院(系):信息科学与工程学院专业班级:学生姓名:学号:指导教师:苏莹20 13 年 6 月 8 日至20 13 年 6 月 21 日华中科技大学武昌分校制面向对象程序设计课程设计任务书一、设计(调查报告/论文)题目应与上面的题目名一样二、设计(调查报告/论文)主要内容内容:保存计算过程的计算器具有计算的功能,而且还有显示计算过程、保存计算过程之功能。
基本功能与要求:1单击“计算器”上的数字按钮(0、1、2、3、4、5、6、7、8、9)可以设置参与计算的运算数。
2单击“计算器”上的运算符按钮(+、-、*、/)可以选择运算符号。
3单击“计算器”上的函数按钮可以计算出相应的函数值。
4单击“计算器”上的“=”按钮显示计算结果。
5单击“保存”按钮可以将文本区中的全部计算过程保存到文件:单击“复制”按钮可以将文本区中选中的文本复制到剪切板;单击“清除”按钮可以清除文本区中的全部内容。
三、原始资料1.《面向对象程序设计课程设计》指导书2. 耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.四、要求的设计(调查/论文)成果1.课程设计报告2.课程设计软件五、进程安排布置任务,查找资料、需求分析1天总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料[1] 张广彬. Java课程设计案例精编(第二版).北京:清华大学出版社, 2011.[2] 耿祥义. Java课程设计(第二版).北京:清华大学出版社, 2008.[3] 耿祥义.JAVA大学实用教程.北京:清华大学出版社,2009.[4] 邹林达.陈国君 Java2程序设计基础.北京:清华大学出版社,2010.[5] 邹林达.Java2程序设计基础实验指导.北京:清华大学,2010.指导教师(签名):20 年月日目录1需求与总体设计……………………………………………………………………………页码1.1××××××××………………………………………………………………………页码1.2××××××××………………………………………………………………………页码2详细设计…………………………………………………………………………………页码2.1××××××××………………………………………………………………………页码2.2××××××××………………………………………………………………………页码3编码实现…………………………………………………………………………………页码3.1××××××××………………………………………………………………………页码3.2××××××××………………………………………………………………………页码4系统测试…………………………………………………………………………………页码总结…………………………………………………………………………………页码(要求:目录题头用三号黑体字居中书写,隔行书写目录内容。
面向对象程序设计课设报告
C++课程设计报告一.设计任务应用VC++软件设计一个计算器的程序,应用对话框功能,基本要求能实现简单的加、减、乘、除运算,在完成基本功能的基础上,鼓励同学进行其他的创新设计,如增加计算器的小数运算、参数运算、存储运算等功能,类似于Windows下附件中的计算器。
二、目的与要求:1、目的:(1)要求学生达到熟练掌握VC++语言的基本知识和VC++调试技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:(1)求利用面向对象的方法以及VC++的编程思想来完成系统的设计;(2)要求在设计的过程中,对Windows环境下的编程有一个基本的认识;(3)掌握Framework的编程思想。
三.具体设计1.设计思想:利用VC++软件中的Windows MFC编程功能,创建一个对话框程序,利用控件菜单在对话框中创建若干按钮控件,作为计算器的十个数字按钮和加、减、乘、除运算符按钮,以及其他功能的按钮,如正负运算符、清除符和BackSpace等。
再添加一个编辑框,作为计算器的显示模块。
调整控件的位置和布局,尽量使计算器界面美观实用。
利用类向导功能为相应的控件创建成员变量及成员函数,在相应的函数位置添加函数功能实现代码,然后进行编译调试,修改程序,进一步完善计算器功能。
通过设置一些标志变量,根据具体的变量值,来判断应该进行的操作,然后将计算的结果传递给编辑框的变量,通过更新消息显示输入结果或计算结果。
2.设计表示:在对话框类中创建各个按钮的变量,数字按钮的标识符形如IDC_NUM0,运算符的标识符为IDC_ADD,IDC_SUB,IDC_MUL,IDC_DIV;其他的变量标识符也类似定义。
下面为数字键1的部分代码:if(Flag2){iCount++;if(Flag1) {Op1=Op1*10+1;m_Edit=Op1/(pow(10,iCount));}else {Op2=Op2*10+1;m_Edit=Op2/(pow(10,iCount));}}else{if(Flag1) {Op1=Op1*10+1;m_Edit=Op1;}else {Op2=Op2*10+1;m_Edit=Op2;}}其中,Op1,Op2为两个操作数变量,定义时定义为全局变量,表示是否按下小数点键,是则为1,否则为0,iCount表示按下小数点后输入数据的位数,先将数据以全部整数形式记录下来,m_Edit是编辑框的成员变量,显示时m_Edit的值是Op值除以10的iCount次幂来得到原来的输入数据, Flag1表示是否按下了运算符按钮,是则Flag1为1,否则Flag1为0. Op1=Op1*10+1是记录输入数据的算法,每输入一位数据,Op1都扩大十倍再加上所按的数字键的值,Op2的原理类似。
《面向对象程序设计》课程设计报告书(模板)
《面向对象程序设计》课程设计报告书(模板) 《面向对象程序设计》课程设计报告书设计题目:指导老师:学生学号:学生姓名:同组人员:时间:目录第1章选题 ..................................................................... ..................................................... 2 1.1 题目背景 ..................................................................... .................................................... 2 1.2系统实现的具体分工 ..................................................................... . (2)1.2.1 标题 ..................................................................... ..................................................... 2 1.3开发环境 ..................................................................... ..................................................... 2 第2章设计内容 ...................................................................................................................... 3 2.1实现功能 ..................................................................... ..................................................... 3 2.2 概要设计(涉及类的框图)..................................................................... ...................... 3 2.3 界面设计 ..................................................................... .................................................... 4 第3章系统实现 ..................................................................... ................................................. 5 3.1 涉及知识点 ..................................................................... ................................................ 5 3.2 系统运行(主要运行界面抓图) .................................................................... ............... 5 3.3 源程序清单(关键代码) .................................................................... .......................... 6 第4章结束语 ..................................................................... (16)第1章选题1.1 题目背景随着信息时代的到来和全社会信息化、网络化建设的兴起,传统的图书管理模式和操作方法越来越不能满足用户的需要.智能化、网络化、信息化的图书管理系统应用势在必行。
《面向对象程序设计(课程设计)》报告模板
南阳理工学院·软件学院课程设计报告课程名称:C++面向对象程序设计(课程设计) 课题名称:姓名:张三(50%)、张三(30%)、王五(20%)学号:10001、10002、10003专业:软件工程年级:2019级指导教师:职称:2017年12月C++面向对象程序设计(课程设计)成绩评定表目录1.课题来源 (4)2.任务描述 (4)2.1.课题的总体结构 (4)2.2.核心功能模块与类设计 (4)2.3.任务分工与工作量说明 (4)3.程序(系统)详细设计 (4)4.程序(系统)实现与测试 (5)5.分析与讨论 (5)6.结束语 (5)1.课题来源课题名称和来源,主要介绍为何选择此题目来开展课程设计,此课题的开展能体现面向对象程序设计的哪些特征?2.任务描述课题的基本内容、即课题要求完成哪些具体任务。
2.1.课题的总体结构描述程序文件的总体结构,最好给出程序(系统)的功能结构图或类层次关系图。
2.2.核心功能模块与类设计1. 找出类,并画出类图2. 采用表格的形式,按照类在课题中的作用,列出核心类的功能定义和主要函数接口。
2.3.任务分工与工作量说明说明课题是有单人完成,还是以小组形式完成的。
如果是以小组形式完成,3.程序(系统)详细设计按照程序(系统)的总体结构,详细介绍程序中各个类和函数的设计思想和实现方法,并以图的方式说明程序的流程图。
4.程序(系统)实现与测试(1)给出典型的程序(系统)执行结果图。
(2)详细说明程序(系统)实现了哪些功能?(3)根据课题的特性,列出带有详细注释的核心功能模块或类代码;(4)根据程序(系统)对输入数据能否正确处理和响应进行介绍,介绍系统可接受的合法输入和不可接受的非法输入,并以此为依据说明系统的健壮性和可扩展性。
5.分析与讨论根据程序(系统)的运行结果,说明程序解决了哪些问题?还有哪些问题没有很好地解决或者处理得不够完善?介绍本课程设计实施过程中所取得的经验教训,展望下一步的工作。
《面向对象程序设计项目实践》课程设计报告模板
延边大学《面向对象程序设计项目实践》课程设计报告课程题目:所在学院:工学院专业年级:学号:学生姓名:二0一六年十二月1.问题描述(一级标题,字体为黑体,字号为三号)《俄罗斯方块》是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。
游戏区域是由20行10列的方格构成。
共有7种不同形状的俄罗斯方块随机产生并按照一定的速度往下落下。
在俄罗斯方块落下的过程中玩家可以用左右上下四个光标键控制方块往左、往右、旋转和加速下降。
另外,可以用空格键直接落底...(正文部分为字体:宋体,字号:小四,首行缩进2个字符,行间距为固定值:22)要求:问题描述要尽可能详细,以便为后面的程序设计提供有用的信息。
2.功能分析俄罗斯方块游戏需要解决的问题包括:(1)游戏开始后,随机产生方块并按照一定的时间间隔自动下移;(2)用↑键变换方块;(3)用←键和→键左右移动方块;(4)用↓键使方块加速下移;(5)用空格键使方块直接下移;(6)判断满行并消行;(7)计分及定级别;(8)判定游戏是否结束。
3.程序设计3.1 用户界面(二级标题,黑体,四号)3.2 数据结构(1)游戏区域的数据结构(2)俄罗斯方块的数据结构3.3 绘制方块一个俄罗斯方块是由四个相同颜色和大小的小方块构成。
为了显示一个俄罗斯方块,需要读入png图片,并生成wxBitmap对象,并在俄罗斯方块的每个小方块所在位置粘贴wxBitmap对象。
(1)生成wxBitmap对象(2)wxBitmap的绘制3.4 定时器的使用游戏过程中,俄罗斯方块将按照一定的时间间隔自动往下落下。
3.5 功能键的捕捉在俄罗斯方块落下的过程中玩家可以用左右上下四个光标键控制方块往左、往右、旋转和加速下降。
另外,可以用空格键直接落底。
因此需要捕捉并判断玩家按下哪个功能键。
当玩家按下键时,由wxWidgets捕捉并产EVT_KEY_DOWN事件,需要我们设计按键事件处理函数,并通过事件表将该事件和对应的事件处理函数关联起来。
《面向对象程序设计》课程设计报告(样本)
《面向对象程序设计》课程设计报告专业:姓名:学号:指导教师:二O一一年九月日一、课程设计问题描述学生成绩管理是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下六种功能:(1)学生注册登记;(2)登记学生成绩;(3)修改学生成绩;(4)打印一个班级学生的单科成绩;(5)求出每个学生一学期中各科的平均成绩;(6)打印某一课程成绩处于指定分数段内的学生名单。
二、课程设计目的和要求:经过一个学期的《C语言程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C语言程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。
三、系统设计(算法分析)1、…………………………..的数据结构学生成绩一般都是以班级为单位进行管理的,一个班级用一个结点来表示。
考虑到插入和删除的方便,这些以班级为单位的结点用链表方式组成一个主目录。
每个结点有四个域:(1)班级代号;(2)课程情况;(3)学生情况;(4)班级顺序链。
……………………………………………………………..2、流程图3、各函数的功能和实现学生成绩管理的相关功能由对应的函数来实现。
(1)学生注册登记…………………………………(2)登记学生成绩………………………………..(3)修改学生成绩………………………………..(4)打印一个班级学生的单科成绩………………………………………………..四、程序源代码五、总结和体会六、参考文献(按“作者,书名,出版社,出版时间”格式逐一列出,如下:)1 、焦华《标准C程序设计技能百练》中国铁道出版社2004年23。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
20 ~ 20 学年第学期
设计题目职工工资管理系统设计
院(系)计算机科学与信息工程学院
专业
班级学号
学生姓名
设计时间20 年 1 月日——2011 年 1 月日
指导教师
提交日期 20 年月日
上海应用技术学院课程设计任务书
目录
1概述: .................................................................................. 错误!未定义书签。
1.1基本功能 (5)
1.2拓展功能: (6)
2课题分析 (7)
2.1类的设计 (7)
2.2类的实现 (8)
3详细设计说明 (9)
3.1程序主界面 (9)
3.2方案 (9)
3.3程序描述(输入INPUT) (9)
3.4 运行结果............................................................11 4课程设计总结 (12)
5软件使用说明 (13)
6附录(参考文献,原代码:) (13)
参考文献:................................................ 错误!未定义书签。
原代码 ................................................... 错误!未定义书签。
1概述:
课程设计目的
本课程设计是《面向对象程序设计》课程的后继教学环节,学好C++语言就必须坚持用面向对象的思维方式分析问题、解决问题,最好的方法是仿照教材编写C++实际应用程序。
根据教材中人事管理应用程序框架,在此基础上按要求完成以下实际应用程序。
1.1基本功能
1.1.1输入员工信息
输入员工信息包括以下几个信息点
员工姓名
员工编号(4位数)
员工职务类型(1.技术经理2. 销售经理3. 技术人员4. 销售人员5. 文秘.)
输入后将自动保存至info.txt文件中。
在每次输入的时候均判断输入的合法性。
1.1.2计算员工工资
让用户输入要计算的员工姓名,然后根据不同的计算方式进行计算,具体计算方法为
1. 技术经理有6000元的固定工资,工作业绩可分为3个等级,每级可获得1000元奖金,
2. 销售经理有6000元的固定工资,奖金由他所管理的销售员的销售业绩而定,总销售额的2%
3.技术人员的工资根据他当月工作的小时数来定,时薪35元;
4. 销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%;
5. 文秘有4000元的基本工资,奖金视为当月工作情况而定;
提示是否需要存档
如果需要存档,则提示记录的月份,需要用户输入
在每次输入的时候均判断输入的合法性。
1.2 拓展功能:
1.2.1查询(已经完成)
1.2.2显示全部数据(已经完成)
1.2.3员工数据删除(未完成)
2课题分析
2.1类的设计
我的类的设计完全按照指导书上的设计图标所示,
设定一个虚基类employee,对于类中所有数据全部定义为公有,为后面的继承提供方便接下来technician、manager、salesman和secretary全部共有继承employee
最后根据技术经理和销售经理的特点,技术经理techmanager继承technician和manager
销售经理继承manager和salesman
这样做的目地和特点是结构清晰,目地明确,方法简便。
2.2类的实现
technician、manager、salesman和secretary以及techmanager和salesmanager构造函数全部传入自己的参数,用于计算工资,计算工资函数全部依照自己的计算特点来进行计算,其中techmanager和salesmanager又有各自的特点进行了继承。
在基类的employee中先定义了数据类型,全部为公有,这样方便下面的继承来访问到,对于里面的函数
void info();用于输入信息
bool search();用于查找
bool disply();用于全部显示
virtual void countsalary()=0;虚函数,用于计算工资,但是在这里什么也不做
int recordinfo();记录输入的信息
int recordsalary();记录员工的工资
具体做法
定义struct infostruct和struct salarystruct,用于存放不同要求的信息
void info();提示用户输入姓名,然后存入临时的字符串数组,拷贝到NAME中,再提示输入编号,复制到number中。
bool search();打开文件,读取信息,查找和name相匹配的,关闭文件。
bool disply(),打开文件,进行循环,知道文件结束,循环体中读一条信息显示一条
int recordinfo();将员工的基本数据记录到结构体中,打开文件,将数据输入文件,关闭文件
int recordsalary();将员工的工资数据记录到结构体中,打开文件,将数据输入文件,关闭文件
3详细设计说明
3.1程序主界面
3.1.1程序系统的结构
在类的实现中将题目中所包括的用法全部都写出,在主函数中,直接用IF语句来进行完成到,在每个IF语句中,对对象EM来访问类中的函数,方便而又快捷。
3.2方案
由菜单引导用户进行所需的功能,菜单如示意图所示要一目了然,
该程序不仅可以给用户提供输入员工信息的用处,而且具有查找,全部显示,以及保存和调用等功能,虽然在有些地方还有不足之处,有待开发,但是还是非常实用和方便。
按照题目提出的要求,先进行类的定义,随后对每个类进行函数的编写,完成类的实现,在主函数中,进行各个不同的操作,都是对pem数组进行调用。
*pem[6]={&ma,&tm,&sm,&te,&sa,&se}
3.3程序描述
可以添加新的信息。
其中添加时提示也非常清楚。
性能:输入相应的信息,所有进行计算处理,包括保存和提取
输入项:输入员工的工作信息
输出项:对应的要求输出
算法
输入职工的姓名及工作情况,判断输入内容是否合法(每个在用户输入信息后都进行合法的判断),职工的信息分开放在两个结构体中。
两个结构体分别用于两个txt 文件的保存。
接口
输入对应信息输出相应结果
主菜单——选择
主函数中要用到类中的函数时,全部通过对象来访问到。
3.4 运行结果
《面向对象程序设计》程序设计报告
4课程设计总结
5软件使用说明
6
7附录(参考文献:)
参考文献:
源代码:
11。