C++课程设计报告Word格式文档下载.docx
《C++课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
目录
1课题目标
程序基本功能:
一个基本的电话簿管理程序,具有插入、删除、显示、修改和查询联系人电话号码的功能。
课程设计要求:
(1)增加记录修改功能(姓名和电话号码)。
(2)增加显示功能(对链表提供逐屏显示选择而且可以由用户确定每屏显示数目)。
(3)汉化菜单和帮助。
(4)程序的结构改写,采用双链表结构,用类和对象重建系统。
评定难易级别:
A级
2程序具体实现原理
2.1总体方案
(1)程序采用双向链表数据结构实现。
(2)用类来实现数据的封装。
(3)使用文件的输入输出流实现对记录的保存与读取。
2.1.1开发平台
操作系统:
Win7
开发软件:
MirosoftVisualC++6.0
2.1.2基本原理
2.2程序各个功能说明
2.2.1程序结构
1.类的封装:
classFriend_node
{
public:
charname[35];
charphone_number[15];
Friend_node*next;
voidwrite_list_to_file();
voidload_list_from_file();
voidadd_record();
voiddelete_record();
voidchange_record();
voidadd_change_record(Friend_node*new_record_ptr);
voidsearch_record();
voiddisplay_all_records();
voidhelp();
voidmain_menu();
voidhelp_menu();
voidinsert_node(Friend_node*new_record_ptr);
voidmake_node_new_head(Friend_node*new_record_ptr);
voidadd_node_to_end(Friend_node*new_record_ptr);
voidmove_current_to_end();
voiddelete_node(Friend_node*previous_ptr);
voiddelete_head_of_list();
voiddelete_end_of_list(Friend_node*previous_ptr);
voiddelete_from_middle_of_list(Friend_node*previous_ptr);
intverify_delete();
voiddelete_list();
};
2.2.2课程设计要求的实现
1.用类Friend_node重建系统;
2.增加了函数change_record()用于修改联系人资料,利用了原来的删除功能delete_record()和添加功能add_record()进行对原有资料的修改;
//修改联系人资料//
voidFriend_node:
:
add_change_record(Friend_node*new_record_ptr)
Friend_node*previous_ptr;
previous_ptr=NULL;
delete_node(previous_ptr);
cout<
<
"
输入新姓名:
endl;
cin>
>
new_record_ptr->
name;
输入新电话号码:
phone_number;
insert_node(new_record_ptr);
}
change_record()
Friend_node*new_record_ptr;
new_record_ptr=newFriend_node;
system("
cls"
);
charsearch_string[35];
current_ptr=head_ptr;
输入你想要修改的联系人姓名:
search_string;
while((current_ptr!
=NULL)&
&
(strcmp(current_ptr->
name,search_string)!
=0))
{
current_ptr=current_ptr->
next;
}
if(current_ptr!
=NULL)
cout<
\n找到联系人!
\n"
;
姓名"
"
联系电话"
****************************************"
current_ptr->
name<
phone_number<
add_change_record(new_record_ptr);
else
联系人不存在"
按下回车键回到主菜单"
getchar();
main_menu();
3.在原有的显示功能的基础上添加了一个计数器person_count来实现逐屏显示的功能并可以设定显示数目;
//显示联系人//
display_all_records()
intperson_count;
inttemp_person_count=0;
charfullname[36];
每屏显示多少联系人?
person_count;
display:
********************************************"
for(temp_person_count=0;
current_ptr!
=NULL&
temp_person_count<
)
{
temp_person_count++;
strcpy(fullname,"
strcat(fullname,current_ptr->
name);
cout.setf(ios:
left);
cout<
setw(12)<
fullname;
cout.unsetf(ios:
right);
setw(24)<
current_ptr=current_ptr->
}
for(;
=NULL;
按下回车键进入下一页"
getchar();
system("
gotodisplay;
没有联系人!
4.菜单和帮助的汉化;
//主菜单//
main_menu()
main_menu:
intchoice;
********************主菜单********************"
**********************************************"
1-添加联系人;
2-删除联系人;
3-修改联系人资料;
4-显示所有联系人;
5-按姓名查找联系人;
6-帮助;
7-保存记录并退出程序。
请输入你想要执行的选项:
choice;
switch(choice)
case1:
system("
add_record();
break;
case2:
delete_record();
case3:
change_record();
case4:
display_all_records();
case5:
search_record();
case6:
help_menu();
case7:
write_list_to_file();
if(head_ptr!
delete_list();
default:
错误的选项!
getchar();
gotomain_menu;
//帮助//
help_menu()
help:
1-我的记录呢?
2-怎样可以清空记录?
3-什么时候会有新版本?
4-新版本会有些什么功能?
5-返回主菜单。
在当前目录下找到一个名为“Friends.dat”的文件。
如果找不到该文件可能是因为该文件