




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、需求分析.2二、概要设计.2三、详细设计.6四、调试分析.11五、用户手册.11六、测试数据.13七、附录.161、332、 需求分析1、本程序采用的是多文件的工程结构。2、用C+中类来完成学生档案管理系统,管理员通过学生档案创建、修改、删除、查询、排序等操作来管理学生档案。3、通过管理员类来调用学生类中的成员函数和班级类中的成员函数,来达到档案的管理。4、管理员从屏幕输入学生的数据,完成输入功能。5、程序完成后会将信息保存在文本里,通过在文本中查找,来实现查询、删除、修改信息的功能,若在文本中找不到符合的信息,将会显示“系统中没有该信息”反馈给管理员。6、程序执行命令: 1、管理员登入 2、管理员做出选择 3、显示所需要的信息7、 程序所能实现的功能 1、管理员的注册与登入。 2、班级信息的增加、查询与删除。 3、学生信息的增加、查询、修改、删除与统计。二、概要设计1、管理员类class cmanagerprivate:Class c;studentl s;char zhanghao30;/帐号char mima30; /密码char name30; /管理员姓名public:void zhuce(); /注册int dengru(); /登入void newclass(); /新建班级void shanchubj(); /删除班级void chaxun(); ./查询void newstudent(); /新建学生档案void chaxunxs(); /查询学生档案void xiugail(); /修改学生档案void shanchul(); /删除学生档案void tongjil(); /统计学生档案;void cmanager:newclass()c.newclassl();void cmanager:chaxun()c.chaxunl();void cmanager:shanchubj()c.shanchu();void cmanager:newstudent()s.newcstudent();void cmanager:chaxunxs()s.chaxun();void cmanager:xiugail()s.xiugai();void cmanager:shanchul()s.shanchu();void cmanager:tongjil()s.tongji();void cmanager:zhuce()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char c;ofstream fout(test1,ios:app);if(!fout)coutCannont open output file.n;coutad.zh;coutad.mm;coutad.nam;fout.write(const char*)&ad,sizeof(adminl);fout.close();cout注册完毕!按任意键返回主菜单.endl;c=getch();system(cls);int cmanager:dengru()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char zhanghao130;char mima130;coutzhanghao1;coutmima1;ifstream fin1(test1,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&ad,sizeof(struct adminl);if(strcmp(ad.zh,zhanghao1)=0&strcmp(ad.mm,mima1)=0)return 1;return 0;2、 班级类class Classprivate:char bjbhl30;char bjlb30;int bjrs;public:void newclassl();void chaxunl();void shanchu();3、 学生类class studentlprivate:Class c;char xh30;char sfz30;char name30;char xb30;char jg30;char bjbh30;char zt30;public:void newcstudent();void chaxun();void shanchu();void xiugai();void tongji();4、 本程序结构主函数void main()初始化;do 接受命令; 处理命令; while(退出命令)管理员类班级类学生类5、各模块之间的调用关系如下: 主程序模块班级类学生类3、 详细设计1、 主函数void main()for(; ;)switch(menu()case 1:dengrul();break;case 2:zhucel();break;case 3:coutt欢迎下次使用,再见!n;return;2、 基本操作void cmanager:zhuce() /管理员注册system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char c;ofstream fout(test1,ios:app);if(!fout)coutCannont open output file.n;coutad.zh;coutad.mm;coutad.nam;fout.write(const char*)&ad,sizeof(adminl);fout.close();cout注册完毕!按任意键返回主菜单.endl;c=getch();system(cls);int cmanager:dengru() /管理员登入system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char zhanghao130;char mima130;coutzhanghao1;coutmima1;ifstream fin1(test1,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&ad,sizeof(struct adminl);if(strcmp(ad.zh,zhanghao1)=0&strcmp(ad.mm,mima1)=0)return 1;return 0;void bjgl() /管理登入后cmanager admin;for(; ;)switch(menu2()case 1:admin.newclass();break;case 2:admin.chaxun();break;case 3:admin.shanchubj();break;case 4:admin.newstudent();break;case 5:admin.chaxunxs();break;case 6:admin.xiugail();break;case 7:admin.shanchul();break;case 8:admin.tongjil();break;case 0 :return;#include管理员.hvoid cmanager:newclass()c.newclassl();void cmanager:chaxun()c.chaxunl();void cmanager:shanchubj()c.shanchu();void cmanager:newstudent()s.newcstudent();void cmanager:chaxunxs()s.chaxun();void cmanager:xiugail()s.xiugai();void cmanager:shanchul()s.shanchu();void cmanager:tongjil()s.tongji();void cmanager:zhuce()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char c;ofstream fout(test1,ios:app);if(!fout)coutCannont open output file.n;coutad.zh;coutad.mm;coutad.nam;fout.write(const char*)&ad,sizeof(adminl);fout.close();cout注册完毕!按任意键返回主菜单.endl;c=getch();system(cls);int cmanager:dengru()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char zhanghao130;char mima130;coutzhanghao1;coutmima1;ifstream fin1(test1,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&ad,sizeof(struct adminl);if(strcmp(ad.zh,zhanghao1)=0&strcmp(ad.mm,mima1)=0)return 1;return 0;3、 函数的调用关系反映了本演示程序的层次结构 main ZhucedengruNewclass shanchubj chaxun newstudent chaxunxs xiugai shanchu tongji4、 调试分析 1、在对班级学生信息删除时要做到班级人数进行修改。 2、写程序时不应该把所有功能全部实现后再来调试而是实现一个功能调试一个功能。 3、使用多文件结构时应注意类是否多次被调用了。 4、在对变量命名时注意不能重复。 5、要注意在使用输入输出流的时候是否错误使用了标示符“”“” 6、在存储数据时要注意数据的存储的长度。 五、用户手册 本程序的运行环境为DOS操作系统,执行文件为班级学生信息管理.exe; 进入演示程序后,即显示对话形式的提示操作过程如:登入输入帐号输入密码登入成功按任意键进入系统 *欢迎使用学生信息管理系统* 主菜单 1. 系统登入 2. 帐号注册 3. 退出系统 请输入您的选择(1-3): *欢迎使用学生信息管理系统* 1.创建新的班级 2.查询班级信息 3.删除班级信息 4.添加学生信息 5.查询学生信息 6.修改学生信息 7.删除学生信息 8.统计学生信息 0.退出帐号 请输入您的选择(0-8):3、选择相应的操作即可输出相应的结果6、 测试数据7、 附录#include菜单函数.hvoid main()for(; ;)switch(menu()case 1:dengrul();break;case 2:zhucel();break;case 3:coutt欢迎下次使用,再见!n;return;菜单#include菜单函数.hint menu()system(cls);int select;coutt*欢迎使用学生信息管理系统*nnn;coutt 主菜单n; coutt1. 系统登入n;coutt2. 帐号注册n;coutt3. 退出系统n;coutselect;if(select3)coutn输入错误,重选(1-3):;elsebreak;return select;int menu2()system(cls);int select;coutt*欢迎使用学生信息管理系统*nnn;coutt1.创建新的班级n;coutt2.查询班级信息n;coutt3.删除班级信息n;coutt4.添加学生信息n;coutt5.查询学生信息n;coutt6.修改学生信息n;coutt7.删除学生信息n;coutt8.统计学生信息n;coutt0.退出帐号n;coutselect;if(select8)coutn输入错误,重选(0-8):;elsebreak;return select;void dengrul()cmanager b;int i;if(b.dengru()=1)cout恭喜你成功登入,按任意键进入系统endl;i=getch();bjgl();elsecout你输入的密码有误,按任意键返回。endl;i=getch();int menu();int menu2();void dengrul();void zhucel();void bjgl();void zhucel()cmanager a;a.zhuce();void bjgl()cmanager admin;for(; ;)switch(menu2()case 1:admin.newclass();break;case 2:admin.chaxun();break;case 3:admin.shanchubj();break;case 4:admin.newstudent();break;case 5:admin.chaxunxs();break;case 6:admin.xiugail();break;case 7:admin.shanchul();break;case 8:admin.tongjil();break;case 0 :return;管理员类#include iostream.h#include fstream.h#include string.h#include stdlib.h#includeconio.h#include学生信息.hclass cmanagerprivate:Class c;studentl s;char zhanghao30;char mima30;char name30;public:void zhuce();int dengru();void newclass();void shanchubj();void chaxun();void newstudent();void chaxunxs();void xiugail();void shanchul();void tongjil();#include管理员.hvoid cmanager:newclass()c.newclassl();void cmanager:chaxun()c.chaxunl();void cmanager:shanchubj()c.shanchu();void cmanager:newstudent()s.newcstudent();void cmanager:chaxunxs()s.chaxun();void cmanager:xiugail()s.xiugai();void cmanager:shanchul()s.shanchu();void cmanager:tongjil()s.tongji();void cmanager:zhuce()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char c;ofstream fout(test1,ios:app);if(!fout)coutCannont open output file.n;coutad.zh;coutad.mm;coutad.nam;fout.write(const char*)&ad,sizeof(adminl);fout.close();cout注册完毕!按任意键返回主菜单.endl;c=getch();system(cls);int cmanager:dengru()system(cls);struct adminlchar zh30;char mm30;char nam30;adminl ad;char zhanghao130;char mima130;coutzhanghao1;coutmima1;ifstream fin1(test1,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&ad,sizeof(struct adminl);if(strcmp(ad.zh,zhanghao1)=0&strcmp(ad.mm,mima1)=0)return 1;return 0;班级类#include iostream.h#include fstream.h#include string.h#include stdlib.h#includeconio.hclass Classprivate:char bjbhl30;char bjlb30;int bjrs;public:void newclassl();void chaxunl();void shanchu();/#include班级信息.h#include菜单函数.hvoid Class:newclassl()system(cls);struct Classlchar bjbhl30;char bjlb30;int bjrs;Classl cl;char c;doofstream fout(test2,ios:app);if(!fout)coutCannont open output file.n;coutcl.bjbhl;coutcl.bjlb;cl.bjrs=0;fout.write(const char*)&cl,sizeof(Classl);fout.close(); cout需要继续创建吗(y/n):c;if(c!=y&c!=n) cout指令错误,请重新输入!(y/n):endl;while(c!=y&c!=n);if(c=n)fout.close();cout创建完毕!返回主菜单.endl; system(cls);break;while(c=y);void Class:chaxunl()system(cls);struct Classlchar bjbhl30;char bjlb30;int bjrs;Classl cl;int flag=1;char bjbhl130;char c;coutbjbhl1;ifstream fin1(test2,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&cl,sizeof(struct Classl);if(strcmp(bjbhl1,cl.bjbhl)=0)if(!fin1.eof()cout您要查询的班级信息如下:endlendl;cout班级编号: cl.bjbhlendl班级类别: cl.bjlbendl班级人数: cl.bjrsendl;flag=0;if(flag=1)coutendlendl系统中没有该班级信息endlendl;cout按任意键返回endl;c=getch();elsecout按任意键返回endl;c=getch();void Class:shanchu()system(cls);struct Classlchar bjbhl30;char bjlb30;int bjrs;Classl cl;char bjbh30;char c;int flag=1;int flagl=1;cout输入你要删除的班级编号bjbh;fstream fin4(test2,ios:out|ios:in|ios:binary);if(fin4.eof()fin4.clear();fin4.seekg(0,ios:beg);while(!fin4.eof()fin4.read(unsigned char*)&cl,sizeof(struct Classl);if(strcmp(bjbh,cl.bjbhl)=0)flag=0;if(cl.bjrs=0)fin4.seekp(-1*sizeof(struct Classl),ios:cur);memset(&cl,0,sizeof(struct Classl);fin4.write(unsigned char*)&cl,sizeof(struct Classl);flagl=0;if(flag=1)cout系统中没有该信息,按任意键返回主菜单.endl;c=getch();if(flag=0&flagl=1)cout该班级人数不为零.不能删除.按任意键返回endl;c=getch();if(flag=0&flagl=0)cout删除成功.按任意键返回主菜单endl;c=getch();学生类#include iostream.h#include fstream.h#include string.h#include stdlib.h#include班级信息.h#includeconio.hclass studentlprivate:Class c;char xh30;char sfz30;char name30;char xb30;char jg30;char bjbh30;char zt30;public:void newcstudent();void chaxun();void shanchu();void xiugai();void tongji();#include学生信息.hvoid studentl:newcstudent()struct Cstudentchar xh130; char sfz130;char name130;char xb130;char jg130;char bjbh130;char zt130;struct Classlchar bjbhl30;char bjlb30;int bjrs;Classl cl;Cstudent stu;system(cls);int flag=1;char c;dosystem(cls); ofstream fout(test3,ios:app); if(!fout)coutCannont open output file.n;coutxh; coutsfz; coutname; coutxb; coutjg; coutbjbh;coutzt;strcpy(stu.xh1,xh);strcpy(stu.sfz1,sfz); strcpy(1,name);strcpy(stu.xb1,xb);strcpy(stu.jg1,jg);strcpy(stu.bjbh1,bjbh);strcpy(stu.zt1,zt);fstream fin1(test2,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&cl,sizeof(struct Classl);if(strcmp(bjbh,cl.bjbhl)=0)if(!fin1.eof()fout.write(const char*)&stu,sizeof(Cstudent);cl.bjrs=cl.bjrs+1;fin1.seekp(-1*sizeof(struct Classl),ios:cur);fin1.write(const char*)&cl,sizeof(Classl);flag=0;break;if(flag=1)cout系统中没有此班级不能建立,按任意键返回主菜单endl;c=getch();break; fout.close(); cout创建完毕.需要继续新建吗(y/n):c;if(c!=y&c!=n) cout指令错误,请重新输入!(y/n):endl;while(c!=y&c!=n);if(c=n)fout.close();cout录入完毕!返回主菜单.endl; system(cls);break;while(c=y);void studentl:chaxun()struct Cstudentchar xh230; char sfz230;char name230;char xb230;char jg230;char bjbh230;char zt230;Cstudent stu;int flag=1;char c;char sfz130;dosystem(cls);cout输入要查询学生的身份证号sfz1;ifstream fin1(test3,ios:out|ios:in|ios:binary);if(fin1.eof()fin1.clear();fin1.seekg(0,ios:beg);while(!fin1.eof()fin1.read(unsigned char*)&stu,sizeof(struct Cstudent);if(strcmp(sfz1,stu.sfz2)=0)if(!fin1.eof()cout您要查询的信息如下:endlendl;cout学号: stu.xh2endl身份证号: stu.sfz2endl姓名: 2endl性别: stu.xb2endl籍贯: stu.jg2endl班级编号: stu.bjbh2endl学生当前状态: stu.zt2endl;flag=0;if(flag=1)cout系统中没有该信息endl;cout您想继续查询吗?(y/n):c;if(c!=y&c!=n)cout指令错误!请重新输入(y/n):;while(c!=y&c!=n);if(c=n) cout查询完毕,返回主菜单endl;system(cls);break;while(c=y);void studentl:xiugai()system(cls);int flag=1;int flagl=1;char c;char sfzh330;struct Cstudentchar xh430; char sfz430;char name430;char xb430;char jg430;char bjbh430;char zt430;struct Classlchar bjbhl30;char bjlb30;int bjrs;Classl cl;Cstudent stu;char xhl15;char sfzl30;char namel10;char xbl10;char jgl12;char bjbhl6;char ztl10;cout请输入要修改学生的身份证号:sfzh3;fstream fin3(test3,ios:out|ios:in|ios:binary);if(fin3.eof()fin3.clear();fin3.seekg(0,ios:beg);while(!fin3.eof()fin3.read(unsigned char*)&stu,sizeof(struct Cstudent);if(strcmp(sfzh3,stu.sfz4)=0)flag=0;cout输入修改后的班级班级编号bjbhl;fstr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂安全培训知识清单课件
- 2025年甘肃省平凉市华亭市第三批城镇公益性岗位工作人员招聘21人备考考试题库附答案解析
- 2026中国航天科工三院八三五九所校园招聘备考考试题库附答案解析
- 2025年驻马店泌阳县第一医疗健康服务集团公开招聘54人考试参考试题及答案解析
- 2025吉林长白朝鲜族自治县消防救援大队政府专职消防员招聘10人备考考试题库附答案解析
- 2025广西南宁市银岭小学秋季学期临聘教师招聘备考考试题库附答案解析
- 2025山西晋城市高平市人力资源和社会保障局人才储备岗位选拔100人备考考试题库附答案解析
- 2025年河北邢台市中心血站公开招聘编外工作人员18名备考考试题库附答案解析
- 2025内蒙古阿拉善盟阿拉善左旗招聘公办幼儿园控制数紧缺教师15人考试参考试题及答案解析
- 呼吸道感染预防措施
- 《烘焙技巧甜点制作》课件
- SJG 49-2019 深圳市公安交警基层业务用房及配套设施建设标准
- 2025年中心卫生院基本公共卫生服务项目宣传月活动总结(三篇)
- 战略成本管理会计理论与实务第2章企业战略目标的确定-基于企业战略的全面预算管理
- 《黄帝内经之养生》课件
- 增值税基本知识培训课件
- 天健xbase现金流量表模板
- 《幼儿园保育教育质量评估指南》知识专题培训
- 艾青诗选向太阳课件
- 第9课《创新增才干》第1框《创新是引领发展的第一动力》【中职专用】中职思想政治《哲学与人生》(高教版2023基础模块)
- 工业机器人离线编程与应用-认识FANUC工业机器人
评论
0/150
提交评论