C课程设计通讯录管理系统_第1页
C课程设计通讯录管理系统_第2页
C课程设计通讯录管理系统_第3页
C课程设计通讯录管理系统_第4页
C课程设计通讯录管理系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年4月19日C课程设计通讯录管理系统文档仅供参考课程设计说明书(论文)课程名称C++程序设计实践题目通信录管理系统专业软件工程班级学号姓名xx起止日期.12.23--.27指导教师赵新慧成绩辽宁石油化工大学计算机与通信工程学院摘要本次课程设计任务是经过编写一个通信录管理系统,学习用Visual

C++

6.0开发简单的管理系统。采用Visual

C++

6.0软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不但提高了工作效率,而且大大提高了其安全性,特别对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为WindowsXP,程序设计语言采用VisualC++,在程序设计中,运用了面向对象解决问题的方法。程序经过调试运行,初步实现了设计目标。AbstractThecurriculumdesigntaskisthroughthepreparationofastudentachievementrankingmanagementsystem,learningmanagementsystemwithVisualC++6todevelopsimple.UsingVisualC++6softwareasthemaindevelopmenttool.ToconsolidateanddeepenthestudentsthebasicknowledgeofC++courseofunderstandingandmaster,masterthebasicskillsofC++programming,thebasicideaandmethodofsoftwaredesignusingC++,toimprovetheabilitytouseC++tosolvepracticalproblems,tomastertheabilitytowriteprogramdesignexposition.Theuseofcomputerinformationmanagement.Realizationgrademanagementfunctions(add,delete,sort),statisticalfunctions(thehighestscore,thelowestscore,averagescore,passrate),studentID,name,orthenameofcoursequeryresultsfunction,aswellasthestudents'scoresarestoredinthefile.Theuseofcomputermanagementsystem,notonlyimprovetheworkefficiency,butalsogreatlyimprovesthesafety,particularlyforthecomplicatedinformationmanagement,computercangivefullplaytoitsadvantages,studentachievementmanagementsystemisanindispensablepartofaneducationunit,itscontentbutforthepolicymakersandschoolmanagersimportant.Inthecurriculumdesign,systemdevelopmentplatformforWindowsXP,theprogramminglanguageusingVisualC++,intheprogramdesign,usingobjectorientedmethodtosolvetheproblem.Programbydebuggingandrunning,initiallytoachievethedesigngoals.目录1设计要求 11.1设计题目 11.2设计目的 11.3设计内容 12设计原理和技术 23模块设计与分析 23.1添加模块 23.2显示模块 23.3删除模块 23.4查询模块 23.5排序模块 33.6读入文件模块 33.7从文件中读出模块 34程序源代码 35功能测试 115.1添加功能 115.2显示功能 125.3删除功能 125.4查询功能 135.5排序功能 135.6保存到文件的功能 135.7从文件中读出模块 146总结 15参考文献 15指导教师评语:成绩:指导教师(签字):年月日1设计要求1.1设计题目通信录管理系统1.2设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《C++程序设计》课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C++课程的基本知识的理解和掌握;(2)掌握C++编程和程序调试的基本技能;(3)利用C++进行简单软件设计的基本思路和方法;(4)提高运用C++解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。1.3设计内容以本班同学的具体数据为背景,设计一个本班同学通讯录。实现功能:1)

通讯录编辑(添加、删除)。2)

按不同的项进行查找。3)

对已存在的通讯录按不同的项排序。4)

将通讯录写入文件5)

从文件读入通讯录备注:通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。2设计原理和技术在课程设计中,系统开发平台为WindowsXP,程序设计语言采用VisualC++,在程序设计,采用C++编程语言编写程序,实现各项功能。3模块设计与分析

3.1添加模块

主要功能是用来添加联系人资料。如果系统有保存联系人资料的情况下,想查看的话,能够直接从系统文件中调用输出,在成功添加联系人资料后,就能够对该联系人进行以上的操作。

3.2显示模块在程序运行中,经过输入相应选择项,把联系人信息显示在屏幕上。3.3删除模块主要功能是用来删除联系人资料。在系统保存联系人资料的前提下,想删除某联系人的资料,能够输入该联系人姓名查找该联系人资料后,就能够删除了。及时对系统进行更新,删除一些没用的信息,能够使系统更加优化

。3.4查询模块主要功能是用来查找联系人资料。在系统保存了某联系人资料的前提下,想要查找该联系人资料,能够输入该联系人姓名,这样系统就会显示该联系人资料等信息,若系统中不存在则提示用户该联系人不存在。

3.5排序模块主要功能是用来对联系人的资料按姓名进行排序。便于用户在拨打电话时易于查找一些联系人。3.6读入文件模块

主要功能是用来将联系人资料读入文件中保存起来进行备份,防止以后丢失。3.7从文件中读出模块主要功能是用来将联系人资料从文件中直接读取到屏幕上,便于查看。4程序源代码#include<iostream>#include<fstream>usingnamespacestd;#include<string>#defineN100#defineSIZE20structstudent//定义结构体来存储联系人的信息{ charname[SIZE]; chartel[SIZE]; charadd[SIZE]; charpos[SIZE]; charEmail[SIZE];};intcreat(structstudent*p,intn)//创立通讯录{ intm,i=0; cout<<"添加前的记录,共有:"<<n<<"个"<<endl; cout<<"记录号"<<"\t"<<"姓名"<<"\t"<<"电话"<<"\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; while((i<n)&&(strcmp(p->name,"")!=0)) { cout<<""<<i+1<<"\t\t"<<p->name<<"\t\t"<<p->tel<<"\t\t"<<p->add<<"\t\t"<<p->pos<<"\t\t"<<p->Email<<endl; i++; p++; } cout<<"请输入要添加的学生人数:"; cin>>m;i=0; while(i<m) { cout<<"**********************"<<endl;cout<<"请输入第"<<i+1<<"个记录"<<endl; cout<<"姓名:";cin>>p->name; cout<<"电话:";cin>>p->tel; cout<<"地址:";cin>>p->add; cout<<"邮编:";cin>>p->pos; cout<<"邮箱:";cin>>p->Email;\ cout<<"**********************"<<endl; cout<<endl<<endl; p++; i++; } returnm+n;}voidprint(structstudent*p,intn)//输出通讯录的信息{ inti=0; if(i==n) cout<<"************通信录中无联系人***********"<<endl; else { cout<<"记录号"<<"\t"<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; while(i<n) { cout<<""<<i+1<<"\t"<<p->name<<"\t"<<p->tel<<"\t"<<p->add<<"\t"<<p->pos<<"\t"<<p->Email<<endl; i++; p++; } }}intadd(structstudent*p,intn)//增加新的联系人{ inti=0; charc; structstudentt,*q; cout<<"添加前的记录:"<<endl;cout<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; q=p; while(i<n) { cout<<q->name<<"\t"<<q->tel<<"\t"<<q->add<<"\t"<<q->pos<<"\t"<<q->Email<<endl; i++; q++; } do{ cout<<"请输入新记录的姓名:";cin>>; cout<<"请输入新记录的电话:";cin>>t.tel; cout<<"请输入新记录的地址:";cin>>t.add; cout<<"请输入新记录的邮编:";cin>>t.pos; cout<<"请输入新记录的邮箱:";cin>>t.Email; for(i=0;i<n;i++) if(strcmp(,(p+i)->name)==0) { cout<<"姓名已存在,要重新输入吗(Y/N)?"<<endl; cin>>c; if(c=='n'||c=='N')//当用户输入N时,跳出增加操作 break; } if(i==n) { *(p+i)=t; cout<<"添加后的记录为:"<<endl; cout<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; for(i=0;i<n+1;i++) { cout<<(p+i)->name<<"\t"<<(p+i)->tel<<"\t"<<(p+i)->add<<"\t"<<(p+i)->pos<<"\t"<<(p+i)->Email<<endl; } } }while(c=='y'||c=='Y'); returnn+1;}intdel(structstudent*p,intn)//删除联系人{inti=0,x;if(i==n) cout<<"************通信录中无联系人***********"<<endl; else { charname[10]; cout<<"请输入要删除的联系人的姓名:";cin>>name; for(i=0;i<n;i++) if(strcmp(name,(p+i)->name)==0) break; if(i<n) { for(x=i;x<N-1;x++) p[x]=p[x+1];//依次将后面的联系人资料往前移 cout<<"删除后的记录:"<<endl; cout<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; for(i=0;i<n-1;i++) cout<<p[i].name<<"\t"<<p[i].tel<<"\t"<<p[i].add<<"\t"<<p[i].pos<<"\t"<<p[i].Email<<endl; returnn-1; } else cout<<"********无此联系人*********"<<endl; } returnn; }voidsearch(structstudent*p,intn)//查找联系人{ inti=0; charname[20]; if(i==n) cout<<"************通信录中无联系人***********"<<endl;else { cout<<"请输入要查找的联系人的姓名:";cin>>name; for(i=0;i<n;i++) if(strcmp(name,(p+i)->name)==0) { cout<<p[i].name<<"\t"<<p[i].tel<<"\t"<<p[i].add<<"\t"<<p[i].pos<<"\t"<<p[i].Email<<endl; break; } if(i==n) cout<<"********无此联系人*********"<<endl; }}voidsort(structstudent*p,intn)//对联系人排序{ structstudenttemp; inti=0,j; if(i==n) cout<<"*******通信录中没有联系人可排序*******"<<endl; else { for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { if(strcmp(p[j].name,p[j+1].name)>0) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } } } cout<<"排序后的结果为:"<<endl;cout<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl; for(i=0;i<n;i++)cout<<p[i].name<<"\t"<<p[i].tel<<"\t"<<p[i].add<<"\t"<<p[i].pos<<"\t"<<p[i].Email<<endl; }}voidoutput_datafile(structstudent*p,intn)//输出到文件{fstreamiofile; iofile.open("D:\\student.txt",ios::out); for(inti=0;i<n;i++) iofile<<p[i].name<<"\t"<<p[i].tel<<"\t"<<p[i].add<<"\t"<<p[i].pos<<"\t"<<p[i].Email<<endl;iofile.close(); cout<<"outputfilesuccess!!!!!!"<<endl; }voiddatafile_screen(structstudent*p,intn)//从文件输出到屏幕{ fstreamiofile; iofile.open("D:\\student.txt",ios::in|ios::binary); cout<<"姓名"<<"\t"<<"电话"<<"\t\t"<<"地址"<<"\t"<<"邮编"<<"\t"<<"邮箱"<<endl;iofile>>p->name; while(!iofile.eof()) { iofile>>p->tel>>p->add>>p->pos>>p->Email; cout<<p->name<<"\t"<<p->tel<<"\t"<<p->add<<"\t"<<p->pos<<"\t"<<p->Email<<endl; p++;iofile>>p->name; } iofile.close();}voidfunction(void){ structstudentrecord[N]; inttotal=0; intx; cout<<"\t\t************************************"<<endl; cout<<"\t\t欢迎登陆通信录管理系统"<<endl; cout<<endl; cout<<"\t\t1创立联系人2输出通信录"<<endl; cout<<"\t\t3增加联系人5查找联系人"<<endl; cout<<"\t\t4删除联系人"<<endl; cout<<"\t\t6排序"<<endl; cout<<"\t\t7输入到文件"<<endl; cout<<"\t\t8从文件输出到屏幕"<<endl; cout<<"\t\t9退出"<<endl; cout<<"\t\t************************************"<<endl; do{ cout<<"******************"<<endl; cout<<"请输入你的选择:";cin>>x; cout<<"******************"<<endl; switch(x) { case1:total=creat(record,total);break; case2:print(record,total);break; case3:total=add(record,total);break; case4:total=del(record,total);break; case5:search(record,total);break; case6:sort(record,total);break; case7:output_datafile(record,total);break; case8:datafile_screen(record,total);break; case9: cout<<"\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论