📄 phonebook.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 + -