我的学期项目是编写电话簿程序。我已经完成3/4,但是我需要创建一个Modify函数,以便能够修改链表中的记录。我的问题是,在电话簿中,可能有多个人具有相同的名字,但其他电话号码相同。
在我的函数中,程序要求输入想要修改的名称,但是如果有人搜索一个以上存在的名称,那么我如何才能在它们之间进行选择,其中哪个是想要的人?
我的链表结构:
typedef struct szemely {
char *veznev;
char *kernev;
char *telnum;
char *varos;
struct szemely *next;
} Person;
答案 0 :(得分:0)
显示可能选择的列表,并让操作员在终端中通过数字或其他界面选择方法(按钮,链接,复选框等)选择哪个。
程序将定位到什么界面?
答案 1 :(得分:0)
modify
函数根本无法处理搜索。您将需要(想要)一个单独的函数来进行名称搜索,将其命名为person_lookup
之类。
您想做几件事。
伪代码:
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;
正如我所说,这是伪代码,并不完全正确-但这应该可以给您一个想法,或者(希望)使您走上正确的道路。