C++课程设计《通讯录管理系统》.docx
- 文档编号:4877686
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:15
- 大小:24.03KB
C++课程设计《通讯录管理系统》.docx
《C++课程设计《通讯录管理系统》.docx》由会员分享,可在线阅读,更多相关《C++课程设计《通讯录管理系统》.docx(15页珍藏版)》请在冰豆网上搜索。
C++课程设计《通讯录管理系统》
课程设计说明书(论文)
课程名称 C++程序设计实践
题目 通信录管理系统
专业 软件工程班 级
学号 姓 名xx
起止日期2013。
12。
23-—2013.27
指导教师 赵新慧 成绩
辽宁石油化工大学计算机与通信工程学院
摘要
本次课程设计任务是通过编写一个通信录管理系统,学习用Visual C++ 6.0开发简单的管理系统.采用Visual C++ 6。
0软件为主要开发工具。
巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。
实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。
使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为WindowsXP,程序设计语言采用VisualC++,在程序设计中,运用了面向对象解决问题的方法。
程序通过调试运行,初步实现了设计目标。
Abstract
Thecurriculum designtaskisthroughthepreparationofastudent achievementrankingmanagementsystem,learningmanagementsystem withVisual C++ 6to developsimple。
UsingVisualC++6 softwareasthe maindevelopmenttool.To consolidateanddeepenthestudentsthebasicknowledgeofC++course of understandingandmaster, masterthebasicskillsofC++programming,thebasicideaand method of software designusing C++,toimprove theabilityto useC++tosolvepracticalproblems, tomastertheabilitytowriteprogramdesignexposition.Theuseofcomputer information management。
Realization grademanagementfunctions (add, delete,sort),statistical functions(thehighestscore, the lowestscore,average score,passrate),studentID,name,orthe name ofcoursequeryresultsfunction, aswellasthestudents'scoresarestoredinthefile.The useofcomputermanagementsystem, notonlyimprovethework efficiency,butalsogreatlyimprovesthe safety,particularlyforthecomplicatedinformationmanagement,computer cangivefullplaytoitsadvantages,studentachievementmanagementsystem isanindispensable partof an educationunit,itscontentbutfor thepolicy makersand schoolmanagersimportant。
Inthecurriculumdesign, system developmentplatformforWindowsXP, theprogramminglanguageusingVisualC++,intheprogramdesign,usingobjectorientedmethodtosolvetheproblem.Programbydebuggingandrunning,initiallytoachievethe designgoals。
1设计要求1
1.2设计目的ﻩ1
1.3设计内容ﻩ1
2设计原理和技术ﻩ2
3模块设计与分析2
3.1添加模块2
3.2显示模块ﻩ2
3。
3删除模块ﻩ2
3.6读入文件模块3
3.7从文件中读出模块ﻩ3
5功能测试ﻩ11
5。
1添加功能ﻩ11
5.2显示功能ﻩ12
5。
3删除功能ﻩ12
5.4查询功能ﻩ13
5.6保存到文件的功能ﻩ13
5.7从文件中读出模块14
参考文献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〉
#define N100
#defineSIZE20
struct student //定义结构体来存储联系人的信息
{
ﻩcharname[SIZE];
chartel[SIZE];
ﻩcharadd[SIZE];
charpos[SIZE];
ﻩcharEmail[SIZE];
};
intcreat(struct student*p,intn) //创建通讯录
{
intm,i=0;
ﻩcout<<”添加前的记录,共有:
”〈 cout<<"记录号”<<”\t"<<"姓名"<<"\t"<<"电话”<<"\t”<〈”地址”<<”\t"〈<”邮编”〈<”\t”<<"邮箱"〈 ﻩ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"〈 Email<<endl; ﻩi++; ﻩp++; } cout<〈"请输入要添加的学生人数: "; cin>〉m; i=0; ﻩwhile(i<m) ﻩ{ ﻩﻩcout〈<"**********************”< 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++; } ﻩreturn m+n; } void print(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”< ﻩi++; ﻩﻩp++; ﻩﻩ} } } int add(struct student*p,int n) //增加新的联系人 { ﻩint i=0; ﻩcharc; structstudent t,*q; cout〈<"添加前的记录: "〈 cout<<”姓名”〈<”\t"<<”电话"<〈”\t\t”〈<”地址”<〈”\t”<〈”邮编"<〈”\t"<<"邮箱"〈<endl; q=p; while(i〈n) { ﻩcout<〈q->name<<"\t”< ﻩﻩi++; ﻩq++; ﻩ} ﻩdo{ cout<<”请输入新记录的姓名: ";cin>>t.name; ﻩcout<<”请输入新记录的电话: ”;cin>>t.tel; ﻩﻩcout<〈”请输入新记录的地址: ";cin>>t.add; ﻩcout〈〈”请输入新记录的邮编: ”; cin〉>t.pos; cout<<"请输入新记录的邮箱: ”; cin〉〉t。 Email; ﻩﻩfor(i=0;i ﻩﻩif(strcmp(t.name,(p+i)->name)==0) ﻩﻩ{ ﻩcout〈<”姓名已存在,要重新输入吗(Y/N)? "<<endl; ﻩﻩﻩcin〉〉c; ﻩﻩif(c=='n'||c==’N') //当用户输入N时,跳出增加操作 ﻩﻩbreak; ﻩﻩ ﻩﻩ} ﻩﻩﻩif(i==n) ﻩ{ ﻩﻩﻩ*(p+i)=t; ﻩﻩcout<〈"添加后的记录为: "〈 ﻩﻩﻩcout<<”姓名”<<"\t"<<"电话"〈<"\t\t"<〈"地址"<<”\t”〈<”邮编”<<”\t”<〈"邮箱”〈〈endl; ﻩfor(i=0;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'); ﻩreturn n+1; } intdel(struct student*p,int n) //删除联系人 { int i=0,x; if(i==n) ﻩﻩcout〈〈"************通信录中无联系人***********"<〈endl; else { char name[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"〈<”邮箱"〈 ﻩﻩﻩfor(i=0;i〈n-1;i++) ﻩﻩﻩcout〈 add〈<"\t”〈<p[i].pos<<”\t"〈<p[i]。 Email< ﻩ return n-1; ﻩ} else ﻩﻩ cout<<"********无此联系人*********"<<endl; } ﻩreturnn; } voidsearch(structstudent*p,int n) //查找联系人 { int i=0; ﻩcharname[20]; ﻩif(i==n) cout<<”************通信录中无联系人***********”< else ﻩ{ ﻩcout<〈"请输入要查找的联系人的姓名: ”;cin>>name; for(i=0;i ﻩif(strcmp(name,(p+i)—>name)==0) ﻩ{ cout〈〈p[i].name<<"\t"<〈p[i].tel<<”\t"< pos〈〈”\t”<〈p[i]。 Email〈<endl; ﻩﻩbreak; } ﻩﻩif(i==n) ﻩﻩcout<<”********无此联系人*********"〈<endl; ﻩ} } voidsort(structstudent*p,intn) //对联系人排序 { struct studenttemp; inti=0,j; if(i==n) cout<<"*******通信录中没有联系人可排序*******”<<endl; else ﻩ{ ﻩfor(i=0;i〈n;i++) ﻩ{ ﻩ for(j=0;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_datastudent*p,int n) //输出到文件 { fstreamiofile; ﻩio("D: \\student.txt",ios: : out); for(inti=0;i<n;i++) iofile〈<p[i]。 name〈<"\t”<<p[i].tel〈<"\t”〈 add<<”\t"< io(); cout<<"output! ! ! ! ! ! "<<endl; ﻩ } voiddata(struct student*p,intn) //从文件输出到屏幕 { fstreamiofile; ﻩio("D: \\student。 txt”,ios: : in|ios: : binary); cout<<"姓名"<<”\t”<<”电话”<<”\t\t”<<"地址"<<"\t”〈<"邮编”<<”\t"<〈”邮箱”〈〈endl; iofile〉〉p-〉name; while(! io()) ﻩ{ ﻩiofile〉>p—>tel>>p—>add〉>p->pos>>p—>Email; ﻩcout< name〈<"\t”〈<p->tel<<"\t”<<p—〉add<〈"\t”〈 pos<〈"\t"< Email< ﻩﻩp++; iofile〉>p—〉name; } ﻩio(); } voidfunction(void) { ﻩstructstudent record[N]; ﻩinttotal=0; intx; cout〈〈"\t\t************************************"<<endl; ﻩcout<〈”\t\t 欢迎登陆通信录管理系统"〈<endl; ﻩcout〈 cout<〈”\t\t 1 创建联系人 2输出通信录”<<endl; cout〈〈”\t\t 3增加联系人 5查找联系人"< cout〈〈”\t\t 4删除联系人"<〈endl; cout〈〈”\t\t 6 排序 "< cout<〈”\t\t 7输入到文件"〈〈endl; cout〈<”\t\t 8 从文件输出到屏幕”<〈endl; cout〈〈"\t\t 9退出 "<<endl; cout<〈"\t\t************************************”〈〈endl; ﻩdo{ cout<〈”******************”< ﻩ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_data);break; ﻩcase8: data(record,total);break; ﻩcase 9: ﻩcout<<"\t\t************************************"<<endl; ﻩcout〈〈"\t\t 谢谢使用通信录管理系统"< cout〈〈"\t\t 再见! ! ! ! ! ”<<endl; cout<<”\t\t************************************”< ﻩexit(0); } ﻩ}while(1); } voidmain() { ﻩfunction(); } 5功能测试 5。 1添加功能 。 5.2显示功能 5.3删除功能 5。 4查询功能 5。 5排序功能 5.6保存到文件的功能 5。 7从文件中读出模块 实验中遇到的问题及解决方法 在实现添加功能的过程中由于用户可能输入相同的人名,经过一个判断语句后,如果输入了相同的人名则提示用户联系人已存在,是否要重新输入,体现一个人性化的通讯录管理系统. 在实现删除的过程中由于没有注意删除联系人后会出现一个空的,导致后面的输出时会出现乱码,经过将后面的依次向前移动,使得该问题得到解决。 在实现查找的过程中由于采用的名字查询,而附设的一个名字数组只有10个大小的空间,本来存在的联系人在查询时系统提示所要查询的联系人信息不存在,经过修改之后成功查询. 6总结 本学生通信录管理系统由7个模块组成,每个模块相互联系又相互独立。 这个通信录管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。 只能实现通信录管理系统最基本的功能,可以进行简单的输入、输出联系人资料,查询和修改联系人信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。 在做之前就看了一些这方面的书,多多少少有一定的了解,使自己在进行的过程中没有胆怯,没有遇到太大的麻烦。 这次课程设计,我感到书本上的东西还是很重要的,课程设计,就是离不开书本。 在设计过程中,add<〈"\t”〈〈q-〉pos〈<"\t”<<q—>Email<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录管理系统 C+ 课程设计 通讯录 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)