ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:491.19KB ,
资源ID:10063314      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10063314.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++课程设计考场管理系统.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C++课程设计考场管理系统.docx

1、C+课程设计考场管理系统 课程设计报告题 目: 考场管理系统 学生姓名: 肖 琪 学 号: * 专业班级: 计科09102班 同组姓名: * * 设计时间: 2010年下学年第1-2周 指导老师意见: 评定成绩: 签名: 日期:1.规划分析1.1 系统概述首先该系统用户分为教师和学生登录,教师登陆之后,有3个模块,分别为学生管理,教师管理以及考场分配,在其每个模块当中分别实现插入,修改,查询,注销,返回上一级这5个功能。而学生只需要查询考试信息,因此在登陆之后,系统会自动将所有科目的相关考试信息输出,学生只需核对自己所在班级,找到相关记录即可!1.2方法分析首先程序中使用了头文件#includ

2、e,因为此系统的大部分数据成员都是string类型,这样子解决要简便很多,实现起来也方便。由于数组存放数据的时候,需要先确定数组的规模,不能动态地分配内存空间,而链表是非连续存放的,可以对内存空间进行动态分配,生成链表之后,每次只要返回头指针就可以对整个链表进行操作,因此用链表来实现各个类模块的插,删,改,查的功能。另外,程序中通过system(cls)清屏函数来实现界面的转换,主函数中的循环保证程序不会退出,并增加了文件的读入和写出功能,增强了系统的实用性!2.1系统功能模块图2.2 各个管理模块的插入,删除,修改都是相似的流程:1.查询流程图2.修改流程图3.程序详细代码描述首先该系统建立

3、了3个类:科目,学生,教师。学生类里包括姓名,学号,班级,char name20,int no,string sclass;科目类里包括科目名,考室,考试日期时间,考试班级,考室监考老师,string subj,place,date,sclass,tea;教师类中包括 char name20,姓名 int no, 编号; string subj,所教科目;其中,登录函数,包括各个显示界面都包含在每个类中;比如教师登陆界面,以及登录函数包含在教师类中,学生登陆界面以及登录函数包含在学生类中:此系统所用到的头文件:#include#include#include#include /使用getch(

4、)函数所包含的文件 而各个类的实现手法相似,都是利用单链表,下面只详细介绍科目管理这一个类:class subject /科目管理类 string subj,place,date,sclass,tea;public: string getsubj() /科目名 return subj; void setsubj(string temp) subj=temp; string getplace() /考室 return place; void setplace(string temp) place=temp; string getdate() /考室日期时间 return date; void s

5、etdate(string temp) date=temp; string getsclass() /考室班级 return sclass; void setsclass(string temp) sclass=temp; string gettea() /考室监考老师 return tea; void settea(string temp) tea=temp; class subject * next;subject * start=NULL; /这样便于实现后面的插入,删除,修subject * current=NULL; /改操作subject * precurrent=NULL;sub

6、ject * ptr=NULL;void add1()/向用户链表添加一个节点 string subj1,place1,date1,sclass1,tea1; current =new subject(); / coutendlsubj1; coutendlplace1; coutendldate1; coutendlsclass1; coutendltea1; current-setsubj(subj1); current-setplace(place1); current-setdate(date1); current-setsclass(sclass1); current-settea(

7、tea1); /以头插法将新节点插入链表 current-next=start; start=current; cout插入成功endl;void subj2()/从硬盘文件读数据生成链表 start=NULL; ifstream fin(c:subject.txt); if(!fin) cout打开文件失败i; for(j=0;jsubj1place1date1sclass1tea1; current-setsubj(subj1); current-setplace(place1); current-setdate(date1); current-setsclass(sclass1); cu

8、rrent-settea(tea1); current-next=start; start=current; void subj3()/把内存链表数据写入硬盘文件 ofstream fout(c:subject.txt); if(!fout) cout打开文件失败next; foutin; precurrent=start; while(precurrent!=NULL) foutgetsubj() getplace() getdate() getsclass() gettea()next; void subj4()/显示内存链表数据 cout序号 科目 考室 考试时间 考试班级 监考教师en

9、dl;precurrent=start; int i=1; while(precurrent!=NULL) coutendli+ getsubj() getplace() getdate() getsclass() gettea()next; void delete1()/删除 ptr=precurrent=start; cout请输入需要删除的科目名称uname; while(precurrent!=NULL) if( uname= precurrent-getsubj()/找到该用户 break; else ptr=precurrent; precurrent=precurrent-nex

10、t; if(precurrent!=NULL)/找到了要删除的结点 if(precurrent=start)/要删除的结点是头结点 start=precurrent-next;/改变头结点指向 else/要删除的结点是普通结点 ptr-next=precurrent-next;/断开该结点链表连接 delete precurrent;/释放该结点空间 coutendl删除成功endl; else cout对不起 ,该用户不存在 ,请检查后重新输入!endl; /Save存档 /ofstream outf(c:1.txt,ios:out);void modify()/修改 precurrent=

11、start; string subj1,place1,date1,sclass1,tea1; string uname; coutendluname; while(precurrent!=NULL) if( uname=precurrent-getsubj() )/找到该用户 break; else precurrent=precurrent-next; if(precurrent!=NULL)/找到了要修改的结点 cout请输入您想改成的新考室名:nplace1; precurrent-setplace(place1); cout请输入新的考试时间:ndate1; precurrent-se

12、tdate(date1); cout请输入新的班级:nsclass1; precurrent-setsclass(sclass1); cout请输入新安排的教师姓名:ntea1; precurrent-settea(tea1); cout修改成功endl; else cout对不起 ,该用户不存在 ,请检查后重新输入!endl; 下面这是学生类中的密码函数,即登陆设计,因为有教师跟学生登录,所以它包含在学生类和教师类中:(附:该函数程序参考了案例A)Class stud /学生类 char name20; int no; string sclass;public: string getPW()

13、/密码函数1 char pwCh=*; const int length = 18; /最大密码长度=18 char passlength = 0; for(int i=0;ilength-1;i+) passi = getch(); if(passi=r) passi = 0; cout输入结束。endl; return string(pass); coutpwCh; coutendl; return string(pass); int pass() /登陆管理 string pass1, pass2,pass3; int i = 0; ifstream fin(D:code.txt); i

14、f(!fin) system(cls); /清屏函数 do system(cls); /清屏函数 string pass(666666); coutendl; coutttendl; coutt*endl; coutendltt您选择的是学生登录,欢迎您使用本系统,请输入输入密码!endl; coutendltt这是您第i+1次输入!endl; coutt请注意:学生只拥有查询考试信息的权利,因此你登陆之后,系统n; coutt会自动将所有科目的相关考试信息输出,您只需进行核对自己的n; coutt班级,找到相关记录!Thank you !; coutendltt请输入密码,可以输入三次(当前

15、密码为:666666):endl; coutt*endl; if(!pare(getPW() /比较的是pass和getPW函数返回的值进行的比较 subj2(); subj4(); return 0; else coutendlt密码错误,请重新输入!nendl; system(pause); i+; /错误次数计数 while(i3); if(i=3) coutendlt密码三次错误,退出系统!pass2; /从文件里读密码 pass3 = pass2; do system(cls); coutendlttendl; coutendlt您选择的是学生登录,需要输入密码!endl; cout

16、endlt这是您第i+1次输入!endl; coutendlt请输入修改后的密码(可以输入三次) : ; if(!pare(getPW() subj2(); subj4(); return 0; else coutendlt密码错误,请重新输入!nendl; system(pause); i+; /错误次数计数 while(i3); if(i=3) coutendlt密码三次错误,你已经被限制登录,将退出系统!endl; exit(0); return 0;stud * head=NULL;stud * x=NULL;stud * p=NULL;stud * q=NULL;下面是这些是专门为学

17、生类服务的void sub1()/向用户链表添加一个节点 .void sub2()/从硬盘文件读数据生成链表 .void sub3()/把内存链表数据写入硬盘文件 .void sub4()/显示内存链表数据 void sub5()/删除 void sub6()/修改 Class teacher /教师管理类 char name20; int no; string subj;public: char * getname() /姓名 void setname(char* temp) string getsubj() /班级 void setsubj(string temp) int getno()

18、 /学号 void setno(int temp) class teacher * next; ;teacher * begin=NULL;teacher * f=NULL;teacher * u=NULL;teacher * v=NULL;void tea1()/向用户链表添加一个节点void tea2()/从硬盘文件读数据生成链表void tea3()/把内存链表数据写入硬盘文件void tea4()/显示内存链表数据void tea5()/删除void tea6()/修改class user /界面管理类,负责各个界面的函数void choose_face1() int admin_fa

19、ce() void choose_face3() void choose_face4() void choose_face2() ; 进入系统之后的各个界面以及链接函数: couttt 学生管理 endl; couttt endl; couttt 1.添加学生纪录 endl; couttt 2.修改学生信息 endl; couttt 3.注销学生信息 endl; couttt 4.查询所有学生信息 endl; couttt 0.退出学生管理系统 endl; coutttendl; coutendli; switch(i) case 1: sub1(); sub3(); break; case

20、2: / sub2(); sub6(); sub3(); break; case 3: sub5(); sub3(); break; case 4: sub2(); sub4(); break; case 0: return; void choose_face3() /choose_face3()教师管理函数 int i = 1; coutttendl; couttt endl; couttt 教师管理 endl; couttt endl; couttt 1.添加老师纪录 endl; couttt 2.修改老师信息 endl; couttt 3.注销教师纪录 endl; couttt 4.查询

21、所有教师信息 endl; couttt 0.退出教师管理系统 endl; coutttendl; coutendli; switch(i) void choose_face4() /choose_face4()科目管理 实现考场分配 int i = 1; coutttendl; couttt endl; couttt 考场分配 endl; couttt endl; couttt 1.添加一条考场科目纪录 endl; couttt 2.修改科目纪录信息 endl; couttt 3.注销纪录信息 endl; couttt 4.查询所有科目考试信息 endl; couttt 0.返回上一级 endl; coutttendl; coutendltt请选择 (0-4): ; while(1) int admin_face() /老师登陆之后的界面 system(cls); char choose2; int cn = 0; coutttendl; /程序流程1 couttt endl; couttt 考场管理系统 endl; couttt 1.进入学生管理界面 endl; couttt 2

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2