perl期末考试大作业(3)

2019-04-13 21:28

2.2、对1中编写的程序采用子程序进行优化,并阐述子程序输入输出和内部算法实现的理由和心得(10分)。

一、解题思想

本做法主要是对于题2.1中运用子程序进行优化……,并且采用子程序的实现也有利于提高代码的可读性。

二、实现过程: 核心代码:

while ( ( $foundAt = index( $string,$tags,$offset ) ) > -1 ) {

$positions{ $foundAt } = $label++; $offset = $foundAt + 1; } print\

foreach ( 0 .. length( $string ) - 1 ) {

print $positions{ $_ } ? \ }

print \

foreach ( 0 .. length( $string ) - 1 ) {

print $positions{ $_ } ? $positions{ $_ } : \ } } 程序代码:

#!/usr/bin/perl

print\上传序列文件到d:盘中的perl下面,输入序列的文件名:\\n\$b=;

open(FILE,\while() {

chomp;

$string .=$_; }

print\

print \输入你想查找的酶切位点:\\n\chomp($tags=);

print \我们将标记每一个酶切位点$tags:\\n\print\

10

&meiqie_site($string,$tags); sub meiqie_site {

my($strings,$tags)=@_; my $foundAt = 1; my $offset = 0; my $label = 1;

while ( ( $foundAt = index( $string,$tags,$offset ) ) > -1 ) {

$positions{ $foundAt } = $label++; $offset = $foundAt + 1; } print\

foreach ( 0 .. length( $string ) - 1 ) {

print $positions{ $_ } ? \ }

print \

foreach ( 0 .. length( $string ) - 1 ) {

print $positions{ $_ } ? $positions{ $_ } : \ } }

测试结果输出见图2-2:

图2-2:子程序优化2-1题测试输出 心得体会:

11

当然第一题如果做出来了的话,这道题就简单多了,只需要加一个子程序,通过对子程序的调用,将需要的参数传进去就好了,其他的什么也不用做。但是在做这道题的时候还是改了很久。因为做第一题的很多地方都不是很人性化,所以就加了一些个人的元素进去,能够自动的上传文档,然后就可以对任意序列进行分析。

2.3、进一步完善上面的程序,编写的系列酶切酶管理程序,实现酶切酶信息的添加、删除和修改,并简述理由和心得(20分)。

一、解题思想

本题中的要求实现添加、删显示功能,该子程序通过两层的循环实现二维数组的输出。count功能,该子程序使用index函数和while循环来实现位点信的不断循环运行,并提示用户可以通过相应的操作来退出程序。 二、实现过程: 核心代码:

if($c==1) {

print\输入你想增加的酶切位点名字:\\n\ chomp($d=);

print\输入对应的酶切位点的序列:\\n\ chomp($e=);

print\加入的酶切位点为:\\n\ $name{\

while(($f,$num)=each (%name)) {

$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}

print\ goto here; }

elsif($c==2) {

print\输入你想修改的酶切位点名字:\\n\ chomp($d=);

print\输入想改的酶切位点的序列是:\\n\ chomp($e=);

print\修改后的酶切位点:\\n\ $name{\

while(($f,$num)=each (%name))

12

{

$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}

print\ goto here; }

elsif($c==3) {

print\输入你想删除的酶切位点名字:\\n\ chomp($d=);

print\输入删除的酶切位点的序列:\\n\ chomp($e=); $name{\

print\删除后酶切位点结果为:\\n\ delete($name{\

while(($f,$num)=each (%name)) {

$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}

print\ goto here; }

if($c==4) {

print\显示所有的酶切位点:\\n\ foreach (keys %hash) { $i++; print \ \\n\ }

while(($f,$num)=each (%name)) {

$m=&meiqie_site($string,$num); printf(\ $f $num \\n\ }

print\ goto here; }

if($c==5)

13

{

print\退出系统,谢谢使用!\}

程序代码:

#!/usr/bin/perl

print\上传序列文件到d:盘中的perl下面,输入序列的文件名:\\n\$b=;

open(FILE,\while() {

chomp;

$string .=$_; }

print\

print\欢迎来到酶切位点管理系统!\\n\ my %hash=(\=>\=>\=>\=>\=>\=>\

my @Tagged =keys %hash; #存放酶切位点的键值 $i=-1; here:

print\输入1增加酶切位点;\\n\print\输入2修改酶切位点;\\n\print\输入3删除酶切位点;\\n\

print\输入4显示所有的酶切位点;\\n\print\输入5推出酶切位点管理系统\\n\print\选择你需要的服务序号(1-5):\\n\chomp($c=); if($c==1) {

print\输入你想增加的酶切位点名字:\\n\ chomp($d=);

print\输入对应的酶切位点的序列:\\n\ chomp($e=);

print\加入的酶切位点为:\\n\ $name{\

while(($f,$num)=each (%name)) {

$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}

print\

14


perl期末考试大作业(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:防汛抗洪知识竞赛题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: