Qt通讯录课程设计报告.docx
- 文档编号:9402116
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:398.56KB
Qt通讯录课程设计报告.docx
《Qt通讯录课程设计报告.docx》由会员分享,可在线阅读,更多相关《Qt通讯录课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
Qt通讯录课程设计报告
南昌航空大学
信息工程学院
课题名称:
通讯录
学号:
_********
姓名:
________***************
日期:
_____2012-11-25_
****************__________
成绩:
_________________________
一、设计系统的目的意义………………………………………………3
二、系统需求、功能分析………………………………………………3
1:
系统需求………………………………………………………………………3
2:
功能分析……………………………………………………………………3-4
3:
系统结构图……………………………………………………………………4
三、详细设计………………………………………………………6-12
1、添加联系人…………………………………………………………………7
2、删除联系人………………………………………………………………8-9
3、显示所有联系人…………………………………………………………10
4、修改联系人………………………………………………………………11
5、查找联系人……………………………………………………………12
四、课程设计的心得…………………………………………………12
五、参考书目:
………………………………………………………12
2页
一、设计系统的目的意义
1、设计系统的目的
设计这个系统的目的是为了设计一个能够便捷使用的电子通讯录,能够方便的存储信息,可以将这个系统应用到手机或者其他电子设备中,方便的存储联系人,为方便查找联系人的各种信息提供方便。
2、设计系统的意义
电子通讯录系统没有使用纸张等,做到了环保,符合当今环保理念这个系统使用户能够方便快捷的使用存储和查找等优势功能,且具有较高的安全性,能够有效保护用户联系人资料。
二、系统需求及功能分析
系统需求
1、需要录入联系人到通讯录中;
2、能够对通讯录中各项信息进行查找修改删除排序等一系列操作;
3、能够完成通讯录的基本功能;
4、凡等候用户输入时,给出足够的提示信息;
5、程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。
对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入 ;
6、对删除数据应给出警告。
功能分析
1、录入功能:
选择此功能可以用户手动输入联系人各项信息;
2、查看功能:
选择此功能时可以选择根据各种信息查询联系人电话、住址、性别、邮箱、QQ等各项信息;
3、修改功能:
选择此功能时能够通过输入联系人姓名或者电话修改联系人的全部信息;
4、删除功能:
选择此功能时能够通过输入联系人姓名或者电话删除联系人的全部信息;
5、退出系统功能:
选择此功能时能够退出系统并保存数据。
功能结构图:
三、详细设计
3.1添加联系人的实现;
通过输入联系人的如下信息:
姓名、电话、QQ、邮编、地址,并把输入的信息保存对象的属性,创建或者打开文件,并向文件中写入新添加的联系人信息,运行如下:
代码实现如下:
voidAddressBook:
:
submitContact()
{
QStringname=ui->nameLine->text();
ContactListcontactlist;
contactlist.Address=ui->addressText->toPlainText();
contactlist.Email=ui->emailLine->text();
contactlist.Phone=ui->phoneLine->text();
contactlist.Info=ui->InfoEdit->toPlainText();
contactlist.Qq=ui->qqLine->text();
contactlist.Msn=ui->msnLine->text();
contactlist.Career=ui->careerLine->text();
contactlist.Company=ui->companyLine->text();
if(name=="")
{
QMessageBox:
:
information(this,
tr("姓名为空!
"),
tr("必须要输入姓名."));
return;
}
if(currentMode==AddingMode)
if(!
contacts.contains(name))
{
contacts.insert(name,contactlist);
QMessageBox:
:
information(this,
tr("添加成功!
"),
tr("\"%1\"已添加到通讯录中.").arg(name));
}
else
{
QMessageBox:
:
information(this,
tr("添加失败!
"),
tr("\"%1\"已存在于通讯录中.").arg(name));
return;
}
}
updateInterface(NavigationMode);
}
3.2删除联系人的实现
首先输入的姓名查找该用户,如果找到,触发删除按钮,则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息!
运行界面如下:
代码实现如下:
voidAddressBook:
:
removeContact()
{
QStringname=ui->nameLine->text();
ContactListcontactlist;
contactlist.Address=ui->addressText->toPlainText();
contactlist.Email=ui->emailLine->text();
contactlist.Phone=ui->phoneLine->text();
contactlist.Info=ui->InfoEdit->toPlainText();
contactlist.Qq=ui->qqLine->text();
contactlist.Msn=ui->msnLine->text();
contactlist.Career=ui->careerLine->text();
contactlist.Company=ui->companyLine->text();
if(contacts.contains(name))
{
intbutton=QMessageBox:
:
question(this,
tr("删除确认"),
tr("确认要删除\"%1\"?
").arg(name),
QMessageBox:
:
Yes|QMessageBox:
:
No);
if(button==QMessageBox:
:
Yes)
{
previous();
contacts.remove(name);
QMessageBox:
:
information(this,
tr("删除成功"),
tr("\"%1\"已经删除。
").arg(name));
}
}
updateInterface(NavigationMode);
}
3.23显示所有联系人的实现:
把文件中的各种信息读取并显示出来,一个一个显示联系人的详细信息。
运行界面如下:
代码实现如下:
voidAddressBook:
:
loadFromFile()
{
QStringfileName=QFileDialog:
:
getOpenFileName(this,
tr("打开通讯录文件"),
"",
tr("通讯录文件(*.txl);;所有文件(*)"));
if(fileName.isEmpty())
{
return;
}
else
{
contacts.clear();
QFilefile(fileName);
if(!
file.open(QIODevice:
:
ReadOnly))
{
QMessageBox:
:
information(this,
tr("无法打开文件"),
file.errorString());
return;
}
QDataStreamin(&file);
in.setVersion(QDataStream:
:
Qt_4_7);
while(!
in.atEnd())
{
ContactListcontactlist;
QStringname;
in>>name;
in>>contactlist.Address;
in>>contactlist.Email;
in>>contactlist.Info;
in>>contactlist.Phone;
in>>contactlist.Qq;
in>>contactlist.Msn;
in>>contactlist.Career;
in>>contactlist.Company;
contacts.insert(name,contactlist);
}
if(contacts.isEmpty())
{
QMessageBox:
:
information(this,
tr("文件中没有联系人"),
tr("你打开的文件中没有联系人。
"));
}
else
{
QMap
:
iteratori=contacts.begin();
ui->nameLine->setText(i.key());//显示姓名
ContactListcontactlist;
contactlist=i.value();
ui->addressText->setText(contactlist.Address);
ui->emailLine->setText(contactlist.Email);
ui->phoneLine->setText(contactlist.Phone);
ui->InfoEdit->setText(contactlist.Info);
ui->qqLine->setText(contactlist.Qq);
ui->msnLine->setText(contactlist.Msn);
ui->careerLine->setText(contactlist.Career);
ui->companyLine->setText(contactlist.Company);
}
}
updateInterface(NavigationMode);
}
3.4修改联系人模块
只要输入来联系人的名字,进行文件遍历查找到联系人的信息,而后进行修改。
运行界面如下:
代码实现如下:
elseif(currentMode==EditingMode)
{
if(oldName!
=name)
{
if(!
contacts.contains(name)){
QMessageBox:
:
information(this,
tr("修改成功!
"),
tr("\"%1\"已经修改。
").arg(oldName));
contacts.remove(oldName);
contacts.insert(name,contactlist);
}
else
{
QMessageBox:
:
information(this,
tr("无法修改!
"),
tr("\"%1\"已经存在。
").arg(name));
return;
}
}
else
{
QMessageBox:
:
information(this,
tr("修改成功"),
tr("\"%1\"已经修改。
").arg(name));
contacts[name]=contactlist;
}
}
updateInterface(NavigationMode);
}
3.25查询联系人模块
对文件进行遍历,将联系人的所有信息都显示出来。
运行界面如下:
代码实现如下:
voidAddressBook:
:
findContact()
{
FindDialogdialog;
if(dialog.exec()==QDialog:
:
Accepted)
{
QStringcontactName=dialog.findText();
if(contacts.contains(contactName))
{
QMessageBox:
:
information(this,
tr("查找成功"),
tr("呵呵,虽然联系少,但还记得你!
"));
ui->nameLine->setText(contactName);
ContactListcontactlist;
contactlist=contacts.value(contactName);
ui->addressText->setText(contactlist.Address);
ui->emailLine->setText(contactlist.Email);
ui->phoneLine->setText(contactlist.Phone);
ui->InfoEdit->setText(contactlist.Info);
ui->qqLine->setText(contactlist.Qq);
ui->msnLine->setText(contactlist.Msn);
ui->careerLine->setText(contactlist.Career);
ui->companyLine->setText(contactlist.Company);
}
else
{
QMessageBox:
:
information(this,
tr("未找到联系人"),
tr("很抱歉,通讯录中没有\"%1\",该检讨自己一下。
").arg(contactName));
return;
}
}
updateInterface(NavigationMode);
}
四、设计心得
通讯录系统的课程设计,我体会到很多,完成一个程序的设计必须要有同伴的支持和合作,必须要跟同伴讨论商量,共同努力才有可能设计出一个好的程序,遇到困难不能轻易放弃,在编这个程序的时候遇到了很多难题,后来在老师和同学的帮助解答下终于将遇到的问题一个个解决,我深刻体会到遇到难题不要轻易言弃,还有要多借鉴别人的经验,多阅读一些书籍,编写程序的时候要细心,一点点错误程序就可能编译失败,所以要做到一丝不苟。
五、参考书目
《C++GUIQt4编程》(第2版)作者:
(加拿大)布兰切特(JasminBlanchette)(英国)萨默菲尔德(MarkSummerfield)译者:
闫锋欣曾泉人张志强
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 通讯录 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)