文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计报告书 通讯录

C语言程序设计报告书 通讯录

C语言程序设计报告书 通讯录
C语言程序设计报告书 通讯录

C语言课程设计

班级学号

学生姓名

提交日期

成绩

评语及教师签名:

电子信息系

一、实践的目的和要求

加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力.

二、内容

在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等);

运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等.

三、实验任务:通讯录

设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针

功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等.

四、设计思路

1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编.

2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函

数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信

息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save

函数来保存信息,用Exit函数来退出通讯录.

3.小组分工,每个人分配几个函数,按情况进行分配任务.

五、程序代码

#include/*字符函数和字符串函数*/

#include/*字符模式函数(调用getch()函数)*/

#include/*输入输出函数*/

int i;

struct friend/*电子通讯录结构定义*/

{

char num[5]; /*编号*/

char name[11]; /*名字*/

char sex[2]; /*性别*/

char phone[12]; /*电话*/

char address[26]; /*地址*/

char post_num[11]; /*邮编*/

}friends[50];

FILE *fp;

void Data_load() /*数据载入函数*/

{int j;

fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

if(fp==NULL) /*判断是否存在friend.txt,如果不存在则创建*/

{ fp=fopen("friend.txt","w");

i=0;

}

else

{for(i=0;i<50;i++)

{ j=fgetc(fp);

if(j==EOF) /*判断是否到了文件尾*/

return;

fseek(fp,i*sizeof(struct friend),0);

fread(&friends[i],sizeof(struct friend),1,fp); /*从文件中读取一条记录*/ }

}

}

void Menu_Select() /*显示菜单界面*/

{

printf(" \n");

printf(" \n");

printf(" \n");

printf(" Address Book Management System \n");

printf(" \n");

printf(" ======================\n");

printf(" 1.Address book data Entry\n"); /*数据输入*/ printf(" 2.Address Book data Show\n"); /*数据显示*/ printf(" 3.Address Book data Search\n"); /*数据查找*/ printf(" 4.Address Book data Alter\n"); /*数据修改*/ printf(" 5.Address Book data Insert\n"); /*数据插入*/ printf(" 6.Address Book data Delete\n"); /*数据删除*/ printf(" 7.Address Book data Save\n"); /*数据保存*/ printf(" 0.Exit\n"); /*退出*/ printf(" ======================\n");

printf( " Please chioce 0-7 \n\n");

}

int Data_check(int k,char ID[5]) /*检查通讯录中是否存在相同ID或ID输入格式错误*/ {

int j;

if(ID[0]=='0')

k=1;

for(j=0;ID[j]!='\0';j++)

{

if(ID[j]>'9'||ID[j]<'0')

k++;

}

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

k++;

}

return k;

}

void Data_Input() /*数据输入函数*/ {

char yes_no='1';

char ID[5];

int k=0;

if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

printf("

************************************************************************\n"); printf(" ******************* Add Address Book Information

***********************\n");

printf("

************************************************************************\n"); printf("

************************************************************************\n");

}

for(;i<50;i++)

{

do

{

switch(yes_no)

{

case'1': /*如果输入为'1',则进行数据输入*/ printf(" ****** No.(4) Name(10) Sex(M/F) Phone(11) Address(25)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s%s",ID,friends[i].name,friends[i].sex,friends[i].phone,friends [i].address,friends[i].post_num);

Data_check(k,ID);

while(Data_check(k,ID)>0) /*检查输入的ID是否已存在,如果存在重新输入*/ {

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

if(i<49)

{

printf("\n\n Whether to be continue? Y(1)/N(0) \n\n");

yes_no=getch();

}

if(i>=49)

printf("\n\n Storage full!\n\n");

break;

case'0':

break;

default:

yes_no=getch();

}

}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/ if(yes_no=='0') /*如果输入'0'则退出输入函数*/

{

i++;

break;

}

}

}

int The_Size(char a[],char b[]) /*比较两个ID的大小*/ {

int j,t;

if((j=strlen(a)-strlen(b))>0) t=1;

if((j=strlen(a)-strlen(b))<0) t=-1;

if((j=strlen(a)-strlen(b))==0)

{

if(strcmp(a,b)>0) t=1;

if(strcmp(a,b)<0) t=-1;

if(strcmp(a,b)==0) t=0;

}

return t;

}

void Data_Show() /*数据输出函数*/ {int j,k;

char m;

struct friend t;

printf("

********************************************************************\n");

printf(" No. Name Sex Phone Address

Zip_Code \n");

printf("

********************************************************************\n");

for(j=0;j

{

if(The_Size(friends[k].num,friends[k+1].num)==1)

{

t=friends[k];

friends[k]=friends[k+1];

friends[k+1]=t;

}

}

}

for(j=0;j

{

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,friends[j ].sex,friends[j].phone,friends[j].address,friends[j].post_num);

m=getch();

if(m==’’)

break;

}

printf("\n\n There are %d data in the book .\n\n",i); }

void Data_Search() /*数据查找函数*/

{

char k;

int j,a,b;

char ID[5];

char NAME[11];

printf("Search by No. : 1\n");

printf("Search by name : 2\n");

k=getch();

switch(k)

{

case'1': /*按ID查找*/

a=0;

printf("\n\n Please enter the No.\n\n");

scanf("%s",ID);

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

{

a++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,frien ds[j].sex,friends[j].phone,friends[j].address,friends[j].post_num);

}

}

if(a==0)

printf(" Do not have to find the No.!\n\n");

break;

case'2': /*按姓名查找*/

b=0;

printf("\n\n Please enter the Name\n\n");

scanf("%s",NAME);

for(j=0;j

{

if(strcmp(NAME,friends[j].name)==0)

{

b++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,friends[j ].sex,friends[j].phone,friends[j].address,friends[j].post_num);

}

}

if(b==0)

printf(" Do not have to find the Name!\n\n");

break;

default:

printf("\n\n Error!\n");

break;

}

}

void Data_Insert() /*数据插入函数*/

{if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

char ID[5];

int k=0;

printf("Please enter the No. that you want to insert.\n");

scanf("%s",ID);

Data_check(k,ID);

printf("%d",Data_check(k,ID)); /*检查所需插入的ID是否已存在,如果存在重新输入*/

while(Data_check(k,ID)>0)

{

printf("The No. already exists Or The No. isn't correct, please

re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID); /*插入数据*/ printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[i].name,friends[i].sex,friends[i].phone,friends[i].a ddress,friends[i].post_num);

i++;

}

}

void Data_Delete() /*数据删除函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. need to be deleted\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

for(;k

{

friends[k]=friends[k+1];

}

printf("\n\n Delete success!\n\n");

i=i-1;

}

}

void Data_Alter() /*修改函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. to be Amended\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

strcpy(friends[k].num,ID);

printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[k].name,friends[k].sex,friends[k].phone,friends[k].a ddress,friends[k].post_num);

printf("\n\n Alter Success!\n\n");

}

}

void Data_Save() /*数据保存函数*/

{

int j;

fp=fopen("friend.txt","w");

for(j=0;j<=i-1;j++)

{

fwrite(&friends[j],sizeof(struct friend),1,fp);

}

printf("\n\n Save Success!\n\n");

}

void Exit() /*退出函数*/

{

char flag;

printf(" Save or Not? (Y/N)\n"); /*判断是否保存*/

do{

flag=getch();

switch(flag)

{

case'Y': /*保存*/

Data_Save();

break;

case'y': /*保存*/

Data_Save();

break;

case'N':break;

case'n':break;

}

}while(flag!='Y'&&flag!='y'&&flag!='N'&&flag!='n');

}

void main()

{char choose,yes_no;

Data_load();

do

{

Menu_Select();

choose=getch();

switch(choose)

{

case'1': Data_Input(); break; /*输入*/

case'2': Data_Show(); break; /*显示*/

case'3': Data_Search(); break; /*查找*/

case'4': Data_Alter(); break; /*修改*/

case'5': Data_Insert(); break; /*插入*/

case'6': Data_Delete(); break; /*删除*/

case'7': Data_Save(); break; /*保存*/

case'0': Exit(); break; /*退出*/

default : printf(" Error!\n");

}

if(choose=='0')

break;

printf(" Would you like to be continue? (Y/N)\n");

do

{

yes_no=getch();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

if(yes_no=='N'||yes_no=='n')

{

Exit();

break;

}

}while(yes_no!='Y'||yes_no!='y');

六、函数说明

本人所写函数为: Data_check , Data_Input, The_Size, Data_Show,main.

以下为各函数的功能说明,代码以及流程图:

Data_check:

本函数的功能是判断输入的编号是否以存在及格式是否正确.

首先定义一个整型形参,一个字符数组形参.

首先判断编号的首位是否为0,如果为0则整型形参赋值为1.反之没有动作,然后判断编号内是否含义字母及其他字符,如果有则整型形参自增,反之没有动作,

在使用strcmp判断输入的编号在原文件中是否以存在,如果存在则整型形参自增.

最后返回整型形参的值.

源代码:

/*检查通讯录中是否存在相同ID或ID输入格式错误*/

int Data_check(int k,char ID[5])

{

int j;

if(ID[0]=='0')

k=1;

for(j=0;ID[j]!='\0';j++)

{

if(ID[j]>'9'||ID[j]<'0')

k++;

}

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

k++;

}

return k;

}

流程图:

Data_Input:

首先判断储存是否已满,如果满了,则提示是否回到主菜单,如果没满,则提输入信息,然后调用Data_check函数,判断编号是否已经存在以及格式是否正确.如果均无误则提示是否继续输入信息,反之则重新输入编号直到编号无误为止.如果输入信息后,储存变满,则提示储存已满,不再提示是否继续输入.最后提示是否回到主菜单.

源代码:

void Data_Input() /*数据输入函数*/

{

char yes_no='1';

char ID[5];

int k=0;

if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

printf("

************************************************************************\n"); printf(" ******************* Add Address Book Information

***********************\n");

printf("

************************************************************************\n"); printf("

************************************************************************\n");

}

for(;i<50;i++)

{

do

{

switch(yes_no)

{

case '1': /*如果输入为'1',则进行数据输入*/

printf(" ****** No.(4) Name(10) Sex(M/F) Phone(11) Address(25)

Zip_Code(10)*******\n");

scanf("%s%s%s%s%s%s",ID,friends[i].name,friends[i].sex,friends[i].phone,friends [i].address,friends[i].post_num);

Data_check(k,ID);

while(Data_check(k,ID)>0) /*检查输入的ID是否已存在,如果存在重新输入*/

{

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

if(i<49)

{

printf("\n\n Whether to be continue? Y(1)/N(0) \n\n");

yes_no=getch();

}

if(i>=49)

printf("\n\n Storage full!\n\n");

break;

case '0':

break;

default:

yes_no=getch();

}

}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/ if(yes_no=='0') /*如果输入'0'则退出输入函数*/

{

i++;

break;

}

}

}

流程图:

The_Size:

首先定义两个字符数组形参,一个整型变量.

首先利用strlen比较两个字符数组的长度,如果前者长于后者,整型变量赋值为1如果前者短于后者,整型变量赋值为-1,如果两者长度相等,则再利用strcmp比较两个字符数组的大小,如果前者大于后者,则整型变量赋值为1,如果前者小于后者,则整型变量赋值为-1,如果两者大小相等,则整型变量赋值为0.最后返回整型变量的值.

源代码:

int The_Size(char a[],char b[]) /*比较两个ID的大小*/

{

int j,t;

if((j=strlen(a)-strlen(b))>0) t=1;

if((j=strlen(a)-strlen(b))<0) t=-1;

if((j=strlen(a)-strlen(b))==0)

{ if(strcmp(a,b)>0) t=1;

if(strcmp(a,b)<0) t=-1;

if(strcmp(a,b)==0) t=0;

}

return t; }

流程图:

Data_Show:

首先调用The_Size函数再利用冒泡法对通讯录的信息根据编号进行排列.然后再对信

息进行输出,输出完一条信息后按空格停止打印,按其他任意键继续打印下一条.然后输出通

讯录中信息的条数,最后提示是否回到主菜单

源代码:

void Data_Show() /*数据输出函数*/

{ int j,k;

char m;

struct friend t;

printf("

********************************************************************\n");

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("

********************************************************************\n");

for(j=0;j

{ for(k=0;k

{ if(The_Size(friends[k].num,friends[k+1].num)==1)

{ t=friends[k];

friends[k]=friends[k+1];

friends[k+1]=t;}}}

for(j=0;j

{ printf("%4s %10s %4s %11s %20s %10s\n",friends[j].num,friends[j].name,frien ds[j].sex,friends[j].phone,friends[j].address,friends[j].post_num);

m=getch();

if(m==' ')

break;}

printf("\n\n There are %d data in the book .\n\n",i);} 流程图:

main:

调用Menu_Selec函数打印出主菜单.利用switch实现对菜单功能的选择.利用do-while来实现功能选择是输入不正确的纠错.

源代码:

void main()

{char choose,yes_no;

Data_load();

do

{

Menu_Select();

choose=getch();

switch(choose)

{

case'1': Data_Input(); break; /*输入*/

case'2': Data_Show(); break; /*显示*/

case'3': Data_Search(); break; /*查找*/

case'4': Data_Alter(); break; /*修改*/

case'5': Data_Insert(); break; /*插入*/

case'6': Data_Delete(); break; /*删除*/

case'7': Data_Save(); break; /*保存*/

case'0': Exit(); break; /*退出*/

default : printf(" Error!\n");

}

if(choose=='0')

break;

printf(" Would you like to be continue? (Y/N)\n");

do

{

yes_no=getch();

}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

if(yes_no=='N'||yes_no=='n')

{

Exit();

break;

}

}while(yes_no!='Y'||yes_no!='y');

流程图:

七、程序调试

1.启动程序

2.输入数据

3.显示数据

4.查找数据

毕业论文开题报告书范文

毕业论文开题报告书范文 毕业论文开题报告书范文 论文(设计)题目残疾儿童心理健康问题及对策研究 学生姓名冯冰洁学号101330130 专业10级学前音乐所在院系师范教育学院 指导教师姓名、职称彭鹏助教 一、选题的背景、意义及研究现状: (一)选题背景 教育部颁发的《特殊教育学校暂行规程》强调了特殊儿童身心健康教育的重要性,指出特殊教育学校要重视学生的心理健康教育,培养学生良好的心理素质和卫生习惯。已有研究显示,残疾儿童的心理健康水平不高,显著低于国内普通正常学生,状况不容乐观。近年来,我国兴起了新一轮的

残疾儿童心理教育改革,以提高残疾儿童心理健康的发展为目的,在此背景下,实现残疾儿童心理健康的发展是一个亟待解决的问题,因此针对这个问题应该从残疾儿童心理教育入手,将残疾儿童心理教育与学校、家庭、社会相结合进行研究,探究心理健康教育的实用策略。 (二)选题意义 针对残疾儿童的心理特点和身心发展的特殊性,在研究时要充分考虑儿童身心的具体特点和特殊需要,通过对残障儿童心理健康现状和问题的掌握,有目的、有计划的制定合理的教育方案,开展对策研究,从而促进残疾儿童心理健康的发展。 (1)促进残疾儿童心理的发展。 促进残疾儿童的发展,主要着眼于学生的未来,促使学生在适应的基础上获得最有效的发展,使学生的潜能和人格得到最充分的发挥和完善,它包括智力开发和情感培养两个方面,此目标的达成代表着心理健康教育的较高境界,也代表着将来心理健康教育的主要方向。

(2)促进残疾儿童心理的适应性。 促进残疾儿童心理的适应性,主要着眼于学生的现在,培养学生一定的社会适应能力,包括学校、家庭、一个新的组织等各种环境;培养学生的学习适应能力,使他们能够适应各种程度的要求;建立学生正确的自我观和适当的生活方式,此目标的达成是当前心理健康教育的主要任务。 (3)有利于残疾儿童心理的矫治。 对残疾儿童心理的矫治,主要着眼于学生的过去,了解不良心理和行为的根源,采取有的放矢的措施,矫正学生的偏差行为,消除心理障碍,此目标虽然针对面不广,但却是心理健康教育的重要方面。 (三)研究现状 残疾儿童的健康是人们关注的一个重要话题,在残疾儿童中出现了一些新的现象和问题,其中心理健康越来越引起学校、家庭和社会的关注。目前,针对残疾儿童心理健康教育的现状研究,在教育实践中对残疾儿童心理健康教育的重视依然不够,在学校教育中心理健康教育的开展十分薄弱,

通讯录管理系统_毕业设计论文_开题报告

毕业设计(论文)开题报告 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利,在固定管理系统亦是如此。以往固定资产员由于缺乏适当的软件而给其工作带来了很多不便。本论文所介绍的便是一个固定资产管理系统,以方便在固定资产安排和固定资产管理上的工作任务。 该系统适用于普通电费管理行业,在使用上力求操作容易,界面美观,另外,本系统具有较高的扩展性和可维护性,可能在以后需要的时候进行软件升级。 整个系

使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作. 在visual basic 中提供了两种与jet数据引擎接口的方法:data 控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持. DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等. 关系数据库介绍: 关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。 关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

毕业设计开题报告模板

毕业设计开题报告模板 毕业设计开题报告范文模板(一) 计算机信息管理专业毕业设计开题报告 学院软件学院专业计算机信息管理班级计信1232班 学生姓名唐XX 学号 122508XXXX 指导教师王XX 毕业设计题目中小型制造企业ERP系统建设与管理方案设计毕 业设计 类型方案设计 1. 课题研究 ERP代表了当代的先进企业管理模式与技术,并能够解决企业提升整体管理效率和市场竞争力问题,近年来ERP系统在国内外得到了广 泛推广应用。ERP 是由美国Gartner Group Inc. 公司于20世纪90年代初提出的,是信息时代的现代企业向国际化发展的更高层管理模式。 2、课题研究意义 ERP系统实际应用中更重要的是应该体现其"管理工具"的本质。ERP系统主要宗旨是对企业所拥有的人、财、物、信息、时间和空间等综合资源实行综合平衡和优化管理,ERP软件协调企业各管理部门,ERP系统围绕市场导向展开业务活动,提升企业的核心竞争力,ERP软 件从而取得的经济效益。所以,ERP系统首先是一个软件,同时是一个管理工具。ERP软件是IT技术与管理思想的融合体,ERP系统也就是 先进的管理思想借助电脑,来达成企业的管理目标。 2. 课题研究目标: 制造业的进销存一直是其应用ERP系统的核心目的,不过随着制 造业信息化的进展,传统的ERP系统已不能满足其需求,新型的可定

制的、支持二次开发的,并可对接企业内部其它信息系统的ERP解决方案才是现代制造业所需要的。越来越多的企业倾向于选择navision 作为其ERP解决方案,尤其是跨国的世界型企业,navision的本地财务化功能极大的方便了世界数据的整合。通过将产品研发与制造、核算、采购和供应商集成在一起,缩短了开发周期,极大地降低了制造业的营运成本,通过从"按单设计"向"按单配置"的转型,能够快速响应持续变化的客户设计要求,同时将服务、质保、维护和备件控制等交付后,能够与您的财务和制造系统集成在一起。 3. 课题研究方法: 调查法: (1)通过网络实行调查,收集出中小型制造企业对ERP系统的使用水准 (2)通过对相关知识的学习,研究出一套管理方案 (3)收集相关的信息资料,实行整理、总结,并完善该构思 4. 课题研究的难题及如何实现: 本课题的难题主要在于如何收集国内中小型企业对于ERP系统的使用水准以及企业对于ERP系统的偏好水准,只有收集了充足的信息资料,我们才能对此分析、总结并完善出一套ERP系统的管理方案。为此我将主要通过采取网络调查和实地访问的方式来收集信息。 毕业设计开题报告范文模板(二) 营销与策划专业毕业设计开题报告 学生姓名黄XX 学号 20201007XXXX 专业及班级 12级营销与策划班 指导教师常XX 职称副教授工作单位 XX太平洋财险股份有限公司(XX支公司)

基于android的通讯录毕业设计开题报告

安徽科技学院本科生毕业论文(设计)开题报告书 题目基于Android的通讯录设计与实现 学生姓名指导教师职称 研究目的意义及国内外研究状况和应用前景(附参考文献): 一、研究目的意义 随着计算机行业的发展,智能手机在人们的生活中变得火热。智能手机拥有的独立操作系统使得手机能像个人电脑一样支持用户自定义安装软件等程序,并通过此类操作对手机功能进行扩充,从而在更大程度上满足用户的需求,这是智能手机的优势,也是智能手机赢得市场的主要原因。具有开放性的Android手机平台,从2007年谷歌将其正式向外界展示以来,发展迅速,手机市场份额不断攀升,至2012年已超过塞班,跃居第一。通过Android系统的开源性、智能型,我们可以看到Android更光明的未来。 手机系统越来越强大,却始终不会抛弃其最基本的功能——通讯,而通讯录又是通讯的必备软件。此次我们研究的基于Android的手机通讯录,会实现通讯录基本功能,包括基本添加,修改,删除和输出等功能,在实现这些功能的基础上添加一些其他功能,例如为联系人添加头像,联系人分组,通讯录黑名单等,使通讯录界面更友好、功能更人性化。通过设计制作次通讯录能够更好地学习Android 的项目开发知识,熟悉Android的软件开发流程,拓展就业能力。 二、国内外研究现状 Android是一种以Linux为基础的开放源代码操作,主要用于便携设备。Android 操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资。2007年11月Google宣布推出基于Linux的Android开放式手机操作系统,沿袭至今,已发展到4.0.4版本。2011年第一年度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.2%的份额,中国市场占有率58% 基于Android的通讯录的研究也在Android迅速发展的同时逐步走向成熟,在更大程度上满足着用户的需求。除包括基本添加联系人,编辑联系人,删除联系人和联系人数据导出等功能,它又逐渐增加了联系人分组、添加联系人头像、通讯录黑名单等功能。 三、应用前景 根据手机功能使用调查显示,有八成以上的消费者使用手机通讯功能。随着手机通讯录功能的不断曾强于完善,手机通讯录对于人们的意义已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的发展方向发展。 四、参考文献 [1]高焕堂,Android应用框架原理与程序设计(第三版)[M] 北京:清华大学出版社,2007. [2]盖锁林,Android开发入门指南[M] 北京:人们邮电出版社,2009. [3]李兴华,名师讲坛——Android开发实战经典清华大学出版社,2012. [4]李兴华,名师讲坛——Java Web开发实战经典清华大学出版社,2012. [5]杨丰盛,Android应用开发解密[M] 西安:机械工业出版社,2010. 主要内容、研究方法和思路:

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

毕业设计(论文)开题报告书

本科毕业设计(论文)开题报告书题目:应用统计分析在图像识别中的应用研究 指导教师: 专业班级: 学号: 姓名: 日期:

一、选题的目的、意义 伴随着科学的进步和社会的发展,人们已经进入了信息时代,需要在大量的信息中获得具有科学价值的结果,因此统计方法越来越成为统计学中的一个不可或缺的分支,也成为人们必不可少的工具和手段。应用统计分析是近年来发展迅速的统计方法之一,应用于经济学、生物学、管理学、人口学、社会学等实质性学科以及社会等各个领域,成为探索多元世界的有力工具。 在图像识别领域中,图像特征的辨别、提取和分析起着十分重要的作用,在图像提取时,只有相似的特征对图像分析才更加有利,能使得多元的统计分析方法更加便捷。基于图像识别系统中的统计分析方法步骤大致可分为:数据信息的获取、预处理、特征的提取和选择、分类器设计和分类决策等等。应用统计分析方法中可分为回归分析、判别分析、相关分析等多种识别图像、分析图像的分析方法。它们之间相互存在独特点以及制约点、协调点,仅仅利用一种分析方法不足以完全分析图像的特征,多元的分析方法才会给需求者提供到更多的图像信息,掌握更多的数据。因此在图像识别领域,多元统计方法的应用已经成为分析图像的主流方法。 在统计分析方面以及图像领域,MATLAB软件作为国际科学界最具影响力、最具活力的科学计算软件,在较早版本中,统计功能不是很强大,但自从MATLAB6 x版本开始,由于统计工具箱的扩充,其统计功能已直追任何其他专用的统计软件,再加上MATLAB操作简单、语言简洁、具有强大的数据可视化能力以及良好的开放性优点,现在已经是国内外众多统计学喜爱的分析数据工具,本课题就MATLAB软件在应用统计分析教学中的应用进行研究。 应用统计分析应用于各个自然科学领域中,也广泛应用于日常生活之中,在图像识别领域中,应用统计分析方法就更值得深入探索,因此基于应用统计分析的图像识别研究才更有开设的意义。

基于android的手机通讯录的设计与实现大学本科毕业论文

基于Android的天气预报查询系统的实现摘要:随着智能手机一步步走进人们的生活,它将成为人们获取信息的主要设备,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 Android是基于Linux平台完全开源的手机操作系统,同时开发语言为Java,因此我选择了以Android为平台的手机天气预报系统来作为我的毕业设计,目的是帮助用户随时随地查询天气信息及天气变化情况,让生活更加舒适方便。本文详细讲述了Android平台下天气软件的界面设计及界面的实现、控件的使用、界面的布局等内容,结合中国气象网的天气数据,将准确的天气情况以友好的方式呈现给用户,使用户可以更加赏心悦目地体验本软件的服务。 关键词:Android 天气软件手机天气预报软件系统

System implementation of weather query based on Android Abstract With the development of intelligent mobile phone step by step into people's lives, it will become the main device to obtain information, related to more widely, and plays a more and more important role in people's daily life. Therefore, the development of critical applications has become an important factor affecting the popularization of mobile intelligent terminal, application design and development of practical, convenient has important significance and good market prospects. Android as the most popular operating platform, natural also exist in application service needs of a large number of. Android is a mobile phone operating system Linux platform based on open source, at the same time, the development of language Java, so I chose the platform of mobile phone weather system with Android as my graduation design, the purpose is to help the user whenever and wherever possible query weather information and weather condition, make life more comfortable and convenient. This paper describes the layout of content, interface design and interface control weather software under the Android platform use, interface, combined with the weather data of China Meteorological Network, will be accurate weather conditions in a friendly way is presented to the user, the user can be more pleasant experience of the software service. Keyword:Android weather software the software system of mobile phone weather

通讯录管理系统课程设计报告完整版

通讯录管理系统课程设 计报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main ()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。 1

printf("\t--------------------\n"); printf("\t请您选择(0-7):"); scanf("%d",&c); }while(c>7&&c<0); return(c); } int Input(struct date per[10],int n) { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t姓名:"); scanf("%s",per[n+i].name); printf("\t电话号码:"); scanf("%s",per[n+i].phone); printf("\t电子邮箱:"); scanf("%s",per[n+i].email); printf("\tQQ:"); scanf("%s",per[n+i].QQ); gets(x); printf("\n\t是否继续添加?(Y/N)"); fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int Delete_a_record(struct date per[10],int n) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

毕业设计开题报告

毕业设计开题报告 题目:《梦遇古风》——诗选集题目书籍装帧设计 一、设计课题的目的、意义设计课的目的、 (一)课题的目的本课题的目的是以书籍内容设计为基础,以书为载体的形式呈现,在书籍的传统设计的基础上寻求创新,以独特的表现形式和传统与现在方式的结合,表达出现代与传统、中式与西式的强烈对比和完美结合。使诗词文学书籍能给读者带来内容与形式统一并具审美与功能价值的书籍。诗词文学书籍装帧设计如果一味地追求古典效果,将使整个设计缺乏现代的审美情趣,但是一味的追求现在又将使古典诗词文思学书籍的装帧设计缺少了古典诗词的气韵,也会偏离现代人对古典诗词文学作品装帧美的需求。当今对古典诗词书籍进行装帧设计,应充分吸收古今中外对书籍装帧设计的精华,使深厚的中国古典诗词的气韵与现代的美学要求有机地融合在整个总体设计上。既不失中国古典诗词作品的含蕴和意境,又能融合现代人对书籍装帧的审美要求。古今装帧审美方式的统一是当代对中国古典诗词文学书籍进行装帧设计的需求,使读者在翻阅过程中与书沟通并产生互动,使读者从中领悟深邃的思考生命的脉动智慧的启示,体会出诗词情感的流露,视觉传达的图像文字的美感……从而享受到阅读的愉悦。(二)课题的意义1、理论意义中国的传统图案在历史的每一个流程中,都留下了反映这一时代文化特征的不可替代的精华,这些装饰纹样反映了各时代不同的风格和特点,随着时间的推移,既不断变异,又代代相承。与此同时,也影响着书籍设计的发展。将传统图案应用到现代

书籍设计当中,并不是简单的对传统图案的拷贝或挪用,而是在理解、挖掘、分析传统图案的内涵后,结合现代设计的特点,以传统图案作为创意点和启示点,进行全新的设计。传统图案在现代设计中运用十分广泛,在我们的平面设计中,经常能从中发现传统图案。2008 年奥运会标志“中国印、舞动的背景” ,将中国传统的印章和龙纹、书法及体育运动相结合。标志采用印章式的图案效果,而印章中的“京”字图案神似中国传统图案当中的龙,又形似运动中的人,把中国、北京、龙的文化和现代运动完美的结合起来。雷圭元先生认为“自然是源,传统是流,源和流缺一不能高飞” 。对传统图案艺术 语言的研究和对其基本元素的重构和运用,是我们走向国际的桥梁。将传统图案艺术的精神元素融入现代书籍设计中,使民族的文化精神和现代的书籍设计,共同融汇成当代书籍设计思想的主流,才能真正使中国的书籍设计走向国际。2、现实意义今天的书籍,已不只是停留在书籍装帧的表皮打扮或简单的内文装饰这一层面。现在,随着出版业的发展和出版市场的逐步开放,书籍装帧设计已为世人所认知并且发挥着重要的作用。现今中外交易频繁,风格更是多种多样,个性化的书装更是大受欢迎。中国传统艺术在现代设计中也占有着举足轻重的地位。鲁迅先生的设计常用中国的石刻;马蒂斯的设计常用线描和剪纸;陶元庆的设计常用装饰变形的人物;陈之佛的设计常用图案;而司徒乔的设计,则常用速写。说明他们不排斥各方面的知识,兼收并蓄后才能独出心裁。从90 年代开始,设计中融入中国元素成为潮流,这样既能体现出中华民族文化气质,又有精致、简洁的国际化风格。屡

毕业设计成果报告书

生物机电职业技术学院 毕业设计报告书 题目:别墅花园绿化景观工程 专业: 班级: 姓名: 指导教师: 2017年 5 月30 日

目录 第一部分设计任务与调研 (3) 一、毕业设计的主要任务 (3) 二、设计的思路 (3) 三、设计方法 (4) 四、与本课题相关的资料 (4) 第二部分设计说明 (5) 一、基本概况 (5) 二、设计依据 (5) 三、设计的理念和原则 (5) 四、设计构思 (5) 五、功能区 (6) 六、技术路线(步骤与方法) (6) 七、植物的配置说明 (7) 八、工具设备要求 (7) 九、技术规 (8) 第三部分设计成果 (9) 一、别墅景观设计 (9) 二、设计说明书 (10) 第四部分结束语 (10) 一、毕业设计归纳和总结 (14) 二、建议与问题 (14) 第五部分致 (15) 第六部分参考文献 (16)

第一部分设计任务与调研 一、毕业设计的主要任务 (一)选择别墅绿化景观植物配置设计,选择适当的植物材料进行配置,要求充分满足不同区域的功能需求,并营造丰富而具特色的植物景观给住户舒适优雅的环境。 要求完成: 1、绿化植物配置总平面图。 2、绿化植物配置表现图(包括节点景观透视效果图、剖面图等) 3、植物名录表及设计说明书。 (二)绿化植物配置树种选择正确,能因地制宜地运用种植类型,根据每种植物的生态习性,进行合理的搭配,尽量做到乔、灌、地被相结合,体现“草铺底、乔遮荫、花藤灌木巧点缀”的绿化特点,使庭院中四季皆有景可观,有画可赏。 二、设计的思路 (一)别墅以绿化为主,适当点缀小品,做到三季有花四季有景。 (二)体现环境特色,形成别墅的整体风格。 (三)打造人性空间,满足功能需求,别墅是一个非正式交流场所,具有良好的可进入性又有足够的活动面,是一个能让人驻足、而又可随时借景而转移话题的自由、轻松的自由空间。 (四)适地适树。在形成良好的别墅景观的同时,应考虑今后的方便养护管理,尽量节约别墅的投入和今后的养护管理费用。 三、设计方法 (一)网上查找别墅景观设计相关书籍材料。 (二)运用CAD 绘制绿化植物配置总平面图、表现图(包括节点景观透视效果图、剖面图等)植物名录表及设计说明书。 (三)运用草图大师建出绿化植物配置表现图(包括节点景观透视效果图) 四、与本课题相关的资料 (一)《艺术设计学》凌继尧,徐恒醇著人民 2000 年11 月第一版。

基于Java的校园信息通讯录

本科生毕业论文(设计) 论文(设计)题目:基于Java的校园信息通讯录分院:理工学院 专业(方向):软件工程 年级、班级:软件0801 学生学号: 学生姓名: 指导老师: 2012 年 5 月 20日

论文独创性声明 本人所呈交的毕业论文(设计)是我个人在指导教师指导下进行的研究工作及取得的成果。除特别加以标注的地方外,论文中不包含其他人的研究成果。本论文如有剽窃他人研究成果及相关资料若有不实之处,由本人承担一切相关责任。 本人的毕业论文(设计)中所有研究成果的知识产权属三亚学院所有。本人保证:发表或使用与本论文相关的成果时署名单位仍然为三亚学院,无论何时何地,未经学院许可,决不转移或扩散与之相关的任何技术或成果。学院有权保留本人所提交论文的原件或复印件,允许论文被查阅或借阅;学院可以公布本论文的全部或部分内容,可以采用影印、缩印或其他手段复制保存本论文。 加密学位论文解密之前后,以上申明同样适用 论文作者签名:日期:年月日

摘要 信息时代的今天,传递和获取信息的途径越来越多,其中网络以其跨时间,跨地域、快速、高效和低成本等显著特性成为信息传递和信息获取的主要途径。为进一步加强网络信息安全,促进师生互动,打造便捷的校园信息服务平台,完善校园信息服务,给校园信息的管理和维护提供更便捷、更安全的服务系统而开发的校园信息通讯录系统。由于校园信息通讯录系统自身具有多层结构的、分布式的、面向对象的特点,在开发基于JA V A WEB的校园信息通讯录系统过程中,采用流行的JA V AEE平台、STRUTS2、HIBERNATE、SPRING的开源框架,通过JSP图形界面标准技术实现了MVC 设计模式。使系统开发效率得到提高,同时使系统具有复用性、可靠性、开放性等特点。通过构建Tomcat服务器和网站制作,以实现了良好的校园信息通讯录系统,具有执行效率高、运行稳定可靠的优点。根据校园信息通讯录系统的需求,在Oracle数据库中实现了数据表的设计和存储,实现了校园信息通讯录系统的用户登录、用户信息管理、分院班级信息管理、通告信息的发布和阅读、用户功能权限的分派等功能。 【关键词】STRUTS2 MVC设计模式Oracle数据库HIBERNATE Abstract

C语言程序设计学生通讯录管理系统

C语言程序设计学生通讯录管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

#define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() {

char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser()

基于android的通讯录毕业设计开题报告

知识不仅是指课本的内容,还包括社会经验、文明文化、时代精神等整体要素,才有竞争力,知识是新时代的资本,五六十年代人靠勤劳可以成事;今天的香港要抢知识,要以知识取胜安徽科技学院本科生毕业论文(设计)开题报告书 题目 基于Android的通讯录设计与实现 学生姓名 指导教师 职称 研究目的意义及国内外研究状况和应用前景(附参考文献): 一、研究目的意义 随着计算机行业的发展 智能手机在人们的生活中变得火热 智能手机拥有的独立操作系统使得手机能像个人电脑一样支持用户自定义安装软件等程序并通过此类操作对手机功能进行扩充 从而在更大程度上满足用户的需求 这是智能手机的优势 也是智能手机赢得市场的主要原因 具有开放性的Android手机平台 从2007年谷歌将其正式向外界展示以来 发展迅速 手机市场份额不断攀升 至2012年已超过塞班 跃居第一 通过Android系统的开源性、智能型 我们可以看到Android更光明的未来 手机系统越来越强大 却始终不会抛弃其最基本的功能--通讯 而通讯录又是通讯的必备软件 此次我们研究的基于Android的手机通讯录 会实现通讯录基本功能 包括基本添加 修改 删除和输出等功能 在实现这些功能的基础上添加一些其他功能 例如为联系人添加头像 联系人分组 通讯录黑名单等 使通讯录界面更友好、功能更人性化 通过设计制作次通讯录能够更好地学习Android的项目开发知识 熟悉Android的软件开发流程

拓展就业能力 二、国内外研究现状 Android是一种以Linux为基础的开放源代码操作 主要用于便携设备 Android操作系统最初由Andy Rubin开发 最初主要支持手机 2005年由Google收购注资 2007年11月Google宣布推出基于Linux的Android开放式手机操作系统沿袭至今 已发展到4.0.4版本 2011年第一年度 Android在全球的市场份额首次超过塞班系统 跃居全球第一 2011年11月数据 Android占据全球智能手机操作系统市场52.2%的份额 中国市场占有率58% 基于Android的通讯录的研究也在Android迅速发展的同时逐步走向成熟在更大程度上满足着用户的需求 除包括基本添加联系人 编辑联系人 删除联系人和联系人数据导出等功能 它又逐渐增加了联系人分组、添加联系人头像、通讯录黑名单等功能 三、应用前景 根据手机功能使用调查显示 有八成以上的消费者使用手机通讯功能 随着手机通讯录功能的不断曾强于完善 手机通讯录对于人们的意义已不仅仅像记事簿一样显示通讯地址 而是向着个性化、人性化的发展方向发展 四、参考文献 [1]高焕堂 Android应用框架原理与程序设计(第三版)[M] 北京:清华大学出版社2007. [2]盖锁林 Android开发入门指南[M] 北京:人们邮电出版社 2009. [3]李兴华 名师讲坛--Android开发实战经典清华大学出版社 2012. [4]李兴华 名师讲坛--Java Web开发实战经典清华大学出版社 2012.

通讯录管理系统课程设计报告书(C语言)

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院课程设计报告书 课程名称:C语言课程设计 班级: 学号: 姓名:薛其乐 指导老师:

二〇〇九年九月 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/

char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中删除记录\n");

通讯录C语言程序设计报告书

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

相关文档
相关文档 最新文档