发布时间 : 星期日 文章数据结构课程设计报告 手机个人通讯录信息管理系统正文终稿更新完毕开始阅读
MessageBox(\使用帮助:\\n1.第一次使用时,请先新建一个组;\\n2.新建联系人时,须先选择分组;\\n3.重名联系人请在姓名加以区分,如:张三1、张三2;\\n如有其他问题,请Email:hhq1242400012@163.com;\}
void CPhoneBookDlg::OnEnChangeEdit16() {
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码 }
void CPhoneBookDlg::OnCbnDropdownCombo2() {
// TODO: 在此添加控件通知处理程序代码 Combo2.ResetContent();
for (int i = 0; i < phonebook.numberofgroup; i++)
Combo2.InsertString(i, phonebook.group[i + 1].name); }
void CPhoneBookDlg::OnBnClickedButton11() {
// TODO: 在此添加控件通知处理程序代码 char key[25]; int g, c;
CEdit_move.GetWindowTextA(key, 25); if (key[0] != '\\0')
if (Combo2.GetCurSel() + 1 != 0) {
if (phonebook.SearchContactName(key,g,c)) {
if (phonebook.group[Combo2.GetCurSel() + 1].AddContact(key,
phonebook.group[g].contact[c].phonenumber, phonebook.group[g].contact[c].city, phonebook.group[g].contact[c].remark)) {
phonebook.group[g].DeleteContact(c);
phonebook.group[Combo2.GetCurSel() + 1].Order(); UpdateTree();
MessageBox(\移动成功!\ } else
MessageBox(\目标组已满!\ } else
MessageBox(\没有找到该联系人!\ } else
MessageBox(\请选择移动到的分组!\ else
MessageBox(\请输入要移动的联系人!\}
void CPhoneBookDlg::OnBnClickedButton12() {
// TODO: 在此添加控件通知处理程序代码 char key[25];
CEdit_sn.GetWindowTextA(key, 25); if (phonebook.DeleteContact(key)) {
MessageBox(\删除成功!\ UpdateTree(); } else
MessageBox(\删除失败!\ Ctree.SelectItem(NULL);
CEdit_edit0.EnableWindow(0); }
4.3.2 邢伟的设计实现
我设计了查找和排序功能,以及文件的操作功能,实现如下:
void Group::HeapAdjust( int s, int m) //HeapAdjust() sub-function {
int j;
Contact temp;
temp = contact[s];
for (j = 2 * s; j <= m; j *= 2) {
if (j if (!(strcmp(temp.name,contact[j].name)<0)) break; contact[s] = contact[j]; s = j; } contact[s] = temp; } //HeapAdjust() end int Group::Order() { int i; Contact temp; for (i = numberofmenber / 2; i>0; --i) HeapAdjust( i, numberofmenber); for (i = numberofmenber; i>1; --i) { temp = contact[1]; contact[1] = contact[i]; contact[i] = temp; HeapAdjust( 1, i - 1); } return 1; } int PhoneBook::order() { int i, j; for (i = 2; i <= numberofgroup; ++i) if (strcmp(group[i].name,group[i-1].name) <0) { group[0] = group[i]; for (j = i - 1;strcmp(group[0].name,group[j].name)<0 ; --j) group[j + 1] = group[j]; group[j + 1] = group[0]; } return 1; } int PhoneBook::SearchGroup(char *key) { int mid, low = 1, high = numberofgroup; while (low <= high) { mid = (low + high) / 2; if (strcmp(key, group[mid].name) == 0) { return mid; } else if (strcmp(key, group[mid].name)<0) high = mid - 1; else low = mid + 1; } return 0; } int PhoneBook::SearchContactName(char * key, int &g, int &c) { for (g = 1; g <= numberofgroup; g++) if ((c = group[g].SearchContactName(key)) != 0) { return 1; break;