中国矿业大学软件课程设计实验报告
软件课程设计 第四阶段实验报告
软件课程设计第四阶段实验报告编号:()字号《软件课程设计》报告中国矿业大学计算机科学与技术学院年月1软件课程设计任务书专业年级:学生姓名:任务下达日期: 200 年月日课程设计日期: 200 年月日至 200年月日课程设计题目:数据结构类别数据结构题目序号 1顺序栈和链表栈的基本操作5 统计选票问题成绩2软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月3日目录七、数据结构1----- 顺序栈和链表栈的基本操作(第四阶段第一题顺序栈和链表栈.cpp)7.1 需求分析 (4)7.2 概要设计....................................................................................5 7.3 详细设计与编码...........................................................................6 7.4 调试分析....................................................................................14 7.5 用户使用说明............................................................................16 7.6 设计心得 (16)八、数据结构4----统计选票问题(第四阶段第四题统计选票问题.cpp)8.1 需求分析 (17)8.2 概要设计....................................................................................17 8.3 详细设计与编码...........................................................................17 8.4 调试分析....................................................................................20 8.5 用户使用说明...........................................................................21 8.6 设计心得 (21)7.1需求分析本程序是通过类的构造方法编写两种栈:顺序表栈和链表栈,以这顺序表和单向链表为基本构架,实现栈的基本操作:判空、.取栈顶元素、查找、.入栈、出栈、输出栈、求栈中元素个数。
软件工程课程设计实验报告
重庆邮电大学软件工程课程设计实验报告——网上选课系统姓名:雷雷学号:08500329专业:计算机科学与技术班级:0410801指导老师:邹洋教室:S331-A时间:2011-5-30~2011-6-3一、实验题目:网上选课系统主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。
用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。
用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。
最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。
二、实验目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。
通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。
三、实验要求1.一人一组。
2.熟悉Rose开发环境。
3.掌握UML的基本模型元素(如角色、用例、类等)。
4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
5.进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,建立完整的系统数据库的逻辑模型。
龙纯鹏组《软件工程导轮》实验报告系统设计
中国矿业大学(北京)软件工程导论实验报告课程名称:软件工程导论实验名称:银行计算机储蓄系统设计说明书班级:信息与计算科学(1)班组长:龙纯鹏组员:代喜白鑫刘永鸿侯佳意实验日期: 2014年4月9日指导老师姓名:王颖组内任务分配:龙纯鹏11107200110组长、主要负责可行性分析报告和需求分析报告代喜 11107200103 主要负责系统设计白鑫 11107200101 刘永鸿11107200210 主要负责编写代码侯佳意11107200106主要负责用户手册目录1引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (2)2总体设计 (2)2.1需求规定 (2)2.2运行环境 (2)2.3基本设计概念和处理流程 (3)2.4结构 (3)2.5功能器求与程序的关系 (3)2.6人工处理过程 (3)2.7尚未问决的问题 (3)3接口设计 (3)3.1用户接口 (3)3.2外部接口 (3)3.3内部接口 (4)4运行设计 (4)4.1运行模块组合 (4)4.2运行控制 (4)4.3运行时间 (4)5系统数据结构设计 (4)5.1逻辑结构设计要点 (4)5.2物理结构设计要点 (4)5.3数据结构与程序的关系 (4)6系统出错处理设计 (5)6.1出错信息 (5)6.2补救措施 (5)6.3系统维护设计 (5)系统设计说明书1引言1.1编写目的在现代化社会中随着银行业的激烈竞争,如何更好的提高办事效率,降低成本,提高银行系统的电算化及现代化程度,充分满足客户的需求,提供更优质高效的服务,成为各银行正向追逐的目标。
因此,开发一套方便快捷,高效实用,安全稳定的银行储蓄系统软件,便成了银行的当务之急。
它的意义也就显得尤为重要了。
过去落后的银行操作系统已经不适应现代社会的需求了,伴随着银行业激烈的竞争,急需出现一套更符合银行需要的新一代银行储蓄系统。
1.2背景项目名称:银行计算机储蓄系统开发者:计041软件工程第一小组用户:××银行背景:为了以更高的服务质量让储户满意,提高业务效率,强调资金安全,完善风险防范意识,特此开发一套新的银行计算机存储系统。
中国矿业大学测绘软件实习报告材料
中国矿业大学测绘软件设计与实现实验报告学号:姓名:班级:指导教师:王永波实验一二叉树的构建及其遍历算法的实现实验目的:完成二叉树的构建以及二叉树的遍历等,加深对树以及二叉树的遍历相关知识的理解。
实验内容:1.二叉树类的定义及建立。
2.二叉树的前序、中序、后序遍历。
主要代码:template <class T>class C_LJH_BinTree{public:C_LJH_BinTree();//构造函数,根据输入前序序列由键盘输入~C_LJH_BinTree();//析构函数void PreOrder();//前序遍历void InOrder();//中序遍历void PostOrder();//后序遍历private:T data;C_LJH_BinTree<T>*lchild,*rchild;bool NO_Die;};template <class T>C_LJH_BinTree<T>::C_LJH_BinTree(){NO_Die = false;lchild = NULL;rchild = NULL;char ch;cin>>ch;if (ch == '#'){NO_Die = true;//若为#,代表空节点}else{this->data = ch;//保存输入的节点//左子树C_LJH_BinTree *newChild0 = new C_LJH_BinTree<T>();if (newChild0->NO_Die)delete newChild0;elsethis->lchild= newChild0;//右子树C_LJH_BinTree *newChild1 = new C_LJH_BinTree<T>();//直接创建子节点,if (newChild1->NO_Die)delete newChild1;elsethis->rchild= newChild1;}}//析构函数template <class T>C_LJH_BinTree<T>::~C_LJH_BinTree(){if (lchild) delete lchild; //删除父节点之前,先删除子节点if (rchild) delete rchild;}//前序遍历template <class T>void C_LJH_BinTree<T>::PreOrder(){cout<<this->data<<"\t";//先输出父节点,然后子节点按照父节点做if (lchild!=NULL)this->lchild->PreOrder();if (rchild!=NULL)this->rchild->PreOrder();}//中序遍历template <class T>void C_LJH_BinTree<T>::InOrder(){if (lchild) lchild->InOrder();cout<<this->data<<"\t";if (rchild) rchild->InOrder();}//后序遍历template <class T>void C_LJH_BinTree<T>::PostOrder(){if (lchild) lchild->PostOrder();if (rchild) rchild->PostOrder();cout<<this->data<<"\t";}int main(){cout<<"请输入二叉树的前序遍历:"<<endl;cout<<"(以#作为分支结尾,例如:A B # # C # #)"<<endl;C_LJH_BinTree<char> m_tree;cout<<endl;cout<<"前序遍历为:"<<endl;m_tree.PreOrder();cout<<endl;cout<<"中序遍历为:"<<endl;m_tree.InOrder();cout<<endl;cout<<"后序遍历为:"<<endl;m_tree.PostOrder();cout<<endl;return 0;}实验结果:实验体会:通过本次试验,理解了二叉树类的构建、二叉树的建立及其遍历。
软件课程设计实验报告
软件课程设计实验报告软件课程设计实验报告1在我们整个软件工程过程中,我体会到了许多,也学到了许多。
在项目要进行自由分组后,我们的项目小组便诞生了。
我们小组由3个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园文件管理系统。
我们也随即做了分工,。
我们的项目也正式开始了。
需求调研和分析对于软件开发过程至关重要。
我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。
我们在项目的开发中便遇到了这样的问题。
我们开始自己随意的计划整个系统的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。
我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。
如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。
所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。
对于一个项目,它的需求设计也非常重要。
在我们的文件管理系统开发的过程中,遇到了一些问题,出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。
还好,我们能及时地发现问题,通过相互沟通讨论,问题也得到了解决。
通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。
如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。
【免费下载】中国矿业大学java 实验报告
第 1 页 共 33 页
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
软件课程设计实验报告(3篇)
软件课程设计实验报告(3篇)【导语】软件课程设计试验报告怎么写出亮点?整理了3篇优秀的《软件课程设计试验报告》通用版范文,有规范的开头结尾写法和标准的书写格式。
是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。
【第1篇】软件课程设计试验报告一、目的、要求通过该课程设计要使同学树立起剧烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,同学在对所开发的系统进行软件方案、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使同学具备实际软件项目分析、设计、实现和测试的基本力量。
二、主要内容要求同学把握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。
每个同学选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华高校出版社出版),根据软件工程的生命周期,完成软件方案、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的`文档。
详细的方法可以选用传统的软件工程方法或者面对对象的方法,开发环境和工具不限。
三、进度方案略四、设计成果要求1.至少提交4个文档,包括软件方案、软件需求规格说明书、软件设计说明书、软件测试方案,要求文档格式规范、规律性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式(1)提交的文档规范,工作量大,文档规律性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》试验报告评分表)占60%(2)系统验收、讲解、答辩占25% (3)考勤占15%软件课程设计试验报告【第2篇】应用软件课程设计报告计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的进展战略讨论报告中也指出:计算机专业的人才应当被分为科学型、工程型、应用型三类,而绝大多数应当是工程型和应用型的。
软件课程设计总结报告
编号:()字号《软件课程设计》报告班级:信科07-3班姓名:郑志安学号:08073625讲师:葛欣中国矿业大学计算机科学与技术学院2008年11 月软件课程设计任务书专业年级:电子信息科学与技术2007级学生姓名:郑志安任务下达日期:2008年11月14日课程设计日期:2008年11月14日至2009年1月4日课程设计题目:类别题目序号面向过程1,2,3,4,5,7,面向对象1,2,3,4,5,6,图形界面 1数据结构1,2,3,4软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月日目录==============================第一部分基础题1面向过程第3题:使用如下所谓的简单变量“数据平移”方法来求出Fibonacci数列的第n项显示在屏幕上 (7)1.1 需求分析 (1)1.2 概要设计 (1)1.3 详细设计与编码 (1)1.4 调试分析 (2)1.5 用户使用说明 (3)1.6 设计心得 (3)第7题 (3)2.1需求分析 (3)2.2 概要设计 (3)2.3 详细设计与编码 (4)2.4 调试分析 (4)2.5 用户使用说明 (5)2.6 设计心得 (5)2面向对象第3题利用虚函数手段,按照3种不同的计算方法来求出Fibonacci数列的第n项(的具体项值)并输出。
(5)3.1需求分析 (5)3.2 概要设计 (5)3.3 详细设计与编码 (6)3.4 调试分析 (6)3.5 用户使用说明 (7)3.6 设计心得 (7)第8题编写程序实现一个简单的电话记录簿,要求记录的个人信息包括:姓名,单位,家庭电话,移动电话,并包含保存、输出、查询、修改等功能 (7)4.1需求分析 (7)4.3 详细设计与编码 (8)4.4 调试分析 (8)4.5 用户使用说明 (9)4.6 设计心得 (10)3可视化编程第1题实现计算器编程。
软件课程设计实验报告
软件课程设计实验报告课题:网络流量监控班级:电信0901班作者:王焕学号:U200914332指导老师:课设评价:课设成绩:课题背景随着构建网络基础技术和网络应用的迅速发展以及用户对网络性能要求的提高,使得网络管理成为迫切需要解决的问题,有效的网络管理能够保证网络的稳定运行和持续发展,更重要的是,随着网络规模的扩大和黑客技术的发展,入侵和攻击的案例日益增多,对稳定的网络服务、信息安全、互联网秩序都提出了严峻的挑战,网络安全管理在整个网络管理系统里扮演起更为重要的角色。
目前,在网络应用不断深入和技术频繁升级的同时,非法访问、恶意攻击等安全威胁也在不断推陈出新,愈演愈烈。
防火墙、VPN、IDS、防病毒、身份认证、数据加密、安全审计等安全防护和管理系统在网络中得到了广泛应用。
从网络安全专业管理人员的角度来说,最直接的需求就是根据分类在统一的界面中监视网络中各种运行性能状态,获取相关数据信息、日志信息和报警信息等,并进行分类汇总、分析和审计;同时完成攻击事件报警、响应等功能。
因此,用户的网络管理需要不断健全整体网络安全管理解决方案,从统一安全管理平台总体调控配置到多层面、分布式的安全系统,实现对各种网络安全资源的集中监控、策略管理、审计及多种安全功能模块之间的互动,从而有效简化网络安全管理工作,提升网络的安全水平和可用性、可控制性、可管理性。
项目描述互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。
在研究网络数据包捕获、TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。
该系统在VisualC++6.0环境下进行开发,综合采用了Winpcap、窗口编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。
《软件课程设计》实验报告
编号:()字号《软件课程设计》报告班级:姓名:学号:指导老师:职称:计算机科学与技术学院二〇〇八年月软件课程设计任务书专业年级:学生姓名:任务下达日期:课程设计日期:课程设计题目:面向过程题目七:一.需求分析设计任务:1.将输入的罗马数据化为10进制数。
假设罗马数据中只使用如下7个“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。
如,罗马数据LXXXVII表示10进制的87.2.将输入的10进制正整数转换为罗马数据。
假设罗马数据中只使用“基值”字母:M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。
主要界面为:输入1或2可以选择功能。
输出的形式如上所示:当输入大写或小写的阿拉伯字母时.程序能计算出十进制.程序所能达到的功能测试的数据:当输入mvii罗马数字时输出十进制1007当输入十进制数4535时相应输出MMMMDXXXV。
二.概要设计程序中主要在开头用了一个死循环来实现功能的不断循环。
通过exit函数退出程序.主程序的流程以及各程序模块之间的层次(调用)关系.三.详细设计实现概要设计中定义的数据类型和操作。
以增加程序的可读性,关键算法部分画出程序流程图.主函数的流程图如右图示:四.调试分析实验时遇到的问题有:获得字符的c=getchar()。
时出错。
由于自己第一次用到该语句时是在判断他不是’\n’,但是自己忘记使用他,便对他进行第二次的赋值。
从而使最后总是出错.最后通过仔细检查,发现问题,通过解决。
问题不再有。
五.用户使用说明A.选择1或2后按回车键便可选择相应的功能,1是罗马转化为十进制,2是十进制转化为罗马数字。
B。
如果选择A这时输入罗马字母后按回车,程序便输出相应的十进制数.C。
如果选择B这时输入十进制数后按回车,程序便输出相应的罗马数字。
D.输入0后,便可以安全退出程序.六.设计体会在这个实验中,自己学会了用while(1)来实现功能的不断实现。
软件课程设计报告
编号:()字号《软件课程设计》报告班级:姓名学号:指导老师:中国矿业大学计算机科学与技术学院年月软件课程设计任务书专业年级:计算机科学与技术计科10-2班学生姓名:王宏武任务下达日期:200 年月日课程设计日期:200 年月日至200年月日课程设计题目:面向过程软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月日目录一、面向过程设计题5-------判断日期与星期(sy5.cpp)1.1 需求分析 (9)1.2 概要设计 (10)1.3 详细设计与编码 (11)1.4 调试分析 (13)1.5 用户使用说明 (13)1.6 设计心得 (13)二、面向过程设计题8------8:加减乘除(sy8.cpp)2.1 需求分析 (13)2.2 概要设计 (14)2.3 详细设计与编码 (16)2.4 调试分析 (17)2.5 用户使用说明 (17)2.6 设计心得 (17)三、面向对象设计题3------用三种方法通过虚函数求Fibonacci数列(mianxiangduixiang3.cpp)3.1 需求分析 (17)3.2 概要设计 (19)3.3 详细设计与编码 (21)3.4 调试分析 (22)3.5 用户使用说明 (22)3.6 设计心得 (22)四、面向过程设计题7---------关于磁盘文档的输入输出(miangxiangduixiang7.cpp)4.1 需求分析 (22)4.2 概要设计 (23)4.3 详细设计与编码 (25)4.4 调试分析 (25)4.5 用户使用说明 (25)4.6 设计心得 (25)五、图形界面1---------计算器(计算器.rar)5.1 需求分析……………………………………………………………………… .265.2 概要设计 (26)5.3 详细设计与编码 (28)5.4调试分析 (28)5.5 用户使用说明 (29)5.6 设计心得 (29)六、数据结构2------删除结点p 的前趋结点(数据结构2.cpp)6.1 需求分析 (30)6.2 概要设计 (30)6.3 详细设计与编码 (34)6.4 调试分析 (35)6.5 用户使用说明 (35)6.6 设计心得 (35)七、数据结构4--------统计选票(数据结构3.cpp)7.需求分析 (36)7.概要设计 (37)7.详细设计与编码 (39)7.调试分析 (41)7.用户使用说明 (41)7.设计心得 (41)八、课程设计总结 (42)一面向过程程序设计面向过程程序设计题3—Fibonacci数列1.1 需求分析 (9)该程序是用“数据平移”的方法来求出Fibonacci数列的第n项(的具体项值)并显示在屏幕上(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是"距它最近"的前两项(old1与old2)的累加和。
中国矿业大学软件课程设计报告
编号:()字号《软件课程设计》报告班级:计科09-1姓名:禹勇学号: 08093343指导老师:张振环 ____中国矿业大学计算机科学与技术学院2010 年12 月软件课程设计任务书专业年级:计科09-1学生姓名:禹勇任务下达日期:2010 年10 月11 日课程设计日期:2010 年10月11 日至2010年12 月16 日课程设计题目:类别题目序号成绩面向过程2、7、面向对象2、5、图形界面1、数据结构1、2软件课程设计指导教师评阅书指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题等):成绩:指导教师签字:年月日目录一、面向过程设计题2-------编程序,从键盘输入正整数n,求出n与其反序数之和并输出(第一阶段第二题.cpp)1.1 需求分析 (9)1.2 概要设计 (10)1.3 详细设计与编码 (11)1.4 调试分析 (13)1.5 用户使用说明 (13)1.6 设计心得 (13)二、面向过程设计题7------将输入的罗马数据化为10进制数(第一阶段第七题.cpp)2.1 需求分析 (13)2.2 概要设计 (14)2.3 详细设计与编码 (16)2.4 调试分析 (17)2.5 用户使用说明 (17)2.6 设计心得 (17)三、面向对象设计题2------自定义一个简单的日期类DateType(第二阶段第二题.cpp)3.1 需求分析 (17)3.2 概要设计 (19)3.3 详细设计与编码 (21)3.4 调试分析 (22)3.5 用户使用说明 (22)3.6 设计心得 (22)四、面向过程设计题5---------设计一个类CStudent(第二阶段第五题.cpp)4.1 需求分析 (22)4.2 概要设计 (23)4.3 详细设计与编码 (25)4.4 调试分析 (25)4.5 用户使用说明 (25)4.6 设计心得 (25)五、图形界面1---------计算器(禹勇的计算器.exe)5.1 需求分析 (26)5.2 概要设计 (26)5.3 详细设计与编码 (27)5.4 调试分析 (27)5.5 用户使用说明 (28)5.6 设计心得 (29)六、数据结构1------用链表和数组两种方式分别实现栈的出栈、入栈、取栈顶元素、判空、查找等操作(第四阶段第一题.cpp)6.1 需求分析 (30)6.2 概要设计 (30)6.3 详细设计与编码 (34)6.4 调试分析 (35)6.5 用户使用说明 (35)6.6 设计心得 (35)七、数据结构2--------假设有一个循环链表的长度大于1,且表中既无头结点也无头指针(第四阶段第二题.cpp)7.需求分析 (36)7.概要设计 (37)7.详细设计与编码 (39)7.调试分析 (41)7.用户使用说明 (41)7.设计心得 (41)八、课程设计总结 (42)一、面向过程设计题21.1 需求分析:编程序,从键盘输入正整数n,求出n与其反序数之和并输出根据题目要求,规定如下:测试数据:【输入数据】:2038【输出数据】:10340【输入数据】:1234【输出数据】:55551.2 概要设计:(1)定义整形变量n为用户输入值;(2)输出反序数;(3)定义整形变量sum求和;(4)输出sum的值。
矿大课程设计实习报告
一、实习背景随着我国经济的快速发展,矿产资源的需求日益增加,矿产资源勘查与开发已成为国家战略。
为了提高我国矿产资源的勘查与开发水平,培养具有创新精神和实践能力的高素质人才,我校开设了矿大课程设计实习课程。
本次实习旨在通过野外实地考察、室内实验分析等环节,使学生深入了解矿产资源勘查与开发的基本原理和方法,提高学生的实际操作能力和综合素质。
二、实习目的1. 熟悉矿产资源勘查与开发的基本原理和方法;2. 培养学生的野外考察、实验分析、资料整理等实际操作能力;3. 增强学生的团队协作精神和沟通能力;4. 提高学生的专业素养和综合素质。
三、实习内容1. 野外实习(1)实习地点:某矿区(2)实习内容:① 地貌、气候、水文等自然条件的调查与分析;② 地层、岩性、构造等地质特征的观测与描述;③ 矿产资源分布、矿床类型、成矿规律等地质资料的收集与整理;④ 野外绘图、摄影等技能的实践。
2. 室内实验(1)实习内容:① 样品前处理:岩石样品的破碎、磨样、过筛等;② 化学分析:主量元素、微量元素等分析;③ 实验室数据处理与分析;④ 实验报告撰写。
3. 资料整理与总结(1)实习内容:①野外实习期间收集的地质资料整理;② 室内实验数据整理与分析;③ 实习成果总结与评价。
四、实习成果1. 完成野外实习任务,掌握野外考察、实验分析等基本技能;2. 完成室内实验任务,熟悉实验流程和数据处理方法;3. 完成实习报告,总结实习成果和收获。
五、实习体会1. 通过本次实习,我对矿产资源勘查与开发的基本原理和方法有了更深入的了解,为今后的学习和工作打下了坚实基础;2. 实习过程中,我学会了如何与他人协作,提高了沟通能力和团队协作精神;3. 实习过程中,我锻炼了自己的实际操作能力,为今后的工作积累了宝贵经验。
六、实习建议1. 加强实习前的理论教学,提高学生的理论基础;2. 增加实习时间,让学生有更多机会参与实际操作;3. 邀请相关领域的专家进行讲座,拓宽学生的视野;4. 加强实习过程中的指导,确保实习质量。
中国矿业大学软件课程设计实验报告
编号:()字号《软件课程设计》报告班级: 12级信息安全二班*名:***学号: ********指导老师:**中国矿业大学计算机科学与技术学院2013年 6 月软件课程设计任务书专业年级:信息安全二班学生姓名:李江涛任务下达日期:2013 年 4 月日课程设计日期:2013 年 4 月5日至200年7月 3 日课程设计题目:面向过程目录一第一阶段-----------面向过程 (4)1 --------------------人民币凑数问题 (4)1.1 需求分析 (4)1.2 概要设计 (5)1.3 详细设计与编码 (5)1.5 用户使用说明 (6)1.6 设计体会 (6)2-------------------- 日期星期转换 (7)2.1.需求分析: (7)2.2 概要设计 (7)2.4.调试分析 (10)2.5.用户使用说明 (10)2.6.测试分析 (10)2.7.设计体会: (10)二第二阶段------------面向对象 (11)1--------------------学生管理系统 (11)1.1----需求分析 (11)1.2.概要设计 (11)1.3.详细设计与编码 (11)1.4 运行结果: (17)1.5调试分析 (18)1.6用户使用说明 (18)1.7测试分析: (18)1.8 实验体会 (18)2 面向对象函数模板反向输出 (19)1--------------------函数模板反向输出 (19)1.1 需求分析: (19)1.2函数模板反向输出源代码: (19)1.4 运行结果: (21)三第三部分----------可视化 (21)1--------------------计算器: (21)用你熟悉的一种可视化编程语言实现如下图所示的计算器。
该计算器需要实现基础的数学运算,如加,减,乘,除。
(21)1.1重要程序 (21)1.3运行结果图: (22)四第四部分----------数据结构 (23)1--------------------求矩阵的转置 (23)1.1 需求分析: (23)1.2 概要设计: (24)1.3 详细设计与编码: (24)1.4 运行结果: (27)1.5 用户使用: (27)1.6 设计体会: (27)2--------------------数据结构统计选票 (27)2.1 需求分析: (28)2.2 概要设计: (28)2.3 详细设计与编码: (28)2.4 运行结果: (30)2.6 用户使用: (31)2.7 设计体会: (31)五第五部分课程总结----学与做 (31)一第一阶段-----------面向过程1 --------------------人民币凑数问题1.1 需求分析程序要求:输入正整数m,它代表一个人民币钱数(元数)。
软件课程设计实验报告个人报告
软件课程设计实验报告(个人报告)课题:音乐播放器设计班级:电信1103班成员:成俊文学号:U201113148指导老师:许毅平老师课设评价:课设成绩:一、需求分析1)引言 (3)2)预期功能 (3)3)设计目标 (4)二、界面方案设计说明1)拟选用的开发平台和工具介绍 (4)2)系统框图 (5)3)软件各功能模块划分 (6)4)模块间的相互关系 (8)5)开发计划 (8)三、详细设计说明1)主界面轮廓设计及初始化 (8)2)界面外框和关闭最小化等的实现 (10)3)菜单添加歌曲设计 (13)菜单界面设计:4)播放列表list的实现 (13)播放列表的界面设计5)播放的控制部分 (14)播放按钮、进度条等的控制面板设计:6)歌名、歌词、目录显示的部分 (16)歌词界面设计(含有全部显示和滚动两部分):四、测试过程说明1)测试用例说明 (18)2)测试情况说明 (20)3)测试经历与想法 (21)五、功能模块使用说明 (22)六、开发总结 (24)一、需求分析1)引言本课程《软件课程设计》,旨在运用所学课程中有关数据结构、操作系统、数据库系统知识来进行本课程设计,熟练掌握高级程序设计技术,加深对课程内容的理解、提高软件应用设计能力及编程和调试能力。
同时加强学生的自我学习能力和团队协作能力,让同学学会面对问题,并学会独立去解决问题,也能触发学生的创新能力。
此次,我们班抽的任务是任选一门自己熟悉或擅长喜欢的语言设计一个基于windows平台的音乐播放器软件,要能实现对音乐库的管理和基本播放功能。
随着信息时代的到来以及网络的日益发展,音乐播放器软件随处可见,人人都在使用自己喜欢的播放应用软件。
其中也不乏一些优秀的成品,如酷狗、天天动听、qq音乐播放器等。
对于各色各样的播放器,用户心中都有自己的评价,如今我们作为它们的使用者,以用户的角度重新来设计一个音乐播放器,不仅要实现播放等最基本功能,最重要的是要提供一个良好的用户体验,即给使用者简洁,明了,方便,功能丰富的感受。
矿大徐海软件开发基础实践报告--
我觉得有必要对这门课程设计中自己的所感进行一次总结,希望对初学者有一 定的帮助与启迪。
为什么用面向对象的思想来设计数据结构 用面向过程的程序设计方法,来进行数据结构的设计,学习时比较容易理 解与掌握。但它的数据一般是事先具体给定的,是为其功能函数服务的,函数 起着主导作用。 以函数为中心,对于函数的运用并不方便。以排序问题为例,用于排序的 函数不少,但对于一个实际问题,究竟应该选择哪一种排序函数,还必须根据 实际问题的数据结构来定。对于链表,你总不能选择冒泡函数来进行排序吧。 既然以函数为中心对于解决实际问题并不方便,那么,就只能选择以数据 为中心,将为数据服务的函数与它绑定在一起,使这些服务于数据的函数成为 数据的一部分。这就是面向对象程序设计中类的概念。 首先要感谢我的老师给我们提供了这次课程设计的机会,让我将平时所学 习的知识更加的系统化。老师给予的指导,提供的支持与帮助,是我能够完成 本次课程设计的最主要的原因。 我还要感谢给予我帮助的网络论坛上的朋友们,你们提供的宝贵意见,使 我的程序能够进一步的优化。 最后还要感谢在参考文献中列出的各位编者,你们所写的书在我课程设计 完成的道路上给过我无数的指导。 这份课程设计,是我对新领域的一次探索,我已经上路了。
for(i=0;i<3;i++) {
for(j=0;j<3;j++)
if(i==j) sum1+=a[i][j]; } printf("sum1=%d\n",sum1); printf("\n");
printf("程序八:计算 a 矩阵的副对角线元素之和\n"); /*计算 a 矩阵的副 对角线元素之和 sum2 并输出*/
系统软件开发实践实验报告(计科-4 徐竹)
中国矿业大学计算机学院2012 级本科生实验报告课程名称系统软件开发实践报告时间2015/5/1学生姓名徐竹学号08123325专业计算机科学与技术任课教师刘晋任课教师评语任课教师评语(①对实验课程基础理论的掌握;②对实验课程知识应用能力的评价;③对课程报告相关实验、作品、软件等成果的评价;④实验课学习态度和上课纪律;⑤实验课程成果和报告工作量;⑥总体评价和成绩;⑦存在问题等):成绩:任课教师签字:年月日实验一(第一周)词法分析器(flex实验)一、实验目的1、通过对flex基本知识的阅读,了解其工作原理和过程以及其匹配模式和规则,掌握简单的lex语法和规则;2、在上述基础上能够自主编写出简单且可以运行的词法分析器,实现简单的词法分析功能;3、通过实验,设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
二、实验说明本次编制调试的词法分析器基本可以实现如下简单功能:1、可以匹配识别关键字:else if switch for int float return void while(所有的关键字都是保留字,并且必须是小写);2、可以匹配识别专用符号: + - * / < <= > >= == != = ; , ( ) [ ] { } /* */3、标识符(ID)和数字(NU )通过下列正则表达式定义:ID = letter letter*NUM = digit digit*letter = a|..|z|A|..|Zdigit = 0|..|94、可以匹配识别空格(空格由空白、换行符和制表符组成,空格通常被忽略,,除了它必须分开ID、NUM 关键字);5、可以识别简单的注释(/* 注释内容*/);三、实验原理与分析词法分析的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。
软件设计过程实验报告
软件设计过程实验报告软件开发过程实验一软件需求分析一.目的和意义对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。
为下面的实习奠定基础。
二.实习内容1.确定软件题目(学生可自己拟定,也可在本书附录2中选择);2.分析软件需求以及人工模式下的工作流程;3.编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考);4.完成形式:以文档的形式完成软件的需求规格说明书。
纸张型号为A4。
三.实习指导1.在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。
2.提交文档的格式如下:第一页的格式为:软件名称:文档编号版本号文档名称:项目名称:项目负责人:编写时间审核时间批准时间开发单位第二页之后的内容为: l 编写目的:阐明编写该文档的目的,指出读者对象 l 项目背景:项目的委托单位.开发单位.该软件系统与其他系统的关系。
l 参考资料软件需求规格说明的书写原则①任务概述:软硬件环境.条件和限制(软件的使用条件和限制)。
②数据描述:输入数据.输出数据.数据库设计和建立数据词典。
③功能需求:功能划分和功能描述④性能需求:数据精度.时间特性.适应性(操作方式.与其他软件的接口.开发计划变化时,软件应具有的适应能力。
)。
⑤运行要求:用户界面.硬件接口(如:连接打印机).软件接口(如:是否为其他项目的子项目).故障处理。
⑥其他需求:可使用性.安全保密性.可维护性.可移植性等。
l 模板参考第一页:软件名称:教务管理软件文档编号 001 版本号Ver1.0 文档名称:需求规格说明书项目名称:课表编排系统项目负责人:屈艳编写:刘楠.叶艺.赵春.马燕时间:xx-2-14 审核:屈艳时间:xx-2-16 批准:王湘桃时间:xx-2-20 开发单位:冰雪五人组第二页之后的内容:编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。
便于开发小组成员对系统整体功能的认识。
计算机软件设计实验报告
中国矿业大学实验报告课程________________实验名称_______________第页共页系别_________________________________ 实验日期年月日专业班级________________组别_____________ 实验报告日期年月日姓名________________学号_____________ 报告退发 ( 订正、重做 )一.题目链表(多项式加法)及二叉树应用(二叉树的遍历、二叉排序树的生成)二.环境Windows XP操作系统,VC6.0三.逻辑框图二叉树的遍历先序遍历中序遍历后序遍历二叉排序树的生成四.程序源代码#include <malloc.h>#include <stdio.h>typedef struct node{ int coef,exp;struct node *next;}JD;void add_poly(JD *pa,JD *pb){ JD *p,*q,*u,*pre;int x;p=pa->next;q=pb->next;pre=pa;while((p!=NULL) && (q!=NULL)){ if(p->exp<q->exp){ pre=p; p=p->next;}else if(p->exp==q->exp){ x=p->coef+q->coef;if(x!=0){ p->coef=x; pre=p;}else { pre->next=p->next; free(p);} p=pre->next;u=q;q=q->next;free(u);}else{ u=q->next;q->next=p;pre->next=q;pre=q; q=u;}}if(q!=NULL)pre->next=q;free(pb);}JD* dlbjl(int a[],int n){JD *s,*h;int i;h=(JD*)malloc(sizeof(JD));h->coef=h->exp=-1;h->next=NULL;for(i=n;i>0;i--){s=(JD*)malloc(sizeof(JD));s->coef=a[2*i-2];s->exp=a[2*i-1];s->next=h->next;h->next=s;}return (h);}void dlbxs(JD *h){ JD *p;p=h->next;while(p!=NULL){ printf("%d,%d\t",p->coef,p->exp);p=p->next;}printf("\n");}void main(){ static int a[]={7,0,3,1,9,8,5,17}; static int b[]={8,1,22,7,-9,8};JD *heada,*headb;int na=4,nb=3;heada=dlbjl(a,na);dlbxs(heada);headb=dlbjl(b,nb);dlbxs(headb);add_poly(heada,headb);dlbxs(heada);}二叉树的遍历#include <malloc.h>#include <stdio.h>typedef struct node{ char data;struct node *lchild,*rchild;}JD;void preorder(JD *bt){ if(bt!=NULL){ printf("%c ",bt->data);preorder(bt->lchild);preorder(bt->rchild);}}void inorder(JD *bt){ if(bt!=NULL){ inorder(bt->lchild);printf("%c ",bt->data);inorder(bt->rchild);}}void postorder(JD *bt){ if(bt!=NULL){ postorder(bt->lchild);postorder(bt->rchild);printf("%c ",bt->data);}}JD *crt_bt_pre(JD *bt){ char ch;printf("ch=");scanf("%c",&ch);getchar();if(ch==' ') bt=NULL;else{ bt=(JD *)malloc(sizeof(JD));bt->data=ch;bt->lchild=crt_bt_pre(bt->lchild); bt->rchild=crt_bt_pre(bt->rchild); }return(bt);}void main(){ JD *head=NULL;head=crt_bt_pre(head);preorder(head);printf("\n");inorder(head);printf("\n");postorder(head);printf("\n");}二叉排序树的生成#include<iostream>using namespace std;struct tree{int data;tree *right,*left;};class Btree{tree *root;public:Btree(){root=NULL;}void create_btree(int);void display(){inorder(root);cout<<endl;}void inorder(tree *);};void Btree::create_btree(int t) {tree *newnode=new tree;newnode->data =t; newnode->left =NULL; newnode->right =NULL;if(root==NULL){root=newnode;}else{tree *back;tree *current;current=root;while(current!=NULL){back=current;if(current->data>t) current=current->left;else current=current->right ; }if(back->data>t)back->left =newnode;else back->right =newnode;}}void Btree::inorder (tree* tmp) {if(tmp!=NULL){inorder(tmp->left);cout<<tmp->data<<" ";inorder(tmp->right );}}int main(int argc, char* argv[]) {Btree A;int arr[]={6,4,2,15,12,18,9,11}; cout<<"建立排序二叉树顺序:"<<endl; for(int i=0;i<8;i++){cout<<arr[i]<<" ";A.create_btree(arr[i]);}cout<<endl<<"中序遍历序列:"<<endl;A.display ();return 0;}五.实验数据及结果分析链表(多项式加法)二叉树遍历二叉树排序六.总结线性链表是一种很有效的存储方式,它利用了指针类型变量,使相关操作得到简化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编号:()字号《软件课程设计》报告班级: 12级信息安全二班姓名:李江涛学号: 08123608指导老师:徐慧中国矿业大学计算机科学与技术学院2013年 6 月软件课程设计任务书专业年级:信息安全二班学生姓名:李江涛任务下达日期:2013 年 4 月日课程设计日期:2013 年 4 月5日至200年7月 3 日课程设计题目:面向过程目录一第一阶段-----------面向过程 (4)1 --------------------人民币凑数问题 (4)1.1 需求分析 (4)1.2 概要设计 (5)1.3 详细设计与编码 (5)1.5 用户使用说明 (6)1.6 设计体会 (6)2-------------------- 日期星期转换 (7)2.1.需求分析: (7)2.2 概要设计 (7)2.4.调试分析 (10)2.5.用户使用说明 (10)2.6.测试分析 (10)2.7.设计体会: (10)二第二阶段------------面向对象 (11)1--------------------学生管理系统 (11)1.1----需求分析 (11)1.2.概要设计 (11)1.3.详细设计与编码 (11)1.4 运行结果: (17)1.5调试分析 (18)1.6用户使用说明 (18)1.7测试分析: (18)1.8 实验体会 (18)2 面向对象函数模板反向输出 (19)1--------------------函数模板反向输出 (19)1.1 需求分析: (19)1.2函数模板反向输出源代码: (19)1.4 运行结果: (21)三第三部分----------可视化 (21)1--------------------计算器: (21)用你熟悉的一种可视化编程语言实现如下图所示的计算器。
该计算器需要实现基础的数学运算,如加,减,乘,除。
(21)1.1重要程序 (21)1.3运行结果图: (22)四第四部分----------数据结构 (23)1--------------------求矩阵的转置 (23)1.1 需求分析: (23)1.2 概要设计: (24)1.3 详细设计与编码: (24)1.4 运行结果: (27)1.5 用户使用: (27)1.6 设计体会: (27)2--------------------数据结构统计选票 (27)2.1 需求分析: (28)2.2 概要设计: (28)2.3 详细设计与编码: (28)2.4 运行结果: (30)2.6 用户使用: (31)2.7 设计体会: (31)五第五部分课程总结----学与做 (31)一第一阶段-----------面向过程1 --------------------人民币凑数问题1.1 需求分析程序要求:输入正整数m,它代表一个人民币钱数(元数)。
求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。
本题的主要的任务是编制一个函数,这个函数的主要的作用是用来把一个输入的人民币的钱数,使用最少张数的人民币纸币,凑成上述的钱数。
从提供的钱数来看,本题的输入值的范围是钱数m 大于等于1 元的钱数,理论上讲没有上限,但是要看数据类型,int 型,或long 型,它们有自己的取值范围。
int 型的最大值是127,long 型的最大值是2147483647。
输出的代表100,50,20,10,5,2,1的钱的张数。
它们的值都是整数。
输入形式:整数输出形式:输入钱数m=需要100元面值的纸币数是:需要 50元面值的纸币数是:需要 20元面值的纸币数是:需要 10元面值的纸币数是:需要 5元面值的纸币数是:需要 2元面值的纸币数是:需要 1元面值的纸币数是:程序功能:输入一个代表人民币钱数的正整数m,然后使用最少的人民币纸币凑成该钱数m。
测试数据及输出结果如下:1.2 概要设计由于是面向过程的设计,所以我就用最简单的算法实现:通过不断的取模、除法运算来实现,然后输出结果。
可能过程上比较繁琐,但我觉得对于这个程序还算可以。
1.3 详细设计与编码#include <iostream>#include <iomanip>#include <string>using namespace std;int main(){ int number,i;int a[8];string name[8]={"开始","100¥","50¥","20¥","10¥","5¥","2¥","1¥"};cout <<"请输入钱的数:";number=-1;for(;number<=0;){cin>>number;if(number<=0){cout<<"输入错误请重新输入:"<<endl;}}if(number>0){ a[1]=number/100;a[2]=(number%100)/50;a[3]=(number%100%50)/20;a[4]=(number%100%50%20)/10;a[5]=(number%100%50%20%10)/5;a[6]=(number%100%50%20%10%5)/2;a[7]=(number%100%50%20%10%5%2)/1;for(i=1;i<=7;i++){if(a[i]>0){cout<<name[i]<<" "<<a[i]<<" 张"<<endl;}}}main();return 0;}1.4 调试分析:在调试过程中,可以输入一个简单的三位的正整数,然后程序自动运行,最后输出结果凑起来的和就是m 钱的总数,从而解决了问题。
1.5 用户使用说明根据输出提示输入你要转换的钱数的值,经过程序的判断运算,就会得到问题的答案。
1.6 设计体会这一题的程序实现不难,结构比较明确,只要了解了运算符 / 和 % 问题就很容易解决。
但是这样的程序没有什么特别之处,我个人觉得如果能够用一个循环体编制,那么程序的代码就比较有价值,因为如果可以实现的话,效率会比较高!2-------------------- 日期星期转换2.1.需求分析:先判断输入一正整数年份,再输入一个1-7的数字表示1.1日的的日期是星期几,再输入一个合理日期。
利用函数计算输入日期是今年的第几天,然后对7求余,计算星期几编程序,使用户任意输入一个年份以及该年的1月1日是星期几,而后任意指定某一天(再输入该年的任意一个月份日期),由程序计算出这一天是星期几。
注意,2月份闰年为29天,非闰年为28天;可被4整除而不可被100整除的年份、或者可被400整除的年份均为闰年。
思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,让用户仅输入一个表示日期的年月日,则程序就应计算出那一天是星期几。
2.2 概要设计(1)在主函数中用switch语句计算天数,先定义2月是28天,然后判断用户输入的年份是平年还是闰年。
闰年则再加1。
(2)利用(sum%7+weekday-1) 判断用户输入的日期是星期几。
2.3.详细设计与编码#include <iostream>using namespace std;int runnian(int n);int jiange(int month, int day, bool b); //函数声明int weeks(int zhouji,int days);int main(){int year,month,day,week,user,days,jieguo,all;bool b;cout<<"请输入日期"<<endl;cin>>year>>month>>day;cout<<"请输入"<<year<<"1-1是周几"<<endl;cout<<"周"; //是输出周几cin>>week;b=runnian(year); //调用函数判断年份all=jiange(month,day,b); //调用函数求返回日期到1-1间隔多少天days=all%7; //调用函数求间隔天数除7后剩余天数jieguo=weeks(week,days); //调用函数判断是周几cout<<year<<"年"<<month<<"月"<<day<<"日"<<"是周:"<<jieguo<<endl; //最后输出所求结果main(); //为测试时程序不断循环return 0;}int runnian(int n) //判断是否为闰年{bool a; //定义bool变量a=false;if((n%4==0&&n%100!=0)||(n%400==0)) {a=true;}else a=false;return a; //设有返回值以为后需编程使用}int jiange(int month, int day, bool b) //判断间隔天数{int sum,m2;if(b==true) m2=29;else m2=28;switch(month){case 12:sum=day+31*6+30*4+m2;break;case 11:sum=day+31*6+30*3+m2;break;case 10:sum=day+31*5+30*3+m2;break;case 9:sum=day+31*5+30*2+m2;break;case 8:sum=day+31*4+30*2+m2;break;case 7:sum=day+31*3+30*2+m2;break;case 6:sum=day+31*3+30*1+m2;break;case 5:sum=day+31*2+30*1+m2;break;case 4:sum=day+31*2+m2;break;case 3:sum=day+31*1+m2;break;case 2:sum=day+31*1;break;case 1:sum=day;break;}return sum; //设有返回值以为后续编程使用}int weeks(int zhouji,int days) //求日期周几{int i;int a[7];days;a[1]=zhouji;for(i=1;i<=7,days>=1;i++,days--){if(days==0){cout<<a[i];}if(a[i]>7){a[i]=1;}a[i+1]=a[i]+1;if(days==1){break;}}return a[i]; //设有返回值以为后续编程使用}2.4.调试分析在调试时,最开始输出的日期有星期9的情况,才知道如果sum%7+weekday-1>7,则它的星期数应该再减去7才对2.5.用户使用说明用户打开程序后,窗口会自动的显示出提示信息:请输入year,用户输入一正确年份后按enter键,窗口会再自动的显示出提示信息:请输入某年1月1日, 用户输入1-7中数字代表星期,一样按enter键结束,之后窗口会显示:请输入month,day,用户输入正确日期并以空格隔开,最后按enter键运行程序显示结果。