c实验档案管理系统的设计与实现设计报告毕业论文.docx
- 文档编号:26404557
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:38
- 大小:499.01KB
c实验档案管理系统的设计与实现设计报告毕业论文.docx
《c实验档案管理系统的设计与实现设计报告毕业论文.docx》由会员分享,可在线阅读,更多相关《c实验档案管理系统的设计与实现设计报告毕业论文.docx(38页珍藏版)》请在冰豆网上搜索。
c实验档案管理系统的设计与实现设计报告毕业论文
学校代码:
学号:
HefeiUniversity
课程项目设计报告
BACHELORDISSERTATION
报告题目:
档案管理系统的设计与实现
年级专业(班级):
14电子信息工程2班
导师姓名:
李祎
完成时间:
2015/6/18
档案管理系统界面如下,当选择一个功能号时可以执行相应的功能。
其中数据录入模块功能是录入人员工号、单位、姓名和部门编号;数据显示模块功能是显示当前所有的人员工号、单位、姓名和部门编号;数据排序功能是将当前所有的人员按工号、姓名、单位和部门编号排序,再进行信息保存和调入。
欢迎进入档案管理系统
1.基本信息录入2.基本信息显示
3.基本信息查询4.基本信息排序
5.基本信息保存6.基本信息调入
7.退出系统
请选择功能号(1,2,3,4,5,6,7)
功能介绍:
信息录入功能:
输入人员的基本信息,例如工号、姓名、年龄等;
信息显示功能:
显示所输入的人员档案的信息;
信息查询功能:
通过输入人员的工号来快速查询所需要知道的人员的档案信息。
信息排序功能:
将所输入的人员信息按照工号从小到大的顺序进行排序;
信息保存功能:
将所输入的人员信息数据以TXT文本的形式保存;
信息调入功能:
将保存的数据重新调入系统中;
*主界面
欢迎使用档案管理系统
1数据输入2数据显示
3数据排序4数据保存
5数据调入6数据查询
7退出系统
请选择功能(1,2,3,4,5,6,7,8):
*输入界面
请输入数据(工号/姓名/单位/部门编号)
*显示界面
序号工号姓名单位部门编号
11101chenchenhfuu124
1.InfoManagerMain.cpp
主模块main
①模块功能:
选择一个功能菜单,执行相应的功能菜单。
②输入输出:
在系统内部没有输入输出。
形式:
intmain()
归属:
InfoManagerMain
③解决思路:
通过应用switch语句,分别将各个功能菜单连接起来。
再通过do循环语句,使程序可以反复进行。
④算法提纲:
⑤模块代码:
#include
#include
#include"Menu.h"
#include
#defineN100
#include"InfoManager.h"
#include"Info.h"
intmain()
{
InfoinfoAll[100];
intnum=0;
while
(1)
{
switch(choiceMenu())
{
case1:
inputInfo(infoAll,100,&num);
cout< break; case2: displayInfo(infoAll,1000,num); cout< break; case3: searchInfo(infoAll,100,num); cout< break; case4: sortInfo(infoAll,100,num); cout< break; case5: saveInfo(infoAll,100,num); cout< break; case6: loadInfo(infoAll,100,&num); cout< break; case7: exit(0); default: cout<<"提示出错"< } } return0; } 2.Menu.cpp ①模块功能: 显示程序界面。 ②输入输出 形式: intchoiceMenu(void) 归属: Menu ③解决思路: ④算法提纲: ⑤模块代码 #include #include intchoiceMenu(void) { intchoice; cout<<"***************************************************"< cout<<"欢迎进入档案管理系统*"< cout<<"1基本信息录入2基本信息显示*"< cout<<"3基本信息查询4基本信息排序*"< cout<<"5基本信息保存6基本信息调入*"< cout<<"7退出系统*"< cout<<"请选择功能号(1,2,3,4,5,6,7): *"< cout<<"*****************************************************"< scanf("%d",&choice); returnchoice; } 3.InfoManager.cpp inputInfo ①模块功能: 进行数据录入 ②输入输出: 形式: voidinputInfo(Info*pInfoAll,intn,int*pNum) 归属: InfoManager ③解决思路: 若实际输入人数等于n,停止输入,否则继续输入人数。 ④算法步骤: 第一步,判断人数是否等于n,选择Y或者N。 第二步,选择Y继续输入工号、姓名、单位和部门编号,选择N停止输入。 ⑤模块代码: voidinputInfo(Info*pInfoAll,intn,int*pNum) { if(*pNum==n) { cout<<"对不起,人数已满"; } else { cout<<"要输入数据吗(y/n)"; charchoice; cin>>choice; while(choice=='y') { cout<<"请输入数据工号/姓名/单位/单位和部门编号): "; cin>>pInfoAll[*pNum].fNo>>pInfoAll[*pNum].fName>>pInfoAll[*pNum].fUnit>>pInfoAll[*pNum].fUaDeNum; *pNum=*pNum+1; cout<<"要输入数据吗? (y/n)"; cin>>choice; } } } displayInfo ①模块功能: 对输入数据进行显示。 ②输入输出: 形式: voiddisplayInfo(Info*pInfoAll,intn,intnum); 归属: InfoManager ③解决思路: 先显示工号、姓名、单位和部门编号。 通过循环语句,对输入的所有工号、姓名、单位和部门编号进行输出。 ④算法步骤: 第一步: 定义变量i,若i小于真实人数,输入第一个工号、姓名、单位和部门编号。 第二步: 令i递增,根据循环语句,对输入数据进行显示。 ⑤模块代码: voiddisplayInfo(Info*pInfoAll,intn,intnum) { cout<<"\t"<<"您要查询的资料显示结果如下: "< cout<<"\t"<<"****************************************"< cout<<"\t"<<"工号\t"<<"姓名\t"<<"单位\t"<<"单位和部门编号\t"< for(inti=0;i<=num-1;i++) { cout<<"\t"< } cout<<"\t"<<"****************************************"< cout<<"\t"<<"您要查询的资料显示结束: "< } searchInfo ①模块功能: 对输入数据进行查询。 ②输入输出: 形式: voidsearchInfo(Info*pInfoAll,intn,intnum) 归属: InfoManager ③解决思路: 根据选择进行相应的工号、姓名、单位和部门编号查询。 ④算法步骤: 第一步: 进行选择 第二步: 根据选择可以进行工号或姓名或单位或部门编号查询。 ⑤模块代码: voidsearchInfo(Info*pInfoAll,intn,intnum) { inti; intchoice; cout<<"************************************************************"< cout<<"**1按工号查询2按姓名查询**"< cout<<"**3按单位查询4按单位+部门编号查询**"< cout<<"**5退出系统**"< cout<<"**请选择操作(1,2,3,4,5): **"< cout<<"***********************************************************"< cout<<"请输入选项: "< cin>>choice; switch(choice) { case1: { intno; cout<<"请输入工号: "; cin>>no; for(i=0;i { if(pInfoAll[i].fNo==no) { cout<<"\t"<<"工号是"< <<"\t"<<"单位是"< break; } else cout<<"您要找的人不存在"< } } break; case2: { charname[1000]; cout<<"请输入姓名: "; cin>>name[1000]; for(i=0;i { if(*pInfoAll[i].fName==(name[1000])) { cout<<"\t"<<"工号是"< break; } else cout<<"您要找的人不存在"< } } break; case3: { charunit[1000]; cout<<"请输入单位: "; cin>>unit[1000]; for(i=0;i { if(*pInfoAll[i].fUnit==(unit[1000])) { cout<<"\t"<<"工号是"< break; } else cout<<"您要找的人不存在"< } } break; case4: exit(0); default: cout<<"提示出错"< } } sortInfo ①模块功能: 对输入数据进行排序。 ②输入输出: 形式: voidsortInfo(Info*pInfoAll,intn,intnum) 归属: InfoManager ③解决思路: 根据选择进行相应的工号、姓名、单位和部门编号排序。 。 ④算法步骤: 第一步: 进行选择 第二步: 根据选择可以进行工号或姓名或单位或部门编号排序。 。 ⑤模块代码: voidsortInfo(Info*pInfoAll,intn,intnum) { intchoice; cout<<"*************************************************************"< cout<<"**1按工号排序2按姓名排序**"< cout<<"**3按单位排序4按单位+部门编号排序**"< cout<<"**5退出系统**"< cout<<"**请选择操作(1,2,3,4,5): **"< cout<<"*************************************************************"< cout<<"请输入选项: "< cin>>choice; switch(choice) { case1: { for(inti=0;i<=num-2;i++) { for(intj=i+1;j<=num-1;j++) { if(strcmp(pInfoAll[i].fName,pInfoAll[j].fName)>0) { Infot; t=pInfoAll[i];pInfoAll[i]=pInfoAll[j];pInfoAll[j]=t; } } } } break; case2: { for(inti=0;i<=num-2;i++) { for(intj=i+1;j<=num-1;j++) { if(pInfoAll[i].fNo>pInfoAll[j].fNo) { Infot; t=pInfoAll[i];pInfoAll[i]=pInfoAll[j];pInfoAll[j]=t; } } } } break; case3: { for(inti=0;i<=num-2;i++) { for(intj=i+1;j<=num-1;j++) { if(strcmp(pInfoAll[i].fUnit,pInfoAll[j].fUnit)>0) { Infot; t=pInfoAll[i];pInfoAll[i]=pInfoAll[j];pInfoAll[j]=t; } } } } break; case4: { for(inti=0;i<=num-2;i++) { for(intj=i+1;j<=num-1;j++) { if(pInfoAll[i].fUaDeNum>pInfoAll[j].fUaDeNum) { Infot; t=pInfoAll[i];pInfoAll[i]=pInfoAll[j];pInfoAll[j]=t; } } } } break; case5: exit(0); default: cout<<"提示出错"< } } saveInfo ①模块功能: 对输入的数据进行保存。 ②输入输出: 形式: voidsaveInfo(Info*pInfoAll,intn,intnum) 归属: InfoManager ③解决思路: 对输入的数据进行保存。 ④算法步骤: 第一步: 定义一个Info.txt文件。 第二步: 分别读入第i个人的工号、姓名、单位和部门编号排序; 第三步: 利用循环语句,将第i个数据后的所有数据都读入Info.txt文件中。 ⑤模块代码: voidsaveInfo(Info*pInfoAll,intn,intnum) { FILE*pF; pF=fopen("Info.txt","w"); for(inti=0;i { fprintf(pF,"%d%s%s%d\n",pInfoAll[i].fNo,pInfoAll[i].fName,pInfoAll[i].fUnit,pInfoAll[i].fUaDeNum); } fclose(pF); } loadInfo ①模块功能: 将保存的数据重新调入系统中。 ②输入输出: 形式: voidloadInfo(Info*pInfoAll,intn,int*pNum) 归属: InfoManager ③解决思路: 将Info.txt中的数据调入到系统中。 ④算法步骤: 第一步: 打开Info.txt文件,进行读取数据。 第二步: 当第i个数据有四个变量时,i自增; 第三步: 利用循环语句,当第i个数据有四个变量时,将第i个数据后的所有数据都读取出来; 第四步: 关闭Info.txt文件。 ⑤模块代码: voidloadInfo(Info*pInfoAll,intn,int*pNum) { inti=0; FILE*pF=fopen("Info.txt","r"); while(fscanf(pF,"%d%s%s%d\n",&pInfoAll[i].fNo,pInfoAll[i].fName,pInfoAll[i].fUnit,&pInfoAll[i].fUaDeNum)==4) { i++; } *pNum=i; fclose(pF); } 4.Menu.h #ifndefMenu_h #defineMenu_h intchoiceMenu(void); #endif 5.InfoManager.h #ifndefInfoManager_h #defineInfoManager_h #include"Info.h" voidinputInfo(Info*pInfoAll,intn,int*pNum); voiddisplayInfo(Info*pInfoAll,intn,intnum); voidsearchInfo(Info*pInfoAll,intn,intnum); voidsortInfo(Info*pInfoAll,intn,intnum); voidsaveInfo(Info*pInfoAll,intn,intnum); voidloadInfo(Info*pInfoAll,intn,int*pNum); #endif; 6.Info.h structInfo { intfNo; charfName[100]; charfUnit[100]; intfDeNum; }; #endif; 问题编号 出错信息 改正办法 1 c: \documentsandsettings\administrator\桌面\infomanagerproj\infomanager.cpp(9): errorC2100: illegalindirection 在num前面加*号 2 c: \documentsandsettings\administrator\桌面\infomanagerproj\infomanager.cpp(161): errorC2065: 'strcmp': undeclaredidentifier 在intmain之前加#include 3 errorC2040: '==': 'int*'differsinlevelsofindirectionfrom'constint' Errorexecutingcl.exe. 将括号移到“==“之前 项目总结 本次实验经过我们组成员的辛苦努力下,终于编写出了程序代码并写出了实验报告。 回想整个过程,我们先对档案管理系统做了一定的分析,然后进一步进行小组讨论,并明确自己的分工,在编写代码的时候,我们也有争论也有疑惑,但最终我们都克服了困难完成了任务,当我们看到从一开始的二十几个错误变为后来的一两个错误到最后完全没有错误了时,内心有了一种说不出的喜悦与激动。 总之,通过本次实验,我们了解到了我们需要掌握的知识,比如说文件操作、指针的使用、数组的运用、循环的使用等重要的知识都需要用入其中,并灵活运用,还要有一定的团队合作意识才能编出这个程序。 在遇到问题时应沉着思考,积极讨论,这样才能尽早地完成任务。 课程学习心得 焦姣心得: 在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。 在为期一周的时间中,我的感受是: C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。 好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。 在这里,我作为其中的参与者,感触良多。 在这次实训中,我对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。 通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。 这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。 实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,这种教学让我们自己学会了自学,学会了去看懂别人的代码。 通过这次实训,也使我们发现了许多问题。 在实训中,我们认识到自己还有很多的知识没学好,基础知识没
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验档案管理系统的设计与实现设计报告毕业论文 实验 档案管理系统 设计 实现 报告 毕业论文