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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(本科毕业设计论文手机短信管理系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

本科毕业设计论文手机短信管理系统.docx

1、本科毕业设计论文手机短信管理系统宜宾学院课程设计文档 课 程 软件编程实践 题 目 手机短信管理系统 院 别 计算机与信息工程学院 专 业 软 件 工 程 学生姓名 学 号 班 级 2015级 6班 授课教师 第2章 系统总体设计2.1 系统功能结构描述手机短信管理系统是手机实现功能的一组重要的代码程序,主要实现对手机中的通讯录进行添加、修改、查询功能,实现对手机中短信进行添加、修改、查询功能,能对短信进行记录和管理 ,在新建短信的时候也可以查看通讯录上联系人的信息,通讯录是对手机上的联系人进行操作,可以方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是方便了短信的操作

2、。功能结构需求如下: 通讯录模块 :本功能主要是实现对用户信息的添加、删除、查询功能。 短信模块:本功能主要是实现对用户发送短信的添加、删除、查询功能。基本功能:(1)查看功能:a.当输入编号时,显示出该编号的数据;b.可以查看所有的编号的数据;(2)添加功能:a.能录入新数据添加到文件中(联系人添加到addressbook.dll文件中,短信信息添加到message.dll文件中),当录入了重复的编号时,则提示数据录入重复并取消录入。(3)修改功能:a.选中某个人的编号时,可对此人的信息进行修改;(4)删除功能:选中某个人的编号时,可对此人在文件中的相应数据进行删除。(5)主界面提供菜单选择

3、的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。2.2 系统功能结构图2.3 系统开发目标对于典型的管理系统,尤其是对像手机短信管理系统这样的非常实用的管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标: 1采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。2对用户输入的数据,系统进行严格的数据检验,尽可能排除重复的错误。3系统运行稳定安全可靠。第3章 通讯录设计3.1 通讯录概念结构设计 通讯录是对手机上的联系人进行操作,可以方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是方

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

5、ain();/主函数void Addressbookmenu();/通讯录void Messagemenu();/短信5.1.2 结构体声明typedef struct Patient_Info/typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量 int number;/编号 char name8;/姓名 char phonecode20; /电话号码 char group10;/类型 char email20;/邮箱 char content200;/短信内容PatientInfo;5.2 主要函数5.2.1 主函数5.2.1.2 流程图5.2.1.

6、3 程序截图图4-2主界面截图5.2.1.4 源代码/*项目名称:手机短信管理系统实施时间:2015年12月22日创建人:郭成*/调用预处理#includestdio.h/标准输入输出#includestdlib.h/常用的系统函数/函数声明void Addressbookmenu();/通讯录void Messagemenu();/短信/主函数void main() char filename20;/文件名变量 int i; system(title 手机短信管理系统);/设置cmd窗口标题 system(color 3B);/背景湖蓝,字体白 do system(cls);/清屏 prin

7、tf(now datetime:n); system(date /T);/调用系统日期 system(TIME /T);/调用系统时间 printf( nnn ); printf(nttt -n); printf(ttt *=手机短信管理系统=*n); printf(nttt -n); printf(tt * *n); printf(tt * * 1.通讯录 * *n); printf(tt * * 2.短信 * *n); printf(tt * *n); printf(tt * * *n); printf(tt * * 0.退出系统 * *n); printf(tt * * *n); pri

8、ntf(nttt -n); printf(ttt YIBIN University ); printf(nttt -n); scanf(%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

9、;一般用在switch语句里面,它的作用是在比较i和下面的1、2之后都不一致就执行。当然如果都不满足也可以不去做任何事,所以就可以省略不用 while (i != 0);/当i不等于0循环5.2.2 通讯录5.2.2.2 流程图(图4-3)通讯录流程图添加功能:录入新的联系人数据,姓名、电话号码、类型、邮箱。(图4-4)添加功能流程图删除功能:输入编号,对其信息进行删除。(图4-4)删除功能流程图修改功能:输入编号,对其信息进行修改。(图4-5)修改功能流程图查看:输入编号,显示出此编号的姓名、电话号码、类型、邮箱。(图4-6)显示功能流程图5.2.2.3 程序截图(图4-7)通讯录主界面截图

10、(图4-8)添加功能截图(图4-9)修改功能截图(图4-10)显示功能截图5.2.2.4 源代码/*项目名称:手机短信管理系统实施时间:2015年12月22日创建人:郭成*/#includestdio.h#includestdlib.h#includestring.h/定义结构体类型typedef struct Patient_Info/typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量 int number;/编号 char name8;/姓名 char phonecode20; /电话号码 char group10;/类型 char email20

11、;/邮箱 char content200;/短信内容PatientInfo;/局部函数声明static void Insert(char);static void Search(char);static void Update(char);static void Delete(char);static void Show(char);/主菜单void Addressbookmenu() char filename20 ;/文件名变量 int i; char Add=Addressbook.dll;/指定文件 strcpy(filename,Add); do printf(nnow dateti

12、me:n); system(date /T); system(TIME /T); printf(nnn); printf(tt *=手机通讯录管理系统=*n); printf(tt * *n); printf(tt * 1.添加联系人 2.删除联系人 *n); printf(tt * 3.修改联系人 4.查看联系人 *n); printf(tt * 5.显示所有联系人 6.关闭通讯录 *n); printf(tt * *n); printf(tt * * *n); printf(tt * * 请输入序号 * *n); printf(tt * * *n); printf(tt *=*n); sc

13、anf(%d, &i); fflush(stdin);/清空输入缓存,以便不影响后面输入的东西 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; case 6: break

14、; default:printf(错误选择!请重选); break; while (i != 6);/添加联系人void Insert(char Filename) /* 函数说明:对指定文件名进行数据的插入 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P;/定义一个信息的变量 int flag = 1; FILE *fp; fp = fopen(Filename, r);/以只读方式打开文件,第一个参数:文件名,第二个参数是打开方式,

15、a表示追加写方式,w表示覆盖写,r表示只读方式,返回值是一个文件指针 printf( 请根据以下提示信息操作:); printf(n 编号:);/先查重,再追加插入 scanf(%d, &in_number); while (!feof(fp) & flag)/feof表示 end of file,表示文件末尾,true表示文件末尾,否则不是文件末尾。&flag表示还未查找到 if (fread(&P, sizeof(PatientInfo), 1, fp)/*fread是文件输出函数,从文件中读取一条联系人信息放入P变量中,第一个参数是目标变量的地址, 第二个参数是读取的长度单位,第三个参数

16、是读取几个单位,第四个参数是要读取的文件,返回值为1表示成功,否则表示失败*/ if (P.number = in_number) printf(n 该编号已存在,自动取消录入!n); flag = 0; 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( 请输入类

17、型:); printf( 存储类别:(A.办公类 B.个人类 C.商务类) ); scanf(%s,P.group); printf( 请输入邮箱:); fflush(stdin);/清空输入缓存,以便不影响后面输入的东西 scanf(%s, P.email); printf( n -); if (fwrite(&P, sizeof(PatientInfo), 1, fp) != 1)/*fwrite是文件写函数,从P变量中向文件中写入一条短信信息,第一个参数是来源变量的地址, 第二个参数是写的长度单位,第三个参数是写几个单位,第四个参数是要写的文件*/ printf(输入数据失败,请重新输入

18、!); else printf(n 添加成功!); fclose(fp);void Search(char Filename) /* 函数说明:从指定文件中查找数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置: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); s

19、ystem(cls); while (fread(&P, sizeof(PatientInfo), 1, fp) & flag)/fread是文件输出函数,返回值为1表示读成功 if (P.number = in_number) printf(nttt -n); printf(nttt| 编号t| 姓名t| 电话tt| 类型t| 邮箱ttt|); printf(nttt| %dt ,P.number); printf( %st ,P.name); printf( %st ,P.phonecode); printf( %st ,P.group); printf( %st|,P.email); p

20、rintf(nnttt 联系人%s的信息已显示出来!n,P.name); printf(ttt -); flag=0; fclose(fp); if (flag) printf( 没有你要找的联系人!); void Update(char Filename)/ /* 函数说明:修改指定文件中的数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P; int flag = 1; FILE *fp, *fptemp;/必须两个文件操作,fp是

21、数据源文件,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 = in_number)/读出修改 P.number = in_number; printf( 请输入姓名:); scanf(%s,

22、 P.name); printf( 请输入电话:); scanf(%s, &P.phonecode); printf( 请输入类型:); printf( 存储类别:(A.办公类 B.个人类 C.商务类) ); scanf(%s,P.group); printf( 请输入邮箱:); fflush(stdin);/清空输入缓存,以便不影响后面输入的东西 scanf(%s, P.email); printf( n -); flag = 0; fwrite(&P, sizeof(PatientInfo), 1, fptemp);/*找没找到都往临时文件中写,因为对文件操作只有追加和覆盖写两种方方式,

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

24、lose(fptemp); void Delete(char Filename)/ /* 函数说明:删除指定文件中的某条数据 形参说明:数组作为形参,实参必须是一个地址,用于传递文件名 调用位置:addressbookmenu函数 创建人:郭成 创建日期:12月22日 */ int in_number; PatientInfo P; int flag = 1; FILE *fp, *fptemp; fp = fopen(Filename, r); fptemp = fopen(temp.txt, w); printf(n 请输入你想要删除的联系人的编号:);/先查询,再删除 scanf(%d,

25、 &in_number); while (fread(&P, sizeof(PatientInfo), 1, fp) if (P.number != in_number)/如果找到要删除的记录则不写,否则都要写 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, fptemp) fwrite(&P, sizeof(PatientInfo), 1, fp); printf( 删除成功!); fclose(fp); fclose(fptemp); void

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1