案例制作:在线通讯录管理系统
使用C语言打造通讯录管理系统和教学安排系统的代码示例
使用C语言打造通讯录管理系统和教学安排系统的代码示例这篇文章主要介绍了使用C语言打造通讯录管理系统和教学安排系统的代码示例,利用C语言强大的数组和指针能够更加清晰地体现设计思路,需要的朋友可以参考下:通讯录管理系统实现了通讯录的录入信息、保存信息、插入、删除、排序、查找、单个显示等功能。
完整的代码如下:#include <stdio.h>#include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针//#include <string.h>#include <stdlib.h> //标准库函数//#define NULL 0#define LEN sizeof(struct address_list) //计算字节//int n;struct address_list{char name[30]; //名字char work[30]; //职业char handset[30]; //手机char email[30]; //电子邮件char address[30]; //通讯地址struct address_list *next;};struct address_list *shifang(struct address_list *head); // 释放内存函数声明//创建函数,不带头结点的链表struct address_list *creat(void){struct address_list *head,*p1,*p2;char name[20];n=0;p1=(struct address_list *)malloc(LEN);p2=p1; //强制内存转换printf("请输入通讯录的内容!\n姓名输入为0时表示创建完毕!\n");printf("请输入姓名:");gets(name);if(strcmp(name,"0")!=0){strcpy(p1->name,name);printf("请输入职业:"); gets(p1->work);printf("请输入手机:"); gets(p1->handset);printf("请输入电子邮件:"); gets(p1->email);printf("请输入通讯地址:"); gets(p1->address);head=NULL;while(1){n=n+1; //记录通讯录人数个数if(n==1)head=p1;elsep2->next=p1;p2=p1;printf("请输入姓名:");gets(name);if(strcmp(name,"0")==0){break;}else{p1=(struct address_list *)malloc(LEN);strcpy(p1->name,name);printf("请输入职业:"); gets(p1->work);printf("请输入手机:"); gets(p1->handset);printf("请输入电子邮件:"); gets(p1->email);printf("请输入通讯地址:"); gets(p1->address);}}p2->next=NULL;return head;}elsereturn 0;}//输出函数void print(struct address_list *head){struct address_list *p;if(head!=NULL){p=head;printf("本通讯录现在共有%d人:\n",n);printf("---姓名-------职业--------手机-------Email-------通讯地址\n");printf("==================================\n");doprintf("== %s",p->name); printf(" ");printf("%s",p->work); printf(" ");printf("%s",p->handset); printf(" ");printf("%s",p->email); printf(" ");printf("%s",p->address); printf(" \n");p=p->next;}while(p!=NULL);printf("==================================\n");}elseprintf("通讯录为空,无法输出!\n");}//增加函数struct address_list *insert(struct address_list *head){struct address_list *p0,*p1,*p2;char name[20];p1=head;printf("请输入增加的内容:\n");printf("请输入姓名:"); gets(name);if(strcmp(name,"0")==0){printf("姓名不能为0,增加失败!\n");return(head);}else{p0=(struct address_list *)malloc(LEN);strcpy(p0->name,name);printf("请输入职业:"); gets(p0->work);printf("请输入手机:"); gets(p0->handset);printf("请输入电子邮件:"); gets(p0->email);printf("请输入通讯地址:"); gets(p0->address);n=n+1;if(head==NULL){head=p0;p0->next=NULL;return head;}else{while(strcmp(p0->name,p1->name)>0&&(p1->next!=NULL))p2=p1;p1=p1->next;}if(strcmp(p0->name,p1->name)<0 || strcmp(p0->name,p1->name)==0) {if(head==p1){head=p0;}else{p2->next=p0;}p0->next=p1;}else{p1->next=p0;p0->next=NULL;}return head;}}}struct address_list* delete_txl(struct address_list *head){struct address_list *p,*q;char name[30];if(head==NULL){printf("通讯录为空,无法显示!\n");return head;}p=head;printf("请输入需要删除的人的姓名:");gets(name);if(strcmp(head->name,name)==0){head=head->next;free(p);printf("删除操作成功!\n");return head;}{q=head,p=head->next;while(p!=NULL){if(strcmp(p->name,name)==0){q->next=p->next;free(p);printf("删除操作成功!\n");return head;}p=p->next;q=q->next;}}}//显示函数struct address_list *display(struct address_list *head){struct address_list *p1,*p2;char name[30];int m;if(head==NULL){printf("通讯录为空,无法显示!\n");return head;}p1=head;m=0;printf("请输入需要显示人的姓名:");gets(name);while(p1!=NULL){while((strcmp(p1->name,name))!=0 && p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(p1->name,name)==0){m++;printf("%s的通讯内容如下:\n",name);printf("---姓名--------职业--------手机-------Email------通讯地址\n");printf("==================================\n");printf("== %s",p1->name);printf(" ");printf("%s",p1->work);printf(" ");printf("%s",p1->handset);printf(" ");printf("%s",p1->email);printf(" ");printf("%s",p1->address); printf(" \n");printf("==================================\n");}p1=p1->next;}if(m==0){printf("此人未在本通讯录中!\n");}return(head);}//排序函数struct address_list *paixu(struct address_list *head){struct address_list *p1,*p2;int i,j;struct address_list1{char name[30];char work[30];char handset[30];char email[30];char address[30];};struct address_list1 px[200];struct address_list1 temp;if(head==NULL){printf("通讯录为空,无法排序!\n");return(head);}p1=head;for(i=0;i<n,p1!=NULL;i++){strcpy(px[i].name,p1->name);strcpy(px[i].work,p1->work);strcpy(px[i].handset,p1->handset);strcpy(px[i].email,p1->email);strcpy(px[i].address,p1->address);p2=p1;p1=p1->next;}head=shifang(head);for(j=0;j<n-1;j++){for(i=j+1;i<n;i++){if(strcmp(px[i].name,px[j].name)<0){temp=px[i];px[i]=px[j];px[j]=temp;}}}p1=(struct address_list *)malloc(LEN);p2=p1;strcpy(p1->name,px[0].name);strcpy(p1->work,px[0].work);strcpy(p1->handset,px[0].handset);strcpy(p1->email,px[0].email);strcpy(p1->address,px[0].address);head=p1;for(i=1;i<n;i++){p1=(struct address_list *)malloc(LEN);strcpy(p1->name,px[i].name);strcpy(p1->work,px[i].work);strcpy(p1->handset,px[i].handset);strcpy(p1->email,px[i].email);strcpy(p1->address,px[i].address);p2->next=p1;p2=p1;}p2->next=NULL;printf("按姓名排序后为:\n");print(head);return(head);}//姓名查找函数struct address_list *search(struct address_list *head){struct address_list *p1,*p2;int m;char name[30];if(head==NULL){printf("通讯录为空,无法分类查找!\n");return(head);}p1=head;printf("********************\n");printf("** 请输入需要查找的姓名**\n");printf("********************\n");m=0;gets(name);while(p1!=NULL){while(strcmp(p1->name,name)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(p1->name,name)==0){m++;printf("你查找的内容是:\n");printf("+++++++++++++++++++++++++++++++++++\n");printf("++ %s %s %s %s %s\n",p1->name,p1->work,p1->handset,p1->email,p1-> address);printf("+++++++++++++++++++++++++++++++++++\n");}p1=p1->next;if(m==0){printf("此人未在本通讯录中!\n");}break;}return(head);}//释放内存函数struct address_list *shifang(struct address_list *head){struct address_list *p1;while(head!=NULL){p1=head;head=head->next;free(p1);}return(head);}//文件写入函数void save(struct address_list *head){FILE *fp;struct address_list *p1;char tong[30];if(head==NULL){printf("通讯录为空,无法存储!\n");return;}printf("请输入保存后的文件名:");gets(tong);fp=fopen("(tong).txt","w");if(fp==NULL){printf("cannot open file\n");return;}p1=head;fprintf(fp,"姓名职业手机Email 通讯地址\n");for(;p1!=NULL;){fprintf(fp,"%s %s %s %s %s\n",p1->name,p1->work,p1->handset,p1->email,p1-> address);p1=p1->next;}printf("保存完毕!\n");fclose(fp);}//文件读出函数struct address_list *load(struct address_list *head){FILE *fp;char tong[30];struct address_list *p1,*p2;printf("请输入要输出的文件名:");gets(tong);fp=fopen("(tong).txt","r");if(fp==NULL){printf("此通讯录名不存在,无法输出!\n");return(head);}else{head=shifang(head);}p1=(struct address_list *)malloc(LEN);fscanf(fp,"%s%s%s%s%s",&p1->name,&p1->work,&p1->handset,&p1->email,&p1->address); if(feof(fp)!=0){printf("文件为空,无法打开!\n");return(head);}else{rewind(fp);p2=p1;head=p1;n=0;while(feof(fp)==0){fscanf(fp,"%s%s%s%s%s",&p1->name,&p1->work,&p1->handset,&p1->email,&p1->address);if(feof(fp)!=0)break;p2->next=p1;p2=p1;p1=(struct address_list *)malloc(LEN);n=n+1;}p2->next=NULL;p1=head;head=head->next;n=n-1;free(p1);print(head);printf("打开完毕!\n");return(head);}fclose(fp);}//综合操作函数struct address_list *menu(struct address_list *head) {char num[10];while(1){printf("*********************\n");printf("*** 1 姓名查找****\n");printf("*** 2 单个显示****\n");printf("*** 3 增加****\n");printf("*** 4 退出****\n");printf("*********************\n");printf("请输入您选择的操作:");gets(num);switch(*num){case '1':{head=search(head); //姓名查找print(head);}break;case '2':{head=display(head); //显示}break;case '3':{head=insert(head); //增加print(head);}break;case '4':return head;default:printf("操作错误,此项不存在!\n");break;}if(strcmp(num,"6")==0)break;}return head;}//主函数void main(){struct address_list *head=NULL;char num[10];printf("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"); printf("*=* 程序说明*=*\n");printf("*=* 请及时保存创建完毕的通讯录内容! *=*\n"); printf("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n"); while(1){printf("************************\n");printf("*** 1 创建通讯录****\n");printf("*** 2 按名字排序****\n");printf("*** 3 综合操作****\n");printf("*** 4 保存****\n");printf("*** 5 打开****\n");printf("*** 6 删除****\n");printf("*** 7 退出****\n");printf("************************\n");printf("请输入您选择的操作:");gets(num);switch(*num){case '1':{if(head==NULL){head=creat(); //创建print(head);}else{head=shifang(head);head=creat(); //重新创建print(head);}}break;case '2':{head=paixu(head); //排序}break;case '3':{head=menu(head); //综合操作}break;case '4':{save(head); //文件保存print(head);}break;case '5':{head=load(head); //文件输出}break;case '6':{head=delete_txl(head); //删除print(head);}break;case '7':head=shifang(head);break;default:printf("操作错误,此项不存在!\n");break;}if(strcmp(num,"7")==0)break;}}。
c语言实现通讯录管理系统(用链表实现)
c语⾔实现通讯录管理系统(⽤链表实现)题⽬:通讯录(通过链表实现)设计并实现⼀个简易的通讯录软件,管理个⼈通讯记录。
⼀条通讯记录可包括:姓名、⼯作单位、⼿机、住宅电话、E-Mail、家庭住址等(可⾃⾏增删,但不可过少)。
该系统应实现以下基本功能:(1)增加新的通讯记录。
(2)删除已有的通讯记录。
(3)修改已有的通讯记录。
(4)浏览全部或指定(如指定姓名、⼯作单位等)的通讯记录。
(5)合理组织排列各项功能,界⾯可使⽤键盘操作。
(6)以⽂件的形式存储数据。
说明:⼤⼀时的c语⾔课设,⽤链表实现⼀个通讯录管理系统,为了美观好看,花了很多时间调整齐度,记录⼀下⼤⼀时的作业。
其主要功能是对通讯录可输⼊,显⽰,插⼊,删除,最难是可保存,这个学⽂件的时候不怎么会。
内容我⾃⼰弄了7个,名字,性别,⼯作单位,⼿机,住宅电话,E-Mail,家庭住址(其他太多其实都是⼀样的,就懒得加了)。
主要运⽤到对指针中的链表的功能和使⽤要⽐较扎实,分部列写就可以了。
实现图⽚:附上代码:1 #include <stdio.h>2 #include <string.h>3 #include <stdlib.h>4 typedef struct student5 {6char name[20];//名字7char wm[20];//性别8char work[100];//⼯作单位9char stel[20];//⼿机10char htel[20];//住宅号码11char mail[20];//E-Mail12char home[100];//家庭住址13struct student *next;14 }stu;15 stu *head;//头指针16void screen()//主菜单17 {18 printf("\n=======================================================\n");19 printf(" 欢迎来到通讯录管理系统\n\n");20 printf(" 1.输⼊数据 2.显⽰数据\n");21 printf(" 3.插⼊数据 4.删除数据\n");22 printf(" 5.查看数据 6.修改数据\n");23 printf(" 7.保存数据 8.返回主菜单\n");24 printf("\n~~~~~~输~~~~~~⼊~~~~~~9~~~~~~退~~~~~~出~~~~~~程~~~~~~序\n");25 }26void input()//输⼊数据27 {28int ans;//判断是否继续输⼊29 stu *p1,*p2;30 p1=(stu *)malloc(sizeof(stu));//申请内存来⽤31if(p1!=NULL)32 {33 printf("========输⼊数据========\n");34 head=p1;35while(1)36 {37 printf("名字:");38 scanf("%s",&p1->name);39 printf("性别:");40 scanf("%s",&p1->wm);41 printf("⼯作单位:");42 scanf("%s",&p1->work);43 printf("⼿机:");44 scanf("%s",&p1->stel);45 printf("住宅号码:");46 scanf("%s",&p1->htel);47 printf("E-Mail:");48 scanf("%s",&p1->mail);49 printf("家庭地址:");50 scanf("%s",&p1->home);51 printf("===================================\n");52 p2=p1;53 p1=(stu *)malloc(sizeof(stu));//申请下⼀个要⽤的空间54if(p1!=NULL)55 p2->next=p1;56 printf("请选择是否继续输⼊:1.继续 2.退出\n请选择:");//⽤户选择57 scanf("%d",&ans);58if(ans==1)//继续59continue;60else//退出61 {62 printf("========输⼊完毕========\n");63 p2->next=NULL;64free(p1);//将申请的的⽆⽤内存释放65break;66 }67 }68 }69 }70void look(stu *p1)//显⽰数据71 {72 printf("========显⽰数据========\n");73while(p1!=NULL)74 {75 printf("名字:%s\n",p1->name);76 printf("性别:%s\t",p1->wm);77 printf("⼯作单位:%s\t",p1->work);78 printf("⼿机:%s\t",p1->stel);79 printf("住宅号码:%s\t",p1->htel);80 printf("E-Mail:%s\t",p1->mail);81 printf("家庭住址:%s\n",p1->home);82 printf("=====================================\n");83 p1=p1->next;84 }85 printf("========显⽰完毕========\n");86 }87void insert()//插⼊数据88 {89int ans;//选择插⼊位置90char name[20];//插⼊者的名字91 printf("========插⼊数据========\n");92 stu *p1,*p2,*p3;93 p1=head;94 p3=(stu *)malloc(sizeof(stu));//申请内存95 p3->next=NULL;96 printf("请输⼊插⼊者的数据:\n");97 printf("名字:");98 scanf("%s",&p3->name);99 printf("性别:");100 scanf("%s",&p3->wm);101 printf("⼯作单位:");102 scanf("%s",&p3->work);103 printf("⼿机:");104 scanf("%s",&p3->stel);105 printf("住宅号码:");106 scanf("%s",&p3->htel);107 printf("E-Mail:");108 scanf("%s",&p3->mail);109 printf("家庭地址:");110 scanf("%s",&p3->home);111 printf("请选择插⼊位置:1.⾸位置插⼊ 2.尾部插⼊ 3.插到某⼈前⾯\n请选择:");112 scanf("%d",&ans);113switch(ans)114 {115case1://放到头指针116 p3->next=p1;117 head=p3;118break;119case2://放到尾部120while(p1->next!=NULL)121 p1=p1->next;122 p1->next=p3;123break;124case3://放到某⼈前⾯125 printf("请输⼊插到谁前⾯名字:");126 scanf("%s",name);127while(strcmp(name,p1->name)!=0)128 {129 p2=p1;130 p1=p1->next;131 }132 p2->next=p3;133 p3->next=p1;134break;135 }136 printf("========插⼊成功========\n");137 }138void deleted()//删除数据139 {140 stu *p1,*p2;141char name[20];//删除者名字142 printf("========删除数据========\n");143 printf("请输⼊要删除者的名字:");144 scanf("%s",name);145 p1=head;146if(head==NULL)//通讯录已经没数据了147 {148 printf("通讯录⾥什么也没有了。
2023年程序设计通讯录管理系统 通讯录管理系统python课程设计(五篇)
2023年程序设计通讯录管理系统通讯录管理系统python课程设计(五篇)范文为教学中作为模范的文章,也经常用来指写作的模板。
经常用于文秘写作的参考,也可以作为演讲材料编写前的参考。
那么我们该如何写一篇较为完善的范文呢?下面是我为大家收集的优秀范文,供大家参考借鉴,盼望可以关心到有需要的伴侣。
cout“(2)删除:” cout“(2)按姓名排序:” void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i35;i++)return 0;} {} if(!strcmp(st[i].no,“0”)){}if(x==0)break;strcpy(st[i].address,address);strcpy(st[i].e_mail,e_mail);strc py(st[i].name,name);strcpy(st[i].no,no);strcpy(st[i].post_code,post_code) ;strcpy(st[i].tel_no,tel_no);x=0;//删除联系人void inter::del(char name[20]){int x=1;for(int i=0;i35;i++){ if(!strcmp(st[i].name,name)){strcpy(st[i].address,“0”);strcpy(st[i].e_mail,“0”);strcpy(st[i].name,“0”);strcpy(st[i].no,“0”);strcpy(st [i].post_code,“0”);strcpy(st[i].tel_no,“0”);}} } else x=0;if(x==0)cout“error:输入姓名错误!” 输入要修改的学号:”;char no1[13];cinno1;strcpy(st[i].no,no1);cout“修改胜利!” cins[h]-kind;箱:“ }cout“想连续修改吗(y/n)”c; }case '6':{存在!请检查输入的正确性!”;“ cout”指令错误!请重新输入!cinc;} }while(c=='y');break;char name[20];bool flag3=0;char c;do{cout“请输入您要删除的人的姓名:” cinname;for(int h=0;h {if(strcmp(name,s[h]-name)==0){flag3=1;i--;do{s[h]=s[h+1];h++;}while(h=i);}}if(flag3==0)cout“您要求删除的对象原来就不cout”要连续删除吗?(y/n)“ cinc;if(c!='y'c!='n'){cout”指令错误!请重新输入!cinc;}}while(c=='y');break;}case '0':{exit(0);break;}}cout“您想连续进行其他操作吗?(y/n)” bool flag4=0; docinw;if(w!='y'w!='n')cout“指令错误!请重新输入!” elseflag4=1;}while(flag4==0);if(w=='y'){cout“※※※※※※※※※※n”“2 按姓名查找n”“3 按类别查找n”“4 插入n”“5 修改n”“6 删除n”“0 退出n”;cinp;}else exit(0);}while(w=='y');for(int x=0;x delete s[x];cout“delete all members!” }</endl;}</i;x++){</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;break;}</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</i;j++)</endl;</endl;</endl;</endl;</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;cout<<“-------”<<endl;print(k);x=1;</endl;</endl;cout<<“---------------”</st[i].e_mail<<endl;</st[i].post_code<<endl;</st[i].tel_no<<endl;</st[i].address<<endl;</st[i].name<<endl;</st[i].no<<endl;</endl;if(!strcmp(st[i].name,name)){</endl;</endl;</endl;return</endl;return</endl;return</endl;return</endl;return</en dl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;</endl;}</endl;cout<<“</endl;</endl;char</endl;</endl;</endl;</endl;char</endl;char</endl;cout<<“</endl;</endl<<endl</endl</endl</endl</endl</endl</endl</endl</endl</endl;top:cout<<“tt</st[i].tel_no<<endl;cout<<“邮编:”<<st[i].post_code<<endl;cout<<“e_mail:”<<st[i].e_mail<<endl;</n){< /n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n-1;j++){</n)i++;if(i==n){</n+1;i++)。
(简易手机通讯录管理系统)
(简易手机通讯录管理系统)一、课题名称简易手机通讯录管理系统(线性表、查找、排序)二、主要内容简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。
基本功能如下:三、课题设计的基本思想,原理和算法描述(1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。
(2)界面设计//菜单函数intmenu(){intc;printf(\☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\\n\\n\printf(\某某某\\n\printf(\printf(\printf(\printf(\printf(\printf(\printf(\ printf(\某某某\\n\\n\printf(\★请输入您的选择(0-6):\while(1){}returnc;}//主函数voidmain(){SqLit某L;InitLit(L);ytem(\while(1){witch(menu()){cae1:ytem(\信息的增加\\n\cae2:ytem(\信息的查询\\n\canf(\if(c<0||c>6)printf(\▲输入错误!请重新选择:\ elebreak;cae3:ytem(\对信息进行排序\\n\cae4:ytem(\信息的修改\\n\cae5:ytem(\信息的删除\\n\6:ytem(\统计联系人个数cae\\n\}}(3)功能模块的实现初始化顺序表voidInitLit(SqLit某&L)cae0:printf(\再见!\\n\default:printf(\▲输入错误!请重新选择:\}{L=(SqLit某)malloc(izeof(SqLit));L->length=0;}增加信息函数。
定义变量a起标记作用,用于判断输入信息是否与已有信息重复voidLitAdd(SqLit某&L)//增加函数{inta=0;//标记printf(\号码(五位数字!):\printf(\姓名:\printf(\性别:\printf(\家庭住址:\for(inti=0;ilength;i++)//判断是否重号{}if(a==0)L->length++;}查找符合条件的信息的下标并返回到需要调用的函数体中intFindNum(SqLit某&L){printf(\★输入需要进行操作的号码:\charnum[10];canf(\inti=0;while(ilength&&trcmp(L->data[i].num,num)!=0)i++;if(i>=L->length){}returni;if(trcmp(L->data[i].num,L->data[L->length].num)==0){}printf(\该号码已经存在\\n\a=1;break;}④查询信息函数分两种情况:按号码查找与按姓名查找。
数据结构课程设计通讯录管理系统
一、设计题目(问题)描述和要求某一中学,现在需要建立学生通讯录管理系统,以管理学生信息。
要求:(1)可以录入新的通讯信息(包括姓名,通讯地址,邮编,联系电话等)(2)可以按照姓名进行查询相关信息(3)可以修改相关信息二、系统分析和概要设计根据问题描述和要求,系统要求能够按姓名查找、增加、删除和保存各学生的信息。
确定程序应该具备如下功能:“查询学生信息”、“增加学生信息”、“修改学生信息”“删除学生信息”、“数据存盘”基本模块。
系统可以将学生信息数据保存到磁盘文件student.txt,从而可以通过磁盘文件读出学生数据信息,为了便于统计在生成学生信息时同时生成学生编号,这样每输入一个学生信息编号顺序加1,这样也方便了管理员查询学生信息。
三、详细设计和编码1.数据类型定义根据系统要求,可以将姓名和邮编和联系电话通讯地址定义为字符型。
2.各模块算法描述查询学生信息: Que_name()输入要查询的学生姓名,比较名字和保存的信息是否相同,若相同则查找到,否则,没查找到。
增加学生信息: Add()输入要添加的学生信息并保存。
删除学生信息: Del()输入要删除的学生姓名,若和数据相同则删除,否则输出查找不到该信息。
修改学生信息: Mod()输入要修改的学生姓名,输入要修改的信息,并确认。
数据存盘: Sav()创建文件,将信息写入文件。
3.程序关键算法流程图(1)主函数流程开始创建学生对象显示菜单接受输入根据输入执行学生操作N退出Y结束(2) 某操作算法流程Student:: Add()开始学号增加1输入学生通讯地址 联系电话 邮编号创建学生结点学生结点加入链表结束(3) Student:: Del()查找要删除的结点输入学生学号解除学生结点开始结束结点存在提示未找到4) Student:: Mod()查找学生结点输入学生学号修改结点开始结束结点存在提示未找到(5) Student:: Que_name()浏览学生信息 查找结点输入学生姓名浏览学生信息开始结束结点存在提示未找到(6) Student:: Sav()开始打开学生信息保存文件遍历链表保存学生信息关闭文件打开基础数据库文件保存基础数据库信息数据关闭文件结束(7) Student:: Load()开始打开学生数据信息文件读取基础信息数据关闭文件打开学生信息数据文件读取一条学生信息 记录Y文件未结束N根据学生数据类型创建结点链表加入结点读取下一条信息关闭文件结束四、调试分析(内容包括:调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;算法的时空分析和改进设想;经验和体会等)五、测试结果六、小结通过本次设计,加强了对于编写管理系统程序的运用,能够更好的运用循环。
软件工程课程设计--通讯录管理系统
根据该系统的目标来衡量的技术是否具备,一般可从硬件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。考虑到系统实施的可行性,在软件方面选择了如今较流行的Myeclipes6.0.1来进行开发管理平台的设计,使用SQL Server2000数据库存储数据。
在硬件方面,则选择空间较大,只要是Pentium Ⅳ系列及以上的计算机,内存在512MB以上,硬盘在20GB,都可以满足系统的开发需要。当然,硬件的配置越高,系统的开发与运行会更流畅,考虑到如今的家用电脑硬件的整体配置水平,系统在硬件方面是可行的。在软件方面,由于Myeclipes6.0.1和SQL Server2000都是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。
本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。
3.1.2
本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统,要求应用程序功能完备,易使用等特点。
3
3.1
以工程的方法来设计项目中的各个功能模块,解决遇到的问题。软件工程设计原则:①选取合适的开发模型②选取合适的设计方法③选取高质量的工程支持④重视软件工程的管理。
3.1.1
在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。
使用权限:用户;
6.3)名称:用户类别信息文件。
个人通讯录管理系统(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系统界面主要由王五个菜单项构成,分别是文件(只含退出命令)、用户密码修改、数据(浏览,添加记录,修改,删除)、查询(按姓名查询,按住址查询,按联系方式查询)、帮助。
Java实现简单通讯录管理系统
Java实现简单通讯录管理系统本⽂实例为⼤家分享了Java实现通讯录管理系统的具体代码,供⼤家参考,具体内容如下题⽬:1、完成⼀个通讯录,需求:(1)添加联系⼈(联系⼈:编号,姓名,⼿机号,QQ,邮箱地址)添加时需要检查⼿机号和邮箱地址格式是否正确,若不正确,不允许添加(2)联系⼈查询(输⼊姓名或电话查询)(3)显⽰联系⼈列表(4)根据编号删除指定编号的联系⼈代码分析:之前写过类似的管理系统,不过是使⽤数组进⾏数据存储,这次的通讯录管理系统通过动态数组ArrayList进⾏数据存储。
其中代码实现的原理和之前所写相似。
在此不再赘述。
判断⼿机号邮箱地址格式是否格式正确使⽤了正则表达式进⾏判断,如果输⼊错误则输出提⽰语句,并重新输⼊正确格式,递归实现。
其中修改⼿机号的⽅法和删除⽤户类似,顺带写了⼀下,没有进⾏实现,感兴趣的朋友可以⾃⼰进⾏实现测试⼀下。
代码实现:⽤户类:package com.softeem.j2106.work;/*** @author admin* 2021/7/26*/public class User {private int no;private String name;private String phone;private String QQ;private String email;public User() {}public User(int no, String name, String phone, String QQ, String email) {this.no = no; = name;this.phone = phone;this.QQ = QQ;this.email = email;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getQQ() {return QQ;}public void setQQ(String QQ) {this.QQ = QQ;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"no=" + no +", name='" + name + '\'' +", phone='" + phone + '\'' +", QQ='" + QQ + '\'' +", email='" + email + '\'' +'}';}}⽤户管理类:public class UserMange {static ArrayList<User> s = new ArrayList<>();public boolean addUser(User user){return s.add(user);}public ArrayList showInfo(){return s;}public User searchByName(String name){for (User user : s) {if (Objects.equals(name,user.getName()) ||Objects.equals(name,user.getPhone())){ return user;}}return null;}public boolean updatePhone(int no,String phone){User user = null;for(User u:s) {if(no == u.getNo()) {u.setPhone(phone);break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}System.out.println("修改成功!");return true;}public boolean delUser(int no){User user = null;for(User u:s) {if(no == u.getNo()) {user = u;break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}return s.remove(user);}}测试类:public class Test2 {static UserMange user = new UserMange();static Scanner sc = new Scanner(System.in);public static void start(){System.out.println("=======SOFTEEM通讯录管理系统=====");System.out.println("【1】添加联系⼈");System.out.println("【2】联系⼈查询");System.out.println("【3】显⽰联系⼈列表");System.out.println("【4】根据编号删除指定编号的联系⼈");System.out.println("=============================");int i = sc.nextInt();switch (i){case 1:add();start();break;case 2:System.out.println("【1】通过联系⼈姓名查询/【2】通过联系⼈电话查询"); int a = sc.nextInt();findbyName(a);start();break;case 3:show();start();break;case 4:del();start();break;case 0:System.out.println("谢谢使⽤,再见!");System.exit(0);break;default:System.out.println("请输⼊正确的指令!");start();break;}}public static void add(){System.out.println("请输⼊联系⼈编号:");int a = sc.nextInt();System.out.println("请输⼊联系⼈姓名:");String b = sc.next();System.out.println("请输⼊联系⼈⼿机号:");String c = sc.next();judgePhone(c);System.out.println("请输⼊联系⼈QQ:");String d = sc.next();System.out.println("请输⼊联系⼈邮箱地址:");String e = sc.next();judgeEmail(e);User x = new User(a,b,c,d,e);if(user.addUser(x)){System.out.println("添加成功!");}}public static void judgePhone(String phone){if (phone.matches("1[34589][0-9]{9}")){}else {System.out.println("⼿机号输⼊有误,请重新输⼊");String v = sc.next();judgePhone(v);}}public static void judgeEmail(String email){if (email.matches("[A-Za-z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)")){}else {System.out.println("邮箱格式输⼊有误,请重新输⼊");String v = sc.next();judgeEmail(v);}}public static void findbyName(int a){if (a==1){System.out.println("请输⼊联系⼈姓名");}else {System.out.println("请输⼊联系⼈电话");}String name = sc.next();User user = er.searchByName(name);System.out.println(user);}public static void show(){ArrayList list = user.showInfo();for (Object o : list) {System.out.println(o);}}public static void del(){System.out.println("请输⼊编号");int no = sc.nextInt();if(user.delUser(no)){System.out.println("删除成功");}}public static void main(String[] args) {start();}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
(完整word版)c语言程序设计通讯录管理系统
1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。
2。
概要设计系统总体设计是信息的输入、信息的编辑和退出.系统功能模块如下:1.添加通讯录;2.输出通讯录;3.查找通讯录;4.修改通讯录;5.删除通讯录;6.退出通讯录;3.详细设计1.通讯录里无信息,所以要添加信息.用键盘逐个输入通讯录里联系人的信息.2.输出通讯录用于让使用者观看通讯录里所有的信息.3。
查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人.4。
修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后其作出修改。
5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。
还可以集体删除通讯录中的联系人.6.退出通讯录系统。
4.主要源程序代码#include 〈stdio。
h>#include 〈stdlib.h〉#include 〈string.h>#include 〈conio。
h〉struct record{char name[20];char age[20];char phone[20];char adress[40];char number[30];char e_mail[20];}contact[500];int NO=0;FILE *fp;void mainmenu();void newrecord();void browsemenu();void searchmenu();void searchname();void searchphone();void modifymenu();void deletemenu();void deleteall();void deletesingle();void deletename();void deletephone();int loadfile();void savefile();void main(){printf(”\n\t\t :)欢迎使用通讯录管理系统beta”);printf(”\n\t\t文件导入中……请稍后……\n\n\n\n\n");system(”cls”);loadfile();while (1){mainmenu();}}void mainmenu(){char choice;system(”cls");printf("\n\t\t******************** 主菜单********************");printf("\n\t\t****************** 1-新建菜单******************”);printf(”\n\t\t******************2—浏览菜单******************”);printf(”\n\t\t****************** 3—查找菜单******************”);printf("\n\t\t******************4—修改菜单******************”);printf(”\n\t\t******************5-删除菜单******************”);printf(”\n\t\t****************** 6-退出******************");printf("\n\t\t************************************************”); printf(”\n\t\t请选择:");choice=getch();switch (choice){case '1':newrecord();break;case ’2’:browsemenu();break;case ’3’:searchmenu();;break;case '4’:modifymenu();break;case ’5’:deletemenu();break;case '6’:exit(0);default:mainmenu();}}void newrecord(){printf(”\n\t\t****************请输入联系人信息****************\n”);printf(”\n\t\t输入姓名:”);scanf(”%s”,&contact[NO]。
软件工程 ——通讯录管理系统
软件工程——通讯录管理系统软件工程——通讯录管理系统1、引言1.1 编写目的本文档旨在详细描述通讯录管理系统的设计和实现过程,为软件工程师提供指导和参考,以确保软件系统的正确性、可靠性和可维护性。
1.2 范围本通讯录管理系统旨在实现对个人和组织通讯录信息的存储、查询、添加和删除等功能。
系统将提供用户界面用于管理通讯录,同时与外部系统进行数据交互。
1.3 定义- 通讯录:包含个人和组织联系人信息的数据库。
- 查询:根据指定条件搜索通讯录中的联系人信息。
- 添加:向通讯录中添加新的联系人信息。
- 删除:从通讯录中删除指定的联系人信息。
2、需求规定2.1 功能性需求2.1.1 用户登录- 用户可以通过用户名和密码登录系统。
- 用户登录成功后,可以进入通讯录管理界面。
2.1.2 通讯录管理- 用户可以浏览通讯录中的联系人列表。
- 用户可以根据指定条件查询特定的联系人信息。
- 用户可以按照指定的字段对联系人列表进行排序。
- 用户可以添加新的联系人信息到通讯录中。
- 用户可以删除通讯录中的联系人信息。
2.1.3 数据导入导出- 用户可以将通讯录中的联系人信息导出为文件。
- 用户可以将外部文件中的联系人信息导入到通讯录中。
2.1.4 系统设置- 用户可以修改系统的配置参数,如数据库连接信息等。
2.2 非功能性需求2.2.1 安全性- 系统要求用户登录后才能访问通讯录管理功能。
- 用户密码需要进行加密存储。
2.2.2 可靠性- 系统需要有备份和恢复功能,以防止数据丢失或损坏。
2.2.3 易用性- 系统的用户界面应该直观、简单,用户易于操作。
3、总体设计3.1 系统架构3.1.1 前端设计- 采用Web界面实现系统的用户界面,使用、CSS和JavaScript等技术。
- 前端界面负责与用户交互,接收用户输入并向后端发送请求。
3.1.2 后端设计- 采用Java语言,使用Spring框架实现后端逻辑。
- 后端负责处理用户请求,调用业务逻辑层处理数据操作,并向前端返回响应。
通讯录管理系统
通讯录管理系统一、案例描述1、总体描述设计一个通讯录管理系统课题的主要任务是:1.对通讯录信息有添加、查找、显示、保存、删除、修改等操作功能。
2.可以将输入的数据保存在文本文件中,并可以将其调出使用。
2、模块描述1)菜单设计:建立通讯录信息,信息至少包含学号、姓名、性别、年龄、移动电话、住址、生日、QQ等。
用fopen()建立一个文本文件,然后用fprintf()向其中输入数据(例如向文件中输入“姓名”,“地址”等),并对文件进行命名。
2)添加模块:可以添加通讯录记录,利用C语言文件,向文件中按顺序输入学号、姓名、性别、年龄、移动电话、住址、生日、QQ。
用switch语句来执行用户选择的功能模块,每一个case后面就是对应的功能函数,(比如,用户输入数字1,那么就是执行添加功能,相应的就是执行case 1 后面的add()函数,然后用break语句跳出循环,再输出主菜单,如果用户要退出的话,只需选择“0”就可以成功退出并且自动将数据保存到指定的文件中。
如果用户选择的时输入的数据有误的话,会提示“选择错误,请重新输入选择!”,这样,用户就能够再次输入数据。
3)删除模块:可以按学号或姓名输入你要删除的人的学号、姓名后,系统会自动删除他(她)的记录,当删除姓名后,还可以执行是否删除同姓名的人,在删除后还可以满足你是否继续删除的功能。
4)修改模块:也可以按学号、电话修改。
输入你要修改的那个人的学号或电话后,系统会查找该通讯录文件,找到个人的记录后,会显示他(她)的记录,然后用户再依次输入他(她)的相关信息来替代以前的记录。
5)查询模块:查询全部联系人信息,也可以按学号、姓名或电话查询,查询到记录时会显示所有信息。
在进行按姓名查询时,可以实现查找出中所有同名字的记录。
6)保存模块:新建一个文件覆盖原有文件,并将修改过后的记录重新写入文件。
7)退出模块:若用户对原有记录进行了修改后未进行保存,当按0键退出后会进行保存。
学生通讯录管理系统设计(数据结构)
学生通讯录管理系统设计(数据结构)一、总体设计1、系统开发环境本系统采用C++语言,运行在Windows平台上,数据库采用MySQL。
2、系统功能(1)登陆:系统登录,验证用户名/密码,权限认证等。
(2)新增:新增学生通讯录信息,包括姓名、联系电话、地址、备注等信息。
(3)修改:修改学生通讯录信息,可以修改学生姓名、联系电话、地址等信息。
(4)删除:删除学生通讯录信息,可以根据姓名、联系电话删除学生的通讯录信息。
(5)查询:可以根据姓名、联系电话查询学生的通讯录详细信息。
(6)权限管理:根据用户类别对不同用户进行不同级别的权限管理。
(7)数据管理:根据学生查询,统计学生的报表信息和查询结果,可以对学生的通讯录数据实行一定的数据管理。
3、数据结构用于存储、管理学生通讯录信息的数据结构,采用链表法。
首先将学生信息定义为一个结构体,包含学生的姓名、联系电话、联系地址等信息,此构造体可存储学生一种或者多种信息;然后建立一个学生链表来存储学生信息,每个结点中存放学生结构体,在链表末尾增加一个指向学生链表头结点的指针,即实现了学生通讯录的输出。
二、模块分解1、登录模块实现用户名/密码的验证,权限的认证,权限管理等功能。
2、新增模块用于实现新增学生信息,信息包括姓名、联系电话、联系地址等,并将学生信息存放到学生链表中。
4、删除模块用于实现删除学生信息,使用链表的查找、删除等来实现。
6、权限管理模块用于实施对不同用户类别的权限管理,实现对不同用户类别的权限管理,保证数据的安全。
7、数据管理模块用于实施对学生数据的安全,统计报表信息,数据标准化处理。
函数案例学生通讯录管理系统
函数案例学生通讯录管理系统
函数案例学生通讯录管理系统是提供学生通讯录的信息管理软件,主要适用于高校学生和企业的学生招聘,帮助用户快速查询和整理学
生信息,进行更有效的宣传或招聘。
系统功能主要包括如下几点:
1. 注册功能:用户可以注册,完善个人基本信息,成为系统的正
式用户;
2. 登录功能:用户登录后,可以进行后续的操作;
3. 学生信息管理:管理员可以添加、修改和删除学生信息,还可
以审核学生申请;
4. 信息查询功能:根据不同的条件,如姓名、学号、性别,可以
快速查询到对应的学生信息;
5. 统计分析功能:根据用户输入的条件,可以将用户输入的不同
的信息进行统计分析;
6. 日志功能:系统会自动记录用户的操作日志,包括操作类型、
时间以及关键信息;
7. 报表输出功能:系统可以将统计的结果以报表的形式输出,方
便用户观看。
上述就是函数案例学生通讯录管理系统的大致功能,可以帮助用
户随时随地便捷地管理学生信息,节省时间和精力,更好地完成宣传
或招聘任务。
C语言程序设计报告——通讯录管理系统
C语言程序设计报告一.课题通讯录管理系统二.设计方案简介为了帮助广大人群解决笔记通讯录所带来的诸多不便,本人利用所学的专业知识,设计了一个简单,便利的系统供大家在线存储众多联系人信息。
这样做一来可以将自己的知识生活化,运用自己所学为他人做点事,二来,在完成这项任务的过程中,通过克服一道又一道难题,我巩固了自己的知识,发现了自己的不足,进而提升了自己的能力。
该方案从整体出发,化整为零。
各个功能都是通过独立函数实现。
其中设计了信息录入,信息查询,信息修改,信息删除,信息保存,信息显示等功能。
方案的结构一目了然,便于用户操作。
经过在Microsoft Visual C++ 6.0中多次测试,结果均与预期相符。
加上该程序要求的平台不是很高,一般用户均可方便使用。
三.算法与数据结构<一>运用的数据类型有:int, char, file,.<二>主要功能模块的算法设计思路如下:1、添加信息函数(void Add(Link l))(1)定义指向结构体变量的指针;(2)移动指针,找到插入结点;(3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。
2、修改信息函数(void Modify(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找对应结点;(4)修改信息;(5)打开文件,保存修改记录。
3、删除信息函数(void Del(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找要删除的结点;(4)修改链表,删除对应结点。
4、显示记录函数(void Disp(Link l))(1)打开文件;(2)用指针检验是否有记录;(3)若无记录,输出提示信息,返回主函数;若有记录,移动指针,依次输出记录;(4)关闭文件。
5、查询通讯录信息(void Find(Link l))(1)选择查询方式(按姓名、编号或地址);(2)输入查询关键字:(3)在链表中寻找相应结点;(4)调用输出函数,输出结点信息。
通讯录管理系统-实例
*******************实践教学*******************兰州理工大学计算机与通信学院2016年春季学期C程序设计课程设计题目:通讯录管理系统专业班级:信息与计算科学15级1班姓名:学号:指导教师:成绩:通讯录管理系统摘要通讯录管理系统主要包括五大模块:信息录入模块;信息查询模块;信息查看模块;信息修改模块;信息统计模块。
采取模块化结构方案,通过链表与文件的方式,是实用性与美观性并存的系统。
该系统适应现代高科技信息管理尺度的要求,推动通讯录联系人管理走向科学化、规范化。
设计的指导思想是一切为用户着想,界面美观大方,操作简单明了,而且作为一个实用的应用程序要有良好的容错性,在用户出现误操作时能及时地给出警告,以便用户及时改正。
关键词:通讯录,查询,链表,文件,管理目录1题目要求 (1)2需求分析 (2)2.1 产品需求概述 (2)2.1.1 功能简介 (2)2.1.2 运行环境 (2)2.2 功能需求 (2)2.2.1信息录入功能 (2)2.2.2 信息查询功能 (2)2.2.3 信息查看功能 (2)2.2.4 信息修改功能 (2)2.2.5 信息统计功能 (3)2.2.6 不支持的功能 (3)3概要设计 (7)3.1 系统体系结构图 (7)3.2 模块描述 (8)4详细设计 (11)4.1 系统主要函数 (11)4.2函数详细说明 (11)4.2.1 ShowMenu函数(主界面函数) (11)4.2.2 HeadShow函数(界面顶端显示函数) (11)4.2.3 FileLoading函数(文件判断函数) (12)4.2.4 add函数(添加使用者信息函数) (12)4.2.5 SaveChange函数(保存修改函数) (13)4.2.6 AllShow函数(综合显示信息函数) (14)4.2.7 AllNum函数(显示记录性条数函数) (15)4.2.8 CheckFace函数(显示信息查询界面函数) (16)4.2.9 Selelctname函数(通过姓名查询信息函数) (17)4.2.10 Selelctphone函数(通过电话号码查询信息函数) (18)4.2.11 Selelctall函数(通过任意信息查询信息函数) (19)4.2.12 Change函数(修改使用者信息函数) (20)4.2.13 ExirShow函数(显示退出界面函数) (21)4.2.14 ErrorShow函数(显示发生错误时界面) (21)4.2.15 main函数(主函数) (21)5系统测试 (23)5.1系统欢迎界面 (23)5.2信息录入界面 (23)5.3信息查询界面 (24)5.3.1信息按姓名查询界面 (24)5.3.2信息按电话号码查询界面 (25)5.3.3信息综合查询界面 (25)5.4信息查看界面 (26)5.5信息修改界面 (26)5.6信息修改界面 (27)5.7系统退出界面 (27)6总结 (28)参考文献 (29)致谢 (30)附录:源程序 (31)1题目要求(1)以通讯录管理系统为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型,系统以菜单方式工作。
手机通讯录管理系统
《面向对象技术大作业》报告书题目:手机通讯录管理系统姓名:韩劲松学号: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,当每一个功能使用完毕或输入错误时就会返回,再次调用菜单函数进入菜单界面。
案例制作:在线通讯录管理系统
涉及到的知识点:
利用Session变量存储用户信息; Session[“变量名 ]=值 变量名” Session[ 变量名”]=值; 获取Session变量的值; 变量=Session[ 变量名” =Session[“变量名 变量=Session[ 变量名”];
制作insert.aspx 制作
界面设计部分:
案例制作:在线通讯录 案例制作 在线通讯录
在线通讯录的组成
txl.mdb:后台数据库文件; web.Config:网站配置文件;
在线通讯录
index.aspx:显示和查询通讯录名单, 或根据姓名字段进行查询; delete.aspx:删除一条指定id的记录; modify.aspx:修改页面; insert.aspx:通讯录添加页面。
获取查询字符串id的值; 删除编号为id的记录; 跳转到主页面index.aspx。
制作modify.aspx 制作
界面设计部分:
制作modify.aspx 制作
功能分析:
显示要修改记录的相关信息; 点击“修改”按钮能够连接数据库进行记录修改; 点击“返回”按钮能够跳转到主页面”index.aspx”。
第一步 创建连接串
index.aspx
制作主页面index.aspx 第二步 制作主页面
index.aspx界面设计部分:
制作主页面index.aspx 第二步 制作主页面
Index.aspx功能程序部分 功能程序部分: 功能程序部分
在网页装载时显示所有的通讯名单; 点击“查询按钮”能够按姓名进行通讯记录的模糊 查询; 点击“添加通讯名单”按钮跳转到添加页面; 点击“显示所有名单”按钮显示所有的通讯记录; 点击“清除”按钮能够清除用户输入的查询姓名。
设计一个电子通讯录管理系统
河北工业大学计算机软件技术基础(VC)课程设计报告学院信息工程学院班级-----姓名-------学号--------成绩 __ ____ 一、题目:设计一个电子通讯录管理系统(04)二、设计思路1、总体设计㈠分析程序的功能电子通讯录是一个小信息系统,记录通讯信息,包括姓名,性别,出生日期,通讯地址,电话号码。
具有浏览,增加,删除,查询,插入等功能。
㈡系统总体结构:该程序分为:显示功能、追加功能、删除功能、查询功能、插入功能和调用界面(主函数)六个模块①显示功能,电子通讯录的浏览,完成全部通讯录信息的显示;②追加功能,在原有数据资料的基础上按顺序增加记录,可以一次完成若干条信息的输入;③删除功能,按照记录的ID或姓名等删除通讯信息,执行删除后,查询是否被删除,显示通讯录的内容;④查询功能,给出姓名,查找该记录并显示;⑤插入功能,给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容;⑥调用界面,使各个功能的操作界面清晰美观。
2、各功能模块的设计:①显示功能,通讯录信息利用循环使其输出;②追加功能,询问输入个数,使其能将要输入的信息用循环录入;③删除功能,先显示出信息,让使用者选择要删除的数据,用后面数据覆盖掉;④查询功能,分别使用折半查找法和顺序查找法进行查找;⑤插入功能,利用循环使数据分别向后移动,新数据插入空出位置;⑥调用界面,是主函数,利用switch与break实现各功能的调用。
3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。
1)开始数据结构没有理清楚,认真学习完,能把它弄明白;2)程序设计要求采用多个cpp文件的方式,需要独立自主的学习,也是设计中的一个难题4、你所设计的程序最终完成的功能说明你编制的程序能完成的功能具有浏览,插入,增加,删除,查询,结束等功能。
准备的测试数据及运行结果浏览插入增加查询删除结束三、程序清单本程序包含、、、、、、和七个文件1、文件清单#include<>#include<>#include""void main() ame<<" "<<date[i].sex<<" "<<date[i].<<"."<<date[i].<<"."<<date[i].<<" "<<date[i].<<" "<<date[i].<<" "<<date[i].<<" "<<date[i].<<endl;cout<<endl;}3、文件清单4#include<>ame;cout<<"性别:";cin>>date[i].sex;cout<<"出生年月日:";cin>>date[i].>>date[i].>>date[i].;cout<<"家庭住址:";cin>>date[i].;cout<<"邮编:";cin>>date[i].;cout<<"电话号码:";cin>>date[i].;cout<<"QQ号码:";cin>>date[i].;}t+=n;cout<<"增加通讯录信息后通讯录信息记录如下:"<<endl;date_read(date,t,x); 序查找法\n2.折半查找法"<<endl;cin>>M;if(M==1){for(int i=0;i<t;i++){if(strcmp(date[i].name,nam)==0) ame<<" "<<date[i].sex<<" "<<date[i].<<"."<<date[i].<<"."<<date[i].<<" "<<date[i].<<" "<<date[i].<<" "<<date[i].<<" "<<date[i].<<endl;cout<<endl;}else if(M==2) ame,date[j+1].name)>0){person=date[j];date[j]=date[j+1];date[j+1]=person;}int low=0,high=t-1,mid;while(low<=high){mid=(low+high)/2;if(strcmp(nam,date[mid].name)==0){cout<<"序号姓名性别出生日期住址邮编电话号码QQ号码"<<endl;cout<<mid+1<<" "<<date[mid].name<<" "<<date[mid].sex<<""<<date[mid].<<"."<<date[mid].<<"."<<date[mid].<<" "<<date[mid].<<" "<<date[mid].<<" "<<date[mid].<<" "<<date[mid].<<endl;break;}else if(strcmp(nam,date[mid].name)<0)high=mid-1;elselow=mid+1;}if(low>high) cout<<"通讯录中没有该通讯人。
python实现学生通讯录管理系统
python实现简易学生通讯录管理系统本文实例为大家分享了python实现学生通讯录管理系统的具体代码,供大家参考,具体内容如下功能模块分析:1.首页(菜单功能)2.添加学生3.删除学生4.修改学生5.统计通讯录联系人人数6.获取所有学生通讯信息代码如下:def main():while True:menu()number = int(input("请输入需要实现的操作的序号:"))if number==1:insert() #添加学生if number==2:delete() #删除学生if number==3:modify() #修改学生if number==4:count() #统计通讯录联系人人数if number==5:disply() #获取所有学生通讯信息if number==0:x=input("输入yes退出系统,输入其他任意字符不退出:")if x == "yes":breakstudentlist=[]def menu():Menu = """====================学生通讯录管理系统-V1.0====================1.添加学生2.删除学生3.修改学生4.统计通讯录联系人人数5.获取所有学生通讯信息0.退出系统===================================================== """print(Menu)def insert():while True:studentdict={}studentdict["序号"]=input("请输入需添加学生的序号:") studentdict["姓名"]=input("请输入需添加学生的姓名:") studentdict["电话"]=input("请输入需添加学生的电话:") studentlist.append(studentdict)x = input("输入no结束添加学生,输入其他任意字符将继续:") if x=="no":breakdef delete():while True:i=input("请输入需删除的学生的序号:")for index,item in enumerate(studentlist):if item["序号"]==i:del studentlist[index]x = input("输入no结束删除学生,输入其他任意字符将继续:") if x == "no":breakdef modify():while True:i = input("请输入需修改的学生的序号:")for item in studentlist:if item["序号"]==i:item["姓名"]=input("请输入修改后的学生的姓名:")item["电话"]=input("请输入修改后的学生的电话:")x = input("输入no结束修改学生,输入其他任意字符将继续:") if x == "no":breakdef count():a=len(studentlist)print("通讯录共有",a,"位联系人")def disply():print('---------------------------')for studentdict_1 in studentlist:for key,value in studentdict_1.items(): print(key,":",value)print('---------------------------')main()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一步 创建连接串
index.aspx
制作主页面index.aspx 第二步 制作主页面
index.aspx界面设计部分:
制作主页面index.aspx 第二步 制作主页面
Index.aspx功能程序部分 功能程序部分: 功能程序部分
在网页装载时显示所有的通讯名单; 点击“查询按钮”能够按姓名进行通讯记录的模糊 查询; 点击“添加通讯名单”按钮跳转到添加页面; 点击“显示所有名单”按钮显示所有的通讯记录; 点击“清除”按钮能够清除用户输入的查询姓名。
案例制作:在线通讯录 案例制作 在线通讯录
在线通讯录的组成
txl.mdb:后台数据库文件; web.Config:网站配置文件;
在线通讯录
index.aspx:显示和查询通讯录名单, 或根据姓名字段进行查询; delete.aspx:删除一条指定id的记录; modify.aspx:修改页面; insert.aspx:通讯录添加页面。
制作insert.aspx 制作
功能分析:
获取用户填写的通讯录信息; 将用户填写的信息添加到数据库中; 跳转到主页面index.aspx。
涉及到的知识点:
利用Session变量存储用户信息; Session[“变量名 ]=值 变量名” Session[ 变量名”]=值; 获取Session变量的值; 变量=Session[ 变量名” =Session[“变量名 变量=Session[ 变量名”];
制作insert.aspx 制作
界面设计部分:
涉及到的知识点
页面的IsPostBack属性 页面的IsPostBack属性 IsPostBack
Page.IsPostBack是用来检查目前网页是否为第一次加载,当 使用者第一次浏览这个网页时Page.IsPostBack会传回False, 不是第一次浏览这个网页时就传回True;
如何获取Web.config中的数据库连接串 中的数据库连接串 如何获取
ConfigurationManager.ConnectionString[“名 名 称”].ToString()
查询字符串
<a href=“modify.aspx?id=5”>修改</a> <a href=“delete.aspx?a=3&b=4>删除</a>
制作delete.aspx 制作
功能分析
获取查询字符串id的值; 删除编号为id的记录; 跳转到主页面index.aspx。
制作modify.aspx 制作
界面设计部分:
制作modify.aspx 制作
功能分析:
显示要修改记录的相关信息; 点击“修改”按钮能够连接数据库进行记录修改; 点击“返回”按钮能够跳转到主页面”index.aspx”。
在线通讯录
index.aspx
在线通讯录
modify.aspx
在线通讯录
insert.aspx
制作步骤
第一步:在网站的配置文件中创建数据库连接 字符串
<ConnectionString> <add name= 名称” providerName= 数据源名 name=“名称 名称” providerName=“数据源名 数据库连接串” 称” connectionStrings=“数据库连接串”> 数据库连接串 </ConnectionString>