首页

> 学术论文知识库

首页 学术论文知识库 问题

学生通讯录c语言论文

发布时间:

学生通讯录c语言论文

//简单的学生通讯录管理系统#include<>#include<>#include<>#include<>struct record{char name[20]; //姓名char phone[12]; //电话char adress[50]; //地址char postcode[8]; //邮政编码char e_mail[20]; //电子邮件。}student[100]; //假设最大数为100.//定义全局变量num,表示已经输入的人数 。int num; //这里使用数组解决通讯录的问题,实际上使用链表更好。int menu_select(){char s[80];int a;/*定义整形变量*/system("cls");printf("\t\t***********欢迎进入通讯管理界面********\n\n");printf("\t\t\t0. 输入记录\n");printf("\t\t\t1. 显示记录\n");printf("\t\t\t2. 按姓名查找\n");printf("\t\t\t3. 按电话号码查找\n");printf("\t\t\t4. 插入记录 \n");printf("\t\t\t5. 按姓名排序\n");printf("\t\t\t6. 删除记录\n");printf("\t\t\t7. Quit\n");printf("\t\t***********************************************\n\n");do{printf("Enter you choice(0~7):");scanf("%s",s);a=atoi(s);}while (a<0 || a>7);return a;}int adduser(){printf("\t\t\t**************** 请输入用户信息 ****************\n");printf("\t\t\t输入姓名:\n");scanf("%s",student[num].name);printf("\t\t\t输入电话号码:\n");scanf("%s",student[num].phone);printf("\t\t\t输入地址:\n");scanf("%s",student[num].adress);printf("\t\t\t输入邮编:\n");scanf("%s",student[num].postcode);printf("\t\t\t输入e-mail:\n");scanf("%s",student[num].e_mail);num++;printf("\t\t\t是否继续添加?(Y/N):\n");if(getch()=='y' || getch()=='Y')adduser();return(0);}void list(){int i;system("cls");if(num!=0){printf("\t\t\t*************** 以下为通讯录所有信息************\n");for (i=0;i=0));student[j+1]=tmp;}}printf("\t\t\t排序成功,是否显示?(y/n)");if (getch()=='y')list();return(0);}int main(){printf("\t\t************************************************\n");printf("\t\t********welcome to TONGXUNLU *******************\n");printf("\t\t###########code by XXXXX ###################\n");printf("\t\t*************************************************\n");printf("按任意键进入主菜单\n");getch();int selectnum;while(1){selectnum = menu_select();switch(selectnum){case 0:{adduser();break;}case 1:{list();break;}case 2:{searchbyname();break;}case 3:{searchbyphone();break;}case 4:{adduser(); //这里插入,应该能指定位置,不过意义不大,所以和添加记录一样了。break;}case 5:{sortbyname();break;}case 6:{dele();break;}case 7:{printf("BYE BYE!\n");system("pause");getchar();exit(0);}}}getchar();return 0;}

/* -- Hello, world */#include<>struct person{ char name[8]; char tel[15];char addr[50];};char filename[20]="E:\\";FILE *fp;void creat();void output();void search();void append();void modify();void delete();main( ){ int m; creat(); while(1) {printf("\n\t\t*********欢迎使用通讯录信息管理系统*********\n\n"); 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退出,请按0\n");printf("\n\t\t********************************************\n\n");printf("Please select(0--5):");scanf("%d",&m); if(m>=0&&m<=5) { switch(m) { case 1: append(); break; case 2: search(); break; case 3: modify(); break; case 4: delete(); break; case 5: output(); break; case 0: exit(); } printf("\n\n操作完毕,请再次选择!"); } else printf("\n\n选择错误,请再次选择!"); } }/*输入模块creat( ): 创建通讯录的子函数。*/void creat(){ struct person one; long s1; /*printf("\n请输入通讯录文件名:"); scanf("%s",filename); */ if((fp=fopen(filename,"at+"))==NULL) { printf("\n不能建立通讯录!"); exit(); } fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址"); printf("\n请输入姓名、电话号码及住址(以0结束)\n"); scanf("%s",); while(strcmp(,"0")) { scanf("%s%s",); fprintf(fp,"%-10s%-20s%-50s\n",); scanf("%s",); } fclose(fp); }/*输出模块output( ):输出通讯录中联系人通讯信息的子函数*/void output(){ struct person one; if((fp=fopen(filename,"r"))==NULL) { printf("\n不能打开通讯录!"); exit(); } printf("\n\n%20s\n","通 讯 录"); while(!feof(fp)) { fscanf(fp,"%s%s%s\n",); printf("%-10s%-20s%-50s",); } fclose(fp); }/*添加模块append( ):向通讯录中添加某人通讯信息的子函数*/void append(){ struct person one; if((fp=fopen(filename,"a"))==NULL) { printf("\n不能打开通讯录!"); exit(); } printf("\n请输入添加的姓名、电话号码及住址\n"); scanf("%s%s%s",); fprintf(fp,"%-10s%-20s%-50s\n",); fclose(fp);}/*查找模块search( ):在通讯录中查找某人通讯信息的子函数*/void search(){ int k=0; char namekey[8]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"rb"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { printf("\n\n已查到,记录为:"); printf("\n%-10s%-18s%-50s",); k=1; } } if(!k) printf("\n\n对不起,通讯簿中没有此人的记录。"); fclose(fp); }/*修改模块modify( ):在通讯录中修改某人通讯信息的子函数*/void modify(){ int m,k=0; long offset; char namekey[8]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"r+"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { offset=ftell(fp); fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { k=1; break; } } if(k) { printf("\n已查到,记录为:"); printf("\n%-10s%-18s%-50s",); printf("\n请输入新姓名、电话号码及住址:"); scanf("%s%s%s",); fseek(fp,offset,SEEK_SET); printf("%ld",ftell(fp)); fprintf(fp,"%-10s%-20s%-50s\n",); } else printf("\n对不起,通讯录中没有此人的记录。"); fclose(fp); }/*删除模块delete( ):在通讯录中删除某人通讯信息的子函数*/void delete(){ int m,k=0,flag; long offset1,offset2; char namekey[8], valid[4]; struct person one; printf("\n请输入姓名:"); scanf("%s",namekey); if((fp=fopen(filename,"r+"))==NULL) { printf("\n不能打开通讯录!"); exit(); } while(!feof(fp)) { offset1=ftell(fp); fscanf(fp,"%s%s%s\n",); if(!strcmp(namekey,)) { k=1; break; if(k) { printf("\n已查到,记录为"); printf("\n%-10s%-18s%-50s",); printf("\n确实要删除,按1;不删除,按0:"); scanf("%d",&m); if(m) { fseek(fp,offset1,SEEK_SET); fprintf(fp,"%-10s%-20s%-50s\n","","",""); } else printf("\n对不起,通讯录中没有此人的记录。"); fclose(fp); } } } }1###########################################################

这个程序可是挺复杂啊,我大概明天或者后天给你把程序传上去

学生通讯录管理系统毕业论文

电子通讯录管理系统设计与实现(毕业设计)可以到七七计算机毕业论文看看,如果找到好的,给我加分,谢谢

电子通讯录管理系统设计与实现(毕业设计) 爱毕业设计网 有 去看下

你打开直接去下载就可以了,绝对合你要求,还有相关的文章你可以参考。网址很多的都是通讯录管理系统有的,自己参考。不是我们不敬业,问题是要下载啊,你自己下嘛,都帮你找到了,你直接下载就可以 了。我保证可以下,我以前做的毕业论文也是在这里下载的,我的是图书管理系统。呵呵,追加分吧。做男人要守信用哦,做人要以诚信为本。

通讯录管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。详细信息请见:

毕业论文通讯录

//chuangyong 头文件模块 const int MaxLen=200; //最多可存放200个联系人信息 char fName[20]="";//磁盘文件:通信录文件名 int Len; //全局变量,通信录中当前联系人总数 //1. 通讯录数据结构设计 typedef struct Telephone { char name[20]; //姓名 int group;//群组:1.朋友 2.同事 3.家人 4.其他 char home[15];//住宅电话 char mobile[15];//手机 char email[20];//Email char add[20];//地址 char memo[20];//备注 }Tel; //指针数组结构,排序时用 typedef struct index { int len; //数组长度 Tel *tel[MaxLen]; //指针数组, }Index; //显示模块 void List(Tel tel[],Index lianxren); //按lianxren中指针数组的排序方式显示所有联系人。 void dayingbiaotou(void); //打印表头 void dayingbiaowei(void);//打印表尾 void PrintOne(Tel r,int i); //仅打印一个联系人r的信息,序号为i void Print(Tel r); //打印表头及一个联系人的信息 void huanyin();//欢迎界面 int Menu(void); //主菜单,显示第一级菜单:查看通信录(1)、更新通信录(2)、备份通信录(3)、退出(0)。 int Menu2(void); //更新通信录子菜单,显示:新增联系人(21)、编辑联系人(22)、删除联系人(23)、返回主菜单(20)。 //文件处理模块 void New(Tel tel[],Index *lianxren); //新增联系人。加到数组中第一个空着的位置。之后需要重新排序 void Edit(Tel tel[],Index *lianxren); //编辑联系人。需要重新排序 void Delete(Tel tel[],Index *lianxren); // 删除联系人。逻辑删除,仅将姓名赋空串。删除后需要重新排序 void Input(Tel *r,Tel tel[],int menu); //输入一个联系人的信息,由menu识别:是新增(11)还是修改(13) int chongcha(char *name,Tel tel[],char *orignal);//查重。在新增联或编辑系人前,检查是否有重名的情况。 int Select(); //选择联系人序号,避免出错 int Load(Tel tel[],Index *lianxren); //读取。将通信录文件fName读入内存。排序 int Save(Tel tel[]); //保存。将通信录以fName(全局变量)为名保存到磁盘。此时做物理删除:姓名为空串的联系人表示已删除,不存入通信录文件。 int Copy(void); //备份通信录。复制通信录文件。 void pingypaix(Tel tel[],Index *lianxren); //按音序排序。 void xuanzpaixi(Index *p); //对指针数组选择排序 //主文件模块 #include<> #include<> #include<> #include<> #include "" #include "" #include "" int main() { huanyin(); int select=0; Tel tel[MaxLen]; //最多存放200个联系人 Index lianxren;//按音序排序的指针数组 Load(tel,&lianxren); //从通信录文件读取信息 //循环显示菜单,供用户选择 do{ if(select<10 || select==20)//选的是主菜单项<10,或由子菜单返回20。接着显示主菜单 select=Menu(); else if(select>20 && select<30)//选的是子菜单2的项,继续显示子菜单2 select=Menu2(); switch(select) { case 1://按音序查看通信录 List(tel,lianxren); printf("\n\n\t按任意键继续... ..."); getch(); //等待用户看清屏幕, break; case 21: //新增联系人 New(tel,&lianxren); break; case 22: //编辑联系人 Edit(tel,&lianxren); break; case 23: //删除联系人 Delete(tel,&lianxren); break; case 20: //返回主菜单 break; case 3: //备份通信录 system("cls"); //没有子菜单,先清除上一级菜单, Save(tel); //用户可能更新过,先保存当前tel到通信录文件 Copy(); break; case 0: //退出程序 break; } }while(select!=0); Save(tel); //退出系统前,将内存数据存入通信录文件 return 0; } // 菜单模块。与程序其他模块独立。通过返回的菜单代码与操作对应 // 欢迎部分 void huanyin() { char A[100]={"欢迎使用本通讯录 本程序由 飞尧 编写 o(∩_∩)o...!回车进入!"}; int i,j,k; for(i=0;i<6;i++) { printf("\n"); } puts(" ******************************************************\n"); printf("\t\t"); for(i=0;A[i]!='\0';i++) { if(i==49)printf("\n\n\t\t\t"); printf("%c",A[i]); for(j=0;j<10000;j++) for(k=0;k<2000;k++) ; } puts("\n\n\n\t\t\t 07计科C班 王崇尧"); puts("\n ******************************************************\a"); getch(); } //主菜单,显示第一级菜单:查看通信录(1)、更新通信录(2)、备份通信录(3)、退出(0)。 int Menu(void) { int i; char menu; do{ system("cls"); //清屏, for(i=0;i<6;i++) { printf("\n"); } puts("\n **********主菜单*********"); puts(" * *"); puts(" * 1. 查看通信录 *"); puts(" * 2. 更新通信录 *"); puts(" * 3. 备份通信录 *"); puts(" * 0. 退出程序 *"); puts(" * *"); puts(" *************************\n"); printf("\t 请选择:"); menu = getche(); switch( menu ) { case '0': puts("\n\n\t退出程序!"); menu=menu-'0'; break; // 跳出循环 case '1': case '3': menu=menu-'0'; break; case '2': menu=Menu2(); break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9');//要返回菜单代码,'0'、'1'、20,21,22,23、'3'都是有效值 return menu; } //更新通信录子菜单,显示:新增联系人(21)、编辑联系人(22)、删除联系人(23)、返回(20)。 int Menu2() { char menu; int i; do{ system("cls"); //清屏, for(i=0;i<6;i++) { printf("\n"); } puts("\n ********更新通信录*******"); puts(" * *"); puts(" * 1. 新增联系人 *"); puts(" * 2. 编辑联系人 *"); puts(" * 3. 删除联系人 *"); puts(" * 0. 返回主菜单 *"); puts(" * *"); puts(" *************************\n"); printf("\t 请选择:"); menu = getche(); //输入一个字符,不回显,不需要敲入回车, switch( menu ) { case '0': puts("\n\n\t返回主菜单!"); break;// 跳出循环 case '1': case '2': case '3': break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9'); //要返回菜单代码,'0'、'1'、'2'、'3'都是有效值 return 20+menu-'0'; } //浏览部分 void List(Tel tel[],Index lianxren) //按lianxren的排序方式显示所有结点。 { int i; //i:数组下标 if(Len==0) { printf("\n\t没有联系人"); return ; } dayingbiaotou(); for(i=0; i=MaxLen) { printf("\n\n\t通信录已满!"); return ; } //找到tel中第一个空的位置t while( strcmp(tel[t].name,"")!=0 ) t++; Input(&tel[t],tel,21);//新增联系人(21),输入联系人信息 Len++; //联系人增1 pingypaix(tel,lianxren);//重新排序 } void Edit(Tel tel[],Index *lianxren) //编辑联系人。需要重新排序 { int i; List(tel,*lianxren);//按音序排序的顺序修改 if(Len==0) return ; i=Select(); Print( *(lianxren->tel[i]) ); //显示用户选中的联系人i Input( lianxren->tel[i] ,tel,23); //编辑(23)时输入联系人信息 pingypaix(tel,lianxren); //重新排序 } void Delete(Tel tel[],Index *lianxren) // 删除联系人。逻辑删除,仅将姓名赋空串。删除后需要重新排序 { int i; char select; //用户选择:是否继续输入除姓名以外的信息 List(tel,*lianxren);//按音序排序的顺序删除 if(Len==0) return ; i=Select(); Print( *(lianxren->tel[i]) );//显示用户选中的联系人i printf("\n\t确定要删除此人?(y/n)"); select=getche(); if(select=='Y' || select=='y') { strcpy(lianxren->tel[i]->name,"");//删除联系人信息(逻辑删除):将姓名赋空串,表示无人 Len--; //联系人减1 pingypaix(tel,lianxren);//重新排序 } } void Input(Tel *r,Tel tel[],int menu) //输入一个联系人的信息,由们menu识别:是新增(11)还是修改(13) { int select; char name[20],orignal[20]; if(menu==21)//新增,原来没名字 strcpy(orignal,""); else //编辑,原来有名字 strcpy(orignal,r->name ); printf("\n\n\t请输入联系人姓名:"); do{ scanf("%s", name); }while(chongcha(name,tel,orignal)); //重名检查。修改时,可以与原来的姓名相同 strcpy(r->name,name); printf("\t是否继续输入(y/n)?"); select=getche(); if(select=='y' || select=='Y') { //群组 printf("\n\t群组(1.朋友 2.同事 3.家人 4.其他),请输入序号:"); scanf("%d",& (r->group)); while( r->group<1 ||r->group>4) { printf("\n\t输入错误!请重新输入群组序号(1.朋友 2.同事 3.家人 4.其他):"); scanf("%d",& (r->group)); } printf("\t住宅电话:"); scanf("%s",r->home ); printf("\t手机:"); scanf("%s",r->mobile ); printf("\tEmail:"); scanf("%s",r->email ); printf("\t地址:"); scanf("%s",r->add); printf("\t备注:"); scanf("%s",r->memo ); } else if(menu==21) //新增联系人(menu=21)时,用户未输入,设置缺省值 { r->group=4; //缺省群组:其他 strcpy(r->home , ""); strcpy(r->mobile , ""); strcpy(r->email , ""); strcpy(r->add , ""); strcpy(r->memo , ""); } } int chongcha(char *name,Tel tel[],char *original)//查重。在新增或编辑联系人前,检查是否有重名的情况。 { int i,j; //i:数组下标 j: 除姓名为空串以外的实际人数 int dup=0; //重名标志:1 重名,0没有重名 if(strcmp(name,original)!=0)//name不是原来的名字, for(i=0,j=0; jLen) { printf("\n\t输入错误!请按序号选择联系人:"); if(c==0) fflush(stdin); //输入不成功,清空与输入流stdin有关的输入缓冲区的内容, c=scanf("%d",&i); } return i-1; } //排序部分 void pingypaix(Tel tel[],Index *lianxren) //按音序排序。 { int i,j; //i:数组下标 j: 除姓名为空串以外的实际人数 if( Len==0 ) return ; //初始化排序指针数组 lianxren->len=0; for(i=0,j=0; jtel[j]=&tel[i]; j++; i++; lianxren->len++; } //选择排序 xuanzpaixi( lianxren ); } void xuanzpaixi(Index *p) //对指针数组选择排序 { int i,j,n=p->len; int min; Tel *temp; if( n==0 ) return ;//没有联系人,不需要排序 //选择排序 for(i=0; itel[j]->name , p->tel[min]->name )<0) min=j; } //交换 最小元素min,当前无序序列第一个元素i if(min!=i) { temp=p->tel[i]; p->tel[i]=p->tel[min]; p->tel[min]=temp; } }//end of for i }

通讯录管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。详细信息请见:

这个网站上看起来满多的`~~

电子通讯录管理系统设计与实现(毕业设计) 爱毕业设计网 有 去看下

语文教学通讯期刊

SCD (科学引文数据库)是《中国大学评价》课题组独立研发、拥有全部知识产权的国内引文数据库,自从发布以来,不对外开放,只有购买雅学资讯网系统的高校才能进入。关于 2020年SCD期刊目录(文学) ,如下。

俄语学习

语文教学通讯:学术(D)

符号与传媒

新文学史料

江苏外语教学研究

中国应用语言学:英文版

世界文学

三峡论坛

英美文学研究论丛

人民文学

世界文化

百家评论

外国语言与文化

国际汉语学报

中学生英语

中国典籍与文化

德语人文研究

国际汉学

世界文学评论

古典文学知识

疯狂英语:理论版

现代中国文化与文学

复旦外国语言文学论丛

安徽文学:下半月

法语学习

南开语言学刊

中国莎士比亚研究通讯

满语研究

英语世界

芒种

韩国语教学与研究

花城

刊名: 语文教学通讯 The Communication of Chinese Teaching主办: 山西师范大学周期: 旬刊出版地:山西省临汾市语种: 中文;开本: 大16开ISSN: 1004-6097CN: 14-1017/G4邮发代号: 22-45历史沿革:现用刊名:语文教学通讯创刊时间:1978核心期刊:中文核心期刊(2004)中文核心期刊(2000)中文核心期刊(1992)

《语文教学通讯》创刊于1978年,是山西师大教育科技传媒集团主办的期刊。语文教学通讯D(学术刊)、A(高中刊)、B(初中刊)、C(小学刊)。

论文查重c语言

因为每个大学和论文查重系统对论文查重的标准和要求都不一致,所以最后提交给学校的论文部分很可能就不一样。这时候对于很多需要在论文中写代码的毕业生来说,查不查论文代码就成了他们会关注的问题。接下来我们来看看论文代码查不查重?1.代码实际上属于论文的主要部分,所以这部分内容必须纳入重复检测的范围。虽然每个人都使用一些代码,但是由于论文查重系统只是一个与系统平台设置相对应的系统,所以包括代码在内的内容将被重复检测。2.近年来,由于高校对学生学术论文的要求越来越高,以及许多查重网站的升级,即使是一些用PDF图片表达的代码也会被查重系统检测,因此对每个人论文的原创性提出了更高的要求。论文代码的格式有哪些?1.对于一些需要直接引用的重要源代码,可以选择少量的复制粘贴进行有针对性的引用,并在参考文献中注明出处。记住这部分内容不要大规模复制粘贴,否则很可能影响论文的重复率。2.对于每个人自己的原始代码,或者需要深入分析代码结构和细节,他们也需要完整地放在论文的主体中。然而,如果这个代码只是为了解释某个代码的存在,可以实现某个功能或某个功能的价值,它可以不放在论文的主体中。

以后还有很漫长很漫长的路途,都要一个人走完,都要靠自己。凭借自己的能力去完成,而不是依靠谁

应该会。毕竟我当年毕设论文用PP查重的时候,化学药品名称、出厂公司都算是重复的。修改后终稿PP查重大概还是在5%,上交的时候学校用知网查重后是。

#include<>int main(){int a[4][4]={{2,3,9,5},{6,7,8,3},{0,5,7,5},{2,1,8,3}};int i,j,k,i0,j0,find=0;printf("数组a:\n");for(i=0;i<4;i++){for(j=0;j<4;j++) printf("%3d",a[i][j]);printf("\n");}for(i=0;i<4;i++) //穷举所有的行{j0=0;for(j=1;j<4;j++) if(a[i][j]>a[i][j0])j0=j; //找到第i行上最大的数a[i][j0]k=1;for(i0=0;i0<4;i0++) //对找到的该数穷举所有行 if(a[i0][j0]

相关百科

热门百科

首页
发表服务