我的学期项目是为电话簿编写一个程序。我已经完成了3/4,但我需要创建一个修改函数,以便能够修改链接列表中的记录。我的问题是,在电话簿中,有可能不止一个人有相同的名字,但有其他的电话号码。
在我的函数中,程序会询问要修改的名字,但如果有人搜索一个存在不止一次的名字,那么我如何在他们之间做出选择,他们中的哪一个是通缉犯?
我的链表结构:
typedef struct szemely {
char *veznev;
char *kernev;
char *telnum;
char *varos;
struct szemely *next;
} Person;
显示一个可能的选择列表,并让操作员在终端中按数字或通过其他界面选择方法(按钮、链接、复选框等(选择哪一个。
该程序的目标界面是什么?
modify
函数根本无法处理搜索。您需要(想要(一个单独的函数来进行名称搜索,称之为person_lookup
或其他什么。
有几件事你想做。
- 按姓名查找人员
- 向用户显示查找结果
- 接受用户选择(即用户将从编号列表中选择一个人(
- 修改用户选择的那个人的信息
psuedo代码:
struct Person *person;
struct Person *persons;
/* return a list of names or NULL if none are found */
persons = lookup_person(name)
if (persons is NULL)
handle_no_results_found && return;
/* user_selection_from() will display the matched lookup names
* as a numbered list. The user will select a number from the
* list that corresponds to a name.
*/
person = user_selection_from(persons);
/* the user didn't select a name from the list */
if (person is NULL)
handle_no_user_selection && return;
/* modify the person the user selected */
error = modify(person);
if (error)
alert_user_unable_to_modify_person;
正如我所说,这是psuedo代码,并不完全正确,但它应该给你一个想法,或者(希望(让你走上正确的道路。