程序设计专题实验题目汇总信息.doc_第1页
程序设计专题实验题目汇总信息.doc_第2页
程序设计专题实验题目汇总信息.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“程序设计专题实验”说明书一、 实验目的:通过实验培养学生程序设计综合应用能力,使学生理论联系实际,提高学生分析问题、解决问题能力,锻炼学生的动手能力;二、 实验要求:自学相关内容,推荐教材:(Visual C+与面向对象程序设计教程高教出版社 刘路放编著),为实验做好准备。实验中以组为单位,每组五人,设小组长一名。组长的任务:分配任务,组织小组讨论、交流。每位组员都要认真阅读下发的实验题目,按题目要求编写程序、上机调试。验收时由指导老师在组内随机指定本组每位组员所需演示的题目。最后,按组提交一份实验报告。三、 上机环境:Turbo C、Win_TC、VC+ +。四、 参考资料:88 第一部分 实验报告一、封面内容:1 标题:程序设计专题实验报告2 学号、姓名、班级: 3 实验指导教师:4 实验地点:5 实验结束日期:6 联系电话:二、实验报告内容及要求:1)正文内容:实验任务:即实验题目;实验内容:即题目所涉及到的知识点概述;程序的算法描述:实验一、二、三、四采用标准的流程图或NS图描述,实验五、六、七、八采用关键程序片段加文字注释说明的方式描述;程序运行结果:原始运行结果(请注意在实验过程中保留运行结果的数据和运行演示界面);2)实验总结:通过实验,你有哪些收获?对实验题目有什么意见和建议?你认为专题实验课应如何开设?,你有什么好的意见和建议?3)致谢词;4)参考文献。要求认真撰写实验报告,并打印装订成册。第二部分 成绩评定一、 要求每组学生独立完成实验,严禁抄袭,一经发现实验成绩0分记;二、评分标准:每个学生的成绩由小组得分加上个人得分,其中小组得分总分为60分,个人得分总分为40分。小组得分(总分60分)小组得分从以下几个方面进行考核:第一项 项目完成情况(20分),考核范围:是否能成功演示,附加功能是否实用而丰富,界面是否美观大方,代码是否规范清晰,技术文档是否符合要求。第二项 实训过程的学习表现(20分),考核范围:小组成员之间的合作情况,整个小组的学习氛围,小组的精神状态,小组的学习是否积极主动,等等。第三项 演示的能力展示(20分),考核范围:演示者的表现,比如,程序讲解是否清楚?功能演示是否到位?演示中是否出现了BUG,等等。个人得分(40分)个人得分从以下几个方面进行考核:第一项:学习是否积极主动第二项:技术实力体现得分第三项:学习状态与上机情况第四项:与同学和老师的交流情况(以上总分为40分)第三部分 实验题目说明:实验一至实验四 用C语言实现,四道题中选做三道题;实验五 用C+语言基于面向对象的方式实现;实验六 用Visual C+环境基于文档或者对话框的方式实现实验一银行卡管理。问题描述:某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款” 或“取款” 业务。程序中用数组cardMN+3中的每一行存放一张储蓄卡的有关信息,其中;cardi0 存放第i张卡的卡号;cardi1 存放第i张卡的余额;cardi2 存放第i张卡的当日业务实际发生笔数;cardi3cardiN+2存放第i张卡的当日存取款金额,正值代表存款,负值代表取款。当持卡者输入正确的卡号、存款或取款金额后,程序进行相应的处理;若输入了不正确的数据,程序会提示持卡者重新输入;若输入的卡号为负数时,银行终止当日业务。并将当天每张卡的银行业务存到文件中。实验二字符串变换与复原问题描述:编写程序,实现字符串的变换功能,其中,函数encode()和decode()分别实现对字符串的变换和复原。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:(1) 若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。(2) 若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。(3) 若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括后继字符是一个数字字符)重复赋值n+1次到新字符串中。(4) 以上述一次变换为一组,在不同组之间另插入一个下划线字符_用于分割。例如:encode()函数对字符串26a3t2的变换结果为66_a_tttt_2。复原函数decode()做变换函数encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中略过变换函数为不同组之间添加一个下划线字符。假定调用变换函数encode()时的已知字符串不包含下划线字符。主函数负责字符串的输入,以及变换后的字符串的输出。实验三统计单词问题描述:编写程序,要求:从正文文件Text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现的次数输出到正文文件Word.out中。实验四关于链表问题描述:编写程序,要求:实现将任意输入的整型数据用链表结构存储,输出时按从小到大的顺序输出。链表的类型定义如下:struct node int data; /*整型数据*/ struct node *link; /*指针,指示出下一个结点*/);实验五简单蜂窝移动通信系统演示问题描述:典型的蜂窝移动通信系统通常包含移动台和基站。移动台包括手机、PDA、笔记本电脑等可以在移动中进行通信的设备。基站则是运营商设置的位置相对固定的设备,实现和移动台进行信息交互以及对移动台的管理等功能。本题给出的是在某种特定形式下的一种简单的通信系统组成。移动台由键盘、屏幕、芯片等组成。键盘是一个类,属性有:按键个数(KeyNum)、按键宽度(width),按键高度(height)、颜色(color)。屏幕是一个类,属性有:屏幕宽度(width),屏幕高度(height)、颜色(color)、分辨率(Resolution)、类型(type)。芯片是一个类,属性有类型(type)、宽度(width),高度(height)、处理速度(speed)。移动台还具有的属性有:号码(ID)、通信模式(model)等、移动速度(velocity)、运动轨迹(Trace)(比如圆形或者直线运动)、频率(frequency)、水平/垂直坐标(x,y)、绘制自己的方法(draw)。基站的属性有:水平/垂直坐标(x,y)、高度(height)、类型(type)、数据速率(DataRate)、覆盖半径(Circle)、绘制自己的方法(draw)。移动台处于移动的状态中,基站需要实时计算它和移动台之间的距离,来和移动台进行信息交互。基本要求:请结合上面的陈述,发挥想象力,用面向对象的思想设计一个具有1个基站、6个移动台的简单的蜂窝移动通信系统模型,其中移动台生成一个对象链表。移动台至少有手机、PDA、笔记本电脑三种类型,这三种类型都以移动台类为父类。程序可以根据各个对象的坐标自定义画出每个对象的图标,每类对象的图标要有所区别。这里假设每个移动台的移动范围在某个圆形区域内,请为每类移动台都设定运动范围,比如笔记本电脑的运动范围通常小于手机的运动范围。当基站发现移动台超出运动范围时,会和移动台进行信息的交互,例如给移动台发出警报信息,请用消息传递机制实现这个交互过程。扩展要求(选做):请演示移动台在界面上的动态运动过程。例如原型运动或直线运动。请设计具有多个基站、更多移动台的系统,背景请画出正六边形的蜂窝拓扑。请设计界面更为美观、功能更加完善的蜂窝移动通信系统模型。实验六学生成绩统计管理。问题描述:用VC+可视化开发平台实现一个本班成绩管理与统计程序,要求界面友好,简洁大方,方便使用。程序的功能要求如下:(1) 支持对话框形式的学生信息与课程成绩的录入、修改和删除;(2) 计算本班每一位同学的学分成绩GPA( grade point average) 并排名,以此作为奖学金评定的参考依据;(3) 对某一门课程,按照优(90-100)/良(80-89)/中(70-79)/及格(60-69)/不及格(60分以下)五档进行划分,统计在每一档的学生人数和百分比例,并画出相应的饼图或直方图。(4) 支持以文本格式导出学生的成绩记录,支持从文件中导入学生成绩记录;(5) 其他成绩管理与统计所需的功能,可按自己的预想进行扩展。(6) 演示时的模拟数据不少于15人;实验七建立单向循环链表问题描述:编号是1,2,,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,则正确的输出是什么?输入数据:处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。输出形式:建立一个输出函数,将正确的序列输出。实验八 通讯录实验要求:用VC+的MFC进行面向对象与可视化的程序设计(避免使用数据库)实现通讯录小程序,具体要求如下:1界面友好,美观大方;2支持信息的录入,以本班同学的信息为依据(姓名、手机号、住址);3给该程序设计一个美观且令人喜爱的图标、设计一个个性化的标题;4支持对已录入信息的浏览、增加、删除、修改、查询等功能;5. 其他更多功能,可根据个人喜好自行添加。实验九 五子棋游戏实验要求:用VC+实现五子棋游戏的小程序,棋盘为纵横19条线组成的正方形网格,棋子就防在线的交叉点上。棋子分两色,呈圆片状;五子棋游戏规则:双方各执一色棋子,轮流下子(将子放在棋盘的任一空交叉点上),直到有一方的棋子有5个排成一线(无论是横向、竖向还是斜向均可),则棋局结束,该方胜利。遵循五子棋游戏的基本规则,能够方便地用鼠标进行游戏操作,并有友好的游戏说明,具体要求如下:1双方所使用的两色圆形棋子和彩色棋盘显示得体大方,比例恰当;2双方轮流用鼠标下子。只有当鼠标单击在棋盘网格交叉点附近时才可下子,点击其他地方及已有子的位置不能下子,且给出相应提示;3在适当位置可显示若干提示信息,包括轮哪方下子、已落的棋子数、重玩等;4可正确判断和显示比赛结果,比赛中能随时存储当前棋局;本实验要求分两个实现层次,可根据各小组的实际情况完成。对扩展要求的实现将会提高本题的得分。 基本要求:能够完成上述功能要求,实现五子棋游戏,供两人对弈;扩展要求:按照个人经验和兴趣,增强游戏的界面和功能,如改变棋子(圆片)的色彩、限时、趣味功能等。第 10 页 共 10 页附源代码:实验三统计单词#include#include#include#includestruct wordschar ptr15;int count;struct words *link;void write(struct words *);struct words *myread();struct words *creathead(struct words *,char temp15);struct words *insert(struct words *,char temp15);void print(struct words *);void main()struct words *head;head=myread();print(head);write(head);struct words *myread() FILE *fp;struct words *head=NULL;char temp15,ch;int flag,i; flag=i=0; puts(run myreadn); fp=fopen(Test.txt,r);if(fp=NULL)printf(can not open the file1n);exit(0);while(!feof(fp)ch=fgetc(fp); if(isalpha(ch) /判断是否为字母flag=1; /标志是否还在访问这个单词if(isupper(ch) ch=tolower(ch); tempi=ch;i+;else flag=0;if(!flag & i)tempi=0; head=insert(head,temp); i=0;fclose(fp);return head;struct words *insert(struct words *head,char temp15)struct words *p1,*p2,*pn; if(head=NULL)head=creathead(head,temp);else if(strcmp(temp,head-ptr)link;if(strcmp(temp,p1-ptr)=0)(p1-count)+;return head;else if(strcmp(temp,p2-ptr)ptr,temp);pn-count=1;p1-link=pn;pn-link=p2;return head;else p1=p1-link;while(p1-link!=NULL);if(strcmp(temp,p1-ptr)=0)(p1-count)+;elsepn=(struct words *)malloc(sizeof(struct words

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论