您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > C++课程设计 同学录管理系统(科文09z网络工程)
钱逸敏课程设计学号:078325039C++课程设计1.课程设计名称:同学录信息管理系统2.功能目标实现的目标功能是:1)能够从屏幕上读取一个同学的信息并将信息存入到指定文件中。2)能够将指定的同学录中的信息从文件中删除。3)能够通过姓名对同学的信息进行检索并将检索结果显示在屏幕上。4)能够对指定的同学信息进行修改,方便保持信息畅通。5)能够对同学录信息进行整体浏览。6)能够对同学录里的信息进行冒泡排序7)系统有错误提示功能,例如保存的数据文件不存在,则会提示打开失败。3.课程设计的目的(1)要求达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。4.系统分析与设计4.1系统大体方向在student2类中定义多个函数,分别实现同学录信息管理系统的各项功能,然后通过类外对相应的函数进行功能设计,最后在main函数中通过对象来调用函数,实现同学录信息管理系统的功能。4.2系统的功能图示同学录信息管理系统添加同学信息浏览同学信息查询同学信息按编号按姓名修改同学信息删除同学信息排序同学信息钱逸敏课程设计学号:0783250394.3系统中运用到的关键函数我通过在student2类中定义多个函数,分别是:add函数,display函数,inquiry函数,sort函数,del函数,update函数,jiemian函数,tishi函数,quit函数。其中add,display,inquiry,sort,del,update函数实现同学录信息管理系统的录入,浏览,查询,排序,删除和修改功能,jiemian函数使系统以菜单方式工作,后面的tishi,quit2个函数使得系统更加为用户方便操作。具体定义如下:(1)add函数在add函数中,以二进制的形式将同学信息保存到“D:\\classmates.txt”中;用for循环语句实现对同学姓名,年龄,性别,出生年月,地址,电话,Email等的添加录入。(2)display函数在display函数中,将刚才以二进制的形式保存的同学信息存入磁盘并在显示器上显示出来;用for循环实现对同学的学号,姓名,年龄,性别,出生年月,地址,电话,Email等的输出。(3)inquiry函数在inquiry函数中,提示用户“1.按学号查询;2.按姓名查询”,请用户做出选择,用flag提示用户有没有找到所要查询的同学信息,如果找到,输出所要查询的同学的相关信息,如果没有找到,输出“没有找到所要查询的同学信息!”。(4)sort函数在sort函数中,用冒泡法按同学的学号进行排序。把同学的学号,姓名,年龄,性别,出生年月,地址,电话,Email等看成一个整体,要交换2个同学的信息,只要将同学所对应的序号相交换即可。然后再输出排序后的同学信息。(5)del函数在del函数中,提示用户“1.按学号删除;2.按姓名删除”,然后根据用户的选择,用if语句实现是按学号删除还是按姓名删除,首先用flag判断有没有找到所要删除的同学信息,如果找到了所要删除的同学信息,删除信息,然后再输出删除后的同学信息,如果没有找到,输出“没有找到您要删除的同学信息”。要删除一个同学的信息,只要删除了该同学所对应的序号即可。(6)update函数在update函数中,用flag判断有没有所要修改的同学信息,如果有,修改相应的同学信息,再输出修改后的同学信息;如果没有,输出“没有您所要修改的同学信息”。(7)face函数在face函数中,实现系统以菜单方式工作。(8)quit函数在quit函数中,提示用户“欢迎使用同学信息管理系统,再见!”使得系统更加的人性化。(9)tishi函数在tishi函数中,询问用户是否继续其他的操作,使得系统更加的人性化。5.以下为部分截图钱逸敏课程设计学号:078325039图1图2钱逸敏课程设计学号:078325039图3图4钱逸敏课程设计学号:0783250396.以下为源代码://同学录系统//程序员:钱逸敏//制作时间:2010-5-22~2010-6-6#includeiostream//iostream为内置类型类型对象提供了输入输出支持,同时也支持文件的输入输出#includecstring//使用CString可以对字符串的操作更加直截了当。例如:CString型转化成int型#includefstream//文件流,主要提供操作文件函数usingnamespacestd;constintm=100;//定义常量minti;structstudent1//定义结构体{longnum;charname[20];//自动申请内存空间,用完自动释放内存空间,下同intage;charsex[10];longyear;intmonth;charaddress[30];longphonenumber;charemail[100];};classstudent2//定义类{public:voidadd();//添加录入函数voiddisplay();//申明一个名为display的显示输出函数voidinquiry();//查询信息函数voidsort();//排序信息函数voiddel();//删除信息函数voidupdate();//修改信息函数voidface();//界面浏览函数voidtishi();//提示用户下一步操作函数voidquit();//退出操作函数protected:student1stud[m];intrenshu;};//对同学信息的录入voidstudent2::add(){ofstreamoutfile(D:\\classmates.txt,ios::binary);//建立classmates.txt文件,用于存储录入的内容,并以二进制的方式进行存储if(!outfile)//如果目录不存在{cerr对不起,文件打开失败!endl;//报错abort();//程序异常终止进程}cout请输入你们班人数:;cinrenshu;coutendlendl;for(i=0;irenshu;i++)//用for循环语句实现对同学姓名,年龄,性别,出生年月,地址,电话,Email等的添加录入钱逸敏课程设计学号:078325039{cout这是第(i+1)个同学的信息:endl;cout学号:;cinstud[i].num;cout姓名:;cinstud[i].name;cout年龄:;cinstud[i].age;cout性别:;cinstud[i].sex;cout出生年月:endl;cout年:;cinstud[i].year;cout月:;cinstud[i].month;cout地址:;cinstud[i].address;cout电话:;cinstud[i].phonenumber;coutemail:;cinstud[i].email;coutendlendl;outfile.write((char*)&stud[i],sizeof(student1));//将&stud[i]这个指针所指向的内容输出,每次输出的数据单元占sizeof(student1)个字节}outfile.close();//输出文件关闭}//对同学信息的显示voidstudent2::display(){student1s[m];ifstreaminfile(D:\\classmates.txt,ios::binary);//将信息从硬盘中调到内存中,以二进制的方式进行读取if(!infile){cerr对不起,打开失败哦!endl;abort();//终止}for(i=0;irenshu;i++)infile.read((char*)&s[i],sizeof(student1));//一旦读取成功,循环读取,读取&s[i]这个指针所指向的内容,每次输出的数据单元占sizeof(student1))个字节infile.close();for(i=0;irenshu;i++)//循环输出{cout第(i+1)个同学的信息:endl;cout学号:s[i].numendl;cout姓名:s[i].nameendl;cout年龄:s[i].ageendl;cout性别:s[i].sexendl;cout出生年月:endl;cout年:s[i].yearendl;cout月:s[i].monthendl;cout地址:s[i].addressendl;cout电话:s[i].phonenumberendl;coutEmail:s[i].emailendl;coutendlendl;钱逸敏课程设计学号:078325039}}//对同学信息的查询voidstudent2::inquiry(){intm,flag=0;longn;charxm[20];cout1.按学号查询;2.按姓名查询.请选择!endl;cinm;if(m==1){cout请输入学号:;cinn;coutendlendl;for(i=0;irenshu;i++){if(stud[i].num==n){cout这是第(i+1)个同学endl;cout学号:stud[i].numendl;cout姓名:stud[i].nameendl;cout年龄:stud[i].ageendl;cout性别:stud[i].sexendl;cout出生年月:endl;cout年:stud[i].yearendl;cout月:stud[i].monthendl;cout地址:stud[i].addressendl;cout电话:stud[i].phonenumberendl;coutEmail:stud[i].emailendl;flag=1;//用flag提示用户有没有找到所要查询的同学信息}}if(flag==0)//0表没有找到cout没有您要查找的同学信息!endl;}if(m==2){cout请输入姓名:endl;cinxm;//输入姓名for(i=0;irenshu;i++){if(strcmp(stud[i].name,xm)==0)//strcmp用来比较字符串.name和xm。{cout这是第(i+1)个同学endl;cout学号:stud[i].numendl;cout姓名:stud[i].nameendl;cout年龄:stud[i].ageendl;cout性别:stud[i].sexendl;cout出生年月:endl;cout年:stud[i].yearendl;cout月:stud[i].monthendl;cout地址:stud[i].addressendl;钱逸敏课程设计学号:078325039cout电话:stud[i].phonenumberendl;coutEmail:stud[i].emailendl;flag=1;}}if(flag==0)cout没有您要查找的同学信息!endl;}}//对同学信息的排序voidstudent2::sort(){inta[m],j,t;//利用冒泡法进行排序for(i=0;irenshu;i++)a[i]=i;for(i=0;irenshu;i++){for(j=0
本文标题:C++课程设计 同学录管理系统(科文09z网络工程)
链接地址:https://www.777doc.com/doc-140577 .html