1、南京航空航天大学面向对象程序设计语言课程设计报告学生宿舍管理系统学号:081110329姓名:刘振忠日期:2012-4-15目 录1. 需求分析52. 程序的主要功能53. 程序运行平台54. 系统总框架图55. 程序类的说明65.1 公共类65.2 自己定义的类66. 模块分析66.1 自己编写的模块66.2 和系统中其他模块的关系67. 比较有特色的函数68. 存在的不足与对策、编程体会69. 程序源代码61. 需求分析鉴于现在正处于向信息化发展的社会,而学校对于学生的管理也应该更加方便快捷。所以,我们对于这种情况,才开发了学生宿舍管理系统。因为我们学习了C+,并且C+这种面向对象的设计思
2、想很适合于这种管理系统,所以用C+来执行。2. 程序的主要功能1. 密码功能1) 运行程序时,需要登录密码,并且有输入密码次数的限制2) 在选用管理员登录模式时,需要输入密码3) 可以对密码进行修改和重置2. 不同用户登录功能1) 有两种登录模式,管理员和学生登录模式,管理员登录需要账号密码,学生模式需要学号2) 两种模式的功能不相同,学生模式不可以删改学生的信息3. 访问量功能1) 可以查看总的访问量2) 可以修改和重置访问量4. 留言功能1) 进入学生模式后,可以给楼管进行留言,并且可以查看。2) 进入管理员模式后,可以对学生的留言进行回复。5. 界面的转换1) 可以在学生模式和管理员模式
3、进行互相切换2) 也可以在本界面和上一界面进行切换6. 添加功能1) 添加一个学生的信息,包括姓名,房间号,性别,学号,电话号码,家庭住址,QQ号。7. 删除功能1) 按学号删除2) 按名字删除3) 按出生日期删除4) 按电话号码删除5) 按QQ号吗删除8. 清理全部员工的信息功能1) 够对于全部员工的信息进行删除9. 显示功能1) 显示所有学生的信息,包括姓名,房间号,性别,学号,电话号码,家庭住址,QQ号。10. 查找功能1) 按房间号查找2) 按名字查找3) 按学号查找4) 按出生日期号查找5) 按电话号码查找6) 按QQ号查找11. 修改功能1) 可以对任意学生信息进行修改。12. 排
4、序功能1) 按房间号排序2) 按学号排序3) 并且两种排序方式都可以按照升序或者降序排列13. 宿舍楼介绍功能1) 对宿舍楼的介绍3. 程序运行平台VC+ 6.0具体操作如下主函数密码登陆4. 系统总框架图学生登陆宿舍楼介绍学生信息访问量留言系统介绍身份更改退出系统管理员登陆宿舍楼介绍学生信息学生留言访问量修改密码系统介绍身份更改退出系统查看留言回复留言删除留言返回查看访问量重置访问量登录密码修改管理员密码修改退出此系统系统的介绍管理员登录学生登录管理员登录学生留言访问量修改密码系统介绍身份更改退出系统按房间号排序按学号排序从大到小排序从小到大排序从大到小排序从小到大排序QQ查询姓名查询学号查
5、询生日查询电话查询房号查询姓名查询学号查询生日查询电话查询QQ查询查看所有信息学生信息排序新增学生信息查询学生信息修改学生信息删除学生信息返回退出系统管理员登陆学生信息学生登陆宿舍楼介绍学生信息访问量留言系统介绍身份更改退出系统房号查询姓名查询学号查询生日查询电话查询QQ查询查询单个信息查看所有信息返回查看访问量给楼管留言查看留言回复留言删除留言系统的介绍管理员登录学生登录退出此系统5. 程序类的说明5.1 公共类 class student/学生信息类private: char roomnumber20; char name20; char sex20; char number20; cha
6、r birthday20; char phone20; char adress81; char QQ20; public: void setdata(char a20,char b20,char c20,char d20,char e20,char f20,char g81,char h20)strcpy(roomnumber,a);strcpy(name,b);strcpy(sex,c);strcpy(number,d);strcpy(birthday,e);strcpy(phone,f);strcpy(adress,g);strcpy(QQ,h); char* getroomnumber(
7、)return roomnumber; char* getname()return name; char* getsex()return sex; char* getnumber()return number; char* getbirthday()return birthday; char* getphone()return phone; char* getadress()return adress; char* getQQ()return QQ; void operator =(const student &right);/运算符重载 ;void student:operator =(co
8、nst student &right)/运算符重载函数strcpy(roomnumber,right.roomnumber);strcpy(name,right.name);strcpy(sex,right.sex);strcpy(number,right.number);strcpy(birthday,right.birthday);strcpy(phone,right.phone);strcpy(adress,right.adress);strcpy(QQ,right.QQ);5.2 自己定义的类 /学生登录类#includeusing namespace std;#include#inc
9、ludeclass studentmima/此类用来确定学生登陆时的身份确定,需要输入学号。此 学号必须在一定范围内才能进入。private:char zhang20; char mima20; public: void setdata(char a20,char b20) strcpy(zhang,a);strcpy(mima,b); void panduan() fstream file(studentmima.txt,ios:in); char a20,b20,c20;/d20;if(!file)strcpy(a,123456);strcpy(b,123456);elsefile.get
10、line(a,20,n);file.getline(b,20,n);while(1)coutc;if(strcmp(a,c)0|strcmp(b,c)0)cout登陆失败!请从新输入.endl;else cout登陆成功!;break; ; 6. 模块分析6.1 自己编写的模块1. 学生登录模块 选择进入学生选项后,需要输入学号用来确定是否可以进入,可以预先确定学号的范围,从而控制学生的登录。2. 学生信息的新增模块选择后,就可以添加新的学生信息了。3. 修改密码模块进入此选项后,可以修改系统的登录密码和管理员密码。4. 系统介绍模块 用于介绍系统和南航的寝室6.2 和系统中其他模块的关系1.
11、 学生登录模块 基本上与其他函数独立,仅仅通过创建一个对象,并且调用函数就可以完成对于进入时的学号输入要求。2. 学生信息的新增模块 基本上是独立进行的,符合高内聚,低耦合原则3. 修改密码模块 基本上是独立进行的,符合高内聚,低耦合原则4. 系统介绍模块 基本上是独立进行的,符合高内聚,低耦合原则7. 比较有特色的函数1. void panduan()学生登录时,通过对学号的范围控制,从而影响了登录的学生范围,确保了学生的利益。2. void changemima() 修改管理员登录的密码和帐号3. void changeautokey()修改系统进入的动态密码和问题8. 存在的不足与对策、
12、编程体会编程真的辛苦,麻烦,要小心谨慎。千辛万苦自己终于编出了自己的程序,很高兴,痛并快乐着!9. 程序源代码/学生登录类#includeusing namespace std;#include#includeclass studentmima/此类用来确定学生登陆时的身份确定,需要输入学号。此 学号必须在一定范围内才能进入。private:char zhang20; char mima20; public: void setdata(char a20,char b20) strcpy(zhang,a);strcpy(mima,b); void panduan() fstream file(s
13、tudentmima.txt,ios:in); char a20,b20,c20;/d20;if(!file)strcpy(a,123456);strcpy(b,123456);elsefile.getline(a,20,n);file.getline(b,20,n);while(1)coutc;if(strcmp(a,c)0|strcmp(b,c)0)cout登陆失败!请从新输入.endl;else cout登陆成功!;break; ; /*/学生信息的新增模板void studentadd()/mykey key;key.panduan();cout 欢迎进入学生信息新增系统!endlen
14、dlendl; fstream File(student information.txt,ios:out|ios:app|ios:binary); fstream outfile(student information1.txt,ios:out|ios:app); fstream file(student information.txt,ios:in|ios:binary); student bom; char t;char a20,b20,c20,d20,e20,f20,g81,h20;docout输入新增学生的房间号:; cin.ignore(); cin.getline(a,20); c
15、out输入新增学生的姓名:; cin.getline(b,20);cout输入新增学生的性别:; cin.getline(c,20);cout输入新增学生的学号:; cin.getline(d,20);student s;file.clear();file.seekg(0,ios:beg);while(!file.eof()if(zz=1)file.clear();file.seekg(0,ios:beg);zz=0;file.read(char*)&s,sizeof(s); if(!file)break;char z20; strcpy(z,s.getnumber(); if(!strcmp
16、(z,d)cout已经存在该学号,请从新输入!endl;cin.getline(d,20);zz=1; cout输入新增学生的出生日期:; cin.getline(e,20);/getline读取换行符所以不用cin.ignore(); cout输入新增学生的电话号码:; cin.getline(f,20); cout输入新增学生的地址:; cin.getline(g,81); cout输入新增学生的QQ:; cin.getline(h,20); bom.setdata(a,b,c,d,e,f,g,h); File.write(char*)&bom,sizeof(bom);File.flush
17、();/Fileflush;/刷新输出缓冲区 Mywrite(outfile,bom); cout新增成功!endl; cout是否继续新增学生信息,输入Y继续,否则按enter键结束!; cin.get(t); while(t=Y); File.close();outfile.close();file.close(); select();/*/修改管理登陆账户void changemima() mykey key;key.panduan();/mykey key;char a20,b20;cout 欢迎进入管理密码修改界面!endlendlendlendlendl;couta;coutb;f
18、stream ouput(mima.txt,ios:out);ouputaendl;ouputb;key.setdata(a,b);ouput.close();returnmenu();/*/修改系统登录账户void changeautokey() mykey key;key.panduan(); int i=1; coutendl; cout 欢迎进入动态密码修改界面endlendlendl; cout 动态账号密码即将重置!endl; char a81;char b81; while(1) cout输入你的问题:endl;cin.ignore();cin.getline(a,81,n);
19、cout输入你的答案:endl;cin.getline(b,81,n); if(i=1)fstream File(automima.txt,ios:out);Fileaendl;Filebflush;i+; else fstream file(automima.txt,ios:out|ios:app);fileendlaendl;filebflush;i+; cout动态号设置成功,输入Y字母键继续添加动态号,其他键返回系统endl; char ch; cin.get(ch);if(ch=Y);else returnmenu();exit (0);/*/相关资料介绍void classintr
20、oduction()/用于完成寝室简介fstream input(introduction.txt,ios:in);char a;if(!input)cout打开文件失败a;if(a=NUL)cout无相关信息;system(pause);if(nn=1)menu1();else menu2();exit(0);elsewhile(!input.eof()input.get(a); couta;input.close();returnmenu();void acroing()/用于完成系统的相关信息的介绍fstream input(systemintroduction.txt,ios:in);
21、char a;if(!input)cout打开文件失败endl;system(pause);system(cls);if(nn=1)menu1();else menu2();exit(0);elsewhile(!input.eof()input.get(a);couta;input.close();returnmenu(); /*以上均为本人代码/*以下为整个系统代码#include using namespace std;#include#include#include#includeautokey1.h#includemykey.h#includestudentmima.h#include
22、student.hint mm=0;int nn=0,zz=0;void classintroduction();void acroing();void studentinformation1();void studentinformation2();void studentlook();void studentadd();void studentchange();void studentsearchq();void studentsearch(int q);void studentdeleteq();void studentdelete(int q);void changemima();vo
23、id returnmenu();void menu();void menu1();void menu2();void select();void fangwensearch();void fangwengl1();void fangwengl2();void Mywrite(fstream& outfile,student& stu);void changeautokey();void changemimaq();void studentpaixuq();void studentpaixuq(int q);void liuyan();void liuyanlook();void student
24、paixuh(int q);void liuyanlook1();void liuyan1();void studentdeletequanbu();/函数原型的声明void main()/主函数 autokey obj;obj.panduan1();menu();/-选择身份登录void menu()/身份登录/system(COLOR 1A);/背景颜色 mykey key; coutendlendl;cout*欢迎进入慧园四栋学生信息管理系统*endl endlendlendlendl; cout -endl; cout 1.管理员登陆 endl; cout -endl; cout 2.
25、学生登陆 endl; cout -endl; coutendlendlendlch;studentmima s; while(ch!=1&ch!=2)coutch; switch(ch) case 1:nn=1;key.panduan();/fangwensearch(); coutendl 欢迎您登陆学生信息管理系统!endlendlendl;menu1();exit(0);break; case 2:nn=2;s.panduan();system(cls);fangwensearch();cout欢迎您登陆学生信息查询系统!endl;menu2();exit(0);break; /-主菜单
26、功能void menu1()/主菜单1/system(COLOR 5f); bool loop=true;/定义布尔类型常量while(loop)cout*欢迎进入慧园四栋学生信息管理系统*endl; cout - endl; cout |* * * * * * * * * * * * * * * * *|endl; cout |* 1.慧园四栋简介 *|endl; cout |*-*|endl; cout |* 2.学生信息 *|endl; cout |*-*|endl; cout |* 3.学生留言 *|endl; cout |*-*|endl; cout |* 4.访问量 *|endl;
27、 cout |*-*|endl; cout |* 5.修改账户 *|endl; cout |*-*|endl; cout |* 6.关于本系统 *|endl; cout |*-*|endl; cout |* 7.更改登录身份 *|endl; cout |*-*|endl; cout |* 8.退出系统 *|endl; cout |* * * * * * * * * * * * * * * * *|endl; cout - endl; coutch; while(ch!=1&ch!=2&ch!=3&ch!=4&ch!=5&ch!=6&ch!=7&ch!=8) coutch; system(cls
28、); switch(ch) case 1:classintroduction();break; case 2:if(nn=1)studentinformation1();else studentinformation2();break; case 3:liuyanlook();break; case 4:if(nn=1)fangwengl1();else fangwengl2();break; case 5:changemimaq();break; case 6:acroing();break; case 7:menu();break; case 8:coutendlendlendlendl
29、谢谢您的使用,再见!endl;loop=false;exit (0); void menu2()/主菜单2/system(COLOR 5f); bool loop=true;while(loop)cout*欢迎进入慧园四栋学生信息管理系统*endl; cout - endl; cout |* * * * * * * * * * * * * * * * *|endl; cout |* 1.慧园四栋简介 *|endl; cout |*-*|endl; cout |* 2.学生信息 *|endl; cout |*-*|endl; cout |* 3.访问量 *|endl; cout |*-*|endl; cout |* 4.留言 *|endl; cout |*-*|endl; cout |* 5.关于本系统 *|endl; cout |*-*|endl; cout |* 6.更改登录身份 *|endl; cout |*-*|endl; cout |* 7.退出系统 *|endl; cout |* * * * * * * * * * * * * * * * *|endl; cout - endl; coutch; while(ch!=1&ch!=2&ch!=3&ch!=4&ch!=5&ch!=6&ch!=7) coutch; system(cls); switch(ch) cas
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922