手机短信管理系统大学论文

上传人:沈*** 文档编号:206294826 上传时间:2023-05-03 格式:DOC 页数:36 大小:563.04KB
收藏 版权申诉 举报 下载
手机短信管理系统大学论文_第1页
第1页 / 共36页
手机短信管理系统大学论文_第2页
第2页 / 共36页
手机短信管理系统大学论文_第3页
第3页 / 共36页
资源描述:

《手机短信管理系统大学论文》由会员分享,可在线阅读,更多相关《手机短信管理系统大学论文(36页珍藏版)》请在装配图网上搜索。

1、宜宾学院课程设计文档 课 程 软件编程实践 题 目 手机短信管理系统 院 别 计算机与信息工程学院 专 业 软 件 工 程 学生姓名 学 号 班 级 2015级 6班 授课教师 1目录第1章 系统总体设计21.1 系统功能结构描述21.2 系统功能结构图31.3 系统开发目标3第2章 通讯录设计42.1 通讯录概念结构设计42.2 数据存储4第3章 短信录设计53.1 短信概念结构设计53.2 数据存储5第4章 系统详细设计64.1 概要设计64.1.1 函数声明64.1.2 结构体声明64.2 主要函数74.2.1 主函数74.2.1.2 流程图74.2.1.3 程序截图84.2.1.4 源

2、代码84.2.2 通讯录104.2.2.2 流程图104.2.2.3 程序截图134.2.2.4 源代码154.2.3 短信录234.2.3.2 流程图234.2.3.3 程序截图254.2.3.4 源代码27第5章 总结35第1章 系统总体设计1.1 系统功能结构描述手机短信管理系统是手机实现功能的一组重要的代码程序,主要实现对手机中的通讯录进行添加、修改、查询功能,实现对手机中短信进行添加、修改、查询功能,能对短信进行记录和管理 ,在新建短信的时候也可以查看通讯录上联系人的信息,通讯录是对手机上的联系人进行操作,可以方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是

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

4、)主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。1.2 系统功能结构图手机短信管理系统通讯录短信添加联系人删除联系人修改联系人查看联系人新建短信删除短信修改短信查看短信显示所有图3-1 系统功能结构图1.3 系统开发目标对于典型的管理系统,尤其是对像手机短信管理系统这样的非常实用的管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标: 1采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。2对用户输入的数据,系统进行严格的数据检验,尽可能排除重复的错误。3系统运行稳定安全可靠。第2章 通

5、讯录设计2.1 通讯录概念结构设计 通讯录是对手机上的联系人进行操作,可以方便的查看和使用,对联系人的姓名、电话、类型、邮箱进行管理,建立通讯录更是方便了短信的操作,数据储存在addressbook.dll 文件中2.2 数据存储表2-1 用户基本信息中文名称:用户基本信息中文名称类型键值注释编号整型记录用户编号(唯一)姓名字符型记录用户姓名电话字符型记录用户电话邮箱字符型记录用户邮箱类型字符型记录用户类型第3章 短信设计3.1 短信概念结构设计 短信的功能能对通信录的联系人进行添加短信,也可以由用户新建,数据保存在message.dll 文件中。3.2 数据存储表2-2 短信功能基本信息中文

6、名称:竞赛项目基本信息中文名称类型键值注释编号整型姓名字符型电话字符型内容字符型第4章 系统详细设计4.1 概要设计 4.1.1 函数声明void main();/主函数void Addressbookmenu();/通讯录void Messagemenu();/短信4.1.2 结构体声明typedef struct Patient_Info/typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量int number;/编号char name8;/姓名char phonecode20; /电话号码char group10;/类型char email20;/

7、邮箱char content200;/短信内容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日创建人:郭成*/调用预处理#includestdio.h/标准输入输出#includestdlib.h/常用的系统函数/函数声明void Addressbookmenu();/通讯录void Messagemenu();/短信/主函数void main()char filename20;/文件名变量in

8、t i;system(title 手机短信管理系统);/设置cmd窗口标题 system(color 3B);/背景湖蓝,字体白dosystem(cls);/清屏printf(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

9、* *n);printf(tt * * *n);printf(tt * * 0.退出系统 * *n);printf(tt * * *n);printf(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: b

10、reak;/case0 退出default:printf(错误选择!请重选); break;/default : .break;一般用在switch语句里面,它的作用是在比较i和下面的1、2之后都不一致就执行。当然如果都不满足也可以不去做任何事,所以就可以省略不用 while (i != 0);/当i不等于0循环4.2.2 通讯录4.2.2.2 流程图开始读出功能代号添加删除修改查看显示关闭123456结束退出通讯录(图4-3)通讯录流程图添加功能:录入新的联系人数据,姓名、电话号码、类型、邮箱。开始读入编号录入数据录入数据失败返回主菜单保存编号重复YN录入成功YN(图4-4)添加功能流程图删

11、除功能:输入编号,对其信息进行删除。开始读入编号删除删除失败返回主菜单保存有此编号NY(图4-4)删除功能流程图修改功能:输入编号,对其信息进行修改。开始读入编号修改修改失败返回主菜单保存有此编号NY(图4-5)修改功能流程图查看:输入编号,显示出此编号的姓名、电话号码、类型、邮箱。开始打开文件输入编号没有此编号返回主菜单显示信息有此编号NY(图4-6)显示功能流程图4.2.2.3 程序截图(图4-7)通讯录主界面截图(图4-8)添加功能截图(图4-9)修改功能截图(图4-10)显示功能截图4.2.2.4 源代码/*项目名称:手机短信管理系统实施时间:2015年12月22日创建人:郭成*/#i

12、ncludestdio.h#includestdlib.h#includestring.h/定义结构体类型typedef struct Patient_Info/typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量int number;/编号char name8;/姓名char phonecode20; /电话号码char group10;/类型char email20;/邮箱char content200;/短信内容PatientInfo;/局部函数声明static void Insert(char);static void Search(char);

13、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 datetime:n); system(date /T); system(TIME /T);printf(nnn);printf(tt *=手机通讯录管理系统=*n);printf(tt * *n);printf

14、(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);scanf(%d, &i); fflush(stdin);/清空输入缓存,以便不影响后面输入的东西switch (i)case 1: system(cls); Insert(filename); break;case 2: sy

15、stem(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;default:printf(错误选择!请重选); break; while (i != 6);/添加联系人void Insert(char Filename)/*函数说明:对指定文件名进行数据的插入形参说明:数组作为形参,实参必须是一

16、个地址,用于传递文件名调用位置:addressbookmenu函数创建人:郭成创建日期:12月22日*/int in_number;PatientInfo P;/定义一个信息的变量int flag = 1;FILE *fp;fp = fopen(Filename, r);/以只读方式打开文件,第一个参数:文件名,第二个参数是打开方式,a表示追加写方式,w表示覆盖写,r表示只读方式,返回值是一个文件指针printf( 请根据以下提示信息操作:);printf(n 编号:);/先查重,再追加插入scanf(%d, &in_number);while (!feof(fp) & flag)/feof表

17、示 end of file,表示文件末尾,true表示文件末尾,否则不是文件末尾。&flag表示还未查找到if (fread(&P, sizeof(PatientInfo), 1, fp)/*fread是文件输出函数,从文件中读取一条联系人信息放入P变量中,第一个参数是目标变量的地址, 第二个参数是读取的长度单位,第三个参数是读取几个单位,第四个参数是要读取的文件,返回值为1表示成功,否则表示失败*/if (P.number = in_number)printf(n 该编号已存在,自动取消录入!n);flag = 0;fclose(fp);/关闭文件以便追加记录if (flag)fp = fo

18、pen(Filename, a);/以追加方式打开文件准备追加elsereturn;P.number = in_number;printf( 请输入姓名:);scanf(%s, 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 -);if (fwrite(

19、&P, sizeof(PatientInfo), 1, fp) != 1)/*fwrite是文件写函数,从P变量中向文件中写入一条短信信息,第一个参数是来源变量的地址, 第二个参数是写的长度单位,第三个参数是写几个单位,第四个参数是要写的文件*/printf(输入数据失败,请重新输入!);else printf(n 添加成功!);fclose(fp);void Search(char Filename)/*函数说明:从指定文件中查找数据形参说明:数组作为形参,实参必须是一个地址,用于传递文件名调用位置:addressbookmenu函数创建人:郭成创建日期:12月22日*/int in_num

20、ber;PatientInfo P;int flag = 1;FILE *fp;fp = fopen(Filename, r);printf(n 请根据以下提示信息操作:);printf(n 编号:);scanf(%d, &in_number);system(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

21、(nttt| %dt ,P.number);printf( %st ,P.name);printf( %st ,P.phonecode);printf( %st ,P.group);printf( %st|,P.email);printf(nnttt 联系人%s的信息已显示出来!n,P.name);printf(ttt -);flag=0;fclose(fp);if (flag)printf( 没有你要找的联系人!);void Update(char Filename)/*函数说明:修改指定文件中的数据形参说明:数组作为形参,实参必须是一个地址,用于传递文件名调用位置:addressbookm

22、enu函数创建人:郭成创建日期:12月22日*/int in_number;PatientInfo P;int flag = 1;FILE *fp, *fptemp;/必须两个文件操作,fp是数据源文件,fptemp是临时文件,修改后的数据临时放入该文件中fp = fopen(Filename, r);/文件读fptemp = fopen(temp.txt, w);/文件写printf(n 修改联系人信息);printf(n 请输入你要修改的联系人的编号:);/先查询,再修改scanf(%d, &in_number);while (fread(&P, sizeof(PatientInfo),

23、1, fp)/文件读if (P.number = 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( 请输入邮箱:);fflush(stdin);/清空输入缓存,以便不影响后面输入的东西scanf(%s, P.email); printf( n -);flag = 0;fwri

24、te(&P, sizeof(PatientInfo), 1, fptemp);/*找没找到都往临时文件中写,因为对文件操作只有追加和覆盖写两种方方式, 因此修改中间某条记录不方便,只能引入第二个文件或者放入数据、链表中*/ printf( n 修改成功!);fclose(fp);fclose(fptemp);if (flag)printf(没有你要查询的结果!);elsefptemp = fopen(temp.txt, r);/从临时文件中读fp = fopen(Filename, w);/往源文件中覆盖写while (fread(&P, sizeof(PatientInfo), 1, fpt

25、emp)fwrite(&P, sizeof(PatientInfo), 1, fp);/从临时文件中回写fclose(fp);fclose(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,

26、 w);printf(n 请输入你想要删除的联系人的编号:);/先查询,再删除scanf(%d, &in_number);while (fread(&P, sizeof(PatientInfo), 1, fp)if (P.number != in_number)/如果找到要删除的记录则不写,否则都要写fwrite(&P, sizeof(PatientInfo), 1, fptemp);elseflag = 0;fclose(fp);fclose(fptemp);if (flag)printf( 没有你要删除的编号!);elsefp = fopen(Filename, w);fptemp = f

27、open(temp.txt, r);while (fread(&P, sizeof(PatientInfo), 1, fptemp)fwrite(&P, sizeof(PatientInfo), 1, fp);printf( 删除成功!);fclose(fp);fclose(fptemp);void Show(char Filename)/*函数说明:显示指定文件中的所有数据形参说明:数组作为形参,实参必须是一个地址,用于传递文件名调用位置:addressbookmenu函数创建人:郭成创建日期:12月22日*/PatientInfo P;int flag = 1;FILE *fp;fp =

28、fopen(Filename, r);while (fread(&P, sizeof(PatientInfo), 1, fp)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);printf(nttt -);printf(nttt 所有联系人信息已全部显示出来!n);fclose(fp);4.2.

29、3 短信录4.2.3.2 流程图开始读出功能代号新建删除修改查看显示关闭123456结束关闭短信录(图4-11)短信录主函数流程图新建功能:在新建短信输入编号时,将判断此编号在通讯录上有无,如果有则显示出来,并对此编号发送信息,如果没有此编号则新建一条信息。开始读入编号显示此编号信息发送短信返回主菜单保存编号是否存在NY(图4-12)新建短信流程图(删除、修改、查看、显示流程图均与通讯录相差不大,这里就不画出来了)4.2.3.3 程序截图 (图4-13)短信录主界面截图(图4-14)短信录新建短信截图(图4-15)短信录显示短信截图(图4-16)短信录删除短信截图4.2.3.4 源代码/*项目

30、名称:手机短信管理系统实施时间:2015年12月22日创建人:郭成*/#includestdio.h#includestdlib.h#includestring.h#include windows.h /定义了Windows的所有资料型态、函数调用、资料结构和常数识别字#include conio.h /进行输入、输出的/定义结构体类型typedef struct Patient_Info/typedef自定义结构体类型PatientInfo,可以用PatientInfo来定义变量int number;/编号char name8;/姓名char phonecode20; /电话号码char g

31、roup10;/类型char email20;/邮箱char content200;/短信内容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 Filename20;/文件名变量char Mes=Message.dll;/指定文件strcpy(Filename,Mes);do printf(nnow dateti

32、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);scanf(%d, &i); fflu

33、sh(stdin);/清空输入缓存,以便不影响后面输入的东西switch (i)case 1: system(cls); Add(Filename); break;case 2: system(cls); Del(Filename); break;case 3: system(cls); Alter(Filename); break;case 4: system(cls); Search(Filename); break;case 5: system(cls); Show(Filename); break;case 6: break;default:printf(错误选择!请重选); brea

34、k; while (i != 6);/新建短信void Add(char Filename)/*函数说明:对指定文件名进行数据的插入形参说明:数组作为形参,实参必须是一个地址,用于传递文件名调用位置:messagemenu函数创建人:郭成创建日期:12月22日*/int in_number;PatientInfo P;/定义一个信息的变量int flag = 1;FILE *fp, *fptemp;/fp是数据源文件,fptemp是临时文件fptemp = fopen(Addressbook.dll, r);/已只读方式临时打开通讯录文件,此操作是为了才看通讯录里是否有相同的编号,如果有则显示

35、出来printf( 请根据以下提示信息操作:);printf(n 编号:);scanf(%d, &in_number);while (!feof(fptemp) & flag)if (fread(&P, sizeof(PatientInfo), 1, fptemp)if (P.number = in_number)printf(n 该编号已存在,自动显示该编号联系人!n);printf(nttt -n);printf(nttt| 编号t| 姓名t| 电话tt| 类型t| 邮箱ttt|);printf(nttt| %dt ,P.number);printf( %st ,P.name);print

36、f( %st ,P.phonecode);printf( %st ,P.group);printf( %st|,P.email);printf(nnttt 联系人%s的信息已显示出来!n,P.name);printf(ttt -);fclose(fptemp);/关闭通讯录文件以便短信内容储存在短信文件内fp = fopen(Filename, a);/以追加方式打开短信文件准备追加printf(n 新建短信:n);P.number = in_number;printf( 姓名:);scanf(%s,P.name);printf( 电话:);scanf(%s, &P.phonecode);pr

37、intf( 短信内容:);scanf(%s,P.content);printf(nttt -);if (fwrite(&P, sizeof(PatientInfo), 1, fp) != 1)printf(输入数据失败,请重新输入!);else printf(n 添加成功!);fclose(fp);void Search(char Filename)/*函数说明:从指定文件中查找数据形参说明:数组作为形参,实参必须是一个地址,用于传递文件名调用位置:messagemenu函数创建人:郭成创建日期:12月22日*/int in_number;PatientInfo P;int flag = 1;

38、FILE *fp;fp = fopen(Filename, r);printf(n 请根据以下提示信息操作:);/先查重,再追加插入printf(n 编号:);scanf(%d, &in_number);system(cls);while (fread(&P, sizeof(PatientInfo), 1, fp) & flag)/fread是文件输出函数,返回值为1表示读成功if (P.number = in_number)printf(nttt -n);printf(nttt| 编号t| 姓名t|电话tt| 短信内容 ttt|);printf(nttt| %d,P.number);prin

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

40、P;int flag = 1;FILE *fp, *fptemp;/必须两个文件操作,fp是数据源文件,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 =

41、 in_number;printf(n 姓名:);scanf(%s,P.name);printf( 电话:);scanf(%s, &P.phonecode);printf( 短信内容:);scanf(%s,P.content); printf(nttt -);flag = 0;fwrite(&P, sizeof(PatientInfo), 1, fptemp);/*找没找到都往临时文件中写,因为对文件操作只有追加和覆盖写两种方方式, 因此修改中间某条记录不方便,只能引入第二个文件或者放入数据、链表中*/ printf( n 修改成功!);fclose(fp);fclose(fptemp);if (flag)printf(没有你要查询的结果!);elsefptemp = fopen(temp.txt, r);/从临时文件中读fp = fopen(Filename, w);/往源文件中覆盖写while (fread(&P, sizeof(PatientInfo), 1, fptemp)fwrite(&P, sizeof(PatientInfo), 1, fp);/从临时文件中回写fclose(fp);fclose(fptemp);void Del(char Filename)/*函数说明:删除指定文件中的某条数据形参说明

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!