C++电话本的程序设计报告4412.pdf
面 向 对 象 程 序 设 计 实 训 课 程 设 计 报 告 书 姓 名 王喜之 班 级 10(4)班 学 号 指导教师 周彩根 信息科学学院 问题描述:【课题】电话号码簿 【基本要求】设计一个利用文件处理方式实现的电话号码薄的程序,具有增加数据、删除数据、更新数据、查询数据及显示全部数据的功能。每个电话号码包括姓名、电话信息项。其中姓名作为关键字,保证姓名不能重复,删除更新查询时根据输入姓名进行删除更新及查询,更新时仅更新电话号码。程序运行时从文件中读取所有人员电话号码薄信息,程序结束前将当前所有人员电话号码信息再写入到文件中.设计的软、硬件环境:软件环境:window XP,VC+硬件环境:CPU,键盘,鼠标,显示器,风扇,主板,内存 算法设计与功能模块:【系统功能模块组织】添加数据 更新数据 查询数据 删除数据 显示所有信息 退出 电话簿界面 密码验证 进入电话簿系统【运行流程对象时序图】objTelephoneBook:Adddate()输入姓名 name,电话号码 teleNo consultDate()输入查找的姓名()联系人信息写入文件 文件中查找输入的姓名的记录()文件中找到姓名 文件中找不到姓名 输出联系人 输 出”无 此 人 信update()输入查找的姓名()文件中查找姓名()输出姓名对应的联系人信息()输入要修改的信息()把信息写入文件 DeleteDate()输入要删除的姓名()文件查找数据()输 出”无 此 人 的 信输出“无此人信息”文件中找不到姓名 文件中找到姓名 查找不到姓名 文件中找到姓名 输出”删除成功”()Pack()备份文件()内容备份到 Showallinfo()显示信息 程序输入与结果输出:【运行方法】打开 D:MyProjectstelephonebDebug文件 【运行结果】1.输入“000000”按下回车键 2.随意按下一个键。(我按了回车键)输入“1”;输入“n”;输入“2”(按了 enter)输入“2”输入 8885922 (按 enter)输入“5”;(按 enter)实验结果分析及收获:通过本次实验我能够基本掌握面向对象程序设计的基础知识,在对电话簿管理程序的编写过程中了解面向对象程序设计的应用,在对上机实验和对程序调试的同时也提高了自 己的解决的能力 在这段时间的上机的实践中,我学会了很多,了解如何应用 VC+环境实现工程的创建,类的生成等等,可以说这次上机实验对课堂所学的知识有了很好的理解。深刻的体会到了面向对象程序设计在工程中的应用的重要性,及其对工程方面程序设计的深刻影。这次实验我受益匪浅,在掌握面向对象程序设计的基础上更让我对 C+语言产生了浓厚的兴趣。使我对原来不太感兴趣的专业课有了更好的认识和理解,我深刻的体会了学好面向对象程序设计的重要性,虽然我们已经课程,但是我会努力学好这门课程,利用课余的时间上机实现程序的编写和设计,努力学好这门课程,相信此次机会上机会给我的专业课学习奠定娘好的基础,对影响今后的学习意义更大。附录(源程序清单)#include#ifndef _TELEPHONEBOOK_H_ *增 加 数 据*endl;coutsetw(18)2.*更 新 数 据*endl;coutsetw(18)3.*查 询 数 据*endl;coutsetw(18)4.*删 除 数 据*endl;coutsetw(18)5.*显 示 全 部 数 据*endl;coutsetw(18)6.*退 出*select;while()!=n);switch(select)case 1:this-addnewmember();/调用添加函数 break;case 2:this-upataDate();/调用更新函数 break;case 3:this-consultdate();/调用查询函数 break;case 4:this-deleteDate();/调用删除函数 break;case 5:this-showallinfo();/调用显示函数 break;case 6:break;while(select!=6);/当 select!=6 时,继续上列循环。当为 6 时,退出循环 显示数据模块:void CTelephoneBook:showallinfo()/显示信息函数 telephonetype telph;(0);/定位到文件首部 (char*)&telph,sizeof(telephonetype);if(!()/判断是否检索到文件尾部 while(!()coutsetw(18)setw(18)endl;/输出数据 (char*)&telph,sizeof(telephonetype);/从文件中读数据 cout以上为所有联系的数据endl;else cout暂时无信息!endl;();#endif#include#include#include bool checklogin();int main(int argc,char*argv)try CTelephoneBook objTelephoneBook;if(checklogin()();else cout密码已经输入 3 次endl;cout正在退出系统*endl;exit(0);catch(Error err)();system(PAUSE);return 0;bool checklogin()int i=0;cout*欢迎进入电话簿管理系统!*endl;cout如果您是第一次登录,密码为 000000endl;char password7,psd=000000;do cout请输入您的密码,进行验证!endl;for(int j=0;j7;j+)passwordj=getch();if(passwordj=13)passwordj=0;break;putchar(*);if(strcmp(password,psd)=0)cout登录成功!endl;cout正在转入操作界面!endl;return true;else cout密码错误,请重新输入!endl;i+;while(i!=3);return false;成 绩 教师签名 日 期