面向对象程序设计课程设计报告书
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方法设计成一个抽象方法,由子类去改写。
面向对象课程设计报告
面向对象课程设计报告一、引言面向对象课程设计是计算机科学与技术专业的一门重要课程,通过设计和实现一个完整的面向对象程序,培养学生的面向对象设计思维和编程能力。
本报告旨在介绍我所设计的面向对象课程设计,包括设计背景、需求分析、设计方案、实现细节和测试验证等内容。
二、设计背景本次面向对象课程设计的背景是设计一个学生信息管理系统。
随着教育事业的发展,学校中的学生数量不断增加,学生信息的管理越来越复杂。
传统的学生信息管理方式已经无法满足现代教育管理的需求,需要采用更加高效和智能的信息管理系统。
三、需求分析学生信息管理系统需要具备以下功能:1. 学生信息维护:包括学生基本信息的录入、修改和删除等操作。
2. 成绩管理:包括成绩录入、查询和统计等功能。
3. 课程管理:包括课程信息的录入、查询和修改等操作。
4. 成绩报表生成:根据学生成绩生成报表,方便教师和学校进行评估和分析。
5. 权限管理:不同用户有不同的权限,需要进行用户和权限管理。
四、设计方案根据需求分析,我设计了以下类:1. Student类:表示学生信息,包含学生id、姓名、性别、年龄等属性。
2. Course类:表示课程信息,包含课程id、名称、教师等属性。
3. Grade类:表示学生成绩,包含学生id、课程id、分数等属性。
4. User类:表示系统用户,包含用户id、用户名、密码等属性。
5. Report类:表示成绩报表,包含学生id、课程id、平均分等属性。
6. System类:表示学生信息管理系统,包含各种操作方法。
五、实现细节1. 数据存储:使用数据库来存储学生信息、课程信息、成绩信息和用户信息等数据。
2. 数据库设计:根据类的属性设计数据库表结构,每个类对应一个表,表中的字段对应类的属性。
3. 系统界面:设计一个图形界面,方便用户进行操作,包括学生信息录入、成绩查询、课程管理等功能。
4. 系统功能实现:根据需求设计各个功能的实现方法,包括学生信息维护、成绩管理、课程管理等操作。
面向对象程序设计(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 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
Java面向对象程序设计语言课程设计指导书(精选5篇)
Java面向对象程序设计语言课程设计指导书(精选5篇)第一篇:Java面向对象程序设计语言课程设计指导书山东建筑大学商学院电子商务专业《Java面向对象程序设计语言》课程设计(实验)指导书一、对学生的基本要求:1、理论联系实际、严肃认真、实事求是的科学态度和勇于探索的创新精神。
2、运用所学基础理论与专业知识分析和解决实际问题,培养独立思考完成任务的能力。
3、运用Java面向对象程序设计方法、标准与规范开发小型应用软件系统。
二、设计的要求及内容及要求:应用Java面向对象程序设计语言开发小型应用软件系统。
可以从给定的选题中选择一个课题或自拟课题(自拟课题需经指导教师批准),完成系统分析、设计和开发。
具体要求如下:(1)针对你所选择的系统进行需求分析,写出系统的功能要求,设计的应用程序应具有的功能要素。
(2)程序代码应符合教学中应该具有的规范要求,类名、方法名,属性名称应与设计中实际的应用含义相符,程序中具有相应的注释。
(3)程序的界面要合理、美观。
(4)每人最终提交一个可行的应用软件程序和规范的课程设计说明书。
说明书应严格按照说明书的要求,格式清晰、规整。
并提交所设计程序的电子文档。
三、设计进度:1、17周周一~周二:选题,系统的需求分析。
分析并规划你所设计的系统应达到的功能,满足什么样的要求。
2、17周周二~周四:系统设计。
分析要达到你所要求的功能需要编写什么类,规划类的层次结构,设定好类明、方法名、属性名;规划你所设计的系统应具有什么样的界面布局。
查阅资料帮助自己规划好你的系统。
3、17周周五~18周周二:程序设计。
根据自己所规划的程序进行具体代码设计,代码设计要符合程序设计的规范要求,注意程序的编写格式。
4、18周周三:程序测试。
对自己所规划的程序进行测试,看是否有异常及程序Bug出现,并进行调试修正程序代码。
5、18周周三:编写课程设计说明书。
按照本指导书要求格式编写程序设计报告(见附件)。
面向对象程序设计课程设计报告
学生课程实验报告书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系统开发背景、开发范围、建设目标与必要性随着我国市场经济的快速发展和人们生活水平的不断提高,简单的社区服务已不能满足人们的需求。
如何利用先进的管理手段,提高物业管理水平,是当今社会所面临的一个重要课题。
要想提高物业管理水平,必须全方位地提高物业管理意识。
只有高标准、高质量的社区服务才能满足人们的需求。
面对信息时代的挑战,利用高科技手段来提高物业管理无疑是一条行之有效的途径。
在某种意义上,信息与科技在物业管理与现代化建设中显现出越来越重要的地位。
《面向对象程序设计》课程设计报告模板
课程设计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文件中。
在每次输入的时候均判断输入的合法性。
面向对象程序设计课程设计报告
面向对象程序设计课程设计报告㈡类设计定义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;教师评语。
《面向对象程序设计》课程设计报告模板
课程设计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。
《面向对象程序设计》课程设计任务书
《面向对象程序设计》课程设计任务书一、课程设计目的《面向对象程序设计》是一门重要的计算机专业课程,通过本课程设计,旨在让学生更深入地理解和掌握面向对象程序设计的基本概念、原理和方法,提高学生运用面向对象技术解决实际问题的能力。
具体而言,课程设计的目的包括以下几个方面:1、巩固和加深学生对面向对象程序设计中类、对象、继承、多态等核心概念的理解,培养学生的抽象思维和逻辑思维能力。
2、让学生熟悉面向对象程序设计的开发流程,包括需求分析、设计、编码、测试和维护等阶段,提高学生的软件开发能力。
3、培养学生运用面向对象编程语言(如 C++、Java 等)进行实际编程的能力,提高学生的代码编写规范和调试能力。
4、培养学生的团队合作精神和沟通能力,让学生在团队中共同完成一个较为复杂的项目,学会分工协作和相互交流。
5、激发学生的创新意识和解决实际问题的能力,让学生能够将所学知识应用到实际场景中,开发出具有一定实用价值的软件系统。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计题目应具有一定的实用性和挑战性,能够涵盖面向对象程序设计的主要知识点。
3、学生在进行课程设计时,应严格按照面向对象的方法进行分析、设计和实现,确保程序的结构清晰、可读性强、可维护性好。
4、学生需提交课程设计报告,报告内容应包括需求分析、总体设计、详细设计、编码实现、测试结果以及总结等部分。
5、课程设计报告应书写规范、条理清晰、图表完整、数据准确。
三、课程设计题目以下是几个可供选择的课程设计题目,学生可根据自己的兴趣和实际情况选择其中一个进行设计:题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现对学生成绩的录入、查询、修改、统计等功能。
系统应具备良好的用户界面,方便用户操作。
题目 2:图书管理系统设计一个图书管理系统,能够实现对图书的入库、借阅、归还、查询等功能。
系统应能够记录图书的基本信息、借阅记录以及读者信息等。
面向对象的程序设计课程设计报告
面向对象的程序设计课程设计报告姓名:靳彦雷学号: 110511207 班级:大类1102 院系:数学与计算机学院日期: 2012年12月一、题目说明。
1)、程序设计必做题目1:通过组合和派生构成新的类本设计题目的任务是使用Point类产生Circle类。
分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。
写出每个类的构造函数,拷贝构造函数,析构函数,并在每个函数中添加输出语句,用于观察函数的调用顺序。
本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。
另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。
2)、程序设计选作题目8 :栈模板类利用模板类实现一个栈。
要求至少实现以下几项功能:1)判断栈是否为空2)把一个数据元素压入栈3)把栈顶元素取出并赋值给一数据元素4)把栈中内容向上滚一个位置,即原来的第二个元素变成栈顶元素,原来第三个变成第二个,以此类推,而原来的栈顶元素变成栈底元素5)把栈中内容向下滚一个位置,即原来的栈顶元素变成第二个元素,原来第二个变成第三个,以此类推,而原来的栈底元素变成栈顶元素6)把栈清空7)编写一个外部函数,使用以上栈的各项功能二、程序设计的总体框图及各设计步骤的分析与代码设计1)、使用组合办法使Point类产生Circle类,并做出模板Point类中为:point(x,y):x (i),y (j)而设置circle类为:Circle(x,y,r):centerOfCir(x,y)其中centerofcir为圆circle的圆心。
2)、使用派生的方法由point类派生出circle类Point的设计为:Point(x,y)由此派生出circle类,并设定其继承point类的类型为public。
Class Circle:public PointCircle(int x,int y,float r)3)、题目8(栈模板类)的函数详细说明:Stack(Stack<T>&);Stack(int=10);//传入初始栈的容量~Stack();void put(T c);//入栈T pop();//弹栈,把栈顶元素删除T peek();//取栈顶元素,不进行删除操作bool isEmpty();//判断栈是否为空bool isFull();//判断栈是否满void addCapacity();//增加栈容量int getNumber();//返回栈元素的个数void clear();// 清空栈Stack<T> operator=(Stack<T> );//运算符重载三、系统调试的结果如下所示(1)用组合方式使point类产生circle类,其代码为下(1)所示,运行结果为:用派生方式使point类产生circle类,其代码为下(2)所示,运行结果为:用组合方式使point类产生circle类,并设计其模板,模板代码为下(3)所示,运行结果为:(4)、用派生方式使point类产生circle类,并设计其模板,模板代码为下(4)所示,运行结果为:(5)、栈模板的代码如下(5)所示,其运行结果为:四、具体的程序代码如下所示:(1)、Point和circle类的组合代码:#include<iostream>using namespace std;class Point //以下是point类的声明和定义{public:Point():x(0),y(0) //point类的默认构造函数{cout<<"point类默认构造函数被调用"<<endl;}Point(int i,int j):x(i),y(j)//point类的构造函数{cout<<"point类的构造函数被调用"<<endl;}Point(Point&p) //point类的拷贝函数{x=p.x;y=p.y;cout<<"point类的拷贝函数被调用"<<endl;}~Point() //point类的析构函数{cout<<"point 类的析构函数被调用"<<endl;}bool setX(int i);bool setY(int j);int getX(){return x;}int getY(){return y;}private:int x,y;};#include<iostream>using namespace std;class Circle{public:Circle(){radius=1.0;cout<<"circle类的默认构造函数被调用"<<endl;}Circle(int,int,float);Circle(Circle&c);~Circle(){cout<<"circel类的析构函数被调用"<<endl;}float area(){return radius*radius*3.1415;}bool setRadius(float r);float getRadius(){return radius;}Point &getCenter(){return centerOfCir;}private:float radius;Point centerOfCir;};//以下是point类的实现bool Point::setX(int i){if(i>=0){x=i;return true;}elsereturn false;}bool Point::setY(int j){if(j>=0){y=j;return true;}else return false;}//以下是circle类的实现Circle::Circle(int x,int y,float r):centerOfCir(x,y){if(r>=0)radius=r;elseradius=0;cout<<"circel类的构造函数被调用"<<endl;}Circle::Circle(Circle&c):centerOfCir(c.centerOfCir){radius=c.radius;cout<<"circel类的拷贝函数被调用"<<endl;}bool Circle::setRadius(float r){if(r>=0){radius=r;return true;}elsereturn false;}void main(){Circle c1;cout<<"圆心的坐标为("<<c1.getCenter().getX()<<",";cout<<c1.getCenter().getY()<<")"<<endl;cout<<"圆的面积为"<<c1.area()<<endl;cout<<endl;Circle c2(3,4,5);cout<<"圆心的坐标为("<<c2.getCenter().getX()<<",";cout<<c2.getCenter().getY()<<")"<<endl;cout<<"圆的面积为"<<c2.area()<<endl;cout<<endl;Circle c3=c2;cout<<"圆心的坐标为("<<c3.getCenter().getX()<<",";cout<<c3.getCenter().getY()<<")"<<endl;cout<<"圆的面积为"<<c3.area()<<endl;cout<<endl;}(2)、Circle类由point派生的程序源码:#include<iostream>using namespace std;class Point //以下是point类的声明和定义{public:Point()//point类的默认构造函数{x=0;y=0;}Point(int i,int j)//point类的构造函数{x=i;y=j;cout<<"point类的构造函数被调用"<<endl;}Point(Point&p) //point类的拷贝函数{x=p.x;y=p.y;cout<<"point类的拷贝函数被调用"<<endl;}~Point() //point类的析构函数{cout<<"point 类的析构函数被调用"<<endl;}bool setX(int i);bool setY(int j);int getX(){return x;}int getY(){return y;}protected: //把x,y声明为被保护int x,y;};//以下是circle类的声明和定义class Circle:public Point{public:Circle(){radius=1.0;cout<<"circle类的默认构造函数被调用"<<endl;};Circle(int,int);Circle(int,int,float);Circle(Circle&c){x=c.x;y=c.y;radius=c.radius;cout<<"circle类的拷贝函数被调用"<<endl;}~Circle(){cout<<"circle类的析构函数被调用"<<endl;}float area(){return radius*radius*3.1415;}bool setRadius(float r);float getRadius(){return radius;}private:float radius;};bool Point::setX(int i){if(i>=0){x=i;return true;}elsereturn false;}bool Point::setY(int j){if(j>=0){y=j;return true;}else return false;}bool Circle::setRadius(float r){if(r>=0){radius=r;return true;}elsereturn false;};//以下是circle类的定义Circle::Circle(int x,int y):Point(0,0){this->radius=radius;}Circle::Circle(int x,int y,float r):Point(x,y){radius=r;cout<<"circel类的构造函数被调用"<<endl;};//以下为主函数void main(){cout<<"类的派生程序"<<endl;Circle c1;cout<<"圆心的坐标是("<<c1.getX()<<","<<c1.getY()<<")."<<endl;cout<<"圆1的半径为"<<c1.getRadius()<<","<<"面积为"<<c1.area()<<endl;cout<<endl;Circle c2(3,4,5);cout<<"圆心的坐标是("<<c2.getX()<<","<<c2.getY()<<")."<<endl;cout<<"圆2的半径为"<<c2.getRadius()<<","<<"面积为"<<c2.area()<<endl;cout<<endl;Circle c3=c2;cout<<"圆心的坐标是("<<c3.getX()<<","<<c3.getY()<<")."<<endl;cout<<"圆3的半径为"<<c3.getRadius()<<","<<"面积为"<<c3.area()<<endl; };(3)、设计point类与circle类组合的模板:#include<iostream>using namespace std;template <class T>//Point 类的模板的声明和实现class Point{public :Point() //声明和定义POINT的默认构造函数{x=0;y=0;cout<<"point类的默认构造函数被调用"<<endl; }Point(T i,T j):x(i),y(j) //声明和定义point类的构造函数{ x=i;y=j;cout<<"Point 类的构造函数被调用"<<endl; }Point(Point<T> &p) //声明和定义point类的拷贝函数{ x=p.x;y=p.y;cout<<"point类的拷贝函数被调用"<<endl;}~Point() //p类的析构函数被调用{ cout<<"point的析构函数被调用"<<endl; }void setX(T i) //声明设定X轴坐标{ if(i>=0) x=i;else x=0; }T getX(){ return x; }void setY(T)//声明设定Y轴坐标{ if(j>=0) y=j;else y=0;}T getY(){ return y; }private :T x;T y;};#include<iostream>using namespace std;template<class T>class Circle{public:Circle() //声明和定义circle的默认构造函数{ radius=1.0;cout<<"circle类的默认拷贝函数被调用"<<endl; }Circle(T x,T y,T r):centerOfCir(x,y){if(r>=0)radius=r;elseradius=0;cout<<"circle类的构造函数被调用"<<endl;}Circle(Circle<T> &c):centerOfCir(c.centerOfCir){radius=c.radius;cout<<"circle类的拷贝函数被调用"<<endl;}~Circle(){cout<<"circle的析构函数被调用"<<endl;}bool setRadius(T r);T getRadius(){return radius;}T area(){return radius*radius*3.14159;}Point<T> &getCenter(){return centerOfCir;}private:T radius;Point<T> centerOfCir;};template<class T>bool Circle<T>::setRadius(T r){if(r>=0){radius=r;return true;}else return false;}void main()//定义主函数{Circle<float> c1;cout<<"圆心的坐标为("<<c1.getCenter().getX()<<",";cout<<c1.getCenter().getY()<<")"<<endl;cout<<"圆半径为"<<c1.getRadius()<<"的面积为"<<c1.area()<<endl;cout<<endl;Circle<float> c2(3,4,5.0);cout<<"圆心的坐标为("<<c2.getCenter().getX()<<",";cout<<c2.getCenter().getY()<<")"<<endl;cout<<"圆半径为"<<c2.getRadius()<<"的面积为"<<c2.area()<<endl;cout<<endl;Circle<float> c3=c2;cout<<"圆心的坐标为("<<c3.getCenter().getX()<<",";cout<<c3.getCenter().getY()<<")"<<endl;cout<<"圆半径为"<<c3.getRadius()<<"的面积为"<<c3.area()<<endl;cout<<endl;};(4)、设计由point类派生出circle类的程序模板。
面向对象课程设计实验报告
河南科技大学课程设计说明书课程名称面向对象程序课程设计题目贪吃蛇游戏程序设计院系信息工程学院班级计11*班学生姓名指导教师日期 2013.3.3~2013.3.17课程设计任务书课程设计报告文档题目:贪吃蛇游戏程序设计一.引言1.编写目的:通过本课程设计,巩固面向对象程序设计的基本概念、原理和技术,学会使用java语言进行简单程序的开发,将理论与实际相结合,完成一个小型程序的设计与实现,并在此基础上强化自己的实践意识,提高其实际动手能力和创新能力。
2.定义:对话框控件ID、所用及其描述控件ID 描述JFrame JPanel 用来放置整个主界面用来放置蛇身可以移动的范围newGame用来开始游戏的按钮stopGame用来停止游戏的按钮dialog用来弹出结算信息的对话框Label button Dialog中用来显示最终分数Dialog中用来关闭对话框nThread用来控制蛇身自动移动的线程3.参考资料:《java面向对象编程》,孙卫琴,2006,电子工业出版社《可视化程序设计》邱勇、肖春宝、白秀玲2011 清华出版社二.任务的描述1.目标:根据贪吃蛇游戏的运行状况进行需求分析,抽象贪吃蛇游戏运行时的算法,设计贪吃蛇游戏运行程序及人机交互界面。
2.功能描述:3.性能描述(1)数据精确度:比较精确。
(2)时间特性:蛇身的移动最开始是0.5秒,随着等级的提升,速度会变得更快,直到蛇死亡。
4.运行环境:装有Windows操作系统的计算机5.条件与限制:只能在装有Windows操作系统的计算机,装有eclipse和配置有JDK的环境中可以运行。
三.任务设计1.类的划分:(1)类1:snakemain主要功能是构造贪吃蛇游戏的主界面,Snakemain()构造出贪吃蛇游戏的主界面void Main()创建出贪吃蛇运动的窗口(2)类2:snakewin()功能是绘制贪吃蛇游戏的主界面,包括游戏结束弹出的对话框snakewin()该类的构造函数void paintComponent(Graphics g)绘制包括蛇身,分数等void eat()蛇身吃蛇块void move(int x,int y)蛇头移动void Othermove()蛇身移动void minyes(int x,int y)对蛇头是否死亡的判定void maxyes(int x,int y)蛇头死亡的各种条件void keyPressed(KeyEvent e)响应键盘被敲击时的事件void actionPerformed(ActionEvent e)响应鼠标点击的事件void run()蛇身自行移动的线程(3)类3:snakeAct主要作用是创建包括蛇头,蛇身,食物块int getX()取得对象左上角的横坐标void setX()设置对象左上角的横坐标int getY()取得对象左上角的纵坐标void setY()设置对象左上角的纵坐标2.类的继承接口等关系类snakeMain继承自JFrame类snakeWin继承自JPanel,同时实现了ActionListener, KeyListener, Runnable等接口。
面向对象程序设计课设报告
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 题目背景随着信息时代的到来和全社会信息化、网络化建设的兴起,传统的图书管理模式和操作方法越来越不能满足用户的需要.智能化、网络化、信息化的图书管理系统应用势在必行。
面向对象程序设计课程设计报告
面向对象程序设计课程设计报告院系物理与电子工程系专业电子信息工程(本)班级电子信息工程(本)121班姓名学号_______指导教师单位广西民族师范学院数计系指导教师姓名__ __ 完成日期2014年6月27 日第一章需求分析1.1引言当我们在学线性代数的时候,都需要学习矩阵的相关内容,在学习的时候,当然离不开矩阵的相关计算,例如求矩阵的加、减、乘、运算,判断两个矩阵是否相等,求矩阵的行列式以及矩阵的逆等等。
要知道其结果,往往要花比较多的时间去计算,因此,设计一个能完成这些计算的程序是很有必要的。
它可以帮助我们便捷、快速地完成计算,节约我们宝贵的时间。
1.2任务概述(A) 使用C++设计矩阵类及相应的测试主程序。
该矩阵类可进行基本的统计计算,矩阵类的每一行为一向量,基本统计计算针对该向量进行。
矩阵生成可如1方式实现,也可以从磁盘文件中读入。
矩阵的行、列数有默认值,也可通过类成员函数设置更改;如从磁盘文件读入,该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改;矩阵类有加、减、乘、判断相等的运算成员函数;基本统计计算包括求均值、协方差;基本统计计算结果在该类对象退出作用域时可自动存入磁盘文件,该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改。
(B) 在按上述要求实现的C++类中添加可求协方差矩阵对应的行列式值和求矩阵(方阵)逆的类成员,更改测试主程序对此加以验证要求:(1)提交类声明头文件、类实现文件和测试程序文件3个源代码文件;(2)2014年6月27日前完成并提交。
1.3数据描述该程序包含一下信息:1)、声明一个矩阵类2)、有矩阵的输入、输出功能3)、有完成矩阵计算个功能函数1.4功能需求根据要求设计一个矩阵类及相应的测试主程序,该矩阵类可进行基本的统计计算,矩阵类有加、减、乘、判断相等的运算成员函数,可求协方差矩阵对应的行列式值和求矩阵(方阵)逆的类成员。
1.5运行需求应用VisualC++,VisualC++6.0不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。
面向对象程序课程设计报告
面向对象课程实习报告班级:电子商务092班学号:200936627228姓名:李清强指导老师:罗移祥成绩:时间:2011.1.4—2011.1.101 / 19目录一课程设计的目的 (3)二课程设计的要求 (3)三课程设计报告内容 (3)1 程序设计题目 (3)2 程序实现思路 (3)3 程序模块分析 (3)4 系统详细设计 (4)5 部分程序 (7)四总结 (8)附录1 (8)附录2 (8)2 / 19学生成绩排名管理系统一、课程设计教学目的课程实习作为独立的教学环节,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
其目的在于加深对面向对象基础理论和基本知识的理解,掌握使用具体编程工具,提高解决实际问题的实践能力,进一步巩固面向对象程序设计课程所学到的知识,深刻把握C++语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力。
二、课程设计的要求1、分析课程设计题目的要求2、写出详细设计说明3、编写程序代码,调试程序使其能正确运行4、设计完成的软件要便于操作和使用5、设计完成后提交课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。
三、课程设计报告内容1题目内容学生成绩统计管理系统功能要求:1) 具备对成绩的管理功能(添加、删除、排序)2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等)3) 具备按学号、姓名、或课程名查询成绩的功能。
2程序实现思路:先创建一个学生元素类,用于存放学生的各种数据。
然后创建另一个类,把数据存储,可便进行各种操作。
3程序模块分析:1)添加数据:3 / 19把用户输入的数据添加到学生类对象数组中,然后再将其入堆,使其有序。
2)删除数据:由用户输入要删除的学生的学号,然后将其从学生类对象数组中删除,使数组中的数据仍然有序。
3)查找数据:由用户输入要查找的学生的学号或姓名,然后调用Studentmanage(学生管理)类中关于查找的函数,将查找结果显示在屏幕上。
面向对象的程序设计课程设计报告
面向对象的程序设计课程设计报告姓名:学号:班级:院系:日期:一.设计目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
本次课程设计通过设计和实现几个应用程序,达到以下目标:1.使学生能够比较熟练地掌握C++语言的基本语法规则;2.熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例—对象、实现类的继承等;3.掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现、运算符重载、使用C++标准库等;4.掌握在VC++平台上进行程序设计和调试的方法。
二.内容及要求1.内容与功能要求题目一:通过组合和派生构成新的类本设计题目的任务是使用Point类产生Line类。
分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。
本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。
另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。
题目二:人员信息管理系统设计题目:本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的任务。
设计要求:设计employee类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。
以employee为基类派生出technician类,表示兼职技术人员,以及manager类,表示经理,以及salesman类,表示兼职推销员。
利用manage类和salesman类派生出salesmanager 类,表示销售经理。
注意使用虚基类。
题目三:学生考勤管理系统设计题目:在学生考勤管理系统中,考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机工程学院
课程设计报告
设计名称:面向对象课程设计
选题名称:JDBC技术的应用–教师信息管理系统
姓名:刘燕青学号: 2014150239 专业班级: G计算机141
系(院):计算机工程学院
设计时间:2015.11.30~2015.12.11
设计地点:软件实验室、教室、宿舍
一需求分析
面向对象课程设计报告第 6 页,共27 页 box6.add(new JLabel("籍贯:"));
JOptionPane.showMessageDialog(this, "对不起,姓名不能为空!");
String temp = "insert into stud values (" + num1 + ","
面向对象课程设计报告第9 页,共27 页 setLayout(new BorderLayout());
面向对象课程设计报告第10 页,共27 页 box5 = Box.createHorizontalBox();
面向对象课程设计报告第11 页,共27 页name.setText(name1);
面向对象课程设计报告第12 页,共27 页 b3.setBackground(Color.white);
box = Box.createVerticalBox();
flag = 1;
面向对象课程设计报告第15 页,共27 页}
面向对象课程设计报告第16 页,共27 页 Panel pNorth = new Panel();
box.add(Box.createVerticalStrut(12));
num.setText("");
面向对象课程设计报告第19 页,共27 页 this.mainFrame = mainFrame;
面向对象课程设计报告第20 页,共27 页fram() {
面向对象课程设计报告第21 页,共27 页removeAll();
面向对象课程设计报告第22 页,共27 页 });
录入成功界面如图2所示: 录入失败界面如图3所示: 修改成功界面如图4所示: 修改失败界面如图5所示:
查找成功界面如图6所示: 查找失败界面如图7所示: 删除成功界面如图8所示: 删除失败界面如图9所示:
退出界面如图10所示:。