课程实践报告10篇

时间:2022-11-13 15:05:07 浏览量:

课程实践报告10篇课程实践报告 “马克思主义基本原理概论”课程实践报告 学学 院:地质工程与测绘学院专专 业:测绘类班班 级:20182604下面是小编为大家整理的课程实践报告10篇,供大家参考。

课程实践报告10篇

篇一:课程实践报告

ldquo;马克思主义基本原理概论”课程实践报告

 学 学

 院:地质工程与测绘学院 专 专

 业:测绘类 班 班

 级:2018260407 成 成

 员:

 指导教师:

 日 日

 期:

 2019 年 年 11 月 月 16 日

 目

 录

  第一部分

 基本情况

 1. 实践时间

 2. 实践地点

 3 3 .实践名称

 4 4 .小组情况

 5. 讨论时间与地点

 第二部分

 实践内容

 第三部分

 心得体会

 第四部分

 教师评语

 第 3

 页 共 9 页

 第一部分

 基本情况 1. 实践时间

  2019 年 11 月 3 日 2. 实践地点 长安大学渭水校区大学生活动中心大礼堂 3. 实践名称 观影——《不朽的马克思》 4. 小组情况 姓名 学号 班级 职务 实践任务

  407 组长 讨论主持

  407 组员 拍照记录

  407 组员 内容摘要

  407 组员 整理心得

  407 组员 收集素材

  407 组员 总结

 5. 讨论时间和地点 时间:2019 年 11 月 16 日 地点:明远 1404 教室 第二部分

 实践内容

  本次实践的主要内容为观看小型纪录片《不朽的马克思》,本片分上下两集,共 100 分钟,于2019 年 11 月 3 日,在校大礼堂观看。该片讲述了马克思波澜壮阔的一生,主创团队在国外大量考察马克思、恩格斯的手稿档案、文献资料,并赴德国、法国、比利时、荷兰、应该、俄罗斯等地实地拍摄,力求真实地反映马克思成长、生活、研究理论和开展革命活动的人生历程和思想轨迹。节目播出后,受到理论界、思想界和广大观众的好评,反响强烈。

 一、 全面真实反映马克思波澜壮阔的一生,故事化彰显马克思伟大精神

 本片以马克思主义理论思想创立、形成、转变、成熟的构建过程为主要线索,沿着马克思的人生足迹,实地拍摄马克思工作、生活的实地,以及手稿文献等珍贵文物,真实反映马克思的人生轨迹,刻画马克思的性格、形象,讲述马克思的生活故事,体现马克思的伟大精神。上集以写作《共产党宣言》为核心内容。通过马克思的童年时代、青年时代、大学时期等成长历程,构建马克思思想轨迹。他中学立下“为人类幸福而工作”的崇高理想成为他一生矢志不渝的奋斗目标。马克思不仅

 第 4

 页 共 9 页 与终身的革命伴侣燕妮结出了爱情的果实,还结识了一生的革命战友恩格斯,从此马克思恩格斯开始为无产阶级的事业并肩战斗。下集讲述马克思创作《资本论》的过程,刻画马克思“目标始终如一”的革命领袖品质。31 岁的马克思流亡到伦敦,长期居无定所,靠典当和赊账以及恩格斯的资助度日,他的四个孩子先后夭折。但马克思没有向苦难的生活低头,他依然潜心研究政治经济学,研读了大量著作,为全世界无产阶级和被压迫民族谋求解放的理论武器,在崎岖的科学道路上不断攀登。

 马克思的女儿问父亲的特点是什么,马克思说“目标始终如一”。马克思一生的理论研究和革命实践活动展现了“目标始终如一”的革命家品质。1883 年 3 月 14 日,为人类解放奋斗一生的马克思逝世。该片认为,马克思主义的真理力量在于它的科学性,它揭示了人类历史发展规律和人类社会发展的一般规律﹔马克思主义的道义力量在于它的革命性,它指明了无产阶级推翻一切剥削制度、争取全人类解放的道路。

 二、大量一手珍贵文献使该片真实厚重,形象展现马克思主义永葆生机活力

 《共产党宣言》一本小册子 1.5 万字,却是全世界传播领域最广、发行量最大、拥有读者最多的作品之一。马克思主义尽管诞生于 19 世界的欧洲,却传遍了全世界。马克思主义进入中国后,走入了逐步中国化的过程,引发了中华文明的深刻变革。无论时代如何变迁,科学如何进步,马克思主义依然显示出科学思想的伟力,占据着真理和道义的制高点。该片是中国学者结合当下最新研究成果的体现,也是遵照习近平总书记“深刻道理要通过讲故事打动人、说服人”的精神,创作出来的电视文本,大量一手珍贵文献的呈现,使得该片更显真实厚重。片中拍摄了近 30 处马克思工作、生活过的实地,展现了 60 多件手稿文献,其中马克思签名的德文版《资本论》是通过电视首次披露,片头艺术化呈现的“Karl Marx(卡尔 马克思)”,也是源自这个亲笔签名。

 节目形象展现马克思主义永葆生机活力。中国共产党一经成立,就把马克思列宁主义写在自己的旗帜上。在中国革命、建设、改革的历程中,中国共产党始终坚持把马克思主义基本原理同中国具体实际相结合,创造性地运用和发展马克思主义,形成了马克思主义中国化的光辉理论成果:毛泽东思想、邓小平理论、“三个代表”重要思想、科学发展观、习近平新时代中国特色社会主义思想。党的十九大和十三届全国人民代表大会把习近平新时代中国特色社会主义思想确立为党和国家的指导思想,是马克思主义中国化的最新成果,是当代中国马克思主义、21 世纪马克思主义,开辟了马克思主义新境界。中国人民正在为全面建成小康社会,夺取新时代中国特色社会主义伟大胜利,实现中华民族伟大复兴的中国梦而不懈奋斗。与时代同步伐,与人民共命运,关注和回答时代提出的重大课题,是马克思主义永葆生机和活力的奥妙所在。

 三、生动、鲜活、好看,4K 超高清技术,制作精良,融媒体传播

 《不朽的马克思》是中央电视台的一次技术创新,也是我国电视领域首个前后期 4K 超高清技术全程拍摄、制作的纪录片,是一次技术和艺术的完美融合,主创攻克了很多技术难题,为将来电视节目的 4K 追做积累了很多经验。此外,片中运用了大量三维动画制作,将文献、文物、美术作品巧妙结合,创新视觉表达,设计新颖、打破了传统实拍纪录片风格,适合青少年观众的审美。全片 100 分钟时长,动画占三分之一,使该片追做更加精良、精致、现代、时尚,更符合全媒体传播特点。如通过高科技还原马克思的书房,引入入胜,呈现出一种精致的大气品格。片头马克思巨幅画像,是特别邀请画家为片子度身定制的,6-8 米高、5-5 米宽,镜头从马克思瞳孔处拉开,折射出200 年的时间跨度,从历史关照当下。技术的引入,无疑让更多有灵性的创意得意实现,现实和历史场景之间的无缝连接,镜头蒙太奇行云流水,让观众情绪也跟随任务情感流动起来。产生了强大艺术感染力,马克思复活在片子里。

 制作精良,风格大气,全方位,多层次,给观众以身临其境之感,这是一部生动、鲜活、好看、大众化的作品,没有用演员情景再现,而是努力还原真实的历史氛围,引领观众走进马克思时代。在融媒体传播过程中,制作的五个短视频先声夺人,《纪录片“不朽的马克思”片头诞生记》《风雨同舟荣与共,有一种友谊叫马恩》《屡经磨难,真理路上步履不停》《马克思与燕妮,让人动容的爱情》《不休的马克思》等,有的运用了 H5 技术,都产生 10 万+以上的巨大影响力和良好的传播效果。

 总导演闫东表示,在马克思诞辰 200 周年之际,《不朽的马克思》带观众走进伟人的人生,感悟马克思主义的真理力量,特别欢迎青年朋友关注这部纪录片,“看看面对重要人生节点时,马克

 第 5

 页 共 9 页 思是怎样思考和选择的,相信你会收获正能量的启示和鼓舞”

 文献纪录片《不朽的马克思》,逻辑严密,思想性强,画面品质高,艺术感染力强,很好地用电视化手段呈现了马克思波澜壮阔的一生,展现了马克思主义理论伟大成果,彰显了马克思主义在中国的伟大实践,特别是阐明了习近平新时代中国特色社会主义思想与马克思主义的关系,形象地揭示了马克思主义永葆生机活力的奥秘,是一部经得起历史和实践检验的扛鼎作品

 第三部分

 心得体会

 (一)个人心得体会

  任旭晨 :

 马克思的一生是一部富有传奇色彩的壮丽史诗,该片生动再现马克思和他的战友们为人类解放事业奋斗终生,矢志不渝躬身理论研究和革命实践的人生画卷,反映了马克思主义对人类社会进步特别是世界社会主义运动产生的深远影响。片中珍贵资料影像、实地探访、专家访谈和艺术动画相得益彰,珍藏的历史记忆与鲜活的当代实际交互共鸣,为观众开启一场走近伟人探寻真理、不忘初心逐梦前行的致敬之旅。纪录片生动再现了马克思和他的战友们为人类解放事业奋斗终生,矢志不渝躬身理论研究和革命实践的人生画卷,反映了马克思主义对人类社会进步特别是世界社会主义运动产生的深远影响。

 马克思和恩格斯在毕生的革命活动中始终关注和研究中国。在《马克思恩格斯论中国》一书中收录了他们写的关于中国问题的 17 篇论文,并预言中华民族必将重新崛起,成为“亚洲新纪元的曙光”。

 中国共产党一经成立,就把马克思列宁主义写在自己的旗帜上。在中国革命、建设、改革的历程中,中国共产党始终坚持把马克思主义基本原理同中国具体实际相结合,创造性地运用和发展马克思主义,形成了马克思主义中国化的光辉理论成果。习近平新时代中国特色社会主义思想是马克思主义中国化最新成果,是当代中国马克思主义、21 世纪马克思主义,开辟了马克思主义新境界。

 与时代同步伐,与人民共命运,关注和回答时代和实践提出的重大课题,是马克思主义永葆生机活力的奥妙所在。

  唐振宇 :

 马克思从十七岁时便立下了为人类幸福而劳动的崇高志向,在德国当时还是专制主义的时候,跟英国法国无法相提并论时,马克思已经在报社发表共产主义精神,辩论专制主义。

  我们坚持和发展中国特色社会主义,必须高度重视理论的作用,把科学思想理论转化为认识世界、改造世界的强大物质力量。重视理论,首先需要原原本本学习和研读马克思主义经典著作,掌握马克思主义基本原理。马克思主义基本原理包括马克思主义哲

 第 6

 页 共 9 页 学、政治经济学、科学社会主义的基本原理,所以统称为马克思主义基本原理。

  在历史唯物主义的主要观念中,劳动是历史的本源,生产力是历史的最终推动力,人民群众是历史的创造者。马克思把生产力看作人的能力,生产力之深度和广度实际上是人的能力的深度和广度。这里蕴含着马克思对劳动者的主体意识、创造意识的高扬与赞美。而剩余价值理论的中心思想揭示出,死的过去的资本对活的现在的人及其劳动的剥夺。工人剩余劳动时间的物化以及被剥夺,实际是工人的生命存在的价值与意义的物化或丧失,是人的非人化。

  毫不怯弱的实践第一的理论品格,毫不放弃的共产主义理想信念。毛主席也曾说过实践是第一检测力,为人民服务。而在今天的我们来说,毫不动摇的坚持中国共产党的信念,支持共产党的领导,走中国特色的共产主义。虽然我们不能成为马克思,但是马克思精神与我们同在。

  杨佳佳 :

 文献纪录片《不朽的马克思》,逻辑严密,思想性强,画面品质高,艺术感染力强。影片制作精良,风格大气,全方位,多层次,给观众以身临其境之感,这是一部生动、鲜活、好看、大众化的作品,没有用演员情景再现,而是努力还原真实的历史氛围,引领观众走进马克思时代。很好地用电视化手段呈现了马克思波澜壮阔的一生,展现了马克思主义理论伟大成果,彰显了马克思主义在中国的伟大实践,特别是阐明了习近平新时代中国特色社会主义思想与马克思主义的关系,形象地揭示了马克思主义永葆生机活力的奥秘,是一部经得起历史和实践检验的扛鼎作品

  秦知文:

 《不朽的马克思》该片讲述了马克思波澜壮阔的一生,据我从网上查询资料得知拍摄团队大量考察马克思、恩格斯的手稿档案、文献资料,并赴德国、法国、俄罗斯等地实地拍摄,真实地反映马克思成长、生活、研究理论和开展革命活动的人生历程和思想轨迹,展现了马克思主义理论伟大成果,彰显了马克思主义在中国的伟大实践,特别是阐明了习近平新时代中国特色社会主义思想与马克思主义的关系,形象地揭示了马克思主义永葆生机活力的奥秘。

 正因为是马克思主义在中国的传播,才出现了中国共产党。据了解,习近平在纪念中国共产党九十五周年的讲话中,满怀激情地感谢马克思和马克思主义:“95 年来,中国共产党之所以能够完成近代以来各种政治力量不可能完成的艰巨任务,就在于始终把马克思主义这一科学作为自己的行动指南并坚持在实践中不断丰富和发展马克思主义。”

 作为共产主义的接班人,我们要把学习马克思主义论作为增强理想信念的重要方式,提高运用马克思主义的立场、观点、方法分析与解决现实问题的能力,在活学活用中继承和发扬马克思主义。

 通过此次学习活动,我对马克思以及马克思主义有了更深刻的认识,同时激发了我学习和践行马克思主义的热情。进一步坚定了学习并积极...

篇二:课程实践报告

课程实践报告

 高举马克思主义理论大旗,走在青年的前列,做好时代的接班人。如下是给大家整理的青马课程实践报告,希望对大家有所作用。

 青马课程实践报告篇【一】

 作为一名大二的学生,我很荣幸接受我校“青年马克思主义工程”培训班的培训,如今此次培训也已结束,虽然这次培训的时间只有短短几次,但是让我从中受益匪浅,让我 明白,要成为一名真正的“青马人”我还有很长的一段路要走。

  首先,我要明确的就是为什么学校、学院要开办青马工程。我认为这不仅仅是党事业健康发展的需要,也是马克思主义自身发展的需要,更是中华民族伟大复兴的需要,同时也是优秀青年成长、成才的需要。

 其次,我要清楚自己应如何做一名合格的“青马人”。主要从四方面入手:尽心去学以真诚的心去对待学习,不浮夸,不自欺欺人;真心去信要真心相信和拥护马克思列宁主义,毛思想,邓-小-平理论和“三个代表”;用心去做无论是作为一名学生干部还是一名普通学生,都要带动周围的同学积极向上的面对学习和生活,同时作为一名学生干部更要做好自己份内的事;尽心去传尽心去传播马克思主义和正确的认识以及先进的思想,让身边的同学们向“青马人”靠拢或是成为“青马人”。

 我深知自己目前还不是一名合格的“青马人”,还有很多方面要去努力,所以要多跟周围的同学们多交流,多从他们身上学习来弥补自己自身的缺点。“独学而无友,则孤陋而寡闻”,少说话,多做事。

 作为一名学生社团干部,在平时的日常生活中要学会团结同学,要学会如何更好的和同学们沟通,做工作,要有一套自己的可行的方法。不能一意孤行,独断专行,要多多听取同学们的意见,要讲求民-主,同时也要学会权力下放和如何与自己的班委合作,做到和-谐的处理班级问题。从而为整个班级甚至整个学院做自己的一份贡献。从份发挥一名学生干部的热量,将自身的激-情传播和散发给身边的每一个人,让自己身边的人也成为“青马人”。

 记得高尔基曾这样说过:“青春是有限的,智慧是无限的,以短暂的青春去学习无穷的智慧。”再者,我们青年大学生担负着建设社会主义现代化的历史重任。所以,我们要树立远大的理想,坚持发奋学习,注重锻炼自己的品德,不断开拓我们的视野,发扬“延安精神”,做一名合格的青年马克思主义者。

 最后,我想说,要成为一名合格的“青马人”,自己的努力看成是充分条件的话,那么同时我还需要“天时、地利、人和”这样的必要条件去辅佐我。我们这些学员们至少要有过人之处,只是相信马克思主义是不够的,想成为一名合格

 的“青马人”的前提我们还必须是一名出色的大学生,这样才是学校、学院开办世纪英才学校的初衷。

 我坚信,自己可以成为一名合格的“青马人”,同时也确认自子,我们的未来也要依托人文的日益壮大!

 青马课程实践报告篇【二】

 时光荏苒,再次回首,我已成为大一的一名新生。昔日,阳光下可爱调皮的我也已经换上成熟的脸孔,天真烂漫的心也经日月风蚀变得心细理智。不敢回顾那小时代的种种,但以往的有些记忆片段还时不时涌上心头。想当初满怀着热爱祖国的小心脏加入了不曾深入了解的共青团,现在想来还是一个笑话,也还想问以往的我一个为什么,直到今天听了老师讲解,才算了解那么一点点皮毛,也才知道什么是共青团,知道我们作为共青团员该做些什么,不该做些什么。

  作为一位共青团员,一位暂时还是一个班的团支书,我很荣欣被选来青马工程培训,而且本次培训内容也让我深深了解到什么是共青团,怎样做才是一位合格的共青团员,并让我认识到以前从来不曾知道的一些关于共青团的知识,为此我深深的佩服讲座老师,更加信服中国共青团。

 中国共青团在我认识中,它不仅是中国共产党领导的先进青年群众,也是建设中国特色社会主义和共产主义的学校,更是中国共产党的助手和后备军,为党和国家的发展做好前期和后期工作,让建设中国特色社会主义社会更好更快的发

 展。中国共青团从建设以来,一致实施民族集中制的组织原则,一切都以民为主,建设成立中国共青团,履行自己的职能,为党做好后备军,为建设国家政权作重要支柱,并成立联系群众的纽带,为中国的一切发展做好充分准备,所以每位共青团团员在其中都发挥着不可泯灭忽视的作用,因此每位共青团员更应该履行自己的义务和责任,为党和国家的发展献出自己的一份力量,为此,根据共青团的要求,每一所学校都应有自己的机构设制。据老师讲解,我校也为发展团学精神,成立了校团委、团总支、团支部等重要机构设置,而且我校团委干部也为校团发展开展了一系列的工作。我校执行本着发扬优点,克服难点,找准支点,做实基点,突出重点,争创亮点的工作思路,配合第二课堂主渠道,充分发挥团学组织第二课堂主阵作用,并开展思想引领,校园文化,科技创新,社会实践,志愿服务,困难帮扶等工作,围绕青年学生成长成才的一个中心,夯实组织、制度两项建设,凝聚社团干部、共青团干部、学生会干部三支队伍,为我校建设发展校里团组织奠定基石,凝聚力量。校团组织的发扬也让作为共青团员的我更加懂得如何去做一位合格共青团员,不仅要有良好的世界观,思想观,道德观,更加要具有不可缺少的素质观。让我们在对待每件事情时都表现出冷静、沉着、积极、勇敢的思想策略,不为任何事情羁绊牵连,积极做好自己应该做的事,为自己,为校园,为国家的建设突显

 自己的能力,在实践中彰显自己的个性,为社会的良好发展再创辉煌。

 总而言之,老师的讲解,让我对共青团的认识更深,也让我对今后共青团的工作更加了解,更加让我有一颗涌动赤诚热爱共青团的心,为今后建设党和国家尽献自己一份微薄的力量。

篇三:课程实践报告

科技大学

  课程实践报告

  设计题目:

 计算机程序设计实践(VC++)

 设计时间:

 20 11-09-19

 至

 20 11- 09-30

  学

 院:

 电子信息学院

 专业班级:

  电子信息工程

  学生姓名:

  学号 1040302206

  指导老师:

  王芳

 2011 年 09 月

 1 一、 实践任务 2.试建立一个类 SP,求 f(n,k)=1^k+2^k+3^k+……+n^k,另有辅助函数power(m,n)用于求 m^n。

 (1)私有成员数据:

 * :int n,k: 用于存放公式中 n 和 k 的值;

 (2)公有成员函数:

 *SP(int n1,int k1)

 :构造函数,初始化成员数据 n 和;k;

 *int power(int m,int n):求 m^n;

 *int fun():求公式的累加和;

 *void show():输出求得的结果。

 (3)在主函数中定义对象 s,对该类进行测试。

 二、 系统测试

 三,实践小结

  做这一题我们首先要学会类的定义及使用,中心就是求幂值和累加和的函数,求积时要记得定义的变量初值为 1,求和时要记得定义的变量初值为 0。

 四,源程序清单 #include<iostream.h>

 class SP{

 int n,k; public:

 SP(int n1,int k1){

  n=n1;k=k1;

 }

 int power(int m,int n);

 int fun();

 void show(){

 cout<<fun()<<endl;

 } }; int SP::power(int m,int n){

 int i,f=1;

 for(i=1;i<=n;i++)

  f=f*m;

 return f; }

 2 int SP::fun(){

 int i,s=0;

 for(i=1;i<=n;i++)

  s=s+power(i,k);

 return s; } void main() {

  int n1,k1;

 cin>>n1>>k1;

 SP s(n1,k1);

 s.show(); }

 一, 实践任务 3,建立一个类 MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。具体要求如下:

 (1)

 私有数据成员 *float array[20]一维整型数组; *int n 数组中元素的个数。

 (2)

 公有成员函数 *MOVE(float b[],int m)构造函数,初始化成员数据; *void average()输出平均值,并将数组中的元素按要求重新放置; *void print()输出一维数组。

 (3)

 在主程序中用数据{1.3,6.2,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

 二,系统测试

 三,实践小结 这一题的难度主要在其算法,调换数据的办法有很多种,但怎样选择最简单的算法才是关键。这一题采用的是从两头的数据一起开始借助循环结构,用两边的数据值与平均值进行比较,根据大小进行位置的调换,方法简便易实现。

 四,源程序清单 #include <iostream.h> class MOVE{

 float array[20];

 int n; public:

 3

 MOVE(float b[],int m);

  void average();

  void print(); }; MOVE::MOVE(float b[],int m){

 int i;

 for(i=0;i<m;i++)

  array[i]=b[i];

 n=m; } void MOVE::average(){

 float s=0,t;

 int i,j;

 for(i=0;i<n;i++)

  s+=array[i];

 s/=n;

 cout<<s<<"\n";

 i=0,j=n-1;

 for(;i<j;i++,j--){

  if(array[i]<=s)i++;

  if(array[j]>=s)j--;

  t=array[i];

  array[i]=array[j];

  array[j]=t;

 } } void MOVE::print(){

 int i;

 for(i=0;i<n;i++)

  cout<<array[i]<<"

 ";

 cout<<"\n"; } void main(){

 float aa[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};

 int n=sizeof(aa)/4;

 MOVE obj(aa,n);

 obj.average();

 obj.print(); } 一, 实践任务

 4 4. 建立一个类 MOVE,,将数组中最大元素与最小元素的值进行互换。具体要求如下:

 (1) 私有数据成员 *int * array 一维整型数组; *int n 数组中元素的个数。

 (2)公有成员函数 *MOVE(float b[],int m)构造函数,初始化成员数据; *void average()输出平均值,并将数组中的元素按要求重新放置; *void print()输出一维数组。

 (3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

 二,系统测试

 三,实践小结

 这一题与第三题题目很类似,就字符数组与整形数组的差别,虽然只是数组类型不同,可是其中的差别很大,算法也与上一题的算法大相径庭,字符型数据值的比较跟整形数据值的比较不同,这一题我自己没做出来,复制了一下老师的答案,用来给自己作参考。

 四,源程序清单 #include <iostream.h> class MOVE{

 int *array;

 int n; public:

 MOVE(int b[],int m);

  void exchange();

  void print();

 ~MOVE(); }; MOVE::MOVE(int b[],int m){

 int i;

 array=new int[m];

 for(i=0;i<m;i++)

  array[i]=b[i];

 n=m; } void MOVE::exchange(){

 5

 int s,t,k;

 int m,l;

 s=t=array[0];

 m=l=0;

 int i;

 for(i=0;i<n;i++){

  if(array[i]>s){

 s=array[i];

 m=i;

  }

  if(array[i]<t){

 t=array[i];

 l=i;

  }

 }

 k=array[m];

 array[m]=array[l];

 array[l]=k; } void MOVE::print(){

 int i;

 for(i=0;i<n;i++)

  cout<<array[i]<<"

 ";

 cout<<"\n"; } MOVE::~MOVE(){

 delete[]array; } void main(){

 int aa[]={21,65,43,87,12,84,44,97,32,55};

 int n=sizeof(aa)/4;

 MOVE obj(aa,n);

 cout<<"原数组为:\n";

  obj.print();

  obj.exchange();

 cout<<"交换后输出:\n";

  obj.print(); } 一, 实践任务 10.定义一个字符串类 CSstring,并设计一个算法实现,给定关键字 str1 在字符串 str中出现时用 str2 进行替换的 功能。

 (1)私有数据成员:

 *char *str 原始字符串; *char *str1 目标关键字;

 6 *char *str2:替换关键字 *int flag:标记替换是否完成。

 (2)共有成员函数 *CString(char *s,char s1[],char *s2)用给定的参数 s,s1 和 s2 相对应的初始化数据成员str,str1 和 str2,flag 设置缺省 0; *void Replace():判断字符串中是否出现,若出现就用替换,否则什么都不做。若替换成功则标记为 1,若替换不成功则标记为 0; *void show():若替换成功,则在屏幕上显示目标关键字,替换关键字和替换后的原始字符串,若不成功,则显示原始字符串; 释放动态分配的空间; (4)

 在主程序中定义作为目标关键字,定义作为替换关键字。定义一个类对象,用和初始化,完成对该类的测试。

 二,系统测试

 三,实践小结

  实现目标字符串的替换看起来有些难度,但是把它与 for 循环结合起来就容易多了,把原始字符串起始字符找出来,并定为一个 for 循环的第一次循环的对象,把原始字符串的长度作为循环次数,并用目标字符串中的字符进行替换。最后把替换函数与其他函数结合,最终完成整个函数的设计。

 四,源程序清单

 一, 实践任务 18.试建立一个类 VAR,用于求 n(n<100)个数的均方差,均方差的计算公式为d=(xi-x~)/n(i=0~n-1),其中 平均值为 x~=xi/n (i=0~n-1)。

 (1)私有成员数据:

 *double a[100]: 用于存放输入的 n 个数; *int

 n:实际输入数的个数 n。

 (2)公有成员函数:

 *VAR(double x[],int n1)

 :构造函数,初始化成员数据 a 和个数 n;

 *double average(double x[],int n):求平均值,数组 x 具有 n 个元素;

 *void variance(double x[],int n):求均方差,数组 x 具有 n 个元素;

 *void show():输出求得的均方差。

 (3)在主函数中定义对象 test,对该类进行测试。

 二,系统测试

 三,实践小结

 7 这个函数的设计很简单,只要调用两个函数(1)求平均值的函数;(2)稍微复杂一点的求累加和的函数;即可,而且这两类函数在我们刚开始学习 VC++编写程序的时候就反复练习编写过,对我们可以说是一点都不困难,也没什么好总结的。

 四,源程序清单 #include<iostream.h> class VAR { private:

 double a[100];

 int n; public:

 VAR(double x[],int n1)

 {

 n=n1;for(int i=0;i<n;i++)

 a[i] =x[i]; }

  double average(double x[],int n)

 {

 double sum=0;int ave;

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

  sum=sum+x[i];

  return ave=sum/n;

 }

 double variance(double x[],int n)

 {

 double d=0;

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

  d=d+(x[i]-average(x,n))*(x[i]-average(x,n)); return d=d/n; }

 void show()

 {double d;d=variance(a,n);cout<<d<<endl;} }; void main() {

 double x[]={1.1,2.2,3.3,4.4};

 8

 VAR test(x,4);

 test.variance( x,4);

 test.show() ; } 一, 实践任务 19.定义一个方阵类 SP,实现对方阵进行顺时针 90 度旋转。如图所示。

  1

 2

 3

  4

  13

  9

  5

  1 5

 6

 7

  8

 旋转后可得

  14

  10

  6

  2 9

 10

  11

 12

 15

  11

  7

  3 13

  14

  15

 16

  16

  12

  8

  4 具体要求如下:

 (1)私有成员数据:

 * :int

 a [4][4]: 用于存放方阵;

 (2)公有成员函数:

  *Array(int a[][4],int n):构造函数,用给定的参数 a1 初始化数据成员 a;

  *void xuanzhuan(): 实现对方阵进行顺时针 90 度旋转;

  *void show():在屏幕上显示数组元素。

  (3)在主程序中定义数组 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。定义一个 Array 类对象 test,用 b 初始化 test,完成对该类进行测试。

 二, 系统测试

 三, 实践小结

  矩阵的旋转需要极高的技巧性,我们要紧紧抓住各元素行,列下标的变化的规律性,并通过双层循环的辅助来实现整个矩阵的旋转。开始时,感觉规律并不难找,调试的时候也没有错误和警告,只是在运行的时候老友几个元素“不听话”,不按我既定的变化进行移位,直到我又重新定义一个二维整形数组,并将变换后的数组值赋给新数组,程序才正确执行,具体原因我仍在寻找中。

 四, 源程序清单 #include<iostream.h> class Array

 9 { private:

 int a[4][4]; public:

 Array(int a1[][4],int n)

 {

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

 for(int j=0;j<4;j++)

 a[i][j]=a1[i][j];

 }

 void xuanzhuan() {

 int b[4][4];

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

  for(int j=0;j<4;j++)

 b[i][j]=a[i][j];

  for(i=0;i<4;i++)

  for(int j=0;j<4;j++)

 a[i][j]=b[3-j][i];

 } void show()

 {

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

  {

 for(int j=0;j<4;j++)

 cout<<a[i][j]<<"\t";;

  cout<<"\n";}

 } }; void main() {

 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

 Array test(b,4);

 cout<<"原数组为:"<<"\n";

 test.show();

 test.xuanzhuan();

  cout<<"旋转后数组为:"<<"\n";

  test.show();

 cout<<endl; }

 10 一, 实践任务 20.定义一个方阵类 SP,实现对方阵进行逆时针 90 度旋转。如图所示。

  1

 2

 3

  4

  4

  8

  12

  16 5

 6

 7

  8

  3

  7

  11

  15 9

 10

  11

 12

 2

  6

 10

 14 13

  14

  15

 16

  1

  5

  9

  13 具体要求如下:

 (1)私有成员数据:

 * :int

 a [4][4]: 用于存放方阵;

 (2)公有成员函数:

 *Array(int a[][4],int n):构造函数,用给定的参数 a1 初始化数据成员 a;

 *void xuanzhuan(): 实现对方阵进行顺时针 90 度旋转;

 *void show():在屏幕上显示数组元素。

 (3)在主程序中定义数组 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。定义一个 Array 类对象 test,用 b 初始化 test,完成对该类进行测试。

 二, 系统测试

 三, 实践小结 第二十题与第十九题题目简直是雷同,只是一个是顺时针旋转,一个是逆时针旋转,做法与上一题也雷同。

 四, 源程序清单 #include<iostream.h> c lass Array { private:

 int a[4][4]; public:

 Array(int a1[][4],int n)

 {

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

 for(int j=0;j<4;j++)

 11

 a[i][j]=a1[i][j];

 }

 void xuanzhuan()

 {

  int t; int b[4][4];

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

  for(int j=0;j<4;j++)

 b[i][j]=a[i][j];

  for ( i=0;i<4;i++)

  for( int j=0;j<4;j++)

  a[i][j]=b[j][3-i];

 }

 void show()

 {

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

  {

 for(int j=0;j<4;j++)

 cout<<a[i][j]<<"\t";;

  cout<<"\n";

  }

 } }; void main() {

 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

 Array test(b,4);

 cout<<"原数组为:"<<"\n";

 test.show();

  test.xuanzhuan();

  cout<<"旋转后数组为:"<<"\n";

  test.show();

 cout<<endl; } 一, 实践任务 24.,建立一个类 NUM,并统计特定序列中相同的数字的个数。具体要求如下:

 (1)私有数据成员 *int data[25]:随机生成 25 个 0~9 之间的数字; *int num[10]:储存每个数字出现的个数。

 (2)共有数据成员 NUM(int data):构造函数,初始化数组 data; Void process():统计数组 data 中每个数字出现的次数,并保存到数组 num 中;

 12 Void print()输出每个数字出现的个数,每行输出 5 个。

 (5)

 在主程序中定义一个对象,对该类进行测试。

 二, 系统测试

 三, 实践小结

  这一题是老师给的答案,虽然像#include <stdlib.h>这样的东西我们没学,有些超纲,但其中的很多算法很值得借鉴,故将此题也收录在此。

 四, 源程序清单 #include <iostream.h> #include <iomanip.h> #include <math.h> #include <stdlib.h>

 #include <time.h>

 class NUM {

 int...

篇四:课程实践报告

教育实践课程调查报告

  浙江大学 09 新生对《通识教育实践》 课程

  的看法调查

  调查方案

  一、 调查背景

  在秋冬学期结束之时, 浙大给 09 级新生推出了一门新的课程《通识教育实践》 , 作为一门全部大学一年级学生都需要学习的必修课程。

 二、 调查目的

  从这门课程开课到如今已经有将近一个短学期, 同学们也已经对这门课程有了一定的了解和认知。

 但作为一门新开设的课程, 我们十分希望了解同学们对于这门课程开设之后的感想以及对于这门课程的意见和建议, 以便校方能够及时了解同学们的情况, 对这门新开始的课程做出一定改进, 使其更加合理更加人性化, 更加合理, 更加符合实际情况, 不至于成为同学们的负担。

 三、 调查对象

  09 级大学一年级新生

  四、 调查项目

  课程之中一些设置安排, 以及一些基本要求的合理性与可操作性。

 五、 调查地点

  浙大紫金港校区

  六、 调查性质

  探索性调查

  七、 调查方法

  因为要听取广大同学们的意见, 但是一年级新生人数太多, 所以我们决定采用问卷抽样调查。

 由于我们针对的只是一年级新生, 所以我们的发放问卷的主要场所在一年级新生较为集中的场所, 比如寝室, 上课的教室。

 八、 调查表

 浙江大学对 09 本科新生对通识教育实践看法的调查

  首先, 感谢您百忙之中抽空帮助我们完成本次调查

  一、

 您对通识教育实践这门课感兴趣吗?

 A. 感兴趣 B. 不感兴趣

  二、

 你觉得这门课学分应定为多少? 一分合理吗?

 A.

 合理。

 这门功课不像别的课程需要学习很多知识

  B.

 不合理。

 这门功课很费时, 应该增加学分。

 三、

 在做公益服务时, 你的初始目的是否仅仅为了 完成课程任务?

 A. 只为了 完成任务 B. 不只是为了完成任务, 自己也愿意献身公益 (如果是, 请回答下个问题)

 您觉得愧疚吗?

 A. 不 B. 是

  四、

 读经典塑人格, 在读过推荐书目之后您是否有收获?

 A. 有收获 B. 无收获

  五、

 你发现周边的同学有抄袭读书报告的习惯吗?

 A. 有很多, 很普遍 B. 不多, 只是个别现象 C. 没有遇见过

  六、

 你觉得通识教育实践的讲座有意思吗?

 A. 收获很大 B. 只是为了 完成课程

  七、

 您平时有阅读经典的习惯吗?

 A. 经常看 B. 偶尔看 C. 基本不看

  八、

 学习通识教育实践这门课程后, 您阅读经典的频率是?

 A. 经常看 B. 偶尔看 C. 基本不看

  九、

 顺利完成通识教育实践这门课程后, 您还会继续品读经典吗?

 A. 基本不会再看 B. 偶尔想起会看 C. 经常性地阅读

 十、 通识教育实践这门课程中“社会调查或人物访谈” 板块带给您怎样的收获? (可多选)

 A. 没有收获, 只是例行公事, 完成任务

  B. 带给我社会活动中的乐趣

  C. 让我在调查或访谈中提高了 调研能力

  D. 提高了 我的口语表达、 社交能力

  十一、 您如何看待平时的上课? (AB 中选一, CD 中选一)

 A. 上课很有意思 B. 不感兴趣 C. 有所收获 D. 收获不大 十二、 您对通识教育实践这门课有什么意见或建议?

 九、 调查结果

  以下是一些评论和建议

  1.

 让学生自由发挥空间扩大

 2.

 不要强制, 兴趣要引导, 但不是靠拿学分和刷卡机制来引导· · · 方法大有问题

  3.

 讲座不要有硬性要求, 推荐书目不具有代表性

  4.

 要么增加学分, 要么取缔吧!

 5.

 多组织些活动; 范围可以小一些, 分成部分完成

  6.

 通识课不应该有过多的硬性规定, 因为只为完成任务而去做事, 收获肯定不大的

  7.

 时间能拉长最好了, 事情太多, 很少时间分给它

  8.

 无聊的东西就不要搞得太正式

  9.

 形式可以更多些, 比如看电影代看书

  10.

 不必太纠结于上课这个形式, 可以换多种新颖方式

  11.

 完善制度但更建议取消

  12.

 读书是一种兴趣和习惯, 但在课程中把它变为一项任务, 反而失去了读书原有的意味与价值

  13.

 14.

 15.

 16.

 18.

 19.

 20.

 21.

 别开这蛋课了, 太二了

 想提高学生人文素养并非通识教育实践所能完成 这课就像大跃进一样——理想化, 不知哪位领导头脑发热想出来的~ 阅读从来就不为写个读书报告, 而只是一种精神的享受, 尊敬的领导, 你懂不?

 明年不要再蹂躏下一届孩子了

 取消这门残害人民的课程 读书报告太多, 徒增课业负担, 没意义!

 是否应该注意报告抄袭现象, 班上集中到会率不高 17.

 流于形式, 强迫政策, 应变活动多样, 吸引同学参加并开展学生讲座, 互相交流

 22.

 无聊, 纯属浪费时间。

 看名著, 做社会实践是学生自己的事, 就算对学生的发展有利也不能用这种强制的手段。

 幸福是勉强不来的, 强扭的瓜不甜。

 把发展课余爱好作为必修内容上纲上线, 收效不会很大, 甚至会加强学生逆反心理。

 读书报告本来就是有感而发, 能写多少算多少。

 硬性规定字数有什么意义呢? 纯属浪费大家宝贵的学习时间

  23.

 任务太重

  24.

 增加趣味性 减少硬性任务

  25.

 可以提高同学们的社交能力与素质。

 让大家在很多方面得到锻炼。

 如果可以让大家在课

  时上可以出去实践就更好了。

 26.

 课程很好, 能很好的提高学生素质

  27.

 不要规定书目

  28.

 内容太多

  29.

 不要把一些不切实际的要求, 课程要注意实质性, 形式化的东西要少一点

  30.

 效果不好

  31.

 希望整个大学都能坚持下来

  32.

 此课应起鼓励只作用, 而不应是强制性

  33.

 任务太重, 具有形式 但是出发点是好的

  34.

 每天一本名著, 报告天天写

  35.

 这门课开的意义不大, 平时喜欢阅读书籍, 听讲座的人不管有没有这门课都会继续,

 不喜欢的人被强迫去做这些事也不会得到收获

  36.

 读书报告没必要手写, 字数太多

  37.

 在实践内容方面多加一些, 减去形式化的东西

  38.

 费时不讨好

  39.

 多数人认为太过形式化。

 任务太多

 40.

 从根源上做起, 提高学生修养。

 课不错, 但实行得不好, 不能达到预期的效果。

 41.

 42.

 43.

 44.

 不要形式, 少些浮躁。

 、

 要求的字太多 有新意, 但吸引力不大 活着, 还不如死了 算了

  45.

 应当增加 PPT 展示, 因为社会调查会有抄袭现象发生

  46.

 要求不要那么多

  47.

 要求太多了, 不要定数目

  48.

 东西减少一点, 对读书报告的硬性要求不如做阅读引导, 让我们了解经典, 自己按兴趣

  选读。

 49.

 增加学分

  50.

 完全是应付领导的垃圾课!

 51.

 任务太重了, 应该减轻负担。

 52.

 讲座都太水了 , 可以减少次数, 提高讲座质量。

 53.

 不适合作为务实性专业的学生的必修课

  54.

 纯属浪费时间

  55.

 减少学分或者减少要求任务

  56.

 2 个星期一篇作文频率太高了, 名著有那么快读完吗?

 57.

 分组人数应多一些, 同时对要求要有适当保证

  58.

 意义不大, 浪费时间!

 59.

 很好, 继续保持!

 60.

 继续保持!

 61.

 没有这门课其实更好!

 62.

 学分太少作业太多还要实践, 占用时间太多。

 63.

 费时费心还无聊。

 64.

 这门课程纯粹是浪费时间, 无理取闹, 形式主义, 哪个脑残的领导想出来的, 这门课还

  助长了大学生造假之风, 这门课有百害而无一利, 给我马上取消掉!

 65.

 此课不死, 令人发指。

 66.

 把时间交给学生自己体验。

 67.

 只局限于表面的成果考核, 而其考核过于形式化, 应当设置更加合理的考核方式,且学

  分应该增加。

 68.

 一个班级里面学生太多。

 69.

 读书报告篇数太多, 一个学期三本书看不完。

 70.

 建议暑假完成, 读书报告最好定为两篇, 字数在 2000 左右, 三千字太牵强。

 71.

 加强实践性。

 72.

 刷卡听讲座实在是有辱讲座, 除此之外都好。

 73.

 最好不要上这种课了。

 74.

 不要流于表面形式, 但是真正认认真真全部实践又浪费时间。

 觉得写读书报告不如做

  ppt 介绍, 内容可以精简下。

 75.

 通识教育实践很不错, 很完美。

 76.

 课程所需要完成的量太大, 不切实际, 如果考虑到理工科学生平时繁忙的学习任务,

 其实是不可能有理工科学生完完全全高质量的学习完成本课程的内容的。

 77.

 不应规定任务的种类和数量。

 78.

 这门课无论在生理上还是心理上都深深地伤害了我们幼小的心灵。

 读书报告不应硬性规定 3000 字。

 79.

 一学期三本书量太大。

 80.

 浪费时间, 停开可能会更好。

 81.

 建议将内容减少为仅为阅读经典这一项

  82.

 这门课有些形式化俗称比较水, 希望能够更加正式。

 83.

 太形式化, 没有多大用处, 还不如把精力投入真正有意义的事情上。

 另外有 25 人左右表示这门课程太过于形式化(俗称“水” )

 , 35 人左右表示应该取消这门课程, 5 人表示这门课程很有价值。

 十、 调查总结

  通识教育实践课程简介:

 学分 1. 0 分, 学时为春夏两个学期。

 强调实践性, 有以下四个模块组成:

 拓宽视野模块、 提升能力模块、 认识社会模块以及培养服务精神模块。

 课程定义为自学型课程, 主要在于学生自主学习, 撰写报告学习表达和了 解社会。

 课程着眼于帮助大学一年级新生了 解大学, 解读人类文明, 人是现实社会, 提升服务精神, 为下一步的专业学习筑起更宽厚的通识基础。

 通过参加各类报告会, 学术讲座, 以及经典名著的阅读拓宽视野; 借助对经典名著的解读提升文字和语言表达能力; 通过各行各业典型人物的访谈或者社会调查加深对社会的认识; 通过参加志愿者服务或者各类公益服务活动培养服务精神。

 调查分析

  从上述的调查结果可以看出通识教育实践这门课程在大部分学生心目中有这么一些特点:

 1.

 2.

 无趣。

 内容多, 学分少, 两者不匹配。

 3.

 硬性规定缺少自由性。

 4.

 条件, 任务过于苛刻。

 5.

 形式比较表面化, 不深刻。

 他们(理工科学生居多)

 觉得这门课的学分很过少, 而且任务很重, 尤其是对于里面硬性规定的那 3 篇 3000 字的读书报告和 3 次刷卡讲座尤其反感,

 当然还是有一部分学生, 认为这门课程是值得上的。

 他们觉得这门课程能够提高他们的语言文字表达能力和社交能力, 他们觉得这门课只要经过适当的改进就可以成为一门真正受同学们喜欢的好课。

 而这些建议所针对的内容与讨厌这门课程的同学所讨厌的内容基本相同。

 由此我们可以看出一件事情, 无论同学们是抱着什么样的心态, 反感抑或是认同, 无论什么样的态度, 偏激或者是客观, 这门课的的确确存在着很大的不足, 比如 3 篇3000 字的读书报告, 比如 3 次刷卡的讲座。

 我们可以回过头看这门课所开设的初衷, 以及这门课的内容, 并且与我们得到的调查反馈进行比较, 得出一些结论。

 课程中希望通过参加各种报告会和阅读各种名著来拓宽我们的视野, 和通过阅读经典名著来提升文字和语言表达能力。

 但是实际情况可以看下 4、 5、 6、 、 7、 8、 9 的调查结果以及意见和建议。

 其中有近 2/3 的人认为阅读经典名著有一定的收获, 但是对于 3 篇 3000 字的读书报告, 同学们的态度真的有了 180 度的转变, 超过 5/6 的同学看到过身边有抄袭现象。

 当然这个只是一种委婉的说法, 根据调查的原理我们可以得知, 对于读书报告的抄袭现象是十分严重的, 因为有些同学看到个别现象, 有些同学看到很多人抄袭, 但是如此多的同学看到抄袭现象的发生, 我们可以设想一下, 这个抄袭现象是否真的只是个别现象, 还是广泛存在而每个人只是看到了个别。

 而如果要追究其原因我们可以从那些意见和建议中得出一些结论。

 其一、 理工科学生平时的学习任务很重, 而这门课程又是属于比较耗时间的类型, 无论是读书还是写读书报告都不是可以在短时间内可以完成的, 阅读名著本身不是一件错事, 但是名著的阅读需要认真的深入阅读, 止于表面的泛读是无法挖掘出名著内部的精髓的。

 而课程要求居然是一个学期 3 本名著。

 其二、 而且里面很多名著都是艰涩难懂的, 不论是翻译的语法表达还是所表述的思想, 相对于我们现在的智力不是可以一下子接受的。

 所以就有同学建议说读书的目录规定的过于死板, 没有灵活性和可调节性。

 虽然说课程推荐的都是好书, 但是不一定适合我们每一个人, 毕竟兴趣有区别, 观念有不同。

 随着时代的变迁, 有些书目已经不适合当代青年来阅读。

 其三、 3000 字的读书报告可以说是最大的诟病。

 可以参考第 12 和 14条意见。

 所以同学们对于书目阅读不深入没有自己的感想, 时间较少, 而且字数太多, 导致了同学们的抄袭现象。

 如此的结果我们怎么相信通过对经典名著的阅读课以提高文字和语言的表达能力, 我觉得如果提高最多的可能就是查找资料的能力。

 而且作为一门引导性课程, 同学们对于阅读的兴趣似乎并没有能够得到很好的引导, 详细情况可看第 8、 9 题的调查结果。

 正因为过多的任务和强制性的规定将原本作为一种兴趣的阅读当成了一种不得不完成的作业, 使得阅读的趣味性大大下降。

 而对于刷卡听讲座, 大多数同学认为无收获, 有同学将其原因归结为刷卡, 觉得这个规定有些侮辱讲座(第 72 条建议)

 , 也有同学认为听讲座这回事情是一种兴趣, 如果用刷卡强制性来引导学生反而会引起反感, 从而抱着完成任务的心态。

 我相信很多同学只是进去为了 一次刷卡记录, 而不是真正为了台上老师所讲述的内容而去听讲座, 这就出现了很多专业、 兴趣不对口的听讲座者。

 而且这门课程的学生基数很大, 所以讲座的次数...

篇五:课程实践报告

工商大学 课 程 设 计 实 践 报 告

 学院:计算机与信息工程学院

 课程名称:

 算法与数据结构

 任课教师:

 叶

  红

  班级:

  工科 092

  学号:

  姓名:

 同组学生:无

 实践地点:北京工商大学良乡校区工二楼 406

 实践时间:2011 年 1 月 3 日至 2011 年 1 月 7 日

 1、课程设计题目内容: 对一批汽车牌照进行排序和查找 排序和查找是在数据信息处理中使用频度极高的操作。为加快查找的速度需先对数据记录按关键字排序,在汽车数据的信息模型中,汽车牌照是关键字,而且是具有结构特点的一类关键字。因为汽车牌照号是数字和字母混编的,例如 01B7328, 这种记录集合是一个适于利用多关键字进行排序的典型例子,故我们可以利用链式基数排序方法实现排序。

 在排序基础上,利用二分查找的思想,实现对这批汽车记录按关键字的查找。

 2、设计要求 基本要求: 利用链式基数排序和二分查找的思想完成程序设计任务。

 3、设计内容 (1) 需求分析 程序的功能:

  主要功能是对含有关键字的批量数据进行排序和查找;另外根据实际增添了输出到文件、删除、插入、简单统计功能。

 输入输出的要求:

  程序会显示提示,根据提示输入数字、字符或数据。

 测试数据:

 测试数据的每个记录包括五项,分别为牌照号码、汽车商标、颜色、注册日期和车主的姓名,其中牌照号码为七位(k 0 -k 6 ),输入形式如下: K 0

 和 k 1

 输入值为 01-04(代表地区),k 2 输入值为 A~Z(代表车的使用类型),后 4 位为 0000~9999(代表车号),例如: O1B7328。其余四项输入内容因为不涉及本程序的核心思想,故只要求一般字符串类型即可。查询时,输入合法的汽车牌照号码。

 测试数据要求用 30 个左右的数据项进行测试,头两位暂限定 01~04,第 3 位为 A~Z,以便可使牌照号码相对集中。

 程序测试数据:

 30 01S5842 将明 2007-12-02 blue jid 04D2154 陈琳 2005-11-01 yellow jo

 02A0021 潘晓静 2011-04-22 white jae 01S8930 李峰 2010-08-13 green aie 03C3589 张三 2007-02-18 blue nhi 04E2184 Lucy 2009-11-28 black as6 04A2505 赵晗 2009-10-30 brown ja

 03C3269 Lily 2007-11-30 pink jos 03B3568 Tom 2005-12-17 blue jos 01A8983 Jim 2006-02-19 white kfe 02A7777 韩梦龙 2005-02-07 black vds 02C2222 钱国正 2009-08-05 green yer 01G8652 刘晓莉 2008-11-07 white kfe 03H0029 Kasserine 2008-04-08 black xfd 04G9665 索海丰 2009-04-09 red trs

 03B3222 唐如云 2007-10-08 brown htr 02L6622 王睫 2007-11-08 blue nrr 04L1122 Shelly 2006-11-03 black gf 04A2200 David 2009-02-22 red ert 01E8000 赵远 2007-03-08 pink tre 02V0009 唐文 2006-07-02 blue thh 01B3321 郑华 2008-12-02 white jh 03S6699 索耀光 2008-01-01 white rd 03D4115 赵沙 2007-11-11 yellow kew 01F6339 赵欢欢 2007-07-14 red kfe 02H7775 叶丽娜 2009-08-15 brown wg 02A8993 孙珍珍 2010-11-27 white wb 02P8692 赵楠 2006-10-12 black trt 04W5524 孙中华 2004-03-21 yellow ms 03W6688 John 2007-01-11 pink esg (2) 概要设计 本程序所用的抽象数据类型的定义:

 ArrType

 // 指针数组类型 SLList

  // 静态链表类型 SLCell

  // 静态链表的结点类型 KeysType

  // 定义关键字类型为字符型 InfoType

  // 定义其它数据项的类型 主程序的流程及各程序模块之间的层次关系: 开始先选择读入原始数据方式:

 1: 从文件读入(在桌面建立 test.txt 文档,第一行为记录数,记录数<=10000,记录数必须符实,否则程序出错;第二行开始数据,数据用空格隔开,例如:

 01S5842 将明 2007-12-02 blue jid); 2: 直接用程序内数据。

 然后对数据进行操作:

 1: 按车牌号排序并输出;

 是否输出到文件?(y/n) 2: 查找;

 1): 按车牌号查找(排序后进行);

  0: 退出

  1:删除 2): 按车牌号前两位查找; 3): 按车牌号第三位查找。

 3: 按顺序插入数据;(排序后) 4: 简单统计。

 1): 按车牌号前两位统计;

 2): 按车牌号第三位统计。

 (3) 详细设计 采用 C 语言定义相关的数据类型:

 typedef struct InfoType

 // 车主姓名等其它信息

 {

 char name[17];

  char date[12];

  char color[11];

  char mark[10]; }InfoType;

  // 定义其它数据项的类型

 typedef char KeysType;

  // 定义关键字类型为字符型

 typedef struct SLCell

 // 静态链表的结点类型 {

 KeysType keys[MAX_NUM_OF_KEY+1]; // 关键字(字符串末尾+"\0")

 InfoType oth;

 // 其它数据项

  int next; }SLCell;

 typedef struct SLList

 // 静态链表类型 {

 SLCell r[MAX_SPACE];

  /* 静态链表的可利用空间,r[0]为头结点*/

  int keynum;

 // 记录的当前关键字个数

  int recnum;

 //

 静态链表的当前长度 }SLList;

 typedef int ArrType[RADIX];

 // 指针数组类型

 各模块的算法:

 ①基数排序:

 void Distribute(SLCell r[],int i,ArrType f,ArrType e); /*静态键表 L 的 r 域中记录已按(keys[0],„,keys[i-1])有序。本算法按第 i个关键字 keys[i]建立 RADIX 个子表,使同一子表中记录的 keys[i]相同。f[0..RADIX-1]和 e[0..RADIX-1]分别指向各子表中第一个和最后一个记录*/ void Collect(SLCell r[],ArrType f,ArrType e); /*本算法按 keys[i]自小至大地将 f[0..RADIX-1]所指各子表依次链接成一个链表,e[0..RADIX-1]为各子表的尾指针。*/ void Sort(SLList L,int adr[]); /*求得 adr[1..L.length],adr[i]为静态链表 L 的第 i 个最小记录的序号*/ void Rearrange(SLList &L,int adr[]); /*adr 给出静态链表 L 的有序次序,即 L.r[adr[i]]是第 i 小的记录。本算法按adr 重排 L.r,使其有序。*/ void RadixSort(SLList &L); /*L 是采用静态链表表示的顺序表。对 L 作基数排序,使得 L 成为按关键字自小到大的有序静态链表,L.r[0]为头结点。*/ void write(SLList l);

 // 输出到文件 ②查找:

 int judge(char s[]);

  // 判断车牌号是否合法

 int Search1(SLList ST); /* 在表 ST 中折半查找其关键字等于 key 的数据元素。若找到,则打印该元素在表中的信息*/ void Delete(SLList *l,int d);

 // 删除 l 中第 d 个记录 void Search2(SLList l);

 // 据车牌号前两位搜索

 void Search3(SLList l);

 // 据车牌号第三位搜索 ③插入:

 int Read(SLList l,SLCell *r);

 /* 读取车牌号到 r,若 l 中有此车牌号则读取失败*/

 void Insert(SLList *l);

 /* 在 l 中按基数排序顺序插入车牌号及其他信息*/ ④统计:

 void Statistic1(SLList l);

  // 据车牌号前两位进行统计

 void Statistic2(SLList l);

  // 据车牌号第三位进行统计

 函数的调用关系图:

 (4) 调试分析 调试中遇到的问题及对问题的解决方法:

 我在调试中遇到了许多问题,由于问题太多无法一一说明,这里只说一些编译无错误而程序无法正常运行,或者程序的执行结果与预想的不同,其它的大部分错误软件在编译时会有提示,就不说了。

 1、出现如图 1 情况的,我碰到的有几种。

 图 1 1)scanf 或 fscanf 语句中一定要用变量的地址,而不是变量本身。这种错误在学习 C 语言时就强调过,但编程时还是得小心,我的程序在编了 300 多行时出现这个错误,费了好些时间才查找出来; 2)数组或其它变量定义空间不足。例如在基数排序中,需要两个指针数组,大小与基数相同,如果小于基数的话,会出现图 1 所示的情况。

 2、程序执行结果与预想结果不同,如图 2 和图 3 所示

 图 2 这里有一个经常不经意犯的小错误,就是经常把“==”写成“=”,上图中while(a==0);以下还有一例:图 4 和图 5 中,if (c==’y’)。

  图 3

 图 4

 图 5 3、有三个问题我不知如何解决:①图 4 和图 5 中,运行结果是打印完“是否输出到文件?(y/n)”后直接回车打印“输入错误”,之间并没有让输入字符进行选择;②图 5 中程序中使用的是 scanf 函数而不是 getch()函数,因为编译时会提示没有 getch()此函数,应该如何做才能把它找出来?③如图 6、图 7 和图 8 所示,当进行选择时,若输入字母,则会进入死循环,而输入其它数字时则不会,我试了一下,当输入如!@#等特殊字符时也会进入死循环,我暂时没能解决掉这个问题。

  图 6

 图 7

  图 8 暂时就这些问题了。

 (5) 使用说明及测试结果 程序开始后,先选择读入原始数据方式;

 选择后,程序会先将数据按原来顺序打印出来; 然后程序显示主菜单,对数据进行操作;

  1:按车牌号排序并输出; 程序会先对原始数据以车牌号为关键字进行基数排序并输出;

  输出后程序会提示是否输出到文件,进行选择; 若选择“y”,程序会将排好序的数据记录在桌面建立 txt 文档保存;若选择“n”,程序会继续回到主菜单。

  2: 查找;

 1): 按车牌号查找(排序后进行);

  程序会要求输入要查找的车牌号,读入后对其合法性进行检验,若不合法(格式不正确),会要求重新输入;若合法,则查找。查找到后,程序会打印出车牌号的位置及其相关信息,然后进行选择是否删除;若未查找到,则打印“未找到与此车牌号相关的信息”;

  2): 按车牌号前两位查找; 程序读入前两位后,会依次将满足条件的车牌号及其它相关信息打印出来,并在最后统计有多少个记录满足条件;

 3): 按车牌号第三位查找;

 同前一个查找类似,程序找到满足条件的车牌号后会依次打印出车牌号及其相关信息,并在最后总和共有多少记录满足条件。

  先说,4: 简单统计。

 1): 按车牌号前两位统计;

  程序会对已存在的记录以前两位进行统计,分别打印出各个种类有多少个;

  2): 按车牌号第三位统计 程序会对已存在的记录以车牌号第三位进行统计,分别打印出各个种类有多少个。

 3: 按顺序插入数据;(排序后) 程序会先要求输入要插入数据的车牌号,进行判断是否合法,不合法包括格式不正确和原始数据中已存在,程序会给出相应的提示,要求不合法的重新输入,然后要求输入车主姓名及其它相关信息,进行插入操作,成功后程序会提示插入成功并将所在位置打印出来; 最后可以选择主菜单中的排序进行查看插入的数据及其所在位置。

 完成操作后,想退出程序的可以通过主菜单中的“0:退出”实现,其它菜单中一样可以通过此功能退出当前菜单。

  (6) 源程序(带注释)

 这是我从 cpp 文件中直接复制粘贴过来的:

 #include<malloc.h> #include<stdio.h>

 #include<stdlib.h>

 #include<math.h>

 #include<string.h>

  #define N 30 #define RADIX 26

  /* 关键字基数,此时是二十六个字母(包括十进制整数)的基数*/ #define MAX_SPACE 10000

 // 链表最大空间

 #define MAX_NUM_OF_KEY 7

  // 关键字位数

 typedef struct InfoType

 // 车主姓名等其它信息

 {

 char name[17];

  char date[12];

  char color[11];

  char mark[10]; }InfoType;

  // 定义其它数据项的类型

 typedef char KeysType;

  // 定义关键字类型为字符型

 typedef struct SLCell

 // 静态链表的结点类型 {

 KeysType keys[MAX_NUM_OF_KEY+1]; // 关键字(字符串末尾+"\0")

 InfoType oth;

 // 其它数据项

  int next; }SLCell;

 typedef struct SLList

 // 静态链表类型 {

 SLCell r[MAX_SPACE];

  /* 静态链表的可利用空间,r[0]为头结点*/

  int keynum;

 // 记录的当前关键字个数

  int recnum;

 //

 静态链表的当前长度 }SLList;

 typedef int ArrType[RADIX];

 // 指针数组类型

 int menu0();

  // 选择读入原始数据方式

 int menu();

 // 总菜单

 int menu1();

  // 查找菜单

 int menu11();

 // 删除菜单

 int menu2();

  // 统计菜单

 int duru(SLList *l,int r);

 // 执行读入原始数据

 void print(SLList L,int w);

 // 按数组序号输出静态链表 void write(SLList l);

 // 输出到文件 void Distribute(SLCell r[],int i,ArrType f,ArrType e); /*静态键表 L 的 r 域中记录已按(keys[0],„,keys[i-1])有序。本算法按第 i个关键字 keys[i] 建立 RADIX 个子表,使同一子表中记录的 keys[i]相同。f[0..RADIX-1]和e[0..RADIX-1]分别指 向各子表中第一个和最后一个记录*/ void Collect(SLCell r[],ArrType f,ArrType e); /*本算法...

篇六:课程实践报告

在电子技术领域中, 经常要用一些信号作为测量基准信号或输入信号, 也就是所谓的信号源。

 信号源有很多种, 包括正弦波信号源、 函数发生器、 脉冲发生器、 扫描发生器、 任意波形发生器、 合成信号源等。

 作为电子系统必不可少的组成部分的信号源, 在很大程度上决定了系统的性能, 因而常称之为电子系统的 “心脏”。

 随着电子技术的发展,对信号源的要求越来越高, 要求其输出频率高达微波频段甚至更高, 频率范围从零 Hz 到几 GHz 频率分辨率达到 mHz 甚至更小, 相应频点数更多; 频率转换时间达到 ns 级: 频谱纯度越来越高。

 同时, 对频率合成器功耗、 体积、 重量等也有更高的要求。

 而传统的信号源采用振荡器, 只能产生少数几种波形, 自动化程度较低, 且仪器体积大、 灵活性与准确度差。

 而现在要求信号源能产生波形的种类多、 频率高, 而且还要体积小、 可靠性高、操作灵活、 使用方便及可由计算机控制。

 所以要实现高性能的信号源, 必须在技术手段上有新的突破。

 直接数字频率合成器问世之初, 构成 DDS 元器件的速度的限制和数字化引起的噪声这两个主要缺点阻碍了 DDS 的发展与实际应用。近几年超高速数字电路的发展以及对 DDS的深入研究, DDS 的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。

 随着微电子技术的迅速发展, 直接数字频率合成器得到了飞速的发展, 它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。

 具体体现在相对带宽宽、 频率转换时间短、 频率分辨率高、 输出相位连续、 可产生宽带正交信号及其他多种调制信号、 可编程和全数字化、 控制灵活方便等方面, 并具有极高的性价比。

 现已广泛应用于通讯、 导航、 雷达、 遥控遥测、 电子对抗以及现代化的仪器仪表工业等领域。

 信号发生器是一种常用的信号源, 广泛应用于电子测量、 自动控制和工程设计等领域。

 随着电子技术的发展, 对信号源频率的稳定度、 准确度以及频谱纯度的要求越来越高。DDS(直接数字合成) 技术是从相位概念出发直接合成所需波形的一种新的频率合成技术,与传统的模拟式波形产生法相比, 它具有相位变换连续、 频率转换速度快、 分辨率高、 稳定度高、 相位噪声小、 便于集成、 易于调整及控制灵活等多种优点。

 本次课程设计锻炼学生综合应用知识的能力, 提高实践能力, 加强理论与实践的联系。

 同时着重培养团队合作和创新能力, 为以后的学习工作打下良好基础。

 1 . 系统设计原理 采用DDS作为信号发生核心器件的全数控函数信号发生器设计方案,

 根据输出信号波形类型可设置、 输出信号频率可数控、 输出频率宽等要求, 选用了美国A/D公司的AD9850 芯片, 并通过单片机程序控制和处理AD9850的32位频率控制字,

 再经放大滤波网络,

 从而实现了信号频率、 类型以及输出等选项的全数字控制。

 本系统主要由单片机、 DDS直接频率信号合成器、 数字衰减电路、 真有效值转换模块、A/D转换模块、 数字积分选择电路等部分组成。

 单片机AT89S52是整个系统关键部分, 通过对键盘进行扫描读入相位信息, 经转换后输出到芯片AD9850, 输出波形。

 键盘输入的数字信息经AT89S52控制的LCD1602显示 1. 1 总体设计框图 系统构成如下图 3. 1 所示。

  图 1. 1

 系统框图

 LCD1602 键盘单片机AD9850 低通滤波器信号输出

 2. 系统硬件模块的组成 2. 1 键盘控制模块

 图 4. 1 键盘控制电路 通过键盘对波形的频率进行控制 2. 2 单片机控制模块 主控电路中, 以单片机为主体, 通过分析键盘输入的数字值, 对 AD9850 写入相应的控制字。

 它是系统的大脑。

  AT89S52 是一种低功耗、 高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flash 存储器。

 AT89S52 具有以下标准功能:

 8k 字节 Flash、 256 字节 RAM、 32 位 I/O 口线、看门狗定时器、 2 个数据指针、 三个 16 位定时器/计数器、 一个 6 向量 2 级中断结构、全双工串行口、 片内晶振及时钟电路。

 AT89S52 的引脚结构如图:

  图 2. 1 单片机 AT89S52 引脚结构图

 图 4. 3 时钟电路 XTAL1 是片内振荡器的反相放大器输入端, XTAL2 则是输出端, 使用外部振荡器时,外部振荡信号应直接加到 XTAL1, 而 XTAL2 悬空。

 这里采用电容 30pF, 晶振采用 12MHz。

 AT89C51 的外部复位电路有上电自动复位和手动按键复位。

 本设计采用按键电平复位, 电路图如图所示:

 2. 3 LCD 显示模块 1602 型 LCD 可以显示 2 行 16 个字符, 有 8 位数据总线 D0~D7 和 RS, R/W, EN 三个控制端口, 工作电压为 5V, 并且具有字符对比度调节和背光功能[1]。

  图 4. 5 LCD 与单片机的接口电路 2. 4 AD9850 与单片机连接模块 随着数字技术的飞速发展, 用数字控制方法从一个参考频率源产生多种频率的技术,即直接数字频率合成(DDS) 技术异军突起。

 美国 AD 公司推出的高集成度频率合成器AD9850 便是采用 DDS 技术的典型产品之一。AD9850 采用先进的 CMOS 工艺, 其功耗在 3. 3V供电时仅为 155mW, 扩展工业级温度范围为-40~80℃, 采用 28 脚 SSOP 表面封装形式。AD9850 的引脚排列如图 4. 6 所示, 图 4. 7 为其组成框图。

 中层虚线内是一个完整的可编程 DDS 系统, 外层虚线内包含了 AD9850 的主要组成部分[2]。

  图 4. 6

  AD9850 管脚排列图

 图 4. 7 AD9850 组成框图 AD9850 有 40 位控制字,

 32 位用于频率控制, 5 位用于相位控制,

 1 位用于电源休眠(Powerdown) 控制,

 2 位用于选择工作方式。

 在并行装入方式中, 通过 8 位总线 D0…D7 将可数据输入到寄存器, 在重复 5 次之后再在 FQ-UD 上升沿把 40 位数据从输入寄存器装入到频率/相位数据寄存器(更新 DDS 输出频率和相位) , 同时把地址指针复位到第一个输入寄存器。

 接着在 W-CLK 的上升沿装入 8 位数据, 并把指针指向下一个输入寄存器, 连续 5个 W-CLK 上升沿后,

 W-CLK 的边沿就不再起作用, 直到复位信号或 FQ-UD 上升沿把地址指针复位到第一个寄存器[3]。

  图 4. 9

 控制字并行输入的时序图

 单片机与 AD9850 的接口

 图 4. 11 AD9850 与单片机连接

 3. 软件设计与调试 3. 1 程序流程图

 通过程序预置频率, 并实现对频率步进的控制, 处理用 户 由 键盘键入的频率值, 判断是否超出 范围, 生成频率控制字, 经并行方式送入 DDS, 合成用 户 所需的频率, 并通过程序实现频率的显示。

 程序流程图如下:

  图 3. 1 程序流程图 DDS 的时钟频率很高, 对周围电路有一定影响, 在电路中 采取了 一些抗干扰措施, 如:

 引 线尽量短, 减少交叉, 每个芯片的电源与地之间都解忧去耦电容,数字地与模拟地分开。

 在 LCD 的显示调节时也要选取适当的电阻才能使液晶屏正常 的显示, 常 选取的阻值为 1000 欧左右。

 3. 2 软件调试 本系统的软件调试可以在 Keil uvision2 的环境中 完成, 程序调试无误后,可以装入 Proteus 中进行仿真, 也可以直接下载到单片机中 进行调试。

 采用 自 下而上即单独调试好每一个模块后, 再连接成一个完整的系统调试。

  结论 课程设计完成的主要工作是完成单片机控制 AD9850 产生正弦信号, 并能显示出相对应的频率, 且使频率在 0~20MHz 的范围内能进行调整。

 通过搜集目前 DDS 技术的相关资料, 了解国内外 DDS 信号发生器的相关制作方法,并通过设计方案的比较, 针对设计任务提出了可行方案。

 在设计方案中, 结合单片机的功能特点及其控制特性, 以单片机作为控制的核心。

 根据设计方案, 详细地阐述了单片机的控制原理、 AD9850 的使用方法、 PCB 板的制作, 设计了相应的硬件电路和系统软件,制作了电路原理样机并进行调试。

 结果表明, 所设计的电路和软件能完成基本的测试功能。

 课程设计结束了, 留给了我很深的思考, 只有通过学习才能获得知识, 开始时并不是什么都会, 但是只要努力了就一定会有收获 虽然中间的过程很辛苦, 但是只要有结果,就可以忘记艰辛的过程。

 参考文献

 [1]

 刘建辉. 单片机智能控制技术[M]. 北京:

 国防工业出版社, 2007. 4.

 [2]

 闫玉德. MCS-51 单片机原理与应用(C 语言版)

 [M]. 北京:

 机械工业出版社,2003. 1.

  [3]

 刘伟. 基于 AD9850 芯片的信号发生器的研究[M]. 苏州:

 苏州大学出版社,2002. 4.

  附

 录 附录 A 硬件原理图

 附录 B 程序 #include <reg52. h> #include <intrins. h> #define uchar unsigned char

 123456654321DCBATitleNum berRevisionSizeBDate:File:28-May-2010D:\毕业设计\protel\BACKUP~13.DDBSheet

 of Drawn By:D3D2D1D0DGNDDVDDW_CLKFQ_UDCLK_INAGNDAVDDRSETQOUTBQOUT123456789D4D5D6D728272625241011121314VINN15VINP16DACBL17AVDD18AGND19IOUTB20IOUT21RESET22DVDD23DGNDU1AD9850R13.9K+5V50MHz晶镇输入端+5V方波输出1方波输出2+5VR4100KR5100KR8100R6200R7200C1122pC123pL1910nHL2680nHC1410pC1333pC1522pC1470pF+5VC20.1uFC30.1uFC50.1uFC90.1uF+5VEC0210uF/10VEC0410uF/10V正弦输出外部晶振输入端C40.1uFEA/VP31X1X21918RESET9RDWR1716INT012INT113T014T115P10/TP11/TP12P13P14P15P16P1712345678P00P01P02P03P04P05P06P073938373635343332P20P21P22P23P24P25P26P272122232425262728PSEN29ALE/P30TXD11RXD10U01S52VCCJZ11MHzC0127pFC0227pFEC0210uF/10VVCCR0210KVCCC090.1uF12345678910ASPISPVCCEC08470uF/25VLEDRL11KVCCK01K02K03K05K06K07P3.6P3.7P3.5P3.4P3.3123456789101112131415161602液晶16PINVCCVCCV0LCD_RSLCD_RWLCD_EP1.4P1.7P1.6P1.3P1.2P1.1VCC

 #define uint unsigned int

  sbit W_CLK= P1^7;

 sbit PQ_UD= P1^6;

 sbit RET= P1^4;

  uchar word[5]={0x00, 0x00, 0x00, 0x00, 0x00} ;

 unsigned long int k=107. 37*1000;

 //15000000 就是所要输出 的频率值,

  //若晶振不同为其他频率更改数值就行了

  void chang(unsigned long int k)

 { word[1]=(k>>24) &0xff;

 word[2]=(k>>16) &0xff;

 word[3]=k>>8&0xff;

 word[4]=k&0xff;

  }

 delay_1ms(uint t)

 {

 uint i, j;

  for(i=0; i<t; i++)

  for(j=0; j<120; j++) ;

 }

  main()

 {

  uint i;

 RET=1;

  delay_1ms(100) ;

  W_CLK=0;

  PQ_UD=0;

  RET=0;

  chang(k) ;

  while(1)

  {

 for(i=0; i<5; i++)

 {

  P1=word[i];

 W_CLK=1; _nop_() ;

 W_CLK=0; _nop_() ;

 }

 delay_1ms(10) ;

 PQ_UD=1; _nop_() ;

 PQ_UD=0; _nop_() ;

 }

 }

篇七:课程实践报告

程 实 践 报 告

 专 业 年 级

 课 程 名 称

 管理学

 指 导 教 师

 学 生 姓 名

  曹宁

  学 号

  实 践 日 期

  实 践 地 点

  实 践 成 绩

  教务处制 2013 年

 6 月 1 日

 实践项目 名称  大型小组项目——管理者跟踪访谈 实践 目的及要求 目的:

 让学习《管理学》 的同学通过对管理者一周工作情况的全程记录, 对管理者的工作实践有一个亲身感受和客观认识; 同时能够将《管理学》 基本原理和基本方法用于解释分析观察和访谈到的管理问题。

  要求:

 按要求分组, 合理分配任务, 让每个组员都能各尽其责。

   实践 内容 记录一位管理者一周的工作记录, 并对管理者进行访谈, 最后再结合自己访谈的感受写出心得和体会        实践步骤  (1)

 按照要求进行分组, 选出组长。

  (2 )

 确定访谈的对象时间及其地点, 并对小组成员进行明确分工。

  (3 )

 记录管理者一周的工作记录, 并进行交谈。

 完成记录后, 对管理者进行访谈, 并记录。

  (4 )

 整理工作和访谈记录, 并总结访谈的心得和体会。

  (5)

 根据访谈内容, 结合心得和体会, 完成实践报告。

   实践环境               翠竹苑 2 # 

   实践结果与 分析 (1)

 访谈记录(见附页)。

  (2 )

 访谈内容:

  问题①:

 作为一位管理者, 在你的工作中你最喜欢做的事情是什么? 为什么?          翠竹苑 2 #宿管潘胜康  :

 我最喜欢和宿舍同学进行交流, 了解他们对宿舍管理的看法。

 因为, 经常和同学们交流, 可以清楚的了解同学们的生活习惯, 掌握他们的生活规律, 为我管理好宿舍提供了很好的参考资料。

 同时, 也对学生宿舍安全有了更多的认识。

 这对我完善宿舍管理, 保证宿舍安全, 都很有帮助。

  问题②:

 作为一位管理者, 在过去的一年中你不得不应对的最大的变化是什么?  翠竹苑 2 #宿管潘胜康  :

 没有什么变化啊!

 在过去这一年中 “翠竹苑 2 #” 宿舍管理基本没多大的变化, 每天的工作还是和以前一样。

 在宿舍管理要求上, 学校及苏大集团也没有多大的变化。

 所以, 在这方面我就没什么好谈的了。

  (3)

 心得和体会:

  通过对宿舍管理员一周的交流和访谈, 我们真实地了解了一位普通理者。

 作为一位普通的管理者, 首先, 要清楚的认识自己, 明确自己在管理中的位置, 不可胡乱管理; 其次, 要对自己的工作认真负责, 积极主动的与自己的管理对象进行交流; 另外,还要在管理中总结经验, 努力提高自己的管理水平, 不断完善管理方法和理论, 并适当的创新管理方法和理论。

 此外, 我们也应

 该认识到, 普通的管理工作是枯燥无味的, 每天都可能会重复同样的工作, 很容易对工作产生浮躁和厌恶的情绪。

 但是, 作为一位管理者, 我们应该清楚的认识到, 这些都是必需克服的, 我们决不能因此而放松管理。

  总之, 对于管理, 我们不能只停留在想像当中, 要勇于实践和创新, 学会在实践中总结经验, 在创新中寻求新方法, 不断丰富管理经验。

 为将来成为管理中的佼佼者, 打下一个坚实的基础。

  教师评语  

 附件

篇八:课程实践报告

 J I A N G S U

 U N I V E R S I T Y

 《毛泽东思想和中国特色社会主义理论体系》课程

  调研报告

 学院名称:

  工商管理学院

  专业班级:

  市场营销 1001

  学生姓名:

  2011 年

 11 月

 调研时间 2011 年

 9 月 10 日- 11 月 10 日 调研地点 江苏 省 南通 市/县 通州 乡/区

 调研对象:

 姓名:

 刘先生

 职业:

  农民

 联系方式(电话):

 13228848848

  选题的原因和目的:

  了解本地政府对农村的发展所作的努力与尝试,进而讨论党和国家对农村发展方针政策的制定实施,变化过程以及产生的影响,学会将书本的理论与社会的实际相结合。

  希望通过这次的调研初步达到理论与实际的相互结合,并了解政府的政策措施,大致了解以后家乡的发展方向,以及考虑自己以后的发展。在所选的调研的方面去试着了解该行业的规则,希望对以后自己的就业或者创业有所作用。

 调研过程描述 (300 字左右)

 :

  在 9 月 10 日打电话与刘先生进行初步的交流,大致了解各自的行业。

  9 月 11 日根据要求完成了社会调研的提纲。

  9 月 15 日~22 日与刘先生进行第一次的电话采访,大致了解了政府对居民合作社的政策,并就政策方面的细节了解了一下。

  10 月 1 日~7 日放假在加期间去实地采访。

 10 月 10 日~17 日期间,最后一次联系刘先生,确认以前的信息。

 11 月 1 日~15 日期间完成调研的报告。

  关于南通市天生葡萄种植合作社的调研报告

  中国是一个农村人口占主要比重的国家,农村,农业,农民问题在中国社会中占有非常重要的位置。因而农村的社会变迁很大程度上制约影响了中国的现代化进程。

 随着新民主主义革命在中国的全面胜利,中国农村开始由自发性的社会变迁步入有计划的社会变迁。土地改革改变了土地的所有关系,土地变为农民年所有。新中国成立以后,中国共产党又着手领导人民继续在全国范围内展开土地改革,迅速恢复和提高了农业生产力,而且也为国家工业化奠定了基础。土地革命胜利后,为我国由农业国转变为工业国清除了根本性的社会制度障碍,但并没有改变小农生产大国的性质。随后我党领导农业合作化运动,毋庸讳言,农业合作化运动在当时存在着某些问题,但随着时代的发展,现今的农业合作社则是社会发展的选择。

 为了解现今农业合作社的变化以及发展,我们进行了一次调研活动。这次调研的主要对象是南通市通州区兴仁天生葡萄生产合作社,调研时间历时一个月左右。首先大致介绍一下该合作社:合作社初期主要从事葡萄种植与销售,现在经过改良,形成了以旅游农业为主的新型农业经济发展方式。合作社的前身是当地的农业生产大队,农业生产大队取消以后,有 8 家农户协商创建了现今的葡萄种植合作社。合作社的初期投入的资本是 30 万左右,初期资本主要用来搭建大棚以及购买葡萄的秧苗,平均每亩的成本要花到 6000 元左右,由参与的农户共同出资,合作社占地面积为 60 亩左右,今年合作社创建已经有 7 年了。虽然建立时间不久,但是已经经历了许多。

 通过与合作社创始人联系交流得知,建立合作社的最初目的是为了增加大家的收入,提高大家的生活水平与质量。建社时经过几户农家的协商,最终达成一致的意见。初期时合作社遇到一系列的问题; 比如说,农户以前只有自家种植少数葡萄,大规模的种植没有任何经验,完全靠自己一边摸索一边积累学习,这是一个不小的挑战。

 大棚的护理也有很大的问题。虽然只是每天注意大棚的温度,但有下雨等恶劣天气时总会有大棚的损伤,户外裸地种植的葡萄也会应为恶劣的天气而造成减产。

 初期在选择葡萄秧苗方面也比较欠缺,种类过于单一。初期合作社选择的是较为普通的巨峰等种类。这些种类虽然便宜并且易于种植,但是作物较为低档,市场竞争力不强,收到的经济效益也是有限。

 初期最主要问题的是农户种植葡萄这种经济作物时,对病虫害的预防以及治愈没有概念、没有经验,当遇到病虫害时不知所措,也会延误治愈秧苗的最佳时机。

 另一方面,众所周知,经济作物的种植最重要的就是及时地销售,初期时作物单调,销售方式也只是散销,加上交通不是特别的便利,存在作物严重浪费的问题。

 由于起步时存在的各种各样的问题,几户看不到希望的农家退出了合作社。这对起步时的合作社而言是个不小的打击,那段时间大家的积极性都受到一定程度的影响。

 针对以上的一些问题,合作社与当地的政府村委均作出了一些行动以改变不利的情况。

 当地的村委在农户询问时最快时间内派人实地了解情况,同时在村委也置办了一些关于农业种植的书,为农户们解决了种植的问题提供了方便。

 针对恶劣天气所造成的影响,合作社接受以前的教训,采取规范的管理以及积极地防范措施,整改措施不力的地方,确保在需要的时候人员到位。

 针对作物单调这一问题,合作社专门从政府派来的技术人员那里了解到比较适合种植的葡萄种类,先后种植了玫瑰葡萄,白鸡心,奥古斯特等质量较好的品种。作物的种类实现了多样化。

 政府了解到农户对病虫害的预防以及治疗方面有所欠缺以后,经常派技术人员到农业合作社进行病虫的防护处理,并教农户在遇到虫害问题时应该注意的环节。

 为了改变合作社销售难的问题,当地政府出资重新修建了当地合作社附近的道路,为私家车进入合作社内部提供了可能。同时合作社也改变了经营理念,使城市中的居民能够走到田间地头,体会另一种风情。

 一段时间过去后,随和经济形势的持续好转,合作社也迎来了一个新的发展。合作社抓住发展的机遇,得到较大的提升。在这一过程中,大家发挥群体智慧,将农业转型,旅游农业建立起来,当地政府也修建了道路,同时合作社也种植多种优质的葡萄,并且葡萄有剩余时自制葡萄酒,进行精加工,增加附加值,实现作物的充分利用。

 合奏设的葡萄生育期为 150~160 天,主要成熟时间在夏秋季,合作社主要对外开放时间在 8~10 月份,提供自驾采栽的服务,由于葡萄的种类丰富多样,且现采的葡萄较为新鲜,葡萄含有多种维生素,也可以酿酒,或者是做成葡萄干,合作社的葡萄得到很多人的青睐。散买的葡萄定价一般在 2~8 元不等,定价根据葡萄的种类好次而言。但是自采带走的葡萄一般都要超过 10 元,这也是合作社主要财政来源之一。在农闲期间,农户们也进行其它的生产,比如说葡萄酒的销售,葡萄籽的销售等等,实现葡萄价值的充分利用。

 但是事物也不可能一成不变的向好的方向发展,在 07~08 年份由于经济发展大环境的波动,很多人对自驾旅游的热情有所降低,合作社也经历了一个比较困难的时期。近几年随着经济形势的好转,合作社的发展也上了一个新台阶,得到较快的发展。

 现如今该合作社的发展已经进入一个瓶颈,需要一个更大更适宜的舞台。为了谋求更大的发展,合作社现在已经建立了自己的网站,希望通过网络的方式,使更多的人能够了解到合作社的现实情况,同时合作社也通过网络寻找可以合作的对象来进行融资,为进一步的发展打下基础。

 通过这一合作社的创立与发展,我们不难看出,政府在鼓励农业合作社发展中起到一定的积极作用,尤其是在技术以及硬件条件方面,但是也不难看出,政府引导的主要方向还只是停留在这些方面,暂时缺少对该农业合作社融资政策等方面的支持,例如说贷款等等。据合作社的发起者告诉我,在合作社创立之初,当地政府的管理引导较少,政府更多的是治理与大规模的工商业的发展,对农业方面重视程度普遍不足,那时合作社的艰难使他自己都有了放弃的想法。但随着党和政府不断重申三农问题的重要性,现阶段当地村委政府对合作社的关注与引导正在加强。我个人认为,政府对农业合作社的扶植应落到实处,不仅是在技术方面,在政策上也可以提供更大的便利,也可以为合作社设寻求合适的合作者。

 将现今的合作社与三大改造后的农业生产合作社相比较看,农业由完全粮食

 作物逐步变化,经济作物在总数中所占的比重在逐年的增加,政府的政策也不再是完全的干预,完全的集体农业发展方向,给予农民足够的自主性,但仍需一定程度的引导。

 初期政府给予农业合作社较大的自由,让合作社有自由发展的空间,虽然一定程度上鼓励了农民改变土地利用方式,促成多个合作社的兴起,但是不是每个合作社都有符合实际的发展规划,有的合作社甚至只是为了某些优惠的政策而组合在一起,缺乏真正的凝聚力,不能够团结在一起,促成共同富裕,在遇到问题是就容易产生分歧,以至于合作社混乱甚至解体。一段时间以后,当地政府改变了农业方面的政策,开始引导农业合作社朝着有计划的方向发展,合作社的整体状况得到较好的改善。

 现在的农业合作社促进了农业经济的发展,作物种类的多样化也满足了市场的需要,促进社会经济的发展。农民也从合作化农业中得到了切身的好处,农户达到了小康的水平,生活质量得到了提高。从社会大环境来看,农业合作社的发展也稳定了市场,为社会主义市场经济的建设做出自身的贡献。

 但是,即便是现在,农业方面的政策也不可能是完美的,一成不变的,随着社会的发展,政府的政策方针也在不断地进步优化,更适应社会的现实需求,更符合实际地引导农业健康稳定发展。

 通过这次的调研实践,了解到了农村现阶段的发展状况,对多方面进行了较为详细地了解,也知道了理论与现实的联系与差异。政策是在理论的基础上提出的,但又不是完全一样的,随着实际情况的变化与发展,现实中的实施方面会出现各种各样的变化。

 这次的调研为以后自己选择就业方面提供了借鉴,同时通过这次调研活动也是自己锻炼了社会交际能力,与自己所学的市场营销专业相挂钩,锻炼语言表达能力。

 从另一方面而言,我也了解到了政府的政策方针,让自己对未来要走的路有了更深层的了解,自己以后规划人生有了较好的参照资料,使自己更容易成功。调研活动并不只是为了让我们仅仅了解所要调研的内容,也是让我们学会一种正确的了解事物的方法,在以后的学习工作生活中,必将引领我们走向胜利的彼岸。

篇九:课程实践报告

科技大学

 课程实践报告

  设计题目:

 计算机程序设计实践(VC++)

  设计时间:

 2011. 4.13

  至

 2011. 4.17

  学

 院:

 机械工程学院

  专业班级:

  学生姓名:

  学号

 指导老师:

 2011

 年

 4 月

 17 日

  一、

 实践任务

 任务一:

 建立一个类 MOVE, 将数组中最大元素的值与最小元素的值互换。

 具体要求如下:

 (1 )

 私有数据成员  Int *array:

 一维整型数组。

  Int n:

 数组中元素的个数。

 (2)

 公有成员函数  MOVE(int b[],int m):

 构造函数, 初始化成员数据。

  void exchange():

 输出平均值, 并将数组中的元素按要求重新放置。

  void print():

 输出一维数组。

  ~MOVE ():

 析构函数。

 (3)

 在主程序中用数据{21,65,43,87,12,84,44,97,32,55};对该类进行测试。

  任务二:

 定义一个字符串类 String, 实现该字符串是否为回文字符串。

 所谓回文字符串,是指该字符串左右对称。

 例如字符串“123321 ” 是回文字符串。

 具体要求如下:

 (1 )

 私有数据成员  char *str;

  Int y:

 标记是否为回文字符串。

 (2)

 公有成员函数  String(char *s):

 构造函数, 用给定的参数 s 初始化成员 str。

 Y 初始化为 0。

  void huiwen():

 判断 str 所指向的字符串是否为回味字符串。

  void show():

 在屏幕上显示字符串。

 (3)

 在主程序中定义字符串 char s[]=&quot;ababcedbaba&quot;作为原始字符串。

 定义一个 String类对象 test, 用 s 初始化 test, 完成对该类进行测试。

  任务三:

 定义一个 STRING, 将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。

 例如将字符串“abcde” 交叉插入字符串“ABCDE” 的结果为“aAbBcCdDeE”。

  具体要求如下:

 (1 )

 私有数据成员  char str1 [80]:存放被插入的字符串。

  char str2[40]: 存放待插入的字符串。

 (2)

 公有成员函数  STRING(char *s1,char *s2):

 构造函数, 用 s1 和 s2 初始化 str1 和 str2。

  void process():

 将 str2 中的字符串插入到 str1 中。

  void show():

 输出插入后的字符串。

 (3)

 在主程序中定义 STRING 类的对象 test 对该类进行测试。

  任务四:

 定义一个方阵类 Array, 实现对方阵进行逆时针 90 度旋转。

 如图所示。

 具体要求如下:

 (1 )

 私有数据成员  int a[4][4]:用于存放方阵。

 (2)

 公有成员函数  Array(int a1[][4],int n):

 构造函数, 用给定的参数 a1 初始化数据成员 a。

  void xuanzhuan():

 实现对方阵 a 进行逆时针 90 度得旋转。

  void show():

 在屏幕上显示数组元素。

 (3)

 在主程序中定义数组 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。

 定义一个 Array 类对象 test, 用 b 初始化 test, 完成对该类的测试。

  任务五:

 定义一个字符串类 NUM, 并统计特定序列中相同的字符的个数。

 具体要求如下:

 (1 )

 私有数据成员  char data[25]:

 随机生成 25 个字符。

  int num[128]:

 储存每个字符出现的个数。

 (2)

 公有成员函数  NUM(int data):

 构造函数, 同时初始化数组 data。

  void process():

 统计数组 data 中每个字符出现的个数, 并保存到数组 num 中。

  void print():

 输出每个出现过的字符及其出现的个数, 每行输出 5 个, 没有出现过的字符不显示。

 (3)

 在主程序中定义一个对象, 对该类进行测试。

  任务六:

 定义一个类 Union, 求两个整数集合的并集。

 具体要求如下:

  (1 )

 私有数据成员  int *set1,len1:

 用动态空间 set1 存储集合 1, len1 表示其元素的个数。

  int *set2,len2:

 用动态空间 set2 存储集合 2, len2 表示其元素的个数。

  int set[20],len:

 用动态空间 set 存储并集, len 表示其元素的个数。

 (2)

 公有成员函数  Union(int *s1,int l1,int *s2,int l2):

 用变量 s1 和 l1 初始化集合 1 及其长度, 用变量 s2 和 l2 初始化集合 2 及其长度, 并把并集的长度置为 0。

  int f(int num):

 判断整数 num 是否属于集合 1 , 是返回 1 , 否则返回 0;

  void fun():

 求集合 1 和集合 2 的并集, 方法是先把集合 1 中的所有元素复制给并集, 然后调用 f 函数把集合 2 中不属于集合 1 的元素复制给并集;

  void show():

 输出集合 1, 集合 2 和并集;

  ~Union():

 释放动态空间。

 ( 3 )

 在 主 程 序 中 对 定 义 的 类 进 行 测 试 。

 定 义 数 组 s1[8]={1,2,3,4,5,6,7,8} ,s2[6]={1,3,5,7,9,11}, 并用他们初始化类 Union 的对象 obj, 然后调用相关的成

  员函数, 求并集, 输出集合 1, 集合 2 和并集。

 二、 系统设计

 任务一 1. 任务(系统)

 分析 通过 MOVE()

 函数进行赋值; 通过 exchange() 函数将最大元素和最小元素进行位置调换; 通过 print () 函数输出结果。

 类的定义如下:

 class MOVE{

 int *array;

 int n; public:

 MOVE(int b[],int m)

 {

  n=m;

  array=new int[n];

  for(int i=0;i&lt;n;i++)

 array[i]=b[i];

 }

 void exchange();

 void print()

 {

  for(int i=0;i&lt;10;i++)

 cout&lt;&lt;array[i]&lt;&lt;"\t";

 }

 ~MOVE(){if (array)delete []array;} };

 2. 算法设计 (1)

 求出数组中的最大元素与最小元素 定义变量 max=min 且它们等于数组的第一个元素值, 然后通过数组循环把数组的后面一项与 max 和 min 比较。

 如果这项比 max 大, 那么就把这个数组元素的值赋给 max, 如果这项比 min 小, 那么久把这个数组元素的值赋给 min, 直到最后一项。

 (2)

 把最大值和最小值进行互换 定义一个中间变量 t, 对最大值和最小值进行互换通过以下程序实现:

 t=array[k];

  array[k]=array[l];

  array[l]=t;

 (3) 求出平均值 对数组中的各项元素相加(通过循环语句实现)

 再除以数组的元素个数 3. 系统测试 在主函数中以数组初始化 MOVE 的对象, 并调用其成员函数 print()输出测试结果。

 主函数定义如下:

 void main() {

 int b[10]={21,65,43,87,12,84,44,97,32,55};

  MOVE t(b,10);

 t.print();

 t.exchange();

 cout&lt;&lt;endl;

 t.print(); } 用以测试的数组为:

 b[10]={21,65,43,87,12,84,44,97,32,55};

  预期的输出结果为:

 平均值为:

 54

  21 65 43 87 97 84 44 12 32 55 任务二 1. 任务(系统)

 分析 通过 String() 函数进行初始化; 通过 huiwen()

 函数判断字符串是否为回文数;通过 show() 函数输出结果。

 类的定义如下:

 String{ private:

 char *str;

 int y; public:

 String(char *s)

 {

 str=s;

  y=0;}

 void huiwen();

 void show()

 {

  cout&lt;&lt;str; }}; 2. 算法设计 定义两个字符型指针变量*t,*p, 将这两个指针对给定的字符串进行遍历。

 然后通过循环语句判断是否为回文字符串, 如果是输出是回文字符串, 否则输出不是回文字符串。

 判断回文字符串的程序如下 while(*t++);

  t-=2;

  for(;p&lt;t;p++,t--)

 if(*p!=*t) y=0;

 3. 系统测试

  在主函数中以参数初始化 String 的对象, 并调用其成员函数 show()输出测试结果。

 主函数定义如下:

 void main() {

 char s[]=&quot;ababcedbaba&quot;;

 String test(s);

 test.show();

 cout&lt;&lt;endl;

 test.huiwen(); } 用以测试的参数为:

 s[]=&quot;ababcedbaba&quot;

  预期的输出结果为:

 ababcdbaba

  该字符不是回文字符串. 任务三 1 任务(系统)

 分析 通过 STRING() 函数进行赋值; 通过 process() 函数完成字符串的交叉插入; 通过print() 函数输出结果。

 类的定义如下:

 STRING{ private:

 char str1[80];

 char str2[40];

 public:

 STRING(char *s1,char *s2)

 {

  strcpy(str1,s1);

  strcpy(str2,s2);

 }

 void process();

 void print()

 {

  cout&lt;&lt;str1;

 } }; 2 算法设计 定义一个新的数组 char[t], 将数组 str1 拷贝给数组 t, 再定义两个整型数 i=0, j=0;然后通过 while 语句实现交叉, 只要 st2[i]不等于 0, str1[j++]=str2[i];再把 t[i]赋给str1[j++], i 进行自增。

 循环结束后对新字符串添加结束符。

 实现程序如下:

 while(str2[i])

 {

  str1[j++]=str2[i];

  str1[j++]=t[i];

  i++;}

 str1[j]="\0";} 3 系统测试

  在主函数中以字符型数组初始化 STRING 的对象, 并调用其成员函数 print()输出测试结果。

 主函数定义如下:

  void main() {

 char s1[]=&quot;ABCDEF&quot;;

 char s2[]=&quot;abcdef&quot;;

 STRING test(s1,s2);

  cout&lt;&lt;&quot;原子符为:

 &quot;&lt;&lt;"\n"&lt;&lt;s1&lt;&lt;"\n"&lt;&lt;s2&lt;&lt;endl;

 test.process();

 test.print(); } 用以测试的参数为:

 s1[]=&quot;ABCDEF&quot;;

 s2[]=&quot;abcdef&quot;;

  预期的输出结果为:

 元字符为:

 ABCDEF

 Abcdef

 aAbBcCdDeE 任务四 1 任务(系统)

 分析 通过 Array() 函数进行赋值; 通过 xunanzhuan() 函数对方阵进行逆时针旋转 90 度;通过 show() 函数输出结果。

 类的定义如下:

 Array{

 int a[4][4]; public:

 Array(int a1[][4],int n)

 {

  for(int i=0;i&lt;4;i++)

 for(int j=0;j&lt;4;j++)

  a[i][j]=a1[i][j];

 }

 void xuanzhuan();

 void show()

 {

  for(int i=0;i&lt;4;i++){

 for(int j=0;j&lt;4;j++)

  cout&lt;&lt;a[i][j]&lt;&lt;"\t";

 cout&lt;&lt;"\n";}

 } }; 2 算法设计 定义一个新的二维整型数组b[4][4]和整型数i, j。通过for循环语句将数组中的元素a[i][j]赋给 b[i][j], 实现程序如下:

  for(j=0;j&lt;4;j--)

 for(i=0;i&lt;4;i++)

  b[j][i]=a[i][j]} 3 系统测试

  在主函数中以参数初始化 Array 的对象, 并调用其成员函数 show()输出测试结果。

 主函数定义如下:

 void main() {

 int b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

 Array test(b,4);

 test.show();

 test.xuanzhuan();

 cout&lt;&lt;endl;

 test.show(); } 用以测试的参数为:

  b[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

  预期的输出结果为:

 1

  2

  3

  4

  5

  6

  7

  8

  9

  10

 11

 12

  13

 14

  15

  16

 4

  8

  12

  16

  3

  7

  11

  15

  2

  6

  10

  14

  1

  5

  9

 13 任务五 1 任务(系统)

 分析 通过 NUM() 函数进行赋值; 通过 process() 函数对数组中字符个数的统计; 通过print() 函数输出结果。

 类的定义如下:

 NUM {

 char data[25];

 int num[128]; public:

 NUM(int data)

 {

  for(int i=0;i&lt;25;i++)

 this-&gt;data[i]=rand()%128;

 }

 void process()

 {

  for(int i=0;i&lt;128;i++)

 num[i]=0;

  for(i=0;i&lt;25;i++)

 num[data[i]]++;

 }

 void print()

 {

  for(int i=0;i&lt;25;i++)

  {

 cout&lt;&lt;data[i]&lt;&lt;"\t";

 if((i+1)%5==0) cout&lt;&lt;"\n";

  }

  int k=0;

  for(i=0;i&lt;128;i++)

  {

 if(num[i]!=0)

 {

  char temp=i;

  cout&lt;&lt;temp&lt;&lt;&quot;出现的次数为:&quot;&lt;&lt;num[i]&lt;&lt;"\t"; k++;

 }

 if(k%5==0) cout&lt;&lt;"\n";

  }

 } }; 2 算法设计 通过 for 语句产生随机字符, 在 print()

 函数中统计各个字符出现的次数。

 3 系统测试

  在构造函数中随机初始化 NUM 的对象, 并调用其成员函数 print()输出测试结果。

 主函数定义如下:

 void main() {

 NUM test(1);

 test.process();

 test.print(); }

  预期的输出结果为:

  任务六 1 任务(系统)

 分析 通过 f() 函数判断是否属于集合; 通过 fun() 函数求并集; 通过 print() 函数输出结果。

 类的定义如下:

 Union{

 int *set1,len1;

 int *set2,len2;

 int set[20],len; public:

 Union(int *s1,int l1,int *s2,int l2)

 {

  len1=l1;

  len2=l2;

  len=0;

  set1=new int[len1];

  set2=new int[len2];

  for(int i=0;i&lt;len1;i++)

 set1[i]=s1[i];

  for(i=0;i&lt;len2;i++)

 set2[i]=s2[i];

 }

 int f(int num)

 {

  int k=0;

  for(int i=0;i&lt;len1;i++)

 if(num==set1[i])

 {

  k=1;break;

 }

  return k;

  }

 void fun();

 void show()

 {

  cout&lt;&lt;&quot;集合 set1 为:&quot;&lt;&lt;&quot;{&quot;; for(int i=0;i&lt;len1;i++)

 cout&lt;&lt;set1[i]&lt;&lt;&quot;,&quot;;

  cout&lt;&lt;&quot;}&quot;&lt;&lt;"\n";

  cout&lt;&lt;&quot;集合 set2 为:&quot;&lt;&lt;&quot;{&quot;; for(i=0;i&lt;len2;i++)

 cout&lt;&lt;set2[i]&lt;&lt;&quot;,&quot;;

  cout&lt;&lt;&quot;}&quot;&lt;&lt;"\n";

  cout&lt;&lt;&quot;集合 s 为:&quot;&lt;&lt;&quot;{&quot;; for(i=0;i&lt;len;i++)

 cout&lt;&lt;set[i]&lt;&lt;&quot;,&quot;;

  cout&lt;&lt;&quot;}&quot;&lt;&lt;"\n";

 }

 ~Union()

 {

  delete []set1;

  delete []set2;

 } }; 2 算法设计 首先将一个集合中的元素拷贝给并集, 然后判断另一个集合中的元素与这个集合中的元素是否相等, 如果不等, 那么就把这个元素拷贝给并集, 否则不。

 3 系统测试

  在主函数中以两个数组初始化 Union 的对象, 并调用其成员函数 show()输出测试结果。

 主函数定义如下:

 void main() {

 int s1[8]={1,2,3,4,5,6,7,8};

 int s2[6]={1,3,5,7,9,11};

 Union obj(s1,8,s2,6);

 obj.fun();

 obj.show(); } 用以测试的参数为:

 s1[8]={1,2,3,4,5,6,7,8};

 s2[6]={1,3,5,7,9,11};

  预期的输出结果为:

 集合 set1 为:

 {1,2,3,4,5,6,7,8}

  集合 set2 为:

 {1,3,5,7,9,11}

  集合 s 为:

 {1,2,3,4,5,6,7,8,9,11} 三、 实践小结

 在实践过程中, 我通过查找一些相关的资料以及通过跟同学进行讨论完成了各个程序的内容, 并将实践报告完成。

 在查找资料期间, 是我对一些基本的程序设计有了深刻的印象,还有...

篇十:课程实践报告

课程实践报告 我这次课程设计是第 31 个的通讯录(二)。

 我基本完成了课本的要求,但我没有完全局限在它的要求,而是采用了自己比较擅长的使用方法,eg:对于文件,我没有使用顺序文件,而是采用了随机存取文件,对于这一点我感觉使用后者更加适用于这个程序。

 简单介绍一下使用第 31 个的通讯录(二)的使用:

  它由三个 form 构成,form1 是主窗口,form2 是查询窗口,form3 是关于作者的介绍 主窗口包含添加,删除,保存,查询,退出等命令按纽,当你需要添加是必须是下面的 text 都显示为空,然后再添加。当你需要删除一个信息时,在 list 中双击人的姓名,它就会在

 text 中显示详细信息,再选择删除,确认即可。对于查询命令,点击就可以弹出新的查询对话框,包含按姓名,性别,出生年月等查询方法,当然我只做了三个查询,其他查询类似可以复制程序段,在查询前必须先选择查询的方式,到底是 模糊查询,还是精确查询,模糊查询是选择姓名,性别的任何一种查询方式就可以了,而后者必须所有的条件都要满足才行,得出的结果就会显示在左边的 list 窗口上,对照就可以在 form1 中查看所要人的信息。

 退出按纽可以退出程序,程序的使用基本就是这样的。

  这次课程设计也使我学到了很多东西,如,要是使程序的使用范围变大就必须选择文件的默认路径,即 App.path&”通讯录.txt”这样的路径,当然在一些具体的细节方面也有很多收获,如 Do While recnum < glastrecord + 1

 If recnum <> gcurrentrecord Then

 Get #gfilenum, recnum, tmpperson

 Put #tmpfilenum, tmprecnum, tmpperson

 tmprecnum = tmprecnum + 1

 End If recnum = recnum + 1 Loop

  Close gfilenum Kill App.Path & "\" & "通讯录.dat" Close tmpfilenum

  Name App.Path & "\" & "通讯录.tmp" As App.Path & "\" & "通讯录.dat" gfilenum = FreeFile Open App.Path & "\" & "通讯录.dat" For Random As gfilenum Len = grecordlen glastrecord = glastrecord – 1 在这个程序段中,是一个删除程序,它不是我们想象的简单,要删除一个信息,相应的文件的其它信息的记录好就要改变,必须把相应的记录号改变,这样,其中的细节就挺麻烦,需要仔细去做。

  Function chaname() As Boolean

 Dim searchname As String

 Dim tmpperson As personinfo

  searchname = Text1.Text

 If searchname = "" Then Text1.SetFocus Exit Function End If

  searchname = Trim(searchname)

  found1 = False

  For recnum = 1 To glastrecord

 Get #gfilenum, recnum, tmpperson

 If Left(Trim(tmpperson.name), Len(searchname)) = searchname Then

 found1 = True

 Exit For

 End If Next

  chaname = found1

  End Function 对于这样的一个按姓名查找函数,有很多问题要注意,eg:即使文件中有查找人的信息,如果输入的查找的姓名前有空格,则不能找到。为什么呢?因为他们不匹配,这样我们必须要删除前面的空格,使用 trim 函数,理论上这是可以的,但如果我用它再运行,设置断点查询,还是有错误的,这样我不得不想到这样一个办法 Left(Trim(tmpperson.name), Len(searchname)) = searchname 这样如果成立就可以了 ……… ……………………………………………………………………………………………………… 由于时间和能力问题,我的程序可能不完美,不完善,但这都是我自己的辛苦努力。没有抄袭别人的 这次课程设计让我学到了很多,编程并不是想象中的那样好玩,那样轻松,但是既然下定决心去走 IT 这条路,这是第一关。我想在以后的学习中,我会不断学习,完善自己的能力。

推荐访问:课程实践报告 实践 课程 报告

版权所有:同博文库网 2019-2025 未经授权禁止复制或建立镜像[同博文库网]所有资源完全免费共享

Powered by 同博文库网 © All Rights Reserved.。滇ICP备19003725号-4