ImageVerifierCode 换一换
格式:DOC , 页数:39 ,大小:545.50KB ,
资源ID:2627207      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2627207.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(手机短信管理系统.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

手机短信管理系统.doc

1、 宜宾学院 课程设计文档 课 程 软件编程实践 题 目 手机短信管理系统 院 别 计算机与信息工程学院 专 业 软 件 工 程 学生姓名 学 号 班 级 2015级 6班 授课教师

2、 1 目录 第1章 系统总体设计 2 1.1 系统功能结构描述 2 1.2 系统功能结构图 3 1.3 系统开发目标 3 第2章 通讯录设计 4 2.1 通讯录概念结构设计 4 2.2 数据存储 4 第3章 短信录设计 5 3.1 短信概念结构设计 5 3.2 数据存储 5 第4章 系统详细设计 6 4.1 概要设计 6 4.1.1 函数声明 6 4.1.2 结构体声明 6 4.2 主要函数 7 4.2.1 主函数 7 4.2.1.2 流程图 7 4.2.1.3 程序截图 8 4.2.1.4 源

3、代码 8 4.2.2 通讯录 10 4.2.2.2 流程图 10 4.2.2.3 程序截图 13 4.2.2.4 源代码 15 4.2.3 短信录 23 4.2.3.2 流程图 23 4.2.3.3 程序截图 25 4.2.3.4 源代码 27 第5章 总结 35 第1章 系统总体设计 1.1 系统功能结构描述 手机短信管理系统是手机实现功能的一组重要的代码程序,主要实现对手机中的通讯录进行添加、修改、查询功能,实现对手机中短信进行添加、修改、查询功能,能对短信进行记录和管理 ,在新建短信的时候也可以查看通讯录上联系人的信息,通讯录是对手机上的联系人进行操作,可以

4、方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是方便了短信的操作。 功能结构需求如下: q 通讯录模块 :本功能主要是实现对用户信息的添加、删除、查询功能。 q 短信模块:本功能主要是实现对用户发送短信的添加、删除、查询功能。 基本功能: (1)查看功能: a.当输入编号时,显示出该编号的数据; b.可以查看所有的编号的数据; (2)添加功能: a.能录入新数据添加到文件中(联系人添加到addressbook.dll文件中,短信信息添加到message.dll文件中),当录入了重复的编号时,则提示数据录入重复并取消录入。 (3)修改功能: a.选

5、中某个人的编号时,可对此人的信息进行修改; (4)删除功能:选中某个人的编号时,可对此人在文件中的相应数据进行删除。 (5)主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。 1.2 系统功能结构图 手机短信管理系统 通讯录 短信 添加联系人 删除联系人 修改联系人 查看联系人 新建短信 删除短信 修改短信 查看短信 显示所有 图3-1 系统功能结构图 1.3 系统开发目标 对于典型的管理系统,尤其是对像手机短信管理系统这样的非常实用的管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应

6、满足以下几个目标: 1.采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。 2.对用户输入的数据,系统进行严格的数据检验,尽可能排除重复的错误。 3.系统运行稳定安全可靠。 第2章 通讯录设计 2.1 通讯录概念结构设计 通讯录是对手机上的联系人进行操作,可以方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是方便了短信的操作,数据储存在addressbook.dll 文件中 2.2 数据存储 表2-1 用户基本信息 中文名称: 用户基本信息 中文名称 类型 键值 注释 编号 整型 记

7、录用户编号(唯一) 姓名 字符型 记录用户姓名 电话 字符型 记录用户电话 邮箱 字符型 记录用户邮箱 类型 字符型 记录用户类型 第3章 短信设计 3.1 短信概念结构设计 短信的功能能对通信录的联系人进行添加短信,也可以由用户新建,数据保存在message.dll 文件中。 3.2 数据存储 表2-2 短信功能基本信息 中文名称: 竞赛项目基本信息 中文名称 类型 键值 注释 编号 整型 姓名 字符型 电话 字符型 内容 字符型 第4章 系统详细设

8、计 4.1 概要设计 4.1.1 函数声明 void main();//主函数 void Addressbookmenu();//通讯录 void Messagemenu();//短信 4.1.2 结构体声明 typedef struct Patient_Info//typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量 { int number;//编号 char name[8];//姓名 char phonecode[20]; //电话号码 char group[10];//类型 char email[20]

9、//邮箱 char content[200];//短信内容 }PatientInfo; 4.2 主要函数 4.2.1 主函数 4.2.1.2 流程图 图4-1 主函数流程图 4.2.1.3 程序截图 图4-2主界面截图 图4-1 主界面流程图 4.2.1.4 源代码 /* 项目名称:手机短信管理系统 实施时间:2015年12月22日 创建人:郭成 */ //调用预处理 #include"stdio.h"//标准输入输出 #include"stdlib.h"//常用的系统函数 //函数声明

10、 void Addressbookmenu();//通讯录 void Messagemenu();//短信 //主函数 void main() { char filename[20];//文件名变量 int i; system("title 手机短信管理系统");//设置cmd窗口标题 system("color 3B");//背景湖蓝,字体白 do { system("cls");//清屏 printf("now datetime:\n"); system("date /T");//调用系统日期 system(

11、"TIME /T");//调用系统时间 printf( "\n\n\n" ); printf("\n\t\t\t ------------------------------------------------------------\n"); printf("\t\t\t *==============手机短信管理系统==============*\n"); printf("\n\t\t\t ------------------------------------------------------------\n"); printf("\t\

12、t * *\n"); printf("\t\t * ** 1.通讯录 ** *\n"); printf("\t\t * ** 2.短信 ** *\n"); printf("\t\t *

13、 *\n"); printf("\t\t * ****************** *\n"); printf("\t\t * ** 0.退出系统 ** *\n"); printf("\t\t * ************

14、 *\n"); printf("\n\t\t\t ------------------------------------------------------------\n"); printf("\t\t\t YIBIN University "); printf("\n\t\t\t ------------------------------------------------------------\n"); scanf("%

15、d", &i); switch (i) { case 1: system("cls"); Addressbookmenu(); break;//case1 调用addressbookmenu函数 case 2: system("cls"); Messagemenu(); break;//case2 调用messagemenu函数 case 0: break;//case0 退出 default:printf("错误选择!请重选"); break; //default : ....break;一般用在switch语句里面,它的作用是在比较i和下面的1、2

16、之后都不一致就执行。当然如果都不满足也可以不去做任何事,所以就可以省略不用 } } while (i != 0);//当i不等于0循环 } 4.2.2 通讯录 4.2.2.2 流程图 开始 读出功能代号 添加 删除 修改 查看 显示 关闭 1 2 3 4 5 6 结束 退出通讯录 (图4-3)通讯录流程图 添加功能:录入新的联系人数据,姓名、电话号码、类型、邮箱。 开始 读入编号 录入数据 录入数据失败 返回主菜单 保存 编号重复 Y N 录入成功 Y N (图4-4)添加功能流程图

17、 删除功能:输入编号,对其信息进行删除。 开始 读入编号 删除 删除失败 返回主菜单 保存 有此编号 N Y (图4-4)删除功能流程图 修改功能:输入编号,对其信息进行修改。 开始 读入编号 修改 修改失败 返回主菜单 保存 有此编号 N Y (图4-5)修改功能流程图 查看:输入编号,显示出此编号的姓名、电话号码、类型、邮箱。 开始 打开文件 输入编号 没有此编号 返回主菜单 显示信息 有此编号 N Y (图4-6)显示功能流程图 4.2.2.3 程序截图 (图4-7)通讯录主界面截图

18、 (图4-8)添加功能截图 (图4-9)修改功能截图 (图4-10)显示功能截图 4.2.2.4 源代码 /* 项目名称:手机短信管理系统 实施时间:2015年12月22日 创建人:郭成 */ #include"stdio.h" #include"stdlib.h" #include"string.h" //定义结构体类型 typedef struct Patient_Info//typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量 { i

19、nt number;//编号 char name[8];//姓名 char phonecode[20]; //电话号码 char group[10];//类型 char email[20];//邮箱 char content[200];//短信内容 }PatientInfo; //局部函数声明 static void Insert(char[]); static void Search(char[]); static void Update(char[]); static void Delete(char[]); static void Show(char

20、[]); //主菜单 void Addressbookmenu() { char filename[20] ;//文件名变量 int i; char Add[]="Addressbook.dll";//指定文件 strcpy(filename,Add); do { printf("\nnow datetime:\n"); system("date /T"); system("TIME /T"); printf("\n\n\n"); printf("\t\t *====

21、手★机★通★讯★录★管★理★系★统==============*\n"); printf("\t\t * *\n"); printf("\t\t * 1.添加联系人 2.删除联系人 *\n"); printf("\t\t * 3.修改联系人 4.查看联系人

22、 *\n"); printf("\t\t * 5.显示所有联系人 6.关闭通讯录 *\n"); printf("\t\t * *\n"); printf("\t\t * ****************** *\n"); printf("\t\t

23、 * * 请输入序号 * *\n"); printf("\t\t * ****************** *\n"); printf("\t\t *==============================================================*\n"); scanf("%d", &i); fflush(stdin);/

24、/清空输入缓存,以便不影响后面输入的东西 switch (i) { case 1: system("cls"); Insert(filename); break; case 2: system("cls"); Delete(filename); break; case 3: system("cls"); Update(filename); break; case 4: system("cls"); Search(filename); break; case 5: system("cls"); Show(filename); break;

25、 case 6: break; default:printf("错误选择!请重选"); break; } } while (i != 6); } //添加联系人 void Insert(char Filename[]) { /* 函数说明:对指定文件名进行数据的插入 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P;//定义一个信息的变量 int flag =

26、 1; FILE *fp; fp = fopen(Filename, "r");//以只读方式打开文件,第一个参数:文件名,第二个参数是打开方式,a表示追加写方式,w表示覆盖写,r表示只读方式,返回值是一个文件指针 printf(" 请根据以下提示信息操作:"); printf("\n 编号:");//先查重,再追加插入 scanf("%d", &in_number); while (!feof(fp) && flag)//feof表示 end of file,表示文件末尾,true表示文件末尾,否则不是文件末尾。&&flag表示

27、还未查找到 { if (fread(&P, sizeof(PatientInfo), 1, fp))/*fread是文件输出函数,从文件中读取一条联系人信息放入P变量中,第一个参数是目标变量的地址, 第二个参数是读取的长度单位,第三个参数是读取几个单位,第四个参数是要读取的文件,返回值为1表示成功,否则表示失败*/ { if (P.number == in_number) { printf("\n 该编号已存在,自动取消录入!\n"); flag = 0; } }

28、} fclose(fp);//关闭文件以便追加记录 if (flag) { fp = fopen(Filename, "a");//以追加方式打开文件准备追加 } else return; P.number = in_number; printf(" 请输入姓名:"); scanf("%s", P.name); printf(" 请输入电话:"); scanf("%s", &P.phonecode); printf(" 请输入类型:"); printf(" 存储类别:(A

29、办公类 B.个人类 C.商务类) "); scanf("%s",P.group); printf(" 请输入邮箱:"); fflush(stdin);//清空输入缓存,以便不影响后面输入的东西 scanf("%s", P.email); printf(" \n ------------------------------------------------------------"); if (fwrite(&P, sizeof(PatientInfo), 1, fp) != 1)/*fwrite是文件写函数,

30、从P变量中向文件中写入一条短信信息,第一个参数是来源变量的地址, 第二个参数是写的长度单位,第三个参数是写几个单位,第四个参数是要写的文件*/ { printf("输入数据失败,请重新输入!"); } else printf("\n 添加成功!"); fclose(fp); } void Search(char Filename[]) { /* 函数说明:从指定文件中查找数据 形参说明:数组作为形

31、参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P; int flag = 1; FILE *fp; fp = fopen(Filename, "r"); printf("\n 请根据以下提示信息操作:"); printf("\n 编号:"); scanf("%d", &in_number); system("cls"); while (fread(&P, size

32、of(PatientInfo), 1, fp) && flag)//fread是文件输出函数,返回值为1表示读成功 { if (P.number == in_number) { printf("\n\t\t\t ------------------------------------------------------------\n"); printf("\n\t\t\t| 编号\t| 姓名\t| 电话\t\t| 类型\t| 邮箱\t\t\t|"); printf("\n\t\t\t| %d\t ",P.number); printf("

33、s\t ",P.name); printf(" %s\t ",P.phonecode); printf(" %s\t ",P.group); printf(" %s\t|",P.email); printf("\n\n\t\t\t 联系人%s的信息已显示出来!\n",P.name); printf("\t\t\t ------------------------------------------------------------"); flag=0; } } fclose(fp); if (fla

34、g) { printf(" 没有你要找的联系人!"); } } void Update(char Filename[])// { /* 函数说明:修改指定文件中的数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P; int flag = 1; FILE *fp, *fptemp;//必须两个文件操作,fp是数据源

35、文件,fptemp是临时文件,修改后的数据临时放入该文件中 fp = fopen(Filename, "r");//文件读 fptemp = fopen("temp.txt", "w");//文件写 printf("\n 修改联系人信息"); printf("\n 请输入你要修改的联系人的编号:");//先查询,再修改 scanf("%d", &in_number); while (fread(&P, sizeof(PatientInfo), 1, fp))//文件读 { if (P.number =

36、 in_number)//读出修改 { P.number = in_number; printf(" 请输入姓名:"); scanf("%s", P.name); printf(" 请输入电话:"); scanf("%s", &P.phonecode); printf(" 请输入类型:"); printf(" 存储类别:(A.办公类 B.个人类 C.商务类) "); scanf("%s",P.group); printf("

37、 请输入邮箱:"); fflush(stdin);//清空输入缓存,以便不影响后面输入的东西 scanf("%s", P.email); printf(" \n ------------------------------------------------------------"); flag = 0; } fwrite(&P, sizeof(PatientInfo), 1, fptemp);/*找没找到都往临时文件中写,因为对文件操作只有追加和覆盖写两种方方式,

38、 因此修改中间某条记录不方便,只能引入第二个文件或者放入数据、链表中*/ printf(" \n 修改成功!"); } fclose(fp); fclose(fptemp); if (flag) { printf("没有你要查询的结果!"); } else { fptemp = fopen("temp.txt", "r");//从临时文件中读 fp = fopen(Filename, "w");//往源文件中覆盖写 while (fread(

39、P, sizeof(PatientInfo), 1, fptemp)) { fwrite(&P, sizeof(PatientInfo), 1, fp);//从临时文件中回写 } fclose(fp); fclose(fptemp); } } void Delete(char Filename[])// { /* 函数说明:删除指定文件中的某条数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_nu

40、mber; PatientInfo P; int flag = 1; FILE *fp, *fptemp; fp = fopen(Filename, "r"); fptemp = fopen("temp.txt", "w"); printf("\n 请输入你想要删除的联系人的编号:");//先查询,再删除 scanf("%d", &in_number); while (fread(&P, sizeof(PatientInfo), 1, fp)) { if (P.number != in_number)//如果找到要删除的记

41、录则不写,否则都要写 fwrite(&P, sizeof(PatientInfo), 1, fptemp); else flag = 0; } fclose(fp); fclose(fptemp); if (flag) { printf(" 没有你要删除的编号!"); } else { fp = fopen(Filename, "w"); fptemp = fopen("temp.txt", "r"); while (fread(&P, sizeof(PatientInfo), 1, fpt

42、emp)) { fwrite(&P, sizeof(PatientInfo), 1, fp); } printf(" 删除成功!"); fclose(fp); fclose(fptemp); } } void Show(char Filename[]) { /* 函数说明:显示指定文件中的所有数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ PatientInfo P; i

43、nt flag = 1; FILE *fp; fp = fopen(Filename, "r"); while (fread(&P, sizeof(PatientInfo), 1, fp)) { printf("\n\t\t\t ------------------------------------------------------------\n"); printf("\n\t\t\t| 编号\t| 姓名\t| 电话\t\t| 类型\t| 邮箱\t\t\t|"); printf("\n\t\t\t| %d\t ",P.number); p

44、rintf(" %s\t ",P.name); printf(" %s\t ",P.phonecode); printf(" %s\t ",P.group); printf(" %s\t|",P.email); printf("\n\t\t\t ------------------------------------------------------------"); } printf("\n\t\t\t 所有联系人信息已全部显示出来!\n"); fclose(fp); } 4.2.3 短信录 4.

45、2.3.2 流程图 开始 读出功能代号 新建 删除 修改 查看 显示 关闭 1 2 3 4 5 6 结束 关闭短信录 (图4-11)短信录主函数流程图 新建功能:在新建短信输入编号时,将判断此编号在通讯录上有无,如果有则显示出来,并对此编号发送信息,如果没有此编号则新建一条信息。 开始 读入编号 显示此编号信息 发送短信 返回主菜单 保存 编号是否存在 N Y (图4-12)新建短信流程图 (删除、修改、查看、显示流程图均与通讯录相差不大,这里就不画出来了)

46、 4.2.3.3 程序截图 (图4-13)短信录主界面截图 (图4-14)短信录新建短信截图 (图4-15)短信录显示短信截图 (图4-16)短信录删除短信截图 4.2.3.4 源代码 /* 项目名称:手机短信管理系统 实施时间:2015年12月22日 创建人:郭成 */ #include"stdio.h" #include"stdlib.h" #include"string.h" #include "windows.h" //定

47、义了Windows的所有资料型态、函数调用、资料结构和常数识别字 #include "conio.h" //进行输入、输出的 //定义结构体类型 typedef struct Patient_Info//typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量 { int number;//编号 char name[8];//姓名 char phonecode[20]; //电话号码 char group[10];//类型 char email[20];//邮箱 char content[200];//短信内容

48、}PatientInfo; //局部函数声明 static void Add(char[]); static void Search(char[]); static void Alter(char[]); static void Del(char[]); static void Show(char[]); //主菜单 void Messagemenu() { int i; char Filename[20];//文件名变量 char Mes[]="Message.dll";//指定文件 strcpy(Filename,Mes); do {

49、 printf("\nnow datetime:\n"); system("date /T"); system("TIME /T"); printf("\n\n\n"); printf("\t\t *================手★机★短★信★管★理★系★统================*\n"); printf("\t\t * *\n"); prin

50、tf("\t\t * 1.新建信息 2.删除信息 *\n"); printf("\t\t * 3.修改信息 4.查看联系人 *\n"); printf("\t\t * 5.显示所有信息 6.关闭短信录 *\n"); printf("\t\t *

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服