课程设计名称 数据结构课程设计
专业班级 16机电二班
小组成员王守锋石松轶陆永斌张智斌李浩明
指导教师 徐丽萍
课程设计时间 2017年5月30日计算机应用技术专业课程设计任务书
0
1
目 录
1需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
3详细设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
4运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
5开发工具和编程语言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
6程序设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
7调试分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
8测试结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
9参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
10心得体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
1 1成绩评价表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
2
1需求分析
QQ的普及度越来越高其功能也需要加强。将通讯录的功能添加到QQ好友管理系统中使其在聊天中就可以呼叫联系人并且将通讯录的信息可以QQ中长期保存在无手机的情况下也查找好友手机号。从而使QQ功能更加完善使用起来更加方便和快捷。
2概要设计
1 实现功能
2序中各函数程简单说明见下
返回值 函数名 参数表 函数说明提供客户int main void 主函数 是void menu void 显示功能是int reads Haoyou stu[N] 读取 否void save haoyou stu[N] ,n 保存 是void add void 添加 是void del void 删除 否void query void 查找 是void chang void 修改 否void show void 信息显示是
3
3对程序中的各个函数功能的描述
[1]主函数main
系统开始、结束界面的显示、各个功能函数的调用、转换以及参数的传递、定义QQ头结点并传递给各个功能函数
[2]功能显示menu
介绍程序的功能按那些键实现其特点功能。
[3]读取函数reads
读取用户输入的信息将其按线性表的形式呢存储
联系人的编号为其头结点。
[4]保存函数save
将输入的信息保存若失败返回保持失败。
[5]添加联系人函数add
增加联系人到QQ通讯录的尾部返回增加是否成功。
[6]删除函数del
按照用户指定的联系人编号删除相应联系人信息返回删除是否成功。
[7]查找函数query
按照用户提供的联系人姓名查找第一个合法姓名对应的信息查找成功则显示信息失败则提示无此联系人返回是否查找到。
[8]修改函数chang
按照用户提供的联系人姓名修改联系人所有信息返回修改是否
成功。
[9]显示信息函数show
显示当前通讯录中所有联系人的信息若为空通讯录则显示无联
系人。
4
3详细设计
4运行环境
1) 软件环境
操作系统 Windows7,Windows8
2) 硬件环境
处理器 Intel Pentium 166MX或更高内存 32MB以上
硬盘空间 1GB以上
显卡 SVGA显示适配
5
5开发工具和编程语言
Microsoft visual C++
C语言
6程序设计
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"conio.h"/*conio.h主要做图形图像例如说设置背景色的函数字体颜色的函数、输出格式的函数等*/
#define N 30typedef struct haoyou/*typedef是类型定义的意思。 typedef struct是为了使用这个结构体方便。具体区别在于:若structnode{}这样来定义结构体的话。在申请node的变量时需要这样写 struct node n;若用typedef可以这样写 typedef structnode{}NODE; 。在申请变量时就可以这样写 NODE n;区别就在于使用时是否可以省去struct这个关键字*/
{char num[20] ;char name[10] ;char adress[50] ;char QQ[15] ;char tel[15] ;
}haoyou;void menu( );int reads(haoyou stu[N] ) ; //读取void save(haoyou stu[N] ,int n) ; //保存void add( ) ; //添加void del( ) ; //删除void query() ; //查询void change() ; //修改void show( ); //信息显示void main( )
{int n;while(1)/*while(1)其中1代表一个常量表达式他永远不会等于0。所以循环会一直执行下去。除非你设置break等类似的跳出循环语句循环才会中止*/
{
6
menu() ;
printf(" 您现在看到的是QQ中的通讯录 \n") ;
printf(" 请输入您要选择的操作编号按回车键确认 \n");
scanf("%d",&n) ;switch(n)
{case 1: add() ;break;case 2: show( ) ;break;case 3: del( ) ;break;case 4: change() ;break;case 5: query( );break;case 0: exit(0);
printf(" 输入错误请输入列表中存在的编号\n ");
}printf("*************\n");printf("按任意键返回\n") ;printf("*************\n");getch() ; /*getch() ;或ch=getch(); 用getch() ;会等待你按下任意键再继续执行下面的语句用ch=getch() ;会等待你按下任意键之后把该键字符所对应的ASCII码赋给ch,再执行下面的语句。 */
}
}void menu( )
{system("color 1f");//颜色system("cls") ;//清屏
printf("** 1 添加好友信息 **\n") ;printf("** 2 显示好友信息 **\n") ;printf("** 3 删除好友信息 **\n") ;printf("** 4 更改好友信息 **\n") ;printf("** 5 查询好友信息 **\n") ;printf("** 0 退出 **\n") ;
}
7
int reads(haoyou stu[N] ) //读取好友文件中的内容
{
FILE *fp;int i=0;if( (fp=fopen("d:\\haoyou.txt", "r") )==NULL)
{printf("文件打开失败 \n") ;return 0;
}else
{for(i=0; !feof(fp) ;i++)fscanf(fp, "%s %s %s %s %s\n",stu[i] .num,stu[i] .name,stu[i] .adress,stu[i] .QQ,stu[i] .tel) ;
}fclose(fp) ;return i;
}void save(haoyou stu[N] ,int n) //好友信息改变后更新文件
{
FILE *fp;int i=0;if( (fp=fopen("d:\\haoyou.txt", "w") )==NULL)
{printf("文件打开失败 \n") ;return ;
}else
{for(i=0;i<n;i++)fprintf(fp,"%s %s %s %s %s\n",stu[i] .num,stu[i] .name,stu[i] .adress,stu[i] .QQ,stu[i] .tel) ;
}fclose(fp) ;
}void add( )/*添加好友信息*/
{
FILE *fp;int n,i;haoyou stu;
8
企鹅小屋:垃圾服务商有跑路风险!企鹅不允许你二次工单的,二次提交工单直接关服务器,再严重就封号,意思是你提交工单要小心,别因为提交工单被干了账号!前段时间,就有站长说企鹅小屋要跑路了,站长不太相信,本站平台已经为企鹅小屋推荐了几千元的业绩,CPS返利达182.67CNY。然后,站长通过企鹅小屋后台申请提现,提现申请至今已经有20几天,企鹅小屋也没有转账。然后,搞笑的一幕出现了:平台账号登录不上提示...
继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...
点击进入亚云官方网站(www.asiayun.com)公司名:上海玥悠悠云计算有限公司成都铂金宿主机IO测试图亚洲云Asiayun怎么样?亚洲云Asiayun好不好?亚云由亚云团队运营,拥有ICP/ISP/IDC/CDN等资质,亚云团队成立于2018年,经过多次品牌升级。主要销售主VPS服务器,提供云服务器和物理服务器,机房有成都、美国CERA、中国香港安畅和电信,香港提供CN2 GIA线路,CE...