课程设计名称 数据结构课程设计
专业班级 16机电二班
小组组员王守锋石松轶陆永斌张智斌李浩明
指导教师 徐丽萍
课程设计时间 20XX年5月30日计算机应用技术专业课程设计任务书
目 录
1需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
3具体设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
4运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
5开发工具和编程语言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
6程序设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
7调试分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
8测试结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
9参考文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
10心得体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
1 1成绩评价表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
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对程序中各个函数功效描述
[1]主函数main
系统开始、结束界面显示、各个功效函数调用、转换和参数传输、定义QQ头结点并传输给各个功效函数
[2]功效显示menu
介绍程序功效按那些键实现其特点功效。
[3]读取函数reads
读取用户输入信息将其按线性表形式呢存放
联络人编号为其头结点。
[4]保留函数save
将输入信息保留若失败返回保持失败。
[5]添加联络人函数add
增加联络人到QQ通讯录尾部返回增加是否成功。
[6]删除函数del
根据用户指定联络人编号删除对应联络人信息返回删除是否成功。
[7]查找函数query
根据用户提供联络人姓名查找第一个正当姓名对应信息查找成功则显示信息失败则提醒无此联络人返回是否查找到。
[8]修改函数chang
根据用户提供联络人姓名修改联络人全部信息返回修改是否
成功。
[9]显示信息函数show
显示目前通讯录中全部联络人信息若为空通讯录则显示无联
系人。
3具体设计
4运行环境
1) 软件环境
操作系统 Windows7,Windows8
2) 硬件环境
处理器 Intel Pentium 166MX或更高内存 32MB以上
硬盘空间 1GB以上
显卡 SVGA显示适配
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是为了使用这个结构体方便。 具体区分在于:若struct node {}这么来定义结构体话。在申请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等类似跳出循环语句循环才会中止*/
{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") ;
}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;if( (fp=fopen("d:\\haoyou.txt", "a") )==NULL) /*假如文件已经存在 能够追加好友信息*/
{if( (fp=fopen("d:\\haoyou.txt", "w") )==NULL) /*文件不存在时创建新文件输入好友信息*/
{printf("文件打开失败 \n") ;return;
}
}
printf(" 请输入要添加好友数量按回车键确定 \n");
这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...
全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...
艾云怎么样?艾云是一家去年年底成立的国人主机商家,商家主要销售基于KVM虚拟架构的VPS服务,机房目前有美国洛杉矶、圣何塞和英国伦敦,目前商家推出了一些年付特价套餐,性价比非常高,洛杉矶套餐低至85元每年,给500M带宽,可解奈飞,另外圣何塞也有特价机器;1核/1G/20G SSD/3T/2.5Gbps,有需要的朋友以入手。点击进入:艾云官方网站艾云vps促销套餐:KVM虚拟架构,自带20G的防御...