⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phonebook.m

📁 matlab从入门到精通第13章书后源码对初学者很有帮助
💻 M
字号:
function phonebook(varargin)
% 确定数据的目录和完整文件名
% 电话本文件名称myphonebook
% 调用java.lang.System的静态方法getProperty来获取电话本的目录
% 默认情况下为用户的当前工作目录
% 否则,使用MATLAB的getenv函数来确定目录,使用系统变量HOME来确定文件名
pbname = 'myphonebook'; 
if ispc
   datadir = char(java.lang.System.getProperty('user.dir'));
else
   datadir = getenv('HOME');
end;
pbname = fullfile(datadir, pbname);
% 如果文件不存在,则通过java.io.FileOutputStream创建一个新的输出文件流
if ~exist(pbname)
   disp(sprintf('Data file %s does not exist.', pbname));
   r = input('Create a new phone book (y/n)?','s');
   if r == 'y',
      try
         FOS = java.io.FileOutputStream(pbname);
         FOS.close
      catch
         error(sprintf('Failed to create %s', pbname));
      end;
   else
      return; 
   end;
end;
% 利用java.util.Properties创建一个电话本的hash表
pb_htable = java.util.Properties;
% 创建文件输入流
try
   FIS = java.io.FileInputStream(pbname);
catch
   error(sprintf('Failed to open %s for reading.', pbname));
end;
% 加载电话本中的电话,并关闭文件输入流
pb_htable.load(FIS);
FIS.close;
% 显示操作菜单,捕获用户的选择
while 1
   disp ' '
   disp ' Phonebook Menu:'
   disp ' '
   disp ' 1. Look up a phone number'
   disp ' 2. Add an entry to the phone book'
   disp ' 3. Remove an entry from the phone book'
   disp ' 4. Change the contents of an entry in the phone book'
   disp ' 5. Display entire contents of the phone book'
   disp ' 6. Exit this program'
   disp ' '
   s = input('Please type the number for a menu selection: ','s');
% 触发操作函数进行电话本操作
switch s
    % 查找用户输入的姓名
   case '1',
      name = input('Enter the name to look up: ','s');
      if isempty(name)
         disp 'No name entered'
      else
         pb_lookup(pb_htable, name);
      end;
    % 添加一个用户
   case '2',
      pb_add(pb_htable);
    % 删除一个用户
   case '3',
      name=input('Enter the name of the entry to remove: ', 's');
      if isempty(name)
         disp 'No name entered'
      else
         pb_remove(pb_htable, name);
      end;
    % 改变电话本记录
    case '4',
      name=input('Enter the name of the entry to change: ', 's');
      if isempty(name)
         disp 'No name entered'
      else
         pb_change(pb_htable, name);
      end;
    % 显示所用电话本用户记录
    case '5',
      pb_listall(pb_htable);
    % 关闭操作
     case '6',
      try
         FOS = java.io.FileOutputStream(pbname);
      catch
         error(sprintf('Failed to open %s for writing.',... 
                         pbname));
      end;
      pb_htable.save(FOS,'Data file for phonebook program');
      FOS.close;
      return;
   otherwise
      disp 'That selection is not on the menu.'
   end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -