• 回答数

    5

  • 浏览数

    201

潇湘涵雪
首页 > 学术论文 > 论文在线通讯录系统的研究背景

5个回答 默认排序
  • 默认排序
  • 按时间排序

咖喱小周

已采纳

就是管理你的通讯录,要是你删除了,通讯录就不能用了

356 评论

lin10241121

//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 }

118 评论

十架方舟

一. 毕业论文选题的意义 目前我国的教育体制正处在不断改革,创新的阶段,随着社会的发展和经济时代的到来,还有学校的教学质量的提高,生源不断扩大。尤其是自从国家实施大众化教育,实行高考扩招以来,我国高校学生数量急剧增大。学校管理就成了一个现实问题摆在了人们面前。学校如同企业,如果没有好的管理和来竞争力?在国际社会飞速发展的今天,我国也已成功加入世贸组织的今天,不得不让我们认真对待每一个问题。 学生成绩管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介与它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。 运用学生成绩管理系统可以减轻学院教学人员的工作量,加快查询速度,加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。还有就是缩小开支,提高工作效率与准确率。可以使学生能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。并且学生成绩管理系统的应用也为今天的高校教育在未来市场的竞争力的提高达下坚实的基础。 在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对自己的重任负责。 二. 本题目国内外研究现状 学生成绩管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生成绩日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能强大,操作简单,具有人性化的学生成绩管理系统。 在国外高校,与国内不同,他们一般具有较大规模的稳定的技术队伍来提供服务与技术支持。而国内高校信息化建设相对起步较晚。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。 纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,教务管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。 三。 主要设计内容、设计思想及工作流程 1. 设计研究内容(要实现的系统功能简介) 本系统包括以下功能模块: 2. 设计思想: 首先,最大限度地减轻学校管理人员的工作负担。再者,本系统拥有灵活的权限,用户权限可以定义到每个子模块的三种权限级别(最高级、普通用户、拒绝访问)。其次,在成绩管理方面,各任课老师、教学秘书等人员分别拥有不同维护权限,系统日志更是详细记录了更相关人员的操作历史。本系统以学校教务处或系办公室为主控制中心,其它部门(如各专业、班等)作为工作站,在主控制中心的授权下可以对数据进行录入、修改、查询、统计、打印等操作。最后,该系统在硬件配置上,最低配置CPU:P4 以上,内存:512M,硬:160G就足够,在成本上不是很高,有很强的普遍性。 3.开发工具的选择 4. 工作流程: 本系统是一个面向学校教务管理人员、教师和学生,为其提供成绩管理服务的管理系统。教务人员通过本系统完成所有的日常教务工作。从学生入学开始到毕业离校,其在学校内的所有学科成绩与学分都通过本系统进行管理。 ① 需求分析: ② 概念结构设计: ③ 逻辑结构设计:]④ 物理设计: ⑤ 过程实现及维护: 四.毕业设计(论文)进度安排 1. 寒假期间:资料搜集与软件学习 2. 3月1日---3月31日:需求分析与构造原型 3. 4月1日---4月20日:概要设计 4. 4月21日--5月15日:系统实现 5. 5月16日--5月31日:毕业论文书写 6. 6月:系统与毕业论文完善

187 评论

无锡捞王

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

201 评论

扬州宏宏

50+页?汗,没能力,劝你自己找些参考书在写写吧,毕业论文是要背得的,老师会抽里面主题,论点,还有论段问你问题的,完全抄的话,你铁定没过

333 评论

相关问答

  • 信息系统论文背景

    你只要有3年项目经验,书本知识结合实际项目写就没错

    五十岚零 4人参与回答 2023-12-08
  • 在线杂志系统

    iebook软件是飞天传媒于2005年1月正式研发推出的一款互动电子期刊杂志平台软件,iebook以影音互动方式的全新数字内容为表现形式,集数码杂志发行、派送、

    北京飞猪 3人参与回答 2023-12-06
  • 论文的研究背景在哪里

    古典文学常见论文一词,谓交谈辞章或交流思想。当代,论文常用来指进行科学研究和描述科研成果的文章,简称之为论文。它既是探讨问题进行科学研究的一种手段,又是描述科研

    虾子王0001 3人参与回答 2023-12-07
  • 论文在线系统

    每个论文查重系统之间都存在差异,所以无法进行比较,至于哪个更准,这个也无法确定,因为每个人对于论文查重系统的要求不同。学校或者期刊单位要求以哪个系统检测,那么对

    吃货在学厨 4人参与回答 2023-12-10
  • 数学通讯在线投稿

    数学金刊 高中版课堂内外杂志社的 目前非常有影响力 你可以去网上查一下

    腊八醋w 4人参与回答 2023-12-06