0西安交通大学城市学院《面向对象程序设计及C++》课程设计报告题目:学生信息管理系统C++版学号:姓名:班级:计算机001专业:计算机科学与技术导师:庞志成地址:西安交通大学城市学院开始日期:2011年11月08日完成日期:2011年11月26日1总目录1序言……………………………………………………………12项目简介………………………………………………………12.1系统标识…………………………………………………12.2系统功能…………………………………………………12.3用户选择…………………………………………………12.4系统功能…………………………………………………23模块划分………………………………………………………33.1登入模块…………………………………………………33.2学生信息管理模块………………………………………33.3课程管理模块……………………………………………33.4成绩管理模块……………………………………………33.5管理员管理模块…………………………………………33.6退出模块…………………………………………………34模块图…………………………………………………………35流程图…………………………………………………………56性能要求………………………………………………………67源代码摘录……………………………………………………78程序的运行及结果分析………………………………………329遇到的问题及解决方法………………………………………4410总结和体会……………………………………………………4521.序言随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。本系统主要应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课、针对这些要求设计了学生信息管理系统。2.项目简介2.1.系统标识系统名称:学生信息管理系统2.2.系统功能本系统主要功能是实现学校学生的信息管理、课程管理、成绩管理、学籍管理以及使用该系统的用户管理。2.3.用户选择本系统面向的用户有:学校的系统人员、管理人员、教师、学生。所以对计算机的人性化和易用性比较高,应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课,做到看界面简3单易懂,容易操作,提高了学校管理效率以及提升了学生信息的安全性和完整性。2.4.系统功能本系统主要应用于学生学籍管理、信息查询、教务信息维护和学生选课、学生奖惩安排几部分,又因为用户的不同,例如学生、教师、系统管理员的身份不同,用户的权限也有所划分,具有不同的操作和功能。2.4.1.有关学籍信息的输入,包括输入学生基本信息、所在院系、所学专业、所在班级、所学课程和成绩等。2.4.2.学生信息的查询,包括查询学生基本信息、所在班级、已学课程和学生成绩等。2.4.3.学生信息的修改,包括增加、删除等。2.4.4.班级管理信息的输入,包括班级设置,年级信息等。2.4.5.课程信息的设置和查询等。2.4.6.课程信息的修改,包括增加,删除等。2.4.7学生成绩信息的管理和查询等。2.4.8.学生奖惩信息的管理和设置等。3.模块划分3.1.登入模块:用户登陆(教师登陆,管理员登陆)。3.2.学生信息管理模块:此模块由学生基本信息、系别信息、班级信息、成绩信息等组成。3.3.课程管理模块:此模块由课程信息、选课信息组成。43.4.成绩管理模块:此模块由成绩信息组成。3.5.管理员管理模块:此模块由管理员信息组成。3.6.退出模块:退出管理系统。4.模块图4.1.登入模块4.2.学生信息管理模块4.3.课程管理模块学生信息管理学籍信息系别班级信息课程信息成绩信息奖罚信息插入查找删除修改查找修改查找修改查找修改插入查找修改插入用户登入学生登入管理员登入54.4.成绩管理模块4.5.管理员管理模块4.6.退出模块5.流程图课程管理课程信息选课信息插入修改查找查找修改插入成绩管理成绩信息插入查找修改管理员管理管理员设置添加修改删除查找66.性能要求本学生信息管理系统要能够抵御用户可能的各种操作,包括修改、更新、删除等操作,以保证软件的可行性,安全性,稳定性,健壮性,同时要对数据进行检验,保证数据有效性,可操作性,安全性。只有管理员才能修改和删除、更新有关数据,学生只有查看7浏览的权限。同时系统严格控制对数据库的修改等操作设置功能,只有高级管理员和系统管理员才能对数据库进行修改,更新等操作。7.源代码摘录#includeiostream.h#includefstream.h#includestdlib.h#includestring.h#includestdio.h#includestring///////////////////////intmenu1();voidmenu();voidadmenu();voidshuoming();inttem=0;inttem1=0;voidmenu2();//函数声明////////////////////////classStu//构建学生类{private:charxibie[20];//系别charbanji[20];//班级longintxuehao;//学号charxingming[10];//学生姓名charstmima[10];//学生密码charprize[100];//获奖情况floatshuziluoji;//数字逻辑课程floatshuluoshiyan;//数字逻辑实验floatwuli;//大学物理floatyingyu;//大学英语floatmath;//高等数学floattiyu;//大学体育8floatwulishiyan;//大学物理实验floataverage;//平均分intorder;public:friendvoidInput(Stustud[]);//注册学生信息函数friendvoidStatistic(Stustud[]);//统计输出学生信息函数friendvoidLookup(Stustud[]);//管理员浏览学生信息函数friendvoidLookup_st();//学生浏览个人信息friendvoidModify(Stustud[]);//管理员修改学生信息friendvoidModify_st_mima();//学生修改个人密码friendvoidDelete(Stustud[]);//管理员年删除学生信息friendvoidOutput(Stustud[]);//学生成绩全部输出函数friendvoidSort(Stustud[]);//按平均分排序friendvoidInsert(Stustud[]);//管理员插入学生信息friendvoidst_denglu();//学生登录函数friendvoidstmenu();//学生登录界面friendvoidWrite(Stustud[],intn);//将学生信息写入文件friendintRead(Stustud[]);//将学生信息从文件中读出}stud[100];//////////////////////////////////classAD//构建管理员类{private:charname[20];//管理员姓名charpass[10];//管理员密码public:friendvoidad_denglu();//管理员登录设置函数friendvoidinput_ad(ADadmini[]);//重新注册管理员函数friendvoidDelete_ad(ADadmini[]);//按姓名删除管理员函数friendvoidmenu2();//管理员信息管理界面friendvoidOutput_ad(ADadmini[]);//显示全部管理员friendvoidXie_ad(ADadmini[],intn);//将管理员信息写入文件函数friendintDu_ad(ADadmini[]);//将管理员信息从文件中读出friendintmenu1();//管理员界面}admini[10];///////////////////////////////////////////////voidshuoming(){system(cls);coutendl;cout老师或同学:endlendl;cout你好!endlendl由于刚学的c++,c++中的好多功能不了解,因此难免做到十全十美,为了更好地使用改学生信息系统,请注意一下几点:endlendlendl91.管理员首次登:管理员姓名:曹春,管理员密码是:123456,管理员登陆后必须先进行管理员信息注册!endlendl2.管理员每次注册时决定了管理员的个数与全部管理员的密码,再次注册时,以前的信息全部丢失!endlendl3.学生登录,必须管理员先将将学生信息注册(包括管理员可设置的初始密码)后,学生才能进行相应的操作,否则,学生能够不能进行任何操作!endlendl4.有不满意的地方还请提出宝贵意见!毕竟是自己奋战三周的夜晚熬出来的...累死了!endlendlendl5.联系电话:\3\318792742125\3\3endlendl;system(pause);menu();}/////////////////////////////////////////////////---------向文件中写入管理员信息函数:voidXie_ad(ADadmini[],intn){ofstreammyFile_ad(administrator);intcount=n,i=0;myFile_adcount;for(i=0;icount;i++){myFile_adadmini[i].nameadmini[i].passendl;}myFile_ad.close();}//////////////////////////////////////////////////--------将学生信息写入文件函数:voidWrite(Stustud[],intn){fstreammyFile;myFile.open(student.dat,ios::out|ios::binary);if(!myFile){coutstudent.datcan'topen!endl;abort();}intcount=n;myFilecountendlendl;for(inti=0;i=count;i++){myFilestud[i].xibiestud[i].banjistud[i].xuehaostud[i].stmima10stud[i].xingmingstud[i].wulistud[i].wulishiyanstud[i].yingyustud[i].tiyustud[i].shuziluojistud[i].shuluoshiyanstud[i].mathstud[i].averagestud[i].prizeendlendlendl;}myFile.close();}//////////////////////////////////////////////////////////---------从文件中读出管理员信息