个人信息管理系统C++.docx
- 文档编号:7062866
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:18
- 大小:237.09KB
个人信息管理系统C++.docx
《个人信息管理系统C++.docx》由会员分享,可在线阅读,更多相关《个人信息管理系统C++.docx(18页珍藏版)》请在冰豆网上搜索。
个人信息管理系统C++
面向对象课程设计报告
个人管理系统
*****
班级:
091141
学号:
********
专业:
网络工程
********
1
1、实验题目…………………………………………………………3
2、实验时间、地点…………………………………………………3
3、实验目的…………………………………………………………3
4、实验要求…………………………………………………………3
5、实现过程…………………………………………………………7
6、心得体会…………………………………………………………16
2
一、实验题目:
个人管理系统
二、实验时间及地点:
时间:
第十四周(周一至周四)
地点:
软件楼505室。
三、实验目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
四、实验要求:
1、使用面向对象方法进行课程设计。
要求使用对象/类,继承,多态性等技术
2、独立完成课程设计,并完成课程设计报告报告记录设计的过程,尤其是分析/设计/实现过程中的决策课程设计报告的内容应当包括以下内容:
声称要完成的功能设计的具体描述完整的实现设计的源代码执行的结果的典型记录设计的优点和需要进一步改进的地方软件的主要结构包括:
用户登录,数据的录入、查询、删除、修改、统计等功能。
根据结合自己的实际情况,酌情选择相关的功能,并完成设计。
五、实现过程:
(1)登陆界面:
3
(1)主界面:
(2)录入功能:
4
(3)修改:
(4)删除:
5
(5)查询:
(6)保存:
6
(7)退出:
代码:
#include
#include
#include
#include
usingnamespacestd;
structEmployee
{//声明个人的结构作为链表节点。
//-----数据域-----
stringm_Code;
stringm_Name;
intm_Year;
stringm_Sex;
stringm_Post;
stringm_Department;
intm_Wage;
//链表节点的指针域---
structEmployee*Next;
};
typedefstructEmployeeNode;
typedefNode*Link;
//-------函数声明-------------
LinkCreate(LinkHead);
voidRelease(LinkHead);
7
LinkAdd(LinkHead);
boolSearch(LinkHead);
LinkSearch_Unique(LinkHead);
voidDisplay_List(LinkHead);
voidDisplay_Node(LinkpNode);
LinkModify(LinkHead);
LinkDel(LinkHead);
voidSave_ByFile(LinkHead,fstream&ofile);
LinkSort(LinkHead);
//-------函数实现------------
LinkCreate(LinkHead)
{//创建一个带头节点的空链表。
Head=(Link)newNode;
if(!
Head)
{
cout<<"分配内存失败!
"< returnNULL; } Head->m_Code=""; Head->m_Name=""; Head->m_Year=0; Head->m_Sex=""; Head->m_Wage=0; Head->Next=NULL; returnHead; } voidRelease(LinkHead) {//释放链表。 Linkptr;//声明一个操作用的指针。 while(Head! =NULL) { ptr=Head; Head=Head->Next; deleteptr;//释放节点资源。 } } LinkAdd(LinkHead) {//前插法添加数据。 LinkpNew;//声明一个新节点。 charagain; stringcode,name,sex,post,department; 8 intyear; intwage; do { pNew=(Link)newNode; //数据域。 cout<<"请输入序号: "; cin>>code; cout< "; cin>>name; cout< "; cin>>year; while(cin.fail()) { cout<<"请输入正确的年份格式。 "< cin.clear(); fflush(stdin); cin>>year; } cout< "; cin>>sex; cout< "; cin>>wage; while(cin.fail()) { cout<<"请输入正确的工资数据。 "< cin.clear(); fflush(stdin); cin>>wage; } cout< pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex; pNew->m_Wage=wage; //指针域。 pNew->Next=Head->Next; Head->Next=pNew; cout<<"数据添加成功! 是否继续添加? (Y/N)"< cin>>again; system("cls"); } 9 while(again=='Y'||again=='y'); returnHead; } boolSearch(LinkHead) {//查询满足“姓名”的个人信息。 Linkptr; stringdepartment; stringname; ptr=Head->Next; cout< "; cin>>name; cout< cout< < < < < cout<<"************************************************"< while(ptr) { if((ptr->m_Name==name)&&(ptr->m_Department==department)) { Display_Node(ptr);//打印满足条件的节点。 returntrue; } ptr=ptr->Next;//查询下一节点。 } cout<<"查无此人! "< returnfalse; } LinkSearch_Unique_Front(LinkHead) {//查询满足“个人代码“的个人信息(个人代码必需唯一)。 Linkptr; stringcode; ptr=Head; cout<<"请输入要查询的代码: "; cin>>code; cout< cout<<"***************************************************"< 10 while(ptr->Next) { if(ptr->Next->m_Code==code) //Display_Node(ptr);//打印满足条件的节点。 returnptr;//注意,是返回的查询到的节点的直接前趋节点。 ptr->Next=ptr->Next->Next;//查询下一节点。 } returnptr; } voidDisplay_List(LinkHead) { Linkptr; ptr=Head->Next; cout<<"**********************所有个人信息**********************"< cout< < < < < cout<<"********************************************************"< while(ptr) { Display_Node(ptr); ptr=ptr->Next; } cout<<"********************************************************"< } voidDisplay_Node(LinkpNode) {//在标准输出设备上输出。 cout< < < < < } LinkModify(LinkHead) 11 {//修改单一个节点。 Linkptr; ptr=Search_Unique_Front(Head); stringcode,name,sex; unsignedshortintyear; unsignedintwage; if(ptr->Next) { cout<<"*****************请修改! ***************************"< //数据域。 cout<<"请输入职工序号: "; cin>>code; cout< "; cin>>name; cout< "; cin>>year; while(cin.fail()) { cout<<"请输入正确的年份格式。 "< cin.clear(); fflush(stdin); cin>>year; } cout< "; cin>>sex; cout< "; cin>>wage; while(cin.fail()) { cout<<"请输入正确的工资数据。 "< cin.clear(); fflush(stdin); cin>>wage; } cout< ptr->Next->m_Code=code;//因ptr是前趋节点,所以要用ptr->Next; ptr->Next->m_Name=name; ptr->Next->m_Year=year; ptr->Next->m_Sex=sex; ptr->Next->m_Wage=wage; cout<<"恭喜你,修改信息成功! "< system("cls"); } 12 else cout<<"没找到此个人记录,无法修改。 "< returnHead; } LinkDel(LinkHead) { Linkptr; Linkptr_front; ptr_front=Search_Unique_Front(Head); ptr=ptr_front->Next; if(ptr) { ptr_front->Next=ptr->Next; deleteptr;//删除此节点。 } cout<<"恭喜你,删除信息成功! 。 "< returnHead; } voidSave_ByFile(LinkHead,fstream&ofile) { LinkpNode; pNode=Head->Next; ofile.clear();//清除文件结束状态。 while(pNode) { ofile< < < < < pNode=pNode->Next; } cout<<"你的数据文件保存成功! "< } intmain() { system("color0b"); 13 cout<<"******************************************************"< cout<<"请登录! "< cout<<"******************************************************"< intq=111,w=111; number: inte; cout<<"请输入账号"< cin>>e; if(q==e) { number1: intr; cout<<"请输入密码"< cin>>r; if(w==r) { LinkHead=0; Head=Create(Head); fstreamiofile; if(! iofile) { cout<<"打开文件失败! "< return-1; } intmenu; system("cls"); while (1) { system("color0b"); cout<<"*************************************************"< cout<<"菜单选顶"< cout<<""< cout<<"1.录入个人信息2.修改"< cout<<"3.删除4.查询"< cout<<"5.保存文件0.退出"< cout<<"**************************************************"< 14 cout< "; cin>>menu; while(cin.fail()) { cout<<"请选择正确的菜单选项。 "< cin.clear(); fflush(stdin); cin>>menu; } switch(menu) { case0: cout<<"************************************"< cout<<"*成功退出系统! *"< cout<<"*谢谢你的使用! *"< cout<<"************************************"< return0; case1: Head=Add(Head); break; case2: Head=Modify(Head); break; case3: Head=Del(Head); break; case4: Search(Head); break; case5: Save_ByFile(Head,iofile); break; default: cout<<"请选择正确的菜单选项! "< } } Release(Head); iofile.close(); return0;} else cout<<"*********************密码错误! 请重新输入*******************"< gotonumber1;} 15 else cout<<"**********************账号错误! 请重新输入*******************"< gotonumber; } 七、心得体会: 通过这次的C++程序设计,让我对书本上的知识有了更深的了解。 而 且对指针有了更好的了解,不过我对文件、链表还是不太懂,有关的代码是向 同学同学请教的。 完成了这个课程设计,让我觉得要学的还很多。 朝前看看, 路还长这着呢! 16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 信息管理 系统 C+
![提示](https://static.bdocx.com/images/bang_tan.gif)