第一篇:C++程序设计课程设计人口户籍信息管理系统源程序
九、源程序代码
#include
class population { private: int maxnum;//人口户籍编号最大值r int sno;//编号 char name[20];char sex[2];int age;char birth[10];//出生日期 char folk[2];//民族
char mianmao[10];//政治面貌 char department[10];//村组名 char speciality[10];//家庭门牌号
char address[30];//人口家庭详细地址 public: population();~population();void enter();//户籍信息录入函数 void display();//户籍信息输出函数 void setsno(int temp);int getsno();char *getname();char *getspeciality();void read();void write();void change();};population::population(){}
population::~population(){}
int population::getsno(){return sno;}
char *population::getspeciality()
齐齐哈尔大学C++程序设计课程设计用纸
{return speciality;}
void population::setsno(int temp){sno=temp;} char *population::getname(){return name;}
void population::display(){
cout< char ch; 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; 齐齐哈尔大学C++程序设计课程设计用纸 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 void read(){ ifstream afile(“population.txt”,ios::nocreate); afile.read((char*)&pop,sizeof pop);} void write(){ ofstream bfile(“population.txt”,ios::app); bfile.write((char*)&pop,sizeof pop); 齐齐哈尔大学C++程序设计课程设计用纸 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<<“没有找到这名人员的信息!”< } void omit()//删除函数 { int ch; cout<<“请输入要删除的人员的编号:”< cin>>ch; ifstream in(“population.txt”,ios::nocreate);//打开文件1,读数据 ofstream out(“population1.txt”,ios::trunc);//打开文件写数据到文件2 while(in)//循环读数据 { if(in.read((char*)&pop,sizeof pop))//读后存在pop变量里,读pop这么大小 if(ch!=pop.getsno())// 如果读出来的数据的pop取sno不等于刚才输入的学号,将这组数据写入文件 { out.write((char*)&pop,sizeof pop); } else cout<<“人员已成功删除!”< } in.close();//关闭文件 out.close(); ifstream ifile(“population1.txt”,ios::nocreate);//将文件2的内容弄到文件1上 ofstream hfile(“population.txt”,ios::trunc); while(ifile) { if(ifile.read((char*)&pop,sizeof pop)) 齐齐哈尔大学C++程序设计课程设计用纸 } void menu(){ cout<<“ * 人口户籍信息管理系统 *”< 0.退出管理系统 ”< cout<<“ 1.人员信息录入 ”< cout<<“ 2.人员信息查询 ”< cout<<“ 3.人员信息删除 ”< cout<<“ 4.人员信息修改 ”< cout<<“ 5.人员信息输出 ”< cout<<“ 请选择以上操作(0=======5)”< int ch; while(1) { cin>>ch; switch(ch) { case 0:exit(0);menu();break; case 1:input();menu();break; case 2:search();menu();break; case 3:omit();menu();break;case 4:change();menu();break; case 5:output();menu();break; default:menu();cout<<“输入无效请重新输入(0========5)”< } } } int main(){ int count=0;char password[5]; //密码 char name[11]; //用户名 齐齐哈尔大学C++程序设计课程设计用纸 cout<<“ 谢谢使用-----人口户籍信息管理系统!! ”< 再见! ”< cout<<“*******************************************************************************”< C++程序设计实践教学环节任务书 一、题目:学生信息管理系统 二、目的与要求 1.目的: (1)掌握面向对象程序设计的基本思路和方法; (2)了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块 组装与整体调试的全过程; (3)进一步熟悉C++中类的概念、类的封装、继承的实现方式;(4)学会分析简单的实际问题,并能利用所学的知识建立系统的逻辑结构,学会简单的调试技巧和方法。逐步熟悉面向对象程序设计的方法,养成良好的编程习惯。 2.要求基本要求: (1)要求利用C++面向对象的编程思想来完成系统的设计;(2)进行简单界面设计,能够实现友好的交互;(3)具有清晰的程序流程图和数据结构的详细定义;(4)熟练掌握C++对文件的各种操作。 三、信息描述 有关该系统基本信息的描述(如:学号、姓名、系别、班级和各科成绩等)。 四、功能描述 1.添加、删除 系统将提示用户输入新添加学生的信息;由用户输入要删除的学生的学号,然后调用删除函数,删除该名学生的资料。2.查找 首先由用户输入要查找的学生的学号,系统用查找函数查找,然后系统就调用输出函数。 3.修改 首先由用户输入要修改的学生的学号,然后系统用修改函数查找,显示该名学生的资料,然后系统提示用户输入需要修改的项目和新的资料。4.界面要求 开始登录管理界面、主要提示菜单界面(提示用户执行何种操作)等。 五、解决方案 1.分析程序的功能要求,划分程序功能模块。2.画出系统流程图。 3.代码的编写、程序的功能调试。4.完成系统总结报告以及使用说明书 六、进度安排 此次课程设计时间为一周或两周,分四个阶段完成: 1.分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确 设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。 2.编码调试阶段:根据设计分析方案编写代码,然后调试该代码,实现 课题要求的功能。 3.总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需 求分析、总体设计、详细设计、编码、测试的步骤和内容。4.考核阶段。 七、撰写课程设计报告或课程设计总结 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 八、参考资料 《C++语言程序设计教程》 网上相关资料(....略) 教职工信息管理系统源码 #include #define maxsize 100 fstream iofile;//文件指针 class Time //时间类 { public: int year; int month; int day;}; class Telem //个人信息 { public: char name[20]; char sex[10]; Time birthtime;//组合Time类 char num[20]; char wage[20]; Time worktime; int year; char department[20]; friend istream& operator>>(istream& input,Telem& T); friend ostream& operator<<(ostream& output,Telem& T); friend int operator-(Time & t1,Time & t2);}; class People:virtual public Telem //雇员类 { public: People(); virtual void AddF()=0;//添加 virtual void Addall()=0; virtual void Add()=0; virtual void Display();//输出数组的内容 virtual void Displaypart(char p[]); virtual void Findname(char n[]); virtual void Findyear(int); virtual void Del(char n[])=0; virtual void Del(int);protected: Telem data[maxsize]; Time now; int length;}; class Teacher:virtual public People //派生虚基类 { public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display(); virtual void Del(int i); virtual void Del(char n[]);}; class worker:virtual public People //派生虚基类 { public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display(); virtual void Del(int i); virtual void Del(char n[]);}; People::People()//系统自动生成的构造函数 { length=0; now.year=2010; now.month=7; now.day=6;} void People::Display()//引用 { int i; for(i=0;i cout< void People::Displaypart(char p[])//引用数组 { int i,c; for(i=0;i if(strcmp(data[i].wage,p)==0) { cout<<“输出选择姓名1 性别2 编号3 工资4 出生日期5 工作时间6 年龄7 系别8 退出选择9”< while(cin>>c) { switch(c) { case 1: cout<<“姓名:”< case 2: cout<<“性别:”< case 3: cout<<“编号:”< case 4: cout<<“工资:”< case 5: cout<<“出生日期:”< case 6: cout<<“工作时间:”< case 7: cout<<“年龄:”< case 8: cout<<“系别:”< case 9: goto loop; default:cout<<“操作错误......”< } } loop:; } } void People::Findname(char n[])//引用 { int i; for(i=0;i if(strcmp(data[i].name,n)==0)//对象引用 cout< void People::Findyear(int y){ int i; for(i=0;i if(data[i].year==y) cout< void People::Del(int i){ int j; if(i<1||i>length) cout<<“不存在第”< for(j=i;j data[j-1]=data[j]; length--;} void worker::AddF(){ int flag=0; iofile.open(“worker_information.txt”,ios::in|ios::binary);//文件的打开与关闭 while(iofile.seekg(ios::cur)) { iofile.seekg(length*sizeof(data[length]),ios::beg); iofile.read((char*)&data[length],sizeof(data[length]));//文件的随机访问 length++; if(length==maxsize) { flag=1; goto loop; } } People::Del(length); cout<<“添加人员信息成功......”< loop: if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void worker::Addall(){ char ans; int flag=0; iofile.open(“worker_information.txt”,ios::out|ios::binary); do { cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<“添加人员信息成功......”< length++; if(length==maxsize) { flag=1; goto loop; } cout<<“contine(Y|N)?”; cin>>ans; }while('y'==ans||'Y'==ans);loop: if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void worker::Add(){ int flag=0; iofile.open(“worker_information.txt”,ios::app|ios::out|ios::binary); if(length==maxsize) { flag=1; goto loop; } cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<“添加人员信息成功......”< length++; loop: if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void worker::Display(){ cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”< if(0==length) cout<<“无......”< int i; for(i=0;i cout< int i,j,k; for(i=0;i if(strcmp(data[i].name,n)==0){ k=i+1;break;} if(k<1) cout<<“不存在姓名”< for(j=k;j data[j-1]=data[j]; length--; cout<<“删除人员信息成功......”< void worker::Del(int i){ int j; if(i<1||i>length) cout<<“不存在第”< for(j=i;j data[j-1]=data[j]; length--; cout<<“删除成功......”< } void Teacher::AddF(){ int flag=0; iofile.open(“Teacher_information.txt”,ios::in|ios::binary); while(iofile.seekg(sizeof(data[length]),ios::cur)) { if(iofile.seekg(length*sizeof(data[length]),ios::beg)) iofile.read((char*)&data[length],sizeof(data[length])); else break; length++; if(length==maxsize) { flag=1; goto loop; } } People::Del(length); cout<<“添加人员信息成功......”< if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void Teacher::Addall(){ char ans; int flag=0; iofile.open(“Teacher_information.txt”,ios::in|ios::out|ios::binary); do { cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<“添加人员信息成功......”< length++; if(length==maxsize) { flag=1; goto loop; } cout<<“contine(Y|N)?”; cin>>ans; }while('y'==ans||'Y'==ans);loop: if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void Teacher::Add(){ int flag=0; iofile.open(“Teacher_information.txt”,ios::app|ios::out|ios::binary); if(length==maxsize) { flag=1; goto loop; } cin>>data[length]; data[length].year=now-data[length].birthtime; iofile.write((char*)&data[length],sizeof(data[length])); cout<<“添加人员信息成功......”< length++;loop: if(1==flag) cout<<“人员信息储存空间已满......”< iofile.close();} void Teacher::Display(){ cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆教师信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”< if(0==length) cout<<“无......”< int i; for(i=0;i cout< void Teacher::Del(char n[]){ int i,j,k; for(i=0;i if(strcmp(data[i].name,n)==0) { k=i+1;break; } if(k<1)cout<<“不存在姓名”< for(j=k;j data[j-1]=data[j]; length--; cout<<“删除人员信息成功......”< void Teacher::Del(int i){ int j; if(i<1||i>length) cout<<“不存在第”< for(j=i;j data[j-1]=data[j]; length--; cout<<“删除成功......”< istream& operator>>(istream& input,Telem& T){ int y,m,d; cout<<“请输入姓名(以*结尾):”< input.getline(T.name,20,'*'); cout<<“请输入性别(以*结尾 男或女):”< input.getline(T.sex,10,'*'); cout<<“编号(以*结尾):”< input.getline(T.num,20,'*'); cout<<“工资(以*结尾):”< input.getline(T.wage,20,'*'); cout<<“请输入出生日期:”< input>>y>>m>>d; T.birthtime.year=(y>=1900&&y<=2100)?y:1900; T.birthtime.month=(m>=1&&m<=12)?m:1; T.birthtime.day=(d>=1&&d<=31)?d:1; cout<<“请输入系别(以*结尾):”< input.getline(T.department,20,'*'); cout<<“参加工作时间:”< input>>y>>m>>d; T.worktime.year=(y>=1900&&y<=2100)?y:1900; T.worktime.month=(m>=1&&m<=12)?m:1; T.worktime.day=(d>=1&&d<=31)?d:1; return input;} ostream& operator<<(ostream& output,Telem& T){ cout<<“姓名:”; output< cout<<“性别:”; output< cout<<“编号:”; output< cout<<“工资:”; output< cout<<“出生日期:”; output< cout<<“系别:”; output< cout<<“参加工作时间:”; output< cout<<“年龄:”; output< return output;} int operator-(Time & t1,Time & t2){ return t1.year-t2.year;} void Showmenu(){ cout< cout<<“ 欢 迎 进 入 教 职 工 信 息 管 理 系 统”< cout<<“ 2010 年7月7日发布”<<“ 版权所有: swa”< cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★人员信息管理系统★ ☆ ★ ☆ ★ ☆ ★ ☆ ★”< cout<<“ ★ 1-从键盘录入全部人员记录 ☆ ”< cout<<“ ☆ 2-增加一位人员记录 ★”< cout<<“ ★ 3-显示全部人员记录 ☆”< cout<<“ ☆ 4-按系别输出人员信息(可选)★ ”< cout<<“ ★ 5-按姓名或年龄检索所有信息☆ ”< cout<<“ ☆ 6-显示菜单目录 ★ ”< cout<<“ ★ 7-结束程序运行 ☆ ”< cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”< int main(){ Teacher tea; worker stu; People *pt=&tea; People *ps=&stu; int c=0,k=0,l=0,i=0; char nam[20],part[20];Showmenu(); for(;;) { cout<<“请根据菜单执行相应操作: ”; cin>>c; switch(c) { case 1: { cout<<“ ★ ☆ ★ ☆ ★ ☆ ★录入全部人员记录 ★ ☆ ★ ☆ ★ ☆ ★”< cout<<“ ★ ☆ ★ ☆ ★从键盘输入教师信息 ☆ ★ ☆ ★ ☆”< pt->Addall(); cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆从键盘输入工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”< ps->Addall(); break; } case 2: { cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆从键盘增加一位人员记录 ★ ☆ ★ ☆ ★ ☆ ★ ☆”< cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆教师操作请按1 工人操作请按2 ★ ☆ ★ ☆ ★ ☆ ★ ☆”< cin>>k; if(1==k) pt->Add(); else if(2==k) ps->Add(); else cout<<“操作错误...”< break; } case 3: { cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆显示全部人员记录 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”< pt->Display(); ps->Display(); break; } case 4: { cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆按部门输出人员信息(可选)★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<第二篇:C++课程设计学生信息管理系统
第三篇:C++课程设计 教职工信息管理系统源代码