C++课程设计:学生管理系统1_第1页
C++课程设计:学生管理系统1_第2页
C++课程设计:学生管理系统1_第3页
C++课程设计:学生管理系统1_第4页
C++课程设计:学生管理系统1_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目:学生管理系统 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李晓虹 2016 年 1 月 6 日目录一.系统需求分析3二.总体设计32.1目的32.2要求32.3信息描述32.4功能描述3三.详细设计4四.系统调试23五.结果分析26六.实验总结26一、系统需求分析学生信息是学校管理中一项繁琐的工作,管理人员需要建立学生的详细情况,包括这些信息的增加、修改及对各项信息的变动都可以在这里进行操作,以及各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。为此,设计一套实用的学生信息管理系统就可以大大简化管理人员的工

2、作,也方便学生查询自己的详细信息。二、总体设计2.1 目的(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C+语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2.2 要求 基本要求:(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义三个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。2.3信息描述学生信息:学号、姓名、专业、寝室等。2.4功能描述

3、(1) 使用继承的方法构造2个类(如人员类-基类,普通学生类和管理员类-派生类)使用相应的对象放置相应信息(2) 录入学生信息并保存(3) 按不同类别输出学生信息(如按性别、年龄等)(4) 查询学生信息(以一种或多种方式,如按名字、学号等检索)(5) 修改学生信息并保存(6) 删除学生信息三、详细设计总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。首先,看题目要求,每一条记录包括一个学生姓名,班级、性别,院系和各科成绩。同时,应具备以

4、下功能:(1)管理员登陆:允许管理员登陆并包含如下内容:1、添加信息:可以完成对一个学生的信息记录的输入。2、查看所有信息:将所有的学生信息显示出来。3、删除信息:对指定姓名的学生的信息进行删除。4、查询信息:可以多种方式,显示出和输入名字相符的学生信息。5、修改信息:对已有的信息进行修改。6、对信息进行存盘:上述操作的结果自动存入文件中。7、关闭程序:退出学生信息管理系统。(2)学生登陆:允许学生登陆并包含如下内容: 1、查询信息:以登录的学号方式,显示出和输入名字相符的学生信息。2、关闭程序:退出学生信息管理系统。由于姓名、学号、性别、身份证等是共有的,可以抽取出来形成一个类,这里定义为I

5、nformation类。因此,设计出类和成员为: 基类Informationstring name;/姓名string sex;/性别string num;/老师工号、学生学号string id;/身份证string age;/年龄string tel;/电话号码string password;/16位的用户登录派生类Studentprotected:string bedroom;/寝室号string professional;/专业public:/*void GetS();/得到学生信息*/void SetS();/建立学生信息void Del();/删除学生信息void Change();

6、/修改学生信息void searchname();/按姓名查询void searchbedroom();/按寝室查询void searchnum();/按学号查询void paixun();/对信息进行排序void disp();/显示学生信息void display();/显示导航void show();/显示所以信息string password;/16位的用户登录派生类Teacherprotected:string xl;/学历public:void GetT();/得到老师信息void SetT();/建立老师信息void show();/显示所以信息string password;/

7、16位的用户登录图3-1 查询信息浏览图 图3-2 功能模块图 主页面代码:/ Show.cpp: implementation of the Show class./#include iostreamusing namespace std;#include Show.h/ Construction/Destruction/Show:Show()Show:Show()/*显示主模版函数*/void Show:showmain()int m,flag=1,n=0;docoutnntt学 员 管 理 系 统 平 台;coutnnttttttt重庆师范大学endl;cout赵承志,张风采,舒瑞,邓诗

8、杰,唐效益,陈黎俊endl;cout*tt 教师信息tt*endl;cout*tt 学生信息tt*endl;cout*tt 退出tt*endl;coutm;switch(m)case 1:Show:showT();break;case 2:Show:showS();break;case 3:flag=0;break;default: cout选项有误,请重新选择! ;while(flag);/*显示学生模版函数*/void Show:showS()int a,flag=1;dosystem(cls);coutnntt学 员 管 理 系 统 平 台;coutnnttttttt重庆工商职业学院;c

9、outn ;coutnntt1.学生信息endl;coutnntt2.成绩查询endl;coutnntt3.退出登录endl;coutn endl;cout请选择:a;switch(a)case 1:; break;case 2:; break;case 3:flag=0;break;default: cout选项有误,请重新选择! ;while(flag);system(cls);/*显示教师模版函数*/void Show:showT()int a,flag=1;dosystem(cls);coutnntt学 员 管 理 系 统 平 台;coutnnttttttt重庆工商职业学院;coutn

10、 ;coutnntt1.教师信息endl;coutnntt2.查询信息endl;coutnntt3.排序endl;coutnntt4.修改信息endl;coutnntt5.退出登录endl;coutn endl;cout请选择:a;switch(a)case 1:; break;case 2:; break;case 3:; break;case 4:; break;case 5:flag=0;break;default: cout选项有误,请重新选择! ;while(flag);system(cls);学生页面代码:/ Student.cpp: implementation of the S

11、tudent class./#include Student.h#include Define.h#include fstream#include iostream#include cstdio#include windows.h#include stdlib.h#include conio.h#include stringusing namespace std;#include iostream#include fstreamusing namespace std;void showlook();void showS();void showinfo();string user; /保存用户名

12、,设为全局变量,连接两个函数/ Construction/Destruction/Student:Student()Student:Student()void Student:display()coutt学号t姓名t性别t身份证t年龄t电话t寝室t专业 endl;cout endl;void Student:disp()/显示学生信息couttnumtnametsextidtagetteltbedroomtprofessional endl;void Student:show()/显示所以信息system(cls);coutnttt 学 生 信 息nnnumnamesexidagetelbed

13、roomprofessional;stu.disp();in.close();coutn按任意键返回上一层;getch();void Student:dis()coutendltt学 号:num;couttt姓 名:name; coutendltt性 别:sex; couttt身份证:id; coutendltt年 龄:age; couttt电 话:tel; coutendltt寝 室:bedroom;couttt专 业:professional; coutn endl;void Student:showlogin()/登录后的学生信息system(cls);coutnntt学 员 管 理 系

14、 统 平 台endl;coutnnttttttt重庆师范大学;coutn 学生信息;coutn numnamesexidagetelbedroomprofessional;if(num=user) /判断输入的字符是否与文件中的一样stu.dis();in.close(); /关闭文件coutn按任意键返回上一层endl;getch();showS();void Student:SetS()/建立学生信息char choose;coutchoose;while(choose=y|choose=Y)system(cls);ofstream outfile;outfile.open(stuinfo

15、.txt,ios:app);coutt请输入学生信息:nendl;coutnum; coutname; coutsex; coutid; coutage; couttel; coutbedroom; coutprofessional;outfilennumtnametsextidtagetteltbedroomtprofessional;outfile.close(); /关闭文件coutn信息已经被保存endl;coutchoose;coutnn添加成功endln按任意键返回endl;getch();void Student:searchname()/按姓名查询system(cls);cou

16、tname2;coutendlnumnamesexidagetelbedroomprofessional;if(=name2) /判断输入的字符是否与文件中的一样stu.disp(); /如一样的话,显示信息in.close(); /关闭文件coutnn按任意键返回上一层endl;getch();showlook();void Student:searchbedroom()/按寝室号查询system(cls);coutroomnum;coutendlnumnamesexidagetelbedroomprofessional;if(stu.bedroom=roomnum) /判断

17、输入宿舍号是否与文件中的宿舍号一样stu.disp(); /如果一样的话,显示信息file.close(); /关闭文件coutnn按任意键返回上一层endl;getch();showlook();void Student:searchnum()/按学号查询system(cls);coutnumber2; /输入学号coutendlnumnamesexidagetelbedroomprofessional;if(stu.num=number2) /判断输入的学号是否与文件中的一样stu.disp(); file.close(); /关闭文件coutnn按任意键返回上一层endl;getch()

18、;showlook();/*void Student:paixun() /成绩排序信息int n;int t,m;student dd30;ifstream file;file.open(grade.txt,ios_base:in|ios_base:binary);for(n=0;n30;n+)file.read(reinterpret_cast(&ddn),sizeof(student); file.close();for(int i=0;i30;i+)for(int j=0;jddj.xuefen)t=ddi.xuefen;ddi.xuefen=ddj.xuefen;ddj.xuefen=

19、t;m=ddi.number;ddi.number=ddj.number;ddj.number=m;cout学号: 学分:endl;for(i=0;i30;i+) coutddi.number ddi.xuefenendl;*/void Student:Del() /删除学生信息string no;fstream file;fstream newfile;/*file.open(stuinfo.txt,ios:in);if(!file)cerropen file error!;exit(1);coutt学号t姓名t性别t身份证t年龄t电话t寝室t专业 numnamesexidagetelbed

20、roomprofessional;couttnumtnametsextidtagetteltbedroomtprofessional endl;file.close();*/cout请输入要删除学生的学号:no;file.open(stuinfo.txt,ios:in);newfile.open(newinfo.txt,ios:out);if(!file)cerrnumnamesexidagetelbedroomprofessional;if(num!=no)newfileendlnumtnametsextidtagetteltbedroomtnumnamesexidagetelbedroom

21、professional;file2endlnumtnametsextidtagetteltbedroomtprofessional ; file2.close();newfile.close();coutnn删除成功nn按任意键返回上一层;getch();void Student:Change() /修改学生信息string nam,se,i,ag,te,room,zy,no;fstream file;fstream newfile;cout请输入要修改学生的学号:no;file.open(stuinfo.txt,ios:in);/以输出的方式打开目标文件newfile.open(newin

22、fo.txt,ios:out);if(!file)cerrnumnamesexidagetelbedroomprofessional;if(num!=no)newfileendlnumtnametsextidtagetteltbedroomtprofessional;elsecoutno;coutnam;coutse;couti;coutag;coutte;coutroom;coutzy;newfileendlnotnamtsetitagttetroomtzy;coutn修改学生信息成功!numnamesexidagetelbedroomprofessional;file2endlnumtna

23、metsextidtagetteltbedroomtprofessional; file2.close();newfile.close();coutnn按任意键返回上一层;getch();void Student:login()/登陆界面char username30; /保存用户名char password30; /保存密码int i,j;/循环变量int count = 0; /统计登录失败的次数dosystem(cls);coutnntt学 员 管 理 系 统 平 台;coutnnttttttt重庆工商职业学院;coutn 管理员登陆;coutn ;coutn 用户登录;coutuser

24、name;/记录用户输入的内容coutnntt密 码:;for(j=0;j20;j+) passwordj=getch(); if(passwordj=r)passwordj=0;break; putch(*); /记录用户输入的密码/验证用户名和密码是否正确if(strcmp(username, admin) =0 & strcmp(password, admin) = 0) /如果用户名与密码都等于”admin”则进入系统的主界面system(cls);coutnnnnntttt正在登录学员管理系统,请稍后!n;for(i=0; i40; i+)Sleep(100);cout;system

25、(cls);coutnnnnntttt_恭喜您,登录成功!n;Sleep(2000);break;else system(cls);cout_= 3)/当错误的次数超过三次,系统自动退出coutnnttt提示:您输入错误的次数太多,请稍后再试!n;exit(0);while(1);void Student:logins()/登陆学生界面system(cls);char password20; /保存密码string word;int i,j,tab,teg;/循环变量tab=1;teg=1;/控制循环的选择变量int count = 0; /统计登录失败的次数docoutnntt学 员 管 理

26、 系 统 平 台;coutnnttttttt重庆工商职业学院;coutn 学生系统登陆;coutn ;coutn 用户登录;coutuser;/记录用户输入的内容coutnntt密 码:;for(j=0;jnumnamesexidagetelbedroomprofessional;/验证用户名和密码是否正确if(stu.num=user)&(stu.num=word) /如果用户名与密码都等于”admin”则进入系统的主界面system(cls);coutnnnnntttt正在登录学员管理系统,请稍后!n;for(i=0; i40; i+)Sleep(100);cout;system(cls)

27、;coutnnnnntttt_恭喜您,登录成功!n;Sleep(2000);tab=0;teg=0;break; if(teg=1)system(cls);cout_= 3)/当错误的次数超过三次,系统自动退出coutnnttt提示:您输入错误的次数太多,请稍后再试!n;exit(0);while(tab);教师页面代码:/ Teacher.cpp: implementation of the Teacher class./#include Teacher.h#include fstream#include iostream#include conio.husing namespace std

28、;/ Construction/Destruction/Teacher:Teacher()Teacher:Teacher()void Teacher:SetT()/建立老师信息system(cls);ofstream outT;outT.open(teainfo.txt,ios:out|ios:app);coutnum;coutname;coutsex;coutid;coutage3;couttel;coutxl;outTnumtnametsextidtagetteltxlendl;outT.close();void Teacher:GetT()/得到老师信息system(cls);coutnntt学 员 管 理 系 统 平 台endl;coutnnttttttt重庆工商职业学院;coutn 教师信息;coutn numnamesexidagetelxl;coutntt学 号:num;couttt姓 名:name;coutntt性 别:sex;couttt身份证:id;coutntt年 龄:age;couttt电 话:tel;coutntt学 历:xl;coutn endl;file.close();coutnntt按任意键返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论