您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Qt通讯录课程设计报告
信息工程学院课题名称:模拟手机拨号学号:_10045112姓名:_________陈笑日期:_____2013-1-5指导教师:______叶水生__________成绩:_________________________目录一、设计系统的目的意义………………………………………………3二、系统需求、功能分析………………………………………………31:系统需求………………………………………………………………………32:功能分析……………………………………………………………………3-43:系统结构图……………………………………………………………………4三、详细设计………………………………………………………4-121、添加联系人…………………………………………………………………72、删除联系人………………………………………………………………8-93、显示所有联系人…………………………………………………………104、修改联系人………………………………………………………………115、查找联系人……………………………………………………………126、模拟手机拨号…………………………………………………………12四、课程设计的心得…………………………………………………13五、参考书目:………………………………………………………132页一、设计系统的目的意义1、设计系统的目的设计这个系统的目的是为了设计一个能够模拟手机拨号的一个软件,能够方便的存储信息,可以将这个系统应用到手机中,方便的存储联系人,为方便查找联系人的各种信息提供方便,方便直接向联系人直接进行拨号连接2、设计系统的意义模拟手机拨号系统没有使用纸张等,做到了环保,符合当今环保理念这个系统使用户能够方便快捷的使用存储和查找等优势功能,且具有较高的安全性,能够有效保护用户联系人资料,而且方便根据联系人进行拨号操作二、系统需求及功能分析系统需求1、需要录入联系人到通讯录中;2、能够对通讯录中各项信息进行查找修改删除排序等一系列操作;3、能够完成通讯录的基本功能;4、凡等候用户输入时,给出足够的提示信息;5、程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入;6、对删除数据应给出警告。7、对联系人进行模拟拨号,当联系人号码为空时,给出警告,联系人号码不能为空。功能分析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;inname;incontactlist.Address;incontactlist.Email;incontactlist.Info;incontactlist.Phone;incontactlist.Qq;incontactlist.Msn;incontactlist.Career;incontactlist.Company;contacts.insert(name,contactlist);}if(contacts.isEmpty()){QMessageBox::information(this,tr(文件中没有联系人),tr(你打开的文件中没有联系人。));}else{QMapQString,ContactList::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(thi
本文标题:Qt通讯录课程设计报告
链接地址:https://www.777doc.com/doc-5210754 .html