短信促销活动

短信促销活动

ID:34939429

大小:106.00 KB

页数:15页

时间:2019-03-14

短信促销活动_第1页
短信促销活动_第2页
短信促销活动_第3页
短信促销活动_第4页
短信促销活动_第5页
资源描述:

《短信促销活动》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、短信促销活动1.问题描述:永辉超市庆祝开业10周年,特举行大型促销活动。为通知到每位贵宾,并节约成本,采用时下流行的手机短信通知方式。超市有10多万户完整的贵宾资料,分别存放在下面两个文本文件当中(每行一条记录,以Tab键分隔每个域):(1)贵宾帐户文本。格式为:贵宾卡号客户姓名身份证号。(2)贵宾资料文本。格式为:身份证号手机号。2.基本要求:短信通知采用上传接口文件方式。接口文件每行表示一条信息,格式为“手机号码短信信息”,以键分隔手机号和短信息。“短信信息”的内容为:“尊敬的***贵宾,永辉超市为庆祝开业10周年,于5月1日至5月15日举行促销活动,凭

2、贵宾卡(贵宾卡号)可享受全场9折,欢迎惠顾”。为了便于查看,要求上传文件以贵宾卡号升序排列。3.程序设计思路:3.1对文本文件的操作。包括文本的读取,文本行向结构化转换和文本文件的生成。主要运用了链表与数组来处理字符串的各项操作。如插入,删除,查找,替换,显示等等。对于自定义的文本”str.txt”,其每一行表示一个结点用单链表来实现,可以进行一行的修改,删除,添加等;每一行中的字符可用一够数组来存储,这样可以利用数组的特性方便地进行插入,删除,替换,甚至可以进行排序操作!数组的各项操作比较简单,下面我举一个链表的删除操作:如果要删除链表中的第i个结点,应当先让第i-1个结点的link域

3、指针指向第i+1个结点,通过重新拉链,把第i个结点从链表中分离出来,然后再删除它。3.2内存操作。包括结构指针的空间申请、赋值、空间回收等。分配内存空间函数malloc:在内存的动态存储区中分配一块长度为"size"字节的连续区域。分配内存空间,并强制转换为字符数组类型,函数的返回值为指向该字符数组的指针,把该指针赋予指针变量。分配内存空间函数calloc:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。释放内存空间函数free:释放任意类型的指针变量所指向的一块内存空间,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分

4、配的区域。3.3结构数组排序。贵宾帐户表以贵宾卡号排序,贵宾资料表以身份证号排序。采用归并排序。归并排序(MERGESORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个  N/2  个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路合并排序。15归并算法的核心操作就是将一维数组中前后相邻的两个两个有序序列合并成一个有序序列。合

5、并算法也可以采用递归算法来实现,形式上较为简单,但实用性很差。合并算法的合并次数是一个非常重要的量,根据计算当数组中有3到4个元素时,合并次数是2次,当有5到8个元素时,合并次数是3次,当有9到16个元素时,合并次数是4次,按照这一规律,当有N个子序列时可以推断出合并的次数是X(2  >=N,符合此条件的最小那个X)。3.4在已排好序的结构数组查找。在生成短信通知文件中,要根据身份证号从贵宾资料表中查找手机号,采用折半查找法。算法思想:将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半

6、部分,否则为右半部分。通过一次比较,将查找区间缩小一半。折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。4.程序流程图:4.1系统流程总框图:生成输出文件排序贵宾帐户结构指针排序贵宾资料结构指针将贵宾帐户文本装载到内存将贵宾资料文本装载到内存开始154.2将贵宾帐户文本装载到内存结构指针流程图:打开文件申请10万个空间从文件中读取一行信息到缓冲区将缓冲区中的贵宾号、姓名和身份证号信息赋给结构变量acc[i]的各个域贵宾人数+1N贵宾人数>申请空间数Y再申请10万个空间重新分配文件关闭154.3将贵宾资料按贵宾卡号进

7、行归并排序流程图:申请=源空间大小的辅助空间步长为1步长<总长度NY结束flag=0?S->源空间,D->辅助空间flag=1?D->源空间,S->辅助空间排序开始,start=0start+步长<总长度NYend=总长度end=start+2*step将源归并排序到目标空间,flag取反步长*2,第二轮归并开始154.4将贵宾身份证查找贵宾手机号码流程图:打开短信通知文件和错误文件顺序读取按贵宾号排序队列中的贵宾身份证按二分查找法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。