案例制作:在线通讯录管理系统
第一步 创建连接串
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>
使用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框架实现后端逻辑。
- 后端负责处理用户请求,调用业务逻辑层处理数据操作,并向前端返回响应。
