C++程序设计课程设计人口户籍信息管理系统源程序.docx
- 文档编号:24511710
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:16
- 大小:17.26KB
C++程序设计课程设计人口户籍信息管理系统源程序.docx
《C++程序设计课程设计人口户籍信息管理系统源程序.docx》由会员分享,可在线阅读,更多相关《C++程序设计课程设计人口户籍信息管理系统源程序.docx(16页珍藏版)》请在冰豆网上搜索。
C++程序设计课程设计人口户籍信息管理系统源程序
九、源程序代码
#include
#include
#include
#include
classpopulation
{
private:
intmaxnum;//人口户籍编号最大值r
intsno;//编号
charname[20];
charsex[2];
intage;
charbirth[10];//出生日期
charfolk[2];//民族
charmianmao[10];//政治面貌
chardepartment[10];//村组名
charspeciality[10];//家庭门牌号
charaddress[30];//人口家庭详细地址
public:
population();
~population();
voidenter();//户籍信息录入函数
voiddisplay();//户籍信息输出函数
voidsetsno(inttemp);
intgetsno();
char*getname();
char*getspeciality();
voidread();
voidwrite();
voidchange();
};
population:
:
population()
{}
population:
:
~population()
{}
intpopulation:
:
getsno()
{returnsno;}
char*population:
:
getspeciality()
{returnspeciality;}
voidpopulation:
:
setsno(inttemp)
{sno=temp;}
char*population:
:
getname()
{returnname;}
voidpopulation:
:
display()
{
cout< )< } voidpopulation: : change() { charch; cout<<"请输入要修改人员的信息"< cout<<"*******************************************************"< cout<<"姓名是不是要改写(Y/N)"< cin>>ch; if(ch=='Y'||ch=='y') { cout<<"请输入新姓名: "< cin>>name; } cout<<"输入性别(男(n),女(m)): "< cin>>sex; if(strcmp(sex,"n")! =0&&strcmp(sex,"m")! =0) { cout<<"错误请重新输入! : "< cin>>sex; } cout<<"输入年龄: "< cin>>age; while(age<1||age>=110) { cout<<"错误请重新输入! "< cin>>age; } cout<<"输入出生日期: "< cin>>birth; cout<<"输入民族: "< cin>>folk; cout<<"输入政治面貌类别(党员(a),非党员(b)): "< cin>>mianmao; while(strcmp(mianmao,"a")! =0&&strcmp(mianmao,"b")! =0) { cout<<"错误请重新输入! "< cin>>mianmao; } cout<<"输入村组名: "< cin>>department; cout<<"输入家庭门牌号: "< cin>>speciality; cout<<"输入家庭详细地址: "< cin>>address; cout<<"***************************************************"< cout<<"你刚刚输入的人员信息如下: "< display(); } voidpopulation: : enter() { ifstreamtfile("max.txt",ios: : binary|ios: : nocreate); if(tfile) { tfile.read((char*)&maxnum,sizeofmaxnum); } else { maxnum=1000;//户籍编号初始化 } tfile.close(); sno=maxnum++; ofstreamofile("max.txt"); ofile.write((char*)&maxnum,sizeofmaxnum); tfile.close(); cout<<"请输入人员信息"< cout<<"人员姓名: "< cin>>name; cout<<"性别(男(n),女(m)): "< cin>>sex; while(strcmp(sex,"n")! =0&&strcmp(sex,"m")! =0) { cout<<"错误请重新输入! "< cin>>sex; } cout<<"出生日期: "< cin>>birth; cout<<"年龄: "< cin>>age; while(age<1||age>=110) { cout<<"错误请重新输入! "< cin>>age; } cout<<"政治面貌类别(党员(a),非党员(b)): "< cin>>mianmao; while(strcmp(mianmao,"a")! =0&&strcmp(mianmao,"b")! =0) { cout<<"错误请重新输入! "< cin>>mianmao; } cout<<"民族: "< cin>>folk; cout<<"村组名: "< cin>>department; cout<<"家庭门牌号: "< cin>>speciality; cout<<"家庭详细地址: "< cin>>address; } //主程序部分: #include #include #include #include #include //#include"population.h" populationpop;//population类的全局变量 voidread() { ifstreamafile("population.txt",ios: : nocreate); afile.read((char*)&pop,sizeofpop); } voidwrite() { ofstreambfile("population.txt",ios: : app); bfile.write((char*)&pop,sizeofpop); } voidinput(void)//录入函数 { charch; pop.enter(); write(); cout<<"你还要输入下一位人员的信息吗(Y/N)! "< cin>>ch; if(ch=='Y'||ch=='y') { input(); } } voidsearch()//查询函数 { intj,k,i,m=0; charch1[5],ch2[10]; cout<<"请输入你的查找类型: (1.编号2.姓名3.门牌号)"< cin>>j; while(j<=0||j>=4) { cout<<"错误请重新选择! "< cin>>j; } if(j==1) { cout<<"请输入你要查找的人员的编号: "< cin>>i; } if(j==2) { cout<<"请输入你要查找的人员的姓名: "< cin>>ch1; } if(j==3) { cout<<"请输入你要查找的人员的家庭门牌号: "< cin>>ch2; } ifstreamdfile("population.txt",ios: : nocreate); while(dfile.good()) { dfile.read((char*)&pop,sizeofpop); if(i==pop.getsno()||strcmp(pop.getname(),ch1)==0|| strcmp(pop.getspeciality(),ch2)==0) { cout<<"你要查找的人员信息如下: "< cout< "年龄"< setw(8)<<"村组名"< pop.display(); i=0; k=0; m=1; return; } } if(m! =1)cout<<"没有找到这名人员的信息! "< } voidomit()//删除函数 { intch; cout<<"请输入要删除的人员的编号: "< cin>>ch; ifstreamin("population.txt",ios: : nocreate);//打开文件1,读数据 ofstreamout("population1.txt",ios: : trunc);//打开文件写数据到文件2 while(in)//循环读数据 { if(in.read((char*)&pop,sizeofpop))//读后存在pop变量里,读pop这么大小 if(ch! =pop.getsno())//如果读出来的数据的pop取sno不等于刚才输入的学号,将这组数据写入文件 { out.write((char*)&pop,sizeofpop); } else cout<<"人员已成功删除! "< } in.close();//关闭文件 out.close(); ifstreamifile("population1.txt",ios: : nocreate);//将文件2的内容弄到文件1上 ofstreamhfile("population.txt",ios: : trunc); while(ifile) { if(ifile.read((char*)&pop,sizeofpop)) hfile.write((char*)&pop,sizeofpop); } ifile.close(); hfile.close(); } voidchange() {intp=0,l=0; intch; cout<<"请输入你要修改的人员编号: "; cin>>ch; fstreamefile("population.txt",ios: : in|ios: : out); while(efile.good()) {efile.seekg(sizeof(pop)*p); if(efile.read((char*)&pop,sizeofpop)) { if(ch==pop.getsno()) { pop.display(); pop.change(); efile.seekp(sizeof(pop)*p); efile.write((char*)&pop,sizeofpop); l++; return; } } p++; } efile.close(); if(l! =1) cout<<"没有你所要修改的学生信息! "< } voidoutput()//输出函数 { inti=0; ifstreamcfile("population.txt",ios: : nocreate);//打开文件 while(cfile)//循环读文件的数据到类或结构体里 { if(cfile.read((char*)&pop,sizeofpop)) { pop.display();//调用pop的成员函数打印 i++;//为后面的一共文件里存了多少人的数据做累加,求人员个数。 } } cout<<"一共有"< } voidmenu() { cout<<"*人口户籍信息管理系统*"< cout<<"*******************************************************"< cout<<"0.退出管理系统"< cout<<"1.人员信息录入"< cout<<"2.人员信息查询"< cout<<"3.人员信息删除"< cout<<"4.人员信息修改"< cout<<"5.人员信息输出"< cout<<"*******************************************************"< cout<<"请选择以上操作(0=======5)"< } voidselect()//选择菜单函数 { intch; while (1) { cin>>ch; switch(ch) { case0: exit(0);menu();break; case1: input();menu();break; case2: search();menu();break; case3: omit();menu();break; case4: change();menu();break; case5: output();menu();break; default: menu();cout<<"输入无效请重新输入(0========5)"< } } } intmain() { intcount=0; charpassword[5];//密码 charname[11];//用户名 cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"< cout<<"┃★★★人口户籍信息管理系统★★★┃"< cout<<"┃┃"< cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"< cout<<"*************************欢迎进入人口户籍信息管理系统*********************"< cout< cout<<"请输入用户名: "< cin>>name; cout<<"请输入密码: "< while (1) { cin>>password; if(strcmp(password,"2010")==0) { cout<<"*您的密码正确! ! -------------*"< cout< menu(); select(); } else { count=count+1; if(count==3) { cout<<"实在对不起,您已经输入错误3次了! ! ! "< cout<<"系统自动退出! ! ! "< break; } cout<<"对不起! 您的密码有误! ! "< cout<<"请重新输入密码"< continue; } break; } cout<<"谢谢使用-----人口户籍信息管理系统! ! ! "< cout<<"再见! ! "< cout<<"*******************************************************************************"< return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 课程设计 人口 户籍 信息管理 系统 源程序