通讯录总体功能要求

合集下载

通讯录管理制度

通讯录管理制度

1.目的为增强对公司通讯录发放、更新等管理,特制定此制度。

2.适用范围公司通讯录。

3.职责3.1行政人事部负责本制度拟定、完善、更新及下发。

3.2行政人事助理负责定期更新、发放通讯录。

3.3各部门负责人负责本部门工作联系更新信息传递至行政人事助理。

3.4各员工负责自身联系更新信息传递至行政人事助理。

4.工作程序4.1通讯录版本及内容4.1.1公司通讯录分为“内部”和“外部”二个版本。

“内部”通讯录记录公司所有人员的通讯信息,仅发放于公司总部相关部门;“外部”通讯录记录部门负责人、部门助理,及经常与办事处沟通人员的通讯信息,发放于办事处。

4.1.2公司通讯录按照部门顺序记录以下内容:大部名称、部门名称、姓名、岗位、分机、手机、固定电话、传真、邮箱等信息。

4.2通讯录更新4.2.1行政人事助理依据上周发生的人员入职、离职、调岗等信息更新通讯录,于每周一下班前以邮件方式发放最新通讯录。

4.2.2公司各员工在自身通讯方式发生变更三个工作日内,把更新通讯信息传递至行政人事助理处。

4.2.3各部门对外工作联系信息,包括但不限于办公地址、办公电话、传真等发生变化时,由部门负责人或部门助理在变更后三个工作日内传递更新信息至行政人事助理处。

4.2.4公司部门架构、公司对外工作联系信息等发生变化时,经CEO审批后,由行政人事助理直接更新。

4.3通讯录发放接收人员4.3.1《通讯录(内部)》发放接受人员为:CEO、CTO、COO;各大部总监;部门经理;需与外部经常联系的部门助理、岗位人员。

4.3.2《通讯录(外部)》发放接受人员为:大区经理、办事处经理、办事处文秘。

4.4通讯录管理4.4.1公司通讯录为公司受控文件,严禁接受人员随意转发。

如发现转发的,处于200元/次经济处罚。

4.4.2如因正常工作需要,需取得通讯录的,由行政人事部总监审批。

4.4.3工作之外,要求取得通讯录的,由行政人事部总监审核后,由CEO审批。

通讯录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<string.h>/*字符函数和字符串函数*/#include<conio.h>/*字符模式函数(调用getch()函数)*/#include<stdio.h>/*输入输出函数*/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<i+1;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 AddressZip_Code \n");printf("********************************************************************\n");for(j=0;j<i-1;j++) /*对数据进行排序*/ {for(k=0;k<i-1-j;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<i;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<i+1;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<i+1;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, pleasere-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<i;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<i;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<i;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<i+1;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<i-1;j++) /*对数据进行排序*/{ for(k=0;k<i-1-j;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<i;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.查找数据5.修改数据6.插入数据7.删除数据8.保存数据9.退出八、实验心得C语言是国内外广泛使用的计算机语言,学会、学好、使用C语言进行程序设计是时代的要求,也是计算机工作者的一项基本功。

个人通讯录管理系统(VFP)

个人通讯录管理系统(VFP)

数据库原理课程设计系别:计算机与信息工程系班级:05(2)学号:*********姓名:***题目:个人通讯录管理系统指导教师:**摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。

这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。

第一部分1.1设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为三个模块:用户登录、系统维护以用户登录:用户可通过用户名和密码登录。

系统维护:包括对信息添加、删除、查找、修改,修改密码等操作1.2系统数据流图:1.3功能结构图:1.4通用户部分功能图:1.5开发及运行环境:本系统开发平台及运行环境如下:系统开发平台:Microsoft Visual FoxPro运行平台:Windows XP (SP2) / Windows2000 (SP4) / Windows Server 2003 (SP1)分辨率: 最佳效果 1024×768 像素第二部分详细设计:2.1.1界面设计如图2.1.2提供登陆通道,任何未登陆者不能对通讯录上的内容进行一系列的操作。

2.1.3提供“浏览”、“添加记录”“修改”“删除”等功能。

2.2设计思想2.2.1界面主要由登陆区、主窗口组成。

登陆区是由用户名、密码两个文本框和“确定”、“取消”两个命令按扭组成。

“确定”按钮的代码如下:IF ALLTRIM(thisform.txtUserName.V alue) == ''MessageBox("请输入用户名")RETURNENDIFIF ALLTRIM(thisform.txtUserPwd.V alue) == ''MessageBox("请输入密码")RETURNENDIFSELECT 用户表&&查找指定用户名为的记录Locate For Allt(用户名)=Allt(thisform.txtUserName.V alue)If Found() == .T. &&如果找到If Allt(密码) == Allt(thisform.txtUserPwd.Value) &&比较密码,成功则进入MessageBox("欢迎光临", 64, "提示信息")UserName = 用户名UserType = 用户类型release thisformElse &&比较密码不成功MessageBox("密码不正确", 16, "错误提示")EndifElse &&没有找到指定用户MessageBox("用户名不存在", 16, "错误提示")Endif取消按钮的代码如下:RELEASE thisformON SHUTDOWN Do OnQuitquit2.2.2系统界面主要由王五个菜单项构成,分别是文件(只含退出命令)、用户密码修改、数据(浏览,添加记录,修改,删除)、查询(按姓名查询,按住址查询,按联系方式查询)、帮助。

电子通讯录

电子通讯录

目录1 技术要求 (1)2 基本功能描述 (1)3 设计思路 (2)3.1 添加功能 (2)3.2 删除功能 (3)3.3 修改功能 (3)3.4 查询功能 (4)3.5数据库访问接口ODBC (4)4 软件设计 (4)4.1 设计步骤 (4)4.2 界面设计 (7)4.3 关键功能的实现 (8)4.3.1 添加功能 (8)4.3.2 删除功能 (8)4.3.3 修改功能 (9)4.3.4 查询功能 (9)4.3.5 添加用户及权限设置 (10)5 心得与体会 (10)6 参考文献 (11)7 附录 (11)7.1 调试报告 (11)7.2 测试结果 (12)7.3 关键源代码 (15)电子通讯录的实现1 技术要求(1)能创建、修改和增删学生通讯录1)创建功能:能够轻松地录入一个朋友的姓名、性别、出生日期、通讯地址、电话号码、QQ号码等信息;2)浏览功能:显示通讯录的全部信息;3)追加功能:在原有数据资料的基础上按顺序增加记录,可以一次完成若干条信息的输入;4)删除功能:按照记录的ID或姓名等删除通讯信息。

这一步首先根据输入的删除内容在电子通讯录里查找记录,给出提示信息。

若找到记录,提示是否删除,确定执行删除后,显示通讯录的内容;若没有找到,则提示无此人。

5)查找功能:给出姓名,查找该记录并显示该人的信息。

6)插入功能:给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容;7)排序功能:根据姓名对通讯录进行升序排列。

应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。

(2)能够按多种方式进行查询:查询时请分别使用折半查找法和顺序查找法进行查找。

(3) 应用MFC创建基于对话框的Windows应用程序,设计友好方便的图形用户界面2 基本功能描述电子通讯录是一个小的信息系统,通讯信息包括姓名、性别、出生日期、通讯地址、电话号码、QQ号码等,具有浏览信息,追加记录,删除记录,查询记录,修改记录等功能。

通讯录管理系统数据库课程设计

通讯录管理系统数据库课程设计

通讯录管理系统数据库课程设计一、课程设计背景随着互联网和智能手机的普及,通讯录成为人们日常生活中不可或缺的一部分。

而对于企业和组织来说,通讯录更是必不可少的管理工具。

为了提高学生对数据库课程的实际应用能力,本课程设计旨在设计一个通讯录管理系统数据库,作为学生课程设计的项目,帮助学生深入理解数据库的概念和操作。

二、课程设计目标本课程设计的目标是让学生通过实际设计一个通讯录管理系统数据库,掌握数据库设计的基本原理和方法,包括数据库的规范化、关系模式的设计、SQL语言的应用等方面的知识。

通过完成课程设计,学生将能够提高解决问题的能力,锻炼团队合作和交流能力。

三、课程设计内容1. 系统需求分析1.1 确定系统的功能和性能需求1.2 确定系统的使用环境和用户特点2. 数据库设计2.1 确定数据库的实体和关系2.2 设计数据库的表结构和约束条件2.3 进行数据库规范化设计3. 系统实现3.1 使用MySQL或Oracle等数据库管理系统搭建数据库3.2 使用Java、C#等编程语言编写系统的界面和逻辑代码3.3 实现系统的基本功能,包括添加通信人、编辑通信人信息、查找通信人、删除通信人等功能4. 系统测试4.1 对系统进行功能测试和性能测试4.2 修复系统中出现的bug和问题5. 系统部署5.1 部署系统到本地服务器或云服务器5.2 进行系统的上线和维护四、课程设计流程1. 分组确定课程设计题目学生按照班级和兴趣分组,确定课程设计的具体题目和要求。

2. 系统需求分析学生对系统的功能和性能需求进行分析,编写系统需求规格说明书。

3. 数据库设计学生根据系统需求规格,设计系统的数据库结构和约束条件,完成数据库设计文档。

4. 系统实现学生根据数据库设计文档,使用相应的数据库管理系统搭建数据库,编写系统的界面和逻辑代码。

5. 系统测试学生对系统进行功能测试和性能测试,并记录测试结果,修复系统中出现的bug和问题。

6. 系统部署学生将完成的系统部署到本地服务器或云服务器,并进行上线和维护。

集团电话解决方案

集团电话解决方案
集团电话解决方案
第1篇
集团电话解决方案
一、背景分析
随着我国经济的快速发展,企业规模不断扩大,集团内部通讯需求日益增长。为提高工作效率,降低沟通成本,搭建一套稳定、高效、安全的集团电话系统显得尤为重要。本方案将结合我国法律法规及行业最佳实践,为贵集团提供一套合法合规的电话构之间的免费通话,降低通讯成本。
4.提供决策支持,助力集团战略规划和业务发展。
本方案经过严谨设计,力求为贵集团提供一套全面、高效、安全的电话解决方案。如有任何疑问或需要进一步讨论,请随时联系。期待与您的合作,共同推动集团通信系统的升级与发展。
-实施严格的权限控制,防止未授权访问。
-定期进行系统安全评估和漏洞扫描,确保系统安全。
5.录音与报表
-自动记录所有通话,提供便捷的检索和播放工具。
-生成详细的通话报表,按需定制统计维度。
6.扩展性
-构建模块化系统架构,便于未来升级和扩展新功能。
-支持与其他企业系统的集成,提升业务协同效率。
四、实施计划
1.降低通讯成本,提高工作效率;
2.提升集团内部沟通便捷性,促进业务协同;
3.增强集团信息安全,防止信息泄露;
4.为集团决策提供数据支持,助力企业持续发展。
本方案旨在为贵集团提供一套合法合规、高效稳定的电话解决方案,如有未尽事宜,敬请指正。感谢您的信任与支持!
第2篇
集团电话解决方案
一、引言
随着企业规模的扩大和业务流程的复杂化,高效的通信系统成为集团运作的重要支撑。本方案旨在为贵集团构建一套符合法规、高效可靠、具备扩展性的电话解决方案,以满足当前及未来业务发展的需求。
(3)支持手机、座机等多种终端接入,满足不同场景需求。
3.通讯录管理

通讯录设计63219

通讯录设计63219

多用户通讯录一、选题意义随着计算机的普及,人们一系列的日常生活和工作方式都开始走向信息化,例如无纸化办公、电子商务、电子政务等.多用户通讯录系统的实现也是信息化的一个体现,它代替了传统的通讯录、电话本,实现了多个用户能够在网上建立各自的通讯录,互不干扰,并且可以按照类别将联系人分成同学、同事等多个组,使得查询和管理非常方便。

二、系统功能概述根据功能要求,设计多用户通讯录系统的功能模块及结构如图:各模块的功能如下:1)用户登录模块根据用户输入的账号和密码判断该用户是否合法以及是否为管理员,并根据级别进行“用户管理"模块的授权。

2)用户注册模块对于新用户的注册,注册成功的用户将自动登录系统。

新注册的用户默认为普通用户,不能使用“用户管理”模块。

3)通讯录模块包括三个子模块:查询搜索子模块、联系人管理子模块、分类管理子模块。

(1)查询搜索子模块:能够根据用户自行设计的分类查询联系人,能根据姓名、住址等字段进行分类查询联系人(2)联系人管理子模块:用户可以根据自己的联系人查询详情、添加、修改和删除操作。

(3)分类管理子模块:用户可以管理自己的联系人分类,包括添加、修改和删除分类。

4)我的资料模块用户可以查看和修改自己的资料。

5)用户管理模块管理员登录后可以查看用户的详细资料和删除用户。

6)退出系统结束用户在登录模块获得的session变量,退出系统,返回登录页面。

三、系统设计说明1、数据库设计系统可采用SQL SERVER或ACCESS类型的数据库作为后台支持数据库,根据功能的需要建立适合的数据表。

2、功能设计根据以上的功能概述,设计程序,可以根据自己的需要增加和完善一些功能和服务。

四、开发环境前台开发工具可以利用所学的任何一种语言,比如VB、PB、ASP、VC、Java等等,后台数据库可以选用所学的任何数据库比如Access、SQL、ASA(PB自带的)等等。

五、时间安排(4周)六、写出毕业设计报告书(论文)论文必须包括以下内容:1)该设计的摘要2)设计的需求分析3)设计的目的4)程序主要源代码及其说明5)程序运行的结果6)毕业设计的收获、感想以及体会7)参考文献七、设计成绩评定设计成绩是依据学生在设计中的表现和设计成果综合评定,包括:1)设计纪律(20%):根据设计出勤情况、遵守纪律和服从管理情况、以及设计态度等因素评定;如有严重纪律问题,可按学校有关规定直接评为不及格;2)设计报告书的完成质量(40%):设计报告书的完成情况;3)系统的运行效果以及答辩情况(40%):根据设计实际完成的质量而考核。

2.1总体要求

2.1总体要求

2.1总体要求系统要求采用IBM的群件系统Lotus Domino/Notes构建,结合XML、JAVA等新技术,采用B/S模式,结合采购人实际应用特点搭建一个集工作协同、个人办公、公共信息、公文管理、会议管理、文档管理、后勤管理、应用集成等功能于一体的综合办公管理平台。

2.2技术要求2.2.1、先进性(1)系统具有高的技术先进性、稳定性、可靠性和扩展性;(2)系统要求支持门户应用,能够自由挂接其他信息管理系统,实现不同系统间用户的单一登陆,并提供单位、部门和个人等多种门户自定义功能;(3)系统应当充分考虑对长期使用后产生的海量数据的利用和管理,并对海量数据条件下系统的运行性能有明确有效的技术保障,必须采用“双库结构”设计,以保证系统长期高效运行;(4)系统要求采用B/S结构的“图形化”工作流管理系统,通过简单的图形拖、拉操作,便可以设计各种复杂的业务流程;(5)对于流转过程中的工作,要求可以采用图形化方式对流转过程进行动态跟踪监控。

2.2.2、扩展性(1)系统具有严谨、统一的系统规划和架构,设计、编码、命名、风格等必须统一、规范;(2)系统模块间具有开放的标准化接口,便于系统的模块扩展升级;(3)系统必须提供基于WEB的应用扩展设计工具,包括便捷的树型导航器设计、文件夹的权限级别、显示格局、显示内容、排列规则、操作动作以及应用模块间文件夹的引用、集成等设计,用户单位可以根据发展需要,无需编码便可自由拓展应用。

2.2.3、安全性·支持CA验证机制;·支持 SSL V3技术,保证数据在传输过程的安全性;·采用USB身份认证锁对重要用户进行登陆验证,保证重要用户审批文件的实效性;·采用电子签名技术,支持对Word/Excel、Html页面的签章/手写签名,保证重要用户审批文件的实效性·提供对登录用户的唯一性判断;·提供限次登录功能;·提供系统日志功能,用于记录Web用户的在线信息。

项目通讯录模板

项目通讯录模板

项目通讯录模板标题:项目通讯录模板引言概述:在项目管理中,一个完善的通讯录模板可以匡助团队成员更好地沟通和协作。

一个好的通讯录模板不仅可以记录团队成员的联系方式,还可以包含其他重要信息,如职务、部门等。

本文将介绍一个完善的项目通讯录模板,匡助项目团队更高效地进行沟通和协作。

一、通讯录模板的基本信息1.1 通讯录模板的标题和项目名称:在通讯录模板的顶部应包含项目的名称和通讯录的标题,以便团队成员快速找到所需信息。

1.2 团队成员信息:在通讯录模板中应包含团队成员的姓名、职务、部门、联系方式等基本信息,以便团队成员之间能够快速联系。

1.3 更新日期:通讯录模板应包含更新日期,确保团队成员使用的是最新的信息。

二、通讯录模板的分类信息2.1 部门分类:通讯录模板可以按照团队成员所在的部门进行分类,方便团队成员根据部门找到相应的联系人。

2.2 职务分类:通讯录模板也可以按照团队成员的职务进行分类,方便团队成员根据职务找到相应的联系人。

2.3 项目角色分类:通讯录模板还可以按照团队成员在项目中的角色进行分类,方便团队成员根据项目角色找到相应的联系人。

三、通讯录模板的附加信息3.1 会议日程:通讯录模板可以包含团队成员的会议日程安排,以便团队成员能够及时了解会议时间和地点。

3.2 重要事项提醒:通讯录模板还可以包含重要事项提醒,如项目里程碑、截止日期等,匡助团队成员及时关注。

3.3 其他联系方式:通讯录模板还可以包含团队成员的其他联系方式,如微信、Skype等,以便团队成员在不同场合能够及时联系。

四、通讯录模板的使用方法4.1 更新及时:团队成员应及时更新通讯录模板中的个人信息,确保信息的准确性和完整性。

4.2 定期备份:团队应定期备份通讯录模板,以防意外情况导致信息丢失。

4.3 分享共享:团队成员应将通讯录模板分享给所有团队成员,确保每一个人都能够方便地查找联系人信息。

五、通讯录模板的优势5.1 提高沟通效率:一个完善的通讯录模板可以匡助团队成员更快速地找到需要联系的人,提高沟通效率。

通讯录 通讯录管理制度通用8篇

通讯录 通讯录管理制度通用8篇

通讯录通讯录管理制度通用8篇在不断进步的社会中,需要使用制度的场合越来越多,制度就是在人类社会当中人们行为的准则。

制度到底怎么拟定才合适呢?这里作者为大家分享了8篇通讯录管理制度,希望在通讯录的写作这方面对您有一定的启发与帮助。

通讯录管理制度篇一一、通讯设备指办公电子话、手机、对讲机、传真机由行政办公室统一管理。

二、通讯设备购买、使用、增加功能、转移,由部门申请,经理办公会批准,到行政办公室办理有关手续。

三、电子话为办公设备,私事打市内电子话不得妨碍联系公务。

四、办公电子话应根据业务需要,由行政办公室定期核定每部电子话费用标准,非正常大额或连续超支需由各部门书面说明,如非正常使用须追究责任人进行赔偿。

五、传真电子话由专人管理,经使用部门主管批准后,到行政办公室登记使用。

任何人未经允许严禁使用。

六、个人使用的通讯设备要妥善保管,人为损坏照价赔偿。

七、由单位负责缴纳手机费的人员须保证24小时开机,对故意不开机或不接听电子话的按违纪处理并停止为其缴纳手机费。

八、调离或调岗不须使用的`一律交回行政办公室。

通讯录管理制度篇二一、认真做好本单位车辆、通讯设备管理工作,落实专人保养、维护、确保器材完好。

二、车辆、通讯设备由专人管理,保持车容整洁,车辆完好,不带病行驶,每半月对车辆检测一次,保证警务用车始终处于良好运行状态。

三、车辆只能用于警务工作,不得出私车或借与非警务人员,经常对驾驶员进行安全教育,严格遵守交通法规。

四、车辆每天存放在单位(除冬季存放车库外),无特殊任务,每天17时前须归队,如有情况请示领导批准。

五、单位通讯设备(电子话、无线对讲机等)应保持良好畅通状态,发现出现故障,要及时向领导报告并立即维修。

六、通讯设备不得私自外借或挪为他用。

七、通讯设备的保管须做到:防水、防火、防盗、防潮、防冻、防尘、防蛀。

无丢失、无损坏、无变质、无锈蚀、无鼠害。

八、如有车辆、通讯设备因保管或使用不当损坏,应照价赔偿。

学生手机通讯录管理制度

学生手机通讯录管理制度

学生手机通讯录管理制度一、总则为规范学生手机通讯录管理,便于学生和学校进行有效的沟通和联系,提高学校管理效率,特制定本管理制度。

二、适用范围本制度适用于学校全体学生。

三、通讯录管理1. 学校通讯录统一管理,由学校统一组织维护学生通讯录数据库。

2. 学生个人通讯录由学校统一分发,不得私自添加或删除联系人信息。

3. 学生手机通讯录中仅包含学生家长、老师等学校相关人员的联系方式,不得涉及不良信息或不当内容。

4. 学生通讯录中的联系人名称和单位名称需规范统一,不得使用不文明、不规范的称谓。

四、学生使用规定1. 学生手机通讯录仅限学习和管理使用,不得用于营利活动或其他非法用途。

2. 学生不得将通讯录中的联系人信息泄露给非相关人员,保护隐私。

3. 学生手机通讯录需定期进行备份,以免信息丢失。

4. 学生不得利用手机通讯录进行诋毁、辱骂、谩骂等不文明行为,一经发现将严肃处理。

五、学校监管1. 学校对学生手机通讯录进行定期检查,确保通讯录中的联系人信息真实、准确。

2. 学校对学生手机通讯录的使用情况和备份情况进行监管,防止信息外泄或丢失。

3. 学校定期开展手机安全教育,加强学生对手机通讯录管理的自觉性和规范性。

4. 学校对违反通讯录管理制度的学生进行教育和处罚,严重者可视情节追究责任。

六、家长配合1. 家长应加强对学生手机通讯录使用的监督和引导,指导学生合理使用通讯录。

2. 家长和学校保持密切沟通,及时了解学生手机通讯录使用情况,共同维护学生通讯录安全。

3. 家长和学校共同为学生营造一个良好的手机使用环境,引导学生正确处理通讯录中的信息。

七、处罚规定对违反通讯录管理制度的学生,学校将依照学生违纪处分规定进行处理,包括但不限于批评教育、警告、记过、记大过等处罚。

情节严重者,学校保留对其进行退学处理的权利。

八、附则本通讯录管理制度由学校负责解释,学生和家长应予以配合。

学校保留对通讯录管理制度进行调整和修改的权利。

以上为学生手机通讯录管理制度,希望学生和家长共同遵守,共同维护学生通讯录的安全和规范使用。

客户通讯录管理系统

客户通讯录管理系统

客户通讯录管理系统客户通讯录管理系统是一种用于管理客户联系信息的工具。

随着商业活动的不断发展,企业和个人需要与更多的客户进行沟通和交流。

为了更好地管理和维护这些客户关系,客户通讯录管理系统应运而生。

客户通讯录管理系统可以帮助用户有效地记录客户的基本信息、联系方式和交流记录。

通过这个系统,用户可以轻松地查找和管理大量的客户信息,提高工作效率和客户满意度。

下面将详细介绍客户通讯录管理系统的功能和优势。

首先,客户通讯录管理系统有着完善的客户信息管理功能。

用户可以便捷地录入每个客户的姓名、性别、职务、公司名称等基本信息。

同时,用户还可以添加客户的联系方式,包括电话号码、电子邮箱和社交媒体账号等。

这些信息将帮助用户更好地了解客户,并为与客户的沟通提供准备。

其次,客户通讯录管理系统提供了方便的客户交流记录功能。

用户可以在系统中记录每次与客户的交谈内容、会议纪要或邮件对话等。

这些交流记录有助于用户随时回顾与客户的沟通过程,了解客户需求和喜好,从而更好地与客户建立和维护良好的关系。

另外,客户通讯录管理系统还提供了智能搜索和筛选功能。

用户可以根据关键词、客户类别或其他条件来快速搜索和筛选符合要求的客户信息。

这样一来,用户在处理大量客户信息时,可以更加高效地找到目标客户,减少时间和劳动成本。

此外,客户通讯录管理系统还支持定制化功能。

用户可以根据自己的需求,自定义字段、标签和分类,以便更好地组织和管理客户信息。

同时,系统还可以根据用户的操作习惯和喜好,提供个性化的推荐和提示,增强用户体验。

客户通讯录管理系统的使用还具有较高的安全性和可靠性。

用户的客户信息会受到严格的保密,只有经过授权的人员才能访问和修改。

同时,系统的数据备份和存储机制保证了用户信息的安全和可靠。

总的来说,客户通讯录管理系统是一种非常实用和便捷的工具,可以帮助用户更好地管理和维护客户关系。

通过准确记录和快速查找客户信息,用户可以更高效地开展业务活动,提升与客户的沟通和合作效果。

数据结构课程设计

数据结构课程设计

数据结构课程设计(学生信息管理系统)(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1需求分析设计任务要求通讯录系统主要包含以下要求:(1)设计一个学生通讯录管理系统,每个学生数据信息包括:姓名、电话号码、qq、邮编和地址;(2)创建学生数据类型为结构体并以磁盘文件保存;(3)能读取磁盘文件并显示输出学生的相关信息;(4)能按姓名或电话等多种方式进行学生信息查询;(5)能查询、添加、修改和删除学生通讯录。

系统功能需求分析系统主要包含以下主要功能:(1)查询通讯录记录;(2)添加通讯录记录;(3)修改通讯录记录;(4)删除通讯录记录;(5)关闭通讯录。

2 概要设计数据类型本系统中所有变量都定义为字符串型,学生通讯录数据类型定义为结构体类型。

然而为了更加方便,添加了抽象数据类型类book,再私有继承了以结构体存储的学生数据。

主程序及各程序层次关系以下是系统功能模块关系图,主要包含查询、添加、修改、删除联系人和关闭系统等功能。

另外还提供了键盘式选择菜单实现功能选择。

图系统功能模块关系图查询联系人:可以选择用姓名和电话两种方式查询添加联系人:可以添加通讯录记录,依次输入姓名、电话、qq、邮编和地址修改联系人:输入欲修改联系人姓名后,再依次输入修改姓名、电话、qq、邮编和地址即可完成修改删除联系人:输入欲删除联系人的姓名后,会自动删除该联系人的记录内容关闭系统:选择相关操作进行系统正常关闭,保存有效数据记录3 详细设计实现数据类型(1)以字符串类型定义通讯录中学生数据信息变量:string name;程序的调试过程中遇上了文件存储数据的正确读取错误,但经过不断查问和查阅相关书籍后,根据调试提示错误,解决了所有错误。

通过文件存储学生数据信息,使得读取信息操作更加方便、省事;2.在执行操作时,是根据文件搜索算法,去获取学生数据信息。

使得在时间和空间上读取数据都要更加快捷、省事。

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

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

3.1.3 显示删除功能的界面
3.1.4 查找功能:
通过5:find—by—name 用姓名来查找个人的通讯录信息 通过6:find—by—tel 用电话号码来查找个人的通讯录信息
3.1.5 修改功能的界面:
输入姓名后的系统界面: 输入修改信息后的系统界面:
3.1.6添加功能的界面:
选择1后的系统界面:
struct student one; printf("\nInput tel:"); scanf("%s",telkey); if((fp=fopen(filename,"rb"))==NULL) { printf("\nCann't open this addressbook!!!"); exit(); } while(!feof(fp)) { fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr); if(!strcmp(telkey,one.tel)) { printf("\n\nHave finded,as follow:\n"); printf(" name num dis tel addr"); printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr); k=1; } } if(!k) printf("\n\nSorry,there is no this student!!"); fclose(fp); } void output() { struct student one; if((fp=fopen(filename,"r"))==NULL) { printf("\nCann't open this addressbook!!!"); exit(0); } /* printf("\n\n%20s\n"," \nCann't open this addressbook\n");*/ while(!feof(fp)) {

高效管理联系人的通讯录模版

高效管理联系人的通讯录模版

高效管理联系人的通讯录模版通讯录是我们日常生活和工作中必备的一个工具,它可以帮助我们有效地管理和记录各种联系人的信息。

一个高效的通讯录模版能够帮助我们更好地管理各类联系人,并且提高我们的工作效率。

接下来,我们将介绍一种高效管理联系人的通讯录模版,希望能给大家带来帮助。

一、通讯录封面在通讯录的开头,我们需要给通讯录添加一个封面,以便更容易区分和识别。

封面上可以写上通讯录的名称和创建时间,以及联系人数量等相关信息。

二、联系人信息分类在通讯录中,我们可以根据各类联系人进行信息分类,方便我们快速定位和管理联系人。

下面是一些常见的分类:1. 个人联系人个人联系人通常包括家人、亲戚、朋友等身边人的联系信息。

我们可以按照姓名的首字母或者按照关系进行排序和分类。

2. 工作联系人工作联系人通常包括同事、领导、合作伙伴等与工作相关的人员的联系信息。

可以按照公司部门或者工作职位进行分类。

3. 客户联系人对于营销人员和销售人员而言,客户联系人是非常重要的。

可以按照行业、客户类型或者交易额等进行分类,便于管理和跟进。

4. 公共机构联系人公共机构联系人包括政府部门、学校、医院等的联系信息。

可以按照不同的机构类型进行分类,方便我们平时的查询和使用。

三、联系人信息录入在通讯录模版中,我们需要规范地录入每个联系人的信息,以方便我们之后的使用和查询。

下面是一些常见的联系人信息字段:1. 姓名:记录联系人的姓名,可以按照姓氏的首字母进行排序。

2. 职务:记录联系人的工作职务,方便我们识别其在组织中的角色和身份。

3. 公司/单位:记录联系人所在的公司或者单位名称。

4. 电话号码:记录联系人的电话号码,可以分为座机和手机。

5. 邮箱:记录联系人的电子邮箱地址,以便我们通过电子邮件进行联络。

6. 地址:记录联系人的实际地址,方便我们进行实地拜访或者邮寄文件。

7. 备注:可以记录一些联系人的特殊要求或者其他相关信息。

四、快速检索和更新一个高效的通讯录模版应该具备快速检索和更新的功能。

学生通讯录管理系统课程设计报告

学生通讯录管理系统课程设计报告

学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。

随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。

因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。

二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。

三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。

2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。

3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。

(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。

(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。

四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。

手机通讯录管理系统

手机通讯录管理系统

《面向对象技术大作业》报告书题目:手机通讯录管理系统姓名:韩劲松学号:090505110日期:2010年11月8日管理科学与工程学院2010-2011学年第1学期目录摘要 (I)第1章绪论 (2)第2章需求分析 (3)2.1编写目的 (3)2.2需求概述 (3)2.3需求说明 (3)第3章总体设计 (4)3.1编写目的 (4)3.2总体结构 (4)3.3数据结构 (4)第4章流程图 (5)第5章详细设计 (6)5.1编写目的 (6)5.2详细设计 (6)5.3程序运行 (12)参考文献 (14)结束语 (15)摘要本次C程序设计课程设计我选择手机通讯录管理系统,在菜单上显示各功能的选项。

在增加功能中可按照编号、姓名、电话号码和类型等输入每个人的通讯信息。

在查看时,可按三种类型如办公类、个人类和商务类等查询,并把各类型的通讯人信息列出。

修改功能中,可以先选中某个人的姓名在进行数据修改,删除功能同上。

在查询功能中可通过姓名和电话号码查询此人信息。

而且在此次设计过程中,我特别地增加了一项拨号功能,在拨号时,在屏幕上显示所拨的号码。

关键词:手机通讯录管理系统菜单输入功能修改功能删除功能查询查看1.设计的原始资料及依据通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握C++编程的技巧,提高学生用程序的思想来解决实际问题的能力。

2.设计的主要内容及要求a设计题目:通讯录管理系统b需要完成的功能:⑴查看功能;⑵增加功能;⑶拨号功能;⑷修改功能;⑸删除功能;⑹菜单功能;⑺查询功能。

必须用到链表,能将生成的文件存储与外部存储器上,并且从外部存储器上可以编写该文件的功能。

第1章绪论在本次C++大作业中,我设计手机通讯录管理系统,在主函数中,主要用到了多分支语句(switch)。

在无限循环时也能用到了语句for,当每一个功能使用完毕或输入错误时就会返回,再次调用菜单函数进入菜单界面。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)自查报告。

标题,手机通讯录实验报告及使用说明(附源代码)。

自查报告:
在进行手机通讯录实验及使用说明的撰写过程中,我仔细阅读
了实验要求,并按照要求完成了实验报告的撰写和源代码的整理。

在此过程中,我遇到了一些困难,但通过查阅资料和请教老师同学,最终顺利完成了任务。

在实验报告中,我详细描述了手机通讯录的功能和使用方法,
包括添加联系人、查找联系人、编辑联系人信息、删除联系人等操作。

我还附上了源代码,并对关键部分进行了解释和注释,以便他
人能够理解和使用。

在整个实验过程中,我学习到了许多关于手机通讯录的知识,
包括数据库的设计和操作、用户界面的设计和实现等。

通过动手实践,我加深了对这些知识的理解,并提升了自己的编程能力。

在撰写实验报告的过程中,我也注意到了一些自己的不足之处,比如在代码注释和格式上还有待改进。

因此,我会继续努力学习,
不断提升自己的编程水平和文档撰写能力。

总的来说,通过这次实验和撰写实验报告,我收获颇丰,不仅
掌握了手机通讯录的设计和实现方法,还提升了自己的综合能力。

我会继续努力,为以后更多的实验和项目做好准备。

自查人,XXX。

日期,XXXX年XX月XX日。

葫芦岛交警支队领导通讯录

葫芦岛交警支队领导通讯录

葫芦岛交警支队领导通讯录一、引言葫芦岛交警支队是负责管理葫芦岛市交通安全的机构,其领导团队是支队工作的核心力量。

领导通讯录是支队内部沟通、协作和联系的重要工具,通过通讯录可以方便快捷地联系到各级领导,提高工作效率和协调能力。

本文将详细介绍葫芦岛交警支队领导通讯录的组成、使用方法和管理要求。

二、领导通讯录的组成葫芦岛交警支队领导通讯录主要包括以下内容:1. 领导姓名通讯录中列出了支队各级领导的姓名,包括支队长、副支队长、科室主任等。

2. 职务每位领导的职务在通讯录中都有明确标注,以便快速了解其在支队中的职责和权限。

3. 联系方式通讯录中包括了每位领导的联系电话和电子邮箱,以方便与其进行沟通和联系。

同时,还可以附上微信、QQ等即时通讯工具的账号,以便实时交流。

三、领导通讯录的使用方法领导通讯录的正确使用方法对于支队的工作效率至关重要。

以下是一些使用通讯录的方法和技巧:1. 及时更新通讯录需要及时更新领导的联系方式,当领导职务发生变动或联系方式有所变化时,要及时更新通讯录,确保信息的准确性。

2. 分类整理可以将通讯录按照不同的职务进行分类整理,比如支队长、副支队长、科室主任等,以便快速找到需要联系的领导。

3. 使用搜索功能通讯录中可以设置搜索功能,方便快速查找需要联系的领导。

可以根据姓名、职务等关键词进行搜索,提高效率。

4. 统一管理通讯录需要统一管理,可以使用电子表格等工具进行管理,确保通讯录的完整性和可靠性。

同时,要做好通讯录的备份工作,以防数据丢失。

四、领导通讯录的管理要求为了保证通讯录的有效使用和管理,葫芦岛交警支队需要制定一些管理要求和规范:1. 保密性要求通讯录中包含了领导的联系方式,涉及到个人隐私,必须严格保密,只能在工作需要的情况下使用,不得泄露给外部人员。

2. 更新要求通讯录需要及时更新,当有新的领导上任或联系方式发生变化时,要及时更新通讯录,并告知相关人员。

3. 使用规范通讯录只能用于工作需要,不得进行非法用途。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.需求分析说明 (1)1.通讯录总体功能要求: (1)2. 各功能模块的功能描述: (1)二.概要设计说明 (3)1.模块调用图: (3)2.各函数简要说明: (3)三.详细设计说明 (4)1.数据结构设计 (4)2.主函数模块 (5)3.密码验证模块 (5)4.输入信息模块 (6)5. 显示信息模块 (7)6.查找模块 (7)7.修改信息模块 (7)8.删除信息模块 (8)9. 信息加载 (8)10.存盘模块 (8)11. 密码修改模块 (8)四.调试分析 (9)1.问题一 (9)2.问题二 (9)3.问题三 (9)五.用户使用说明 (10)六.课程设计总结 (16)七.测试结果 (17)1.测试密码登陆 (17)2.测试输入信息 (17)3.测试显示信息 (18)4.测试查找信息 (18)5.测试修改信息 (19)6.测试删除信息 (19)7.测试加载信息 (20)8.测试存盘 (21)9.测试密码修改 (22)参考书目 (23)附录 (24)一.需求分析说明1.通讯录总体功能要求:在window7系统下用vc6.0开发工具以双向链表作数据结构,编写一个通讯录管理系统。

每条信息包含:姓名(name )街道(street)城市(city)邮编(eip)电话(tel)国家(state)。

此系统具有友好的界面和较强的容错能力。

本系统具有以下几方面的功能:(1).密码验证passWord():通过密码登陆本系统。

(2).输入信息enter():通过键盘输入所需添加信息。

(3).显示信息display( ):显示所有通讯录信息。

(4).查找search( ):以名字为关键字查找用户信息。

(5).修改modify():修改指定的信息。

(6).删除信息del ( ):用户通过输入指定名字找到相关记录然后确定是否删除。

(7).存盘save ( ):把所有用户通过键盘录入的信息或者通过文件加载的信息以文本文件存入硬盘。

(8).装入load( ) :从文本文件加载通讯录信息。

(9).密码修改modpw():由用户自己修改为指定的密码。

2. 各功能模块的功能描述:(1)主函数模块:本模块的主要功能是初始化各种数据,根据用户选择的数字调用对应的模块,实现相应的功能。

(2) 密码验证模块:本模块主要功能是接受用户键入的密码字符,读取已经存好的密码文件,解密后与之比较。

(3)输入信息模块:本模块的主要功能是通过用户再键盘上键入的相关信息存入一个结构体中,然后再把这个结构体作为一个节点加入到双向链表中。

(4)显示信息模块:本模块的主要功能是显示所有在双向链表节点的信息,打印在屏幕上。

(5)查找模块:本模块的主要功能通过用户输入的用户名然后在双向链表中遍历所有的节点看是否有对应的节点,有的话把这个节点的所有信息打印到屏幕上。

(6) 修改信息模块:本模块首先调用查询模块找到相对应的节点,然后由用户选择修改哪项信息。

(7)删除信息模块:本模块首先调用查询模块找到相对应的节点,然后由用户确定是否删除此信息。

(8) 信息加载模块:本模块的是通过吧txl.txt文件中的信息加载到内存中。

(9)存盘模块:本模块的主要功能是把当前双向链表中的所有的节点数据以一个名为txl.txt的文本文件存到与本程序同一文件夹的目录下。

(10)密码修改模块:本模块实现了接受用户新键入的密码字符,然后吧密码字符加密后存入以passWord.txt为文件名的文本文件。

二.概要设计说明1.模块调用图:2.各函数简要说明:int passWord(char *pw) //密码验证txlnode * enter(txlnode *pp,txlnode *head) //信息输入void display(txlnode *head) //显示所有数据txlnode * search2(txlnode *head) //查找通讯录信息(供修改信息和删除信息模块调用)void search(txlnode *head) //查找信息供主函数调用void modify(txlnode *head) //修改信息txlnode * del(txlnode *head) //删除信息txlnode * load(txlnode *pp,txlnode *head) //加载文件void save(txlnode *head) //保存信息int modpw(void) //修改密码三.详细设计说明1.数据结构设计数据结构的设计是具体模块设计的前提。

此处使用循环双向链表来表示通讯录结点。

所谓循环双向链表,是指在单链表的基础上增加一个指针域,使该结点数据域左边的指针指向该结点前面的结点,右边的指针指向其后的结点,最后一个结点的右边指针指向第一个结点。

typedef struct txl //建立通讯录信息结构体{char name[20];char street[32];char city[20];char eip[20];char tel[20]char state[20];}txld; typedef struct dlnode //建立双向链表结构体{txld data;struct dlnode *prior;struct dlnode *next;}txlnode;此处首先定义了结构体txld包含了通讯录的所有信息,然后以这些信息为数据域建立一个双向链表,该链表包含前去指针prior和后继指针next。

2.主函数模块首先定义头结点,为头结点分配一块内存空间,然后调用是接受用户输入的密码调用passWord函数验证密码是否正确正确的话打印出功能菜单选项,运用swith 语句,用户通过选择指定项从而进入相应的功能执行完此项功能后返回,循环显示功能菜单和接受用户的选项,从而在不退出程序的情况下重复使用本系统的各项功能。

(具体实现见附录main函数(P32))。

3.密码验证模块在主函数中通过getchar()得到用户的密码,主函数吧这个参数传递到密码验证模块passWord(),密码验证模块通过读取password.txt中的密文存入数组a[i]中数组中的每一个字符依次通过a[i]-=i%5; a[i]+=i%3; a[i]+=i%2; a[i]++;解密之后与用户输入的字符串进行比较,如果相同则密码正确否则密码错误,当错误次数超过三次后程序自动结束运行。

(具体实现见附录passWord函数(P24))。

4.输入信息模块这个模块由txlnode * enter(txlnode *pp,txlnode *head)实现,形参是两个txlnode结构体指针返回的也是一个txlnode结构体指针,其中形参txlnode *pp 对应的实参是txlnode *p,指针p是指向双向链表的最后一个节点。

形参txlnode *head对应的实参就是在主函数中建立的头结点。

输入模块通过p=(txlnode *)malloc(sizeof(txlnode)); 来申请一块结构体内存空间,再接受用户的输入信息,把相关信息存入结构体中,其中包含的内容有:名字(name),街道(street),城市(city),邮编(eip),电话(tel),国家(state)。

最后把这个结构体作为一个节点从最后插入到双向链表中。

至此链表中增加了一个节点,再询问用户是否继续输入,如继续则重复以上工作,否则返回主模块。

(具体实现见附录enter函数(P25))。

流程图:5. 显示信息模块这个模块由void display(txlnode *head)实现,它首先接受主模块传来的头结点指针,再根据头结点指针找到下一节点,找到后输出节点上的信息包括名字(name),街道(street),城市(city),邮编(eip),电话(tel),国家(state),如果找到的额几点不是头结点则继续上述步骤,否则返回主模块(具体实现见附录display函数(P25))。

6.查找模块这个模块由void search(txlnode *head)实现,这个函数首先接受实参的传来的头节点指针,然后根据指针域找到下个节点,再把节点的中的name与用户输入的字符串相比较,如果不同则继续查找下一节点,找到则输出名字(name),街道(street),城市(city),邮编(eip),电话(tel),国家(state)否则直到回到头结点后输出没有查到此记录,然后回到主函数(具体实现见附录search函数(P26))。

7.修改信息模块这个模块由void modify(txlnode *head)实现,此函数接收主函数传递来的头节点指针,用户以名字为关键字查找姓名,void modify(txlnode *head)函数调用查找函数txlnode * search2(txlnode *head),将查找到的节点指针返回,然后此模块再根据返回的节点提示修改的项目:1名字,2街道,3城市,4邮编,5电话,6国家,根据用户的选择修改相应的项目(具体实现见附录modify函数(P27))。

8.删除信息模块这个模块由txlnode * del(txlnode *pp,txlnode *head)实现,函数中的形参有一个尾指针和一个头结点指针,这个函数通过调用txlnode * search2(txlnode *head),找到相应的节点,然后把这个节点在本双向链表中删除,如果删除的是最后一个节点即尾节点则将指向新的尾节点的指针返回,否则返回原尾指针(具体实现见附录del函数(P28))。

9. 信息加载这个模块由txlnode * load(txlnode *pp,txlnode *head)实现,函数中的形参有一个尾指针和一个头结点指针,其中头结点指针指向从文件中加载第一个节点,后面的节点从文件中一次添加,信息加载完毕后返回最后一个节点的指针(具体实现见附录load函数(P29))。

10.存盘模块这个模块由void save(txlnode *head)实现,函数中中接受的形参是一个指向头结点的指针,根据头结点依次找到后面的节点,每找到一个节点就把这节点的信息写入名为txl.txt的文件中直到回到头结点(具体实现见附录save函数(P30))。

11. 密码修改模块这个模块由int modpw(void)实现,进入函数后它首先是打开passwor.txt文件,然后获得用户的设置新密码的字符串,由于读取文件到数组的时候吧换行符也读入了,所以先去掉数组中的换行符,在依次通过a[i]+=i%5; a[i]-=i%3;a[i]-=i%2;a[i]--;加密后写入到passwor.txt文件中,操作成功后返回1否则返回0(具体实现见附录modpw函数(P31))。

相关文档
最新文档