《北京邮电大学 计算机实习报告.docx》由会员分享,可在线阅读,更多相关《北京邮电大学 计算机实习报告.docx(12页珍藏版)》请在三一办公上搜索。
1、北京邮电大学 计算机实习报告北京邮电大学 计算机实习报告 第一题: 设计一个程序,可输入文本,和加载txt格式的文本,统计输入或加载文本中出现频率最高的3个字或字母,并显示出现次数。 1、设计流程 开始选择输入或加载文本统计字符输出显示结束2、软件设计结果图 导入已有的txt文档的结果展示图 已有的TXT文本 手动输入统计结果展示图 3、设计总结 本题要求实现字符统计,我先用c+实现了题目所需的要求,之后再将其写入到QT中,并在QT中完成界面的设计。在用c+实现该程序的过程中用到了输入流来载入文本,并将字符存储在链表中,之后用了遍历法统计相同字符出现的次数,之后再用冒泡排序法将统计好的字符排序
2、,以下是实现的关键代码。 /统计相同字符出现的次数 voidImgProcessor:FindItem(QList&list) QList:iteratora; QList:iteratorb; a=list.begin; while(a!=list.end) b=a+1; while(b!=list.end) if(b-data=a-data) a-counter+; b=list.erase(b); elseb+; a+; /按照出现的次数排序 voidImgProcessor:SortList(QList&list) for(inti=0;ilist.length-1;i+) for(i
3、ntj=i+1;jlist.length;j+) if(listi.counterlistj.counter) list.swap(i,j); 第二题: 矩阵计算器:输入两个行列式,完成行列式的加法,减法和乘法。 1、设计流程 开始 输入行列式行数列数 判断 计算 输出 结束 2、软件设计结果图 操作结果图 3、设计总结 本题要求实现矩阵的运算,我采用的是C+编程实现,题目要求实现矩阵的加减和乘法,而为了使矩阵的运算更加完善,我又添加了关于矩阵的转置的实现的算法。再用C语言编程过程中,我先定义了关于矩阵加法,减法,乘法,转置实现的三个函数,之后再在主函数中调用以实现矩阵运算要求,以下为各函数关
4、键代码。 /加法实现代码 for(i=0;im;i+) for(j=0;jn;j+) cij=aij+bij; printf(%.2f ,cij); printf(n); /减法实现代码 for(i=0;im;i+) for(j=0;jn;j+) cij=aij-bij; printf(%2f ,cij); printf(n); /乘法实现代码 for(i=0;in;i+) for(j=0;jm;j+) scanf(%4f,&bij); for(i=0;im;i+) for(j=0;jm;j+) s=0; for(k=0;kn;k+) s=s+aik*bkj; cij=s; for(i=0;i
5、m;i+) for(j=0;jm;j+) printf(%.2f ,cij); printf(n); /转置运算的关键代码 for(i=0;im;i+) for(j=0;jn;j+) scanf(%f,&aij); for(i=0;im;i+) for(j=0;jprogressBar-setValue(100-m_time*100/total_time); ui-progressBar_2-setValue(100-m_time*100/total_time); /传递给模拟时钟 /ui-widget_6-time(m_time); /绘制数字时钟 ui-widget_h-setPalett
6、e(paletteh/10); ui-widget_h_1-setPalette(paletteh%10); ui-widget_m-setPalette(palettem/10); ui-widget_m_1-setPalette(palettem%10); ui-widget_s-setPalette(palettes/10); ui-widget_s_1-setPalette(palettes%10); /修改托盘提示以显示剩余时间 QStringstr,strh,strm,strs; strh.setNum(h); strm.setNum(m); strs.setNum(s); if(
7、h=0) if(m!=0) str=还剩+strm+分+strs+秒; else str=还剩+strs+秒; else str=还剩+strh+小时+strm+分+strs+秒; 第五题: 图像编码、解码恢复软件 手绘单条曲线,读取鼠标事件获得坐标值,设置采样间隔,将曲线进行采样、量化、编码并存储。可读入已有编码数据并描点连线恢复原曲线。 1、设计流程 开始监控鼠标记录位置编码存储读取文件恢复图像结束2、软件设计结果图 操作结果图 存储的数据 可设置采样时间 3、设计总结 本题我是用Java编程实现的,通过Java里面的鼠标事件,对鼠标进行采样并编码存储在data文件中,之后通过打开data
8、文件直接实现对所绘图样的重绘。设置的默认的采样间隔为10s,同时亦可在人为修改采样间隔。以下为绘图及采样编码解码的主要代码。 publicvoid paint(Graphics g) /绘图方法 if( judge = 1) if(first != null&last != null) /绘图 g.setColor(Color.WHITE); g.drawLine(first.x, first.y, last.x, last.y); first = last; elseif(e.getSource=button_open) /打开 JFileChooser jfc=new JFileChoos
9、er(.); jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES ); jfc.showDialog(new JLabel, 选择); java.io.File file=jfc.getSelectedFile; if(file.isDirectory) new wrong(请选择txt格式文件); elseif(file.isFile) if(file.getName.endsWith(.txt) ) if(file.getName.endsWith(.txt) ) try catch(IOException ex) dat
10、a=; FileReader fr=new FileReader(file); BufferedReader br = new BufferedReader(fr); String line; while(line=br.readLine)!=null) data=data+line; else new wrong(请选择txt格式文件); canvas.setJudge(2); canvas.repaint; 第六题: 兑奖算法 问题描述 设兑奖方式为:从1 到22 选出5 个不重复的数a0,a1,a2,a3,a4,而主办方开出5 个号码P0、P1、P2、P3、P4,外加一个特别号P5,得奖
11、方式如下: 头等奖:5 个号码完全相同,即a0,a1,a2,a3,a4= P0,P1,P2,P3,P4。 二等奖:a0,a1,a2,a3,a4中有4 个号码出现在 P0,P1,P2,P3,P4,另一个号码等于P5。 三得奖:a0,a1,a2,a3,a4中有4 个号码出现在 P0,P1,P2,P3,P4,另一个号码不等于P5。 四等奖:a0,a1,a2,a3,a4中有3 个号码出现在 P0,P1,P2,P3,P4。 五等奖:a0,a1,a2,a3,a4中有2 个号码出现在 P0,P1,P2,P3,P4。 问题是:根据投注情况,求出中奖的注。 2. 基本要求 设计投注的数据结构。 设计投注方式:键
12、盘输入或从文件输入等。 设计求解中奖注的算法。 输出中奖注。 输入随机注,判断是否中奖,中几等奖。 1、设计流程 1开始生成中奖数组输入投注234对比判断输出中奖结果结束562、软件设计结果图 手动键入投注结果展示图 文本读取输入投注号结果展示图 文本中的数据 3、设计总结 本题我是用C+编程实现,之后将程序载入QT中,并用QT编写了界面。在实现时用到了随机数产生函数rand,通过将所产生的随机数除以22取余数的方法来产生中奖号码,之后将其与所输入的投注号码比较来判定是否中奖。同时也用到了C+中的输入输出流来实现文件数据输入投注号码,并判断是否中奖。以下为产生中奖号码的主要程序。 /产生随机数
13、并显示在“官方号码”栏中 voidLottery:Produce_rand QTimetime; time=QTime:currentTime; qsrand(time.msec+time.second*1000); do p0=qrand%22; while(p0=0); do p1=qrand%22; while(p1=0|p1=p0); do p2=qrand%22; while(p2=0|p2=p0|p2=p1); do p3=qrand%22; while(p3=0|p3=p0|p3=p1|p3=p2); do p4=qrand%22; while(p4=0|p4=p0|p4=p1|p4=p2|p4=p3); do p5=qrand%22; while(p5=0|p5=p0|p5=p1|p5=p2|p5=p3|p5=p4); ui-officialNum-setText(QString:number(p0)+QString:number(p1)+QString:number(p2)+QString:number(p3)+QString:number(p4)+QString:number(p5)+);
链接地址:https://www.31ppt.com/p-3337591.html