c++课程设计--成绩管理系统设计.pdf

上传人:无*** 文档编号:90877890 上传时间:2023-05-18 格式:PDF 页数:94 大小:8.64MB
返回 下载 相关 举报
c++课程设计--成绩管理系统设计.pdf_第1页
第1页 / 共94页
c++课程设计--成绩管理系统设计.pdf_第2页
第2页 / 共94页
点击查看更多>>
资源描述

《c++课程设计--成绩管理系统设计.pdf》由会员分享,可在线阅读,更多相关《c++课程设计--成绩管理系统设计.pdf(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目录前言l 1.系统分析21.1系统简介 21.2系统功能21.2.1登录端31.2.2管理员端31.2.3教师端41.2.4学生端51.3输入输出功能 62.系统设计 72.1系统流程图设计 72.2系统功能模块图设计82.3数据结构设计 .9 2.3.1课程基本信息 92.3.2管理员基本信息IO2.3.3教师基本信息ll 2.3.4学生基本信息112.4菜单结构设计.12 2.5输入输出格式设计142.5.1输入格式设计142.5.2输出格式设计152.6类及其继承关系.16 2.7文件结构设计.17 2.8代码规范化设计173.系统实现.17 3.1功能及算法(成员函数).18 3.1

2、.1管理员类.1 s 3.1.2教师类20 3.l 3学生类20 3.1.4课程类213.2类的继承关系 .22 3.3非成员函数22 3 4指针使用25 3.5多态的实现.25 3.6文件读写 273.7技术创新283.8代码编程规范 314.系统测试.32 4.1登录模块324.2管理员模块334.3教师端4 4学生端40 42 5.程序运行界面.43 5.1身份选择界面 43:丁怎:5.4密码修改455.5管理员端界面46 5 6教师端界面50 5.7学生端界面526.总结 536.1问题及解决方法.53 6.2算法分析与改进536.3技术经验与总结54 6.4程序使用说明54 7.附录

3、547.1程序文件名7 2源程序。54 54 ,削丢随着教育科技的进步,传统的学生成绩管理方式已经不能满足当代大学教师和学生的需求了,使用太过枯燥,简陋。该系统主要针对教师,方便教师管理学生成绩,同时又保证了个人信息的保密性。学生成绩管理系统,利用软件实现成绩增加、删除、修改、查询等功能,针对不同身份(管理员、教师、学生)提供不同的操作功能,使教师对成绩管理更加高效,提高工作效率。该系统还为教师提供了音乐播放功能,当老师处理成绩疲惫时,可以通过音乐放松身心。同时该系统针对学生,不仅实现管理个人信息而且还设计了连接教务处功能,方便学生进行核实信息,查看成绩等操作,实现一站式教务服务。系统引导式操

4、作可以让用户快速上手,更加良好、人性化的界面方面用户使用。这款软件是为了方便教师和学生的成绩管理系统,为非盈利性软件,但所要求的功能都是按质按量完成,由于开发时间有限,如有不准确的地方,希望大家多多指证。学生成绩管理系统1.系统分析1.1系统简介学生成绩管理系统,以c+为语言基础,结合数据结构、算法设计实现成绩管理功能,便于老师管理成绩,学生查询成绩。系统有三个入口,分别是管理员端,教师端,学生端,根据密码和账号不同区分学生、老师,不同身份登陆后有不同操作功能。同时系统有单独登录模块,可以隐式输入、找回、修改密码。管理员拥有大部分功能,教师可以插入、查看学生成绩,学生可以查看自己成绩。心亨4

5、心申请访问个入信息、插入、查看成绩申请访问个人信息和成绩4 心心心尸图1.1:端口联系图1.2系统功能系统有登录、管理员、教师、学生四个大模块,每个模块对应不同功能,根据不同模块分别介绍相应功能如下。2 1.2.1登录端进入界面后,需要选择自己身份,根据不同身份进入不同界面,选择后,进入登录界面,功能列表如下:图1令2:登录功能图对千登录,需要输入账号和密码,每个身份都有初始密码,系统调用那个文件判断账号和密码是否正确,如果正确可进入系统,如果三次不成功,直接退出系统。注册账号是程序开发员使用,导入数据后,管理员和教师、学生都不可使用。对千找回密码,输入账号后,系统调用文件找到相应信息并输出。

6、修改密码,首先输入原密码,然后输入新密码两次,如果两次输入不一致,提示重新输入,如果与原密码相等,提示相等请重新输入。1.2.2管理员端管理员拥有大部分功能,具有最高权限,功能菜单如下:图1.3:管理菜单图3 l)输入成绩:管理员可以把学生成绩和信息输入到系统中,包括平时成绩、考试成绩和最后成绩,然后通过文件保存,每一个学生对应文件中的一行。2)显示学生信息:可以显示部分学生关键信息,例如姓名、学号、成绩等。3)查找学生成绩:可以根据学号或者姓名进行查找,用户输入学号,系统从文件中如果找到信息会输出,如果没有会提示。4)修改学生成绩:当需要对成绩或者一些信息做出修改时,可以根据文件进行修改。5

7、)删除学生成绩:当成绩输入不当,或者学生退学需要删除时进行对信息的删除。6)插入学生成绩:当后期成绩录入不全或者其他情况需要插入学生成绩或信息的时候可以实现。7)按平均分降序排列:对学生所有成绩进行加权平均,然后算出平均分进行名次排序。8)显示不及格学生信息:对千成绩低于60分的学生进行查询,方便老师查看需要补考的名单。9)显示学生详细信息:包括学生学号、姓名、课程、课程学分、考试分数等都有输出。1.2.3教师端教师可以对学生成绩进行查询、插入、修改等部分操作,权限低千管理员,有可以音乐休闲、查看自己信息等自己独特的功能,功能菜单如下:图1.4:教师菜单图4 前五个功能继承管理员功能,可以实现

8、查、改等对学生成绩和信息的一些操作功能。l)输入教师信息:教师可以把自己的工号、姓名等基本信息输入系统。2)显示教师信息:对教师信息的显示3)修改教师信息:当发现自己信息有误时可以进行更改,每个教师有自己的密码和工号,保证教师只能看和修改自己的信息。4)音乐休闲一刻:教师独有的特色功能,当老师辛苦一天,录入成绩感到疲倦的时候,可以听一首音乐进行休息,界面如下:休丁一刻x 老师恁辛苦了听首音乐休息下吧二图1.5:音乐菜单图教师可以根据需要选择不同音乐,音乐播放有两种格式可选择。l)前面3首音乐借助第三方播放器进行播放。2)第四首可以作为背景音乐进行播放,不影响继续操作。1.2.4学生端学生具有最

9、低权限,只能查看自已成绩信息和个人信息,同时本系统为学生加入了连接教务系统的特色功能,可以进入查看信息,功能界面如下:5 图1.6:学生菜单图l)输入和显示学生个人信息:对自己学号、姓名等基本信息的输入和查看。2)学生成绩信息:学生看查看自己的成绩,因为有密码限制、只能查询自己的信息。3)连接教务系统:学生可进入教务系统进行学分审核、成绩审查等。O舷惶系统1查询服务教务系统课表吾询学生学号亘词科大校历巨涧身级成四六级外语亘涧考试安排查询多媒体教室亘词汉字区位码吾问1教务管俚-图1.7:教务系统图1.3输入输出功能各功能的输入输出如下表所示:表1:预计输入输出表功能1 输入输出6 登录成功登录账

10、号、密码登录失败退出系统找回账号密码修改原密码、新密码修改成功输入学生成绩成绩录入文件显示学生信息2 成绩信息查找成绩学号、姓名成绩信息修改成绩子严亏口修改后成绩删除成绩学号、姓名删除后成绩插入成绩学生成绩插入后成绩排序7 排序后含名次显示不及格信息8 不及格学生学生详细信息子严亏口个人信息、成绩输入教师信息工号、姓名录入文件显示教师信息工号、密码教师信息修改教师信息工号、密码修改后信息播放相应音乐、可以作为音乐休闲一刻0-4 背景或打开软件两种格式输入学生个人信息学号、姓名录入文件显示成绩学号、密码自己成绩青科大教务系统学号、密码选课、学分查询、课表查询等2.系统设计2.1系统流程图设计7

11、开始管理员端I I 教师端学生端管理员菜单操作1l 教师菜单揉作是_ 是学生菜单揉作是结束图2.1:系统流程图2.2系统功能模块图设计8 学生成绩管理系统管理员退出系统显示学生信息成绩降序排列插入学生成绩删除学生成绩修改学生成绩查找统计成绩显示统计数据输入学生数据贯学生登录个人信息查询成绩查询退出系统J退出系统音乐休闲一刻修改教师信息一显示教师信息输入教师信谦修改学生成绩二查找统计成绩显示统计数据输入学生数据目退出系统修改密码注册账号退出系统修改密码注册账号退出系统修改密码注册账号 图2.2:系统功能模块图2.3数据结构设计2.3.1课程基本信息课程信息如下:课程编号、课程名称、平时成绩、末考

12、成绩、综合成绩、学分、是否重修;编号从01开始编辑,课程名称按照教务系统课程名称进行输入。类:Course;具体声明如下:class Course 定义一个课程信息类public:课程编号string course_name;/课程名称int course_num;9 ;float regular_score;平时成绩float final score;末考成绩float average_score;综合成绩float study _score;学分string rebulid;是否重修表示如下:表2:课程信息表课程编号课程名称平时成绩末考成绩int string course num cou

13、rse name 2.3.2管理员基本信息管理员信息如下:float float regular_sc f inal_scor ore e 综合成绩学分是否重修float float string average_sc study_ rebu Ii ore score d 管理员权限最高,可以输入学生成绩、管理教师和学生信息,所以加入了课程平均分,课程数目,同时有一个数组存储课程信息。类:Admin;具体声明如下:class Admin public:int class_num;班级号码int num;学号string name;姓名float average;所有课程平均分int num_o

14、fcourse;课程数目int order;名次Course course20;课程信息数组;表示如下:表3:管理员信息表I班级号码1学号1姓名1所有课程平均1课程数目1名次1课程信赍I10 int string course_num course name 2.3.3教师基本信息教师信息如下:float regular score 分数组float float float string final_score average_sc study_ rebu I id ore score 教师除了对学生成绩的增加、查看,还有自己的信息,所以有姓名、工号、密码等,密码用来限制只能查看自己的信息。类

15、:teacher;具体声明如下:class teacher public:;int numl;工号string namel;姓名char plO;表示如下:工号int numl 2.3.4学生基本信息学生信息如下:姓名、学号、年龄、密码;表4:教师信息表姓名string namel 学生功能较少,只有自己的个人信息和登录密码。类:student;具体声明如下:class student public:11 密码char p 10 int num2;string name2;int age;char p210;表示如下:姓名,也口子亏表5:学生信息表年龄string name2 int num2

16、 int age 密码char p210 2.4菜单结构设计按照4个模块和身份选择,分为登录菜单、管理员菜单、教师菜单、学生菜单四个部分,每一个里面又有自己的子菜单,细化功能,用数字选择进入不同菜单,界面用符号进行美化。l)身份选择菜单:.:::、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:、:::.:;、:.:::、::.:.:::、:-:,:I,1 I I ,、,j.:,.t _义;,、,7、,.L.,:,.上J:-:_:.;r:匝l:重::;:;:上l 一.-:,飞,.,_I,:.:,:,:.:.:.:.:;:.:.:.:;:.:.图2.3身份选择菜单2)登录端菜单

17、:逃国可,.、.、,、l;、,i卜,,1 I 一.I.,J J.J,I I,).j又1尸.,.:.上i.、I一1.,.I I,j1.J 二II i:;:;:;:;:;:;:;:囡囡图2.4登录端菜单3)管理员端菜单12 I*;*t-1-1 4,.,111,.“f,.咖.咖.咖、唱.2.、.,咖.一.,.咖.人.,.l.1l ,咖 咖 咖,.-.,一.2,.,.,.,Lr._;”:,r、1,”、,.、,、4、J.,.,.,.,.、f.4.,咖j.-.,.咖.咖咖咖咖.,.J.,咖.-,-,4-ll,li.rIJ响L蜕忡帕性一i,、,、,I1-I-七卢图2.5管理员菜单4)教师端菜单I*;*;*|

18、*,、厂,一,俨,上.,,咖咖咖L、ilJ/:JIJ.,.I 咖咖.l i.、.i.、.,.咖咖咖咖咖.咖合.,咖1l.-,亡-.l【_-1(墨i山IllIll凶IllIllII*肌殿1111lII|1,IIIII1lIIlIIIlllIIll I、._-雪眉图2.6教师菜单5)学生端菜单13 I*;*1:.、::、:;:;:;:;:;:;:;:;:;:*:,:,:.:,:,*:,.:,.:,、,:、.:;:;:*:,:,:.:,:,*:;:;:、,:.,:.*.:.六,_,I.合,,.,.心(;j 1、(1.,-i:噩*:;::、::;:;:;:;*:;:;:;:;勺*:;:;:;:;:;:

19、;:;:;:;:;:;*:;:,:.:.:、;:.:*:;:;:;:;:;:;:;:;:;:;售,圈.1.:;,-(,-,七咖J、4-=.(1-*:;:;:;::一::-:-:-:图2.7学生菜单2.5输入输出格式设计2.5.1输入格式设计表6:输入格式设计表课程编号类型课程名称int 平时成绩float 末考成绩float 综合成绩float 学分float 是否重修string 班级号码int 子严亏口int 姓名string 所有课程平均分float 课程数目int 名次int 班级号码int 课程信息数组对象数组工号int 密码Char型数组控制台14 输入时,系统提示输入相应信息,根

20、据数字选择和提示输入信息。,、,,.J.哪J.2 I,J,.卢.人,I、,.i).1.,.、,编,.-,.才2.I.,.,I.,.I 一己,4.I虚,,.l.,.、r.,.:.4 I I-11义,I.b1、.J,咖,.心、.上I_.、.j/.,_.编Jr_j11,1L.,b 1f.|.J.,,编:一、咖4上,垒.,I咖,.l 睿,I,.,、I.,4y.,._J,.;.,.c 一r丿、,:i,、.I-,.,.,咖咖j、.,4咖li1门1.I,.、fV龟、,一,;,AII,JJI.、.i_.,一,1.,合、+_J,.一入1j.、,一,咖1,咖!.,合.l.,.,J.,.,.,:.i.,-.卢-.,

21、、.、,.,.-1_ 俨j.f1_ .J俨.”.J,.,.,1二:-9t、-9 一;9.i:3 1.I、;)J义|.、.图2.8文件打开文件,把数据依次读取到文件中,每输入一个学生信息换行一次,后面根据行数读取数据。2.5.2输出格式设计每一列有相应的名称,然后每个学生成绩信息安列名排好,依次向下排列,中间有间隔设计,示例如下:文件打开文件,把数据依次读取到文件中,每输入一个学生信息换行一次,后面根据行数读取数据。控制台控制台输出相应信息。咖t!t-I咖、雹4,A|.,I t)1,-I.)I 4;_.;t)1),仁一一(l_).,:-._ _、勹、.I.),I,-,今专-、.-,.t !1 4

22、-),.-、l-i.-)IJtl一,、:了.:、一咖、咖咖-15 图2.92.6类及其继承关系|AdmmI-chssnum:tit-n um:ii t-name:s吐g-average fb at-num _of_course:int-orcler:nt-course 20Course 丘nd+liput$tusrud0)邓oil仓:end+Stat囡比!Stustud 0)-:vo ii)+Lookup 1$tu stud 0)-:voil+Mod让yCtusmdD)yoii 仕:end+D e:k:Jte Stu stud 0)-:vo廿+0 utputl$tu stud Dhon)+So

23、rtiStu s叩d0).vod 仓nd+J-isertiSru s如d D)沁i 住n d+IV ritel$tu stud 0,记n)-:voxi 丘nd+Read$tu stud O):nt)+Shou伯且!$tustud Oho让public+num 1:nt+nam e 1:str.in g+p 10:char teacher+show 1(teacher teacherd Oho廿 +xiigail(teacher teache1-d Oho id +write Yo让+num 2:int+nam e2:stmg+age:int+p2 10):char+write 0-:vo i:

24、I Stu 16 Course+course_num:int+course_name:string+regular_score:float+final_score:float+average_score:t1oat+study _score:float+rebuild:string 图2.9uml类图及继承关系图2.7文件结构设计l)整个系统所有相关信息文件存放在一个文件夹2)所使用的账号密码、学生信息读写文件采用txt文本文档格式3)C+学生成绩管理系统cpp所有函数的实现,实现系统功能2.8代码规范化设计l)使用英文单词来规范来定义一些变量和类,如:学生类,定义为Student。2)文件名

25、:头文件xxx.h程序文件XXX.cpp 存储文件XXX.txt 3)变量名:变量包含数字、字母和下划线字符,不允许使用其他字符,尽可以要使用一目了然容易理解的形式。4)作用域:对应作用域的花括号对齐,内置作用域的花括号在里边,越往外的作用域花括号越靠外。5)文件:文件流类库建立以后,用完要及时关闭。6)注释:单行注释注释多行注释注释3.系统实现实现设计中所有的类,类的成员函数、成员数据。成员函数的算法,分别实现哪些功能,17 3.1功能及算法(成员函数)3.1.1管理员类类的实现:class Admin 把对类的私有成员的处理函数全部定义为友元函数public:friend void Inp

26、ut(Admin Admind);学生成绩录入函数friend void Statistic(Admi n Admind);学生信息输出函数friend vo沁Lookup(AdminAdmind);学生成绩查找函数friend void Lookupl(Admin Admind);学生成绩显示涵数用千学生friend void Modify(Admin Admind);学生成绩修改函数friend void Delete(Admin Admind);学生信息删除函数friend vo过Output(AdminAdmind);学生全部信息输出函数friend void Sort(Admin A

27、dmind);学生成绩排序函数friend void Insert(Admin Admind);学生成绩插入函数friend void Write(Admin Admind,int n);学生成绩写入档案函数friend int Read(Adrnin Admind);学生成绩信息读取函数friend void Showfail(Adrnin Admind);查找不及格学生public:int class_num;/班级号码int nurn;学号string nan1e;姓名float average;所有课程平均分int num_ofcourse;课程数目int order;名次Course

28、 course20;课程信息数组;1)成绩录入设计思想:设定一个变量sign,用来判断继续录入信息还是结束程序,运用循环语句while输入成绩信息,每执行完一次循环,需要重新输入sign,从而是否执行下一次循环,循环结束后调用将信息写入文件。函数:voi d I nput(Adm i n Adm i nd);2)成绩输出设计思想:先调用Read()函数进行文件读取操作,然后通过链表输出文件中的信息。18 函数:friendvoid Statistic(Stu stud);3)成绩查找设计思想:先调用读取文件Read()函数,返回处学生总数,然后让学生选择查询方式,1:按学号查找2:按姓名查找方

29、式1:通过循环遍历判断是否有学生的与输入的相等的,如果有输出相应信息。方式2:也是通过循环查找,有就输出相应信息。函数:friendvoid Lookup(Stu stud);4)成绩修改设计思想:先从文件读取信息,返回一个总数值,输入一个序号,用循环遍历判断是否存在学生学号与之相等,如果相等,如果存在先输出该学生信息,然后重新输入改后的学生信息,重新赋值,覆盖原来的,判断是否保存,如果保存,调用写入文件函数,存入文件。函数:friendvoid Modify(Stu stud);5)成绩删除设计思想:根据学号或者姓名循环遍历是否有该生,找到后将学生数组指向该位置指针指向下一个数组成员,从而删

30、掉学生,同时学生个数减1,删除后,在执行一遍文件操作更新。函数:friendvoid Delete(Stu stud);6)成绩插入设计思想:读取文件信息,输入要插入的学生信息,然后运用文件写入函数,其中参数数组总数加1.函数:friendvoid Insert(Stu stud);7)成绩排序设计思想:根据平均成绩冒泡排序,并用一个数组存储名次,然后循环遍历输出,再调用写入文件函数。函数:friendvoid Sort(Stu stud);8)查找不及格学生信息设计思想:遍历学生成绩,如果小于60,输出学生信息。函数:friendvoid Showfail(Stu stud);9)显示学生详

31、细信息设计思想:打开文件,把信息录入程序,然后输出学生所有信息。函数:friendvoid Showfail(Stu stud);19 3.1.2教师类教师类功能大多来自管理员,前面已经介绍,这里介绍类中其他的功能。类的实现:class teacher:public Admin/继承public:int nurnl;工号string namel;姓名char plO;public:virtual void盯ite();/虚函数多态;friend void showl(teacher teacherd);friend void xiugail(teacher teacherd);l)教师信息录入

32、设计思想:按照程序提示输入姓名、工号等信息,然后通过文件函数吧输入的信息写到文件。函数:virtualvoid write();2)教师信息输出设计思想:先调用Read()函数进行文件读取操作,然后通过文件输出文件中的信息。函数:扣endvoid show l(teacher teacherd);3)成绩修改设计思想:先从文件读取信息,返回一个总数值,输入一个序号,用循环遍历判断是否存在教师工号与之相等,如果相等,如果存在先输出该教师信息,然后重新输入改后的教师号信息,重新赋值,覆盖原来的,判断是否保存,如果保存,调用写入文件函数,存入文件。函数:friendvoid xiugai l(tea

33、cher teacherd);4)音乐实现设计思想:使用ShellExecute()函数实现音乐播放函数:ShellExecute O;MessageBox O;3.1.3学生类学生类功能较少,一些功能前面已经介绍,这里介绍类中其他的功能。20 类的实现:class student:public teacher public:int num2;string name2;int age;char p2 10;void write();friend void show2(student studentd);l)学生信息录入设计思想:按照程序提示输入姓名、学号等信息,然后通过文件函数把输入的信息写到

34、文件。函数:voidwrite O;2)学生信息输出设计思想:先调用Read()函数进行文件读取操作,然后通过文件输出文件中的信息。函数:friendvoid show2(student studentd);3)教务管理系统设计思想:使用ShellExecute()函数实现音乐播放函数:SheI I Execute();3.1.4课程类类的实现class Course 定义一个课程信息类public:;int course_num;课程编号string course_name;课程名称float regularscore;平时成绩float final_score;末考成绩float aver

35、agescore;综合成绩float study _score;学分string rebulid,是否重修21 3.2类的继承关系管理员类权限最高,拥有最多功能;教师类继承管理员类,另外有个人信息部分为自己新增加成员;学生类继承教师类,另外学生个人信息为新增成员。3.3非成员函数登录模块1)隐式密码输入输入时使用getch()进行输入,存入数组,然后putchar()进行显示,实现隐藏密码功能。函数:void GetPasswd(char*p)例子如下:void G etPasswd(char*P)隐藏式密码输入 char passwd 7=0 ;char c;inti=O;int len=1

36、0;whi le(c=getch()!=r)passwdi=c;put char(*);i+;if(i=len)break;strcpy(p,passwd);2)登录模块设计思想:根据程序提示,输入账号和密码,然后进行打开文件查找信息,如果找到、验证后提示登陆成功,三次密码错误,退出系统。函数:voidCheckUser(void)3)新建账号22 设计思想:根据程序提示,输入账号,然后进行打开文件查找信息,如果已经存在,提示账号已存在,否则注册成功。函数:voidaddUser(void)例子如下:void addUser(void)char*p;FILE*fp;int j=0,i,m;ch

37、ar cl2,str30;printf(t t t诸输入账号:nnttt);scanf(%s,str);for(i=0;i j j;i+)if(strcmp(stai.AcName,str)=0)printf(ttt该账号已被注册,请重新申请!!nnttt);system(PAUSE);return;strcpy(stajj.AcName,str);printf(ttt请输入密码(密码长度不超过十个字符):nnttt):cout“诸输入你的密码:;GetPasswd(stajj.password);printf(nttt请再输入一次密码:nnttt):GetPasswd(c);if(strcm

38、p(sta j j.password,c)!=0)printf(ttt两次密码不一致请亘新申请nnttt);system(PAUSE);system(cls);printf(n);addUser O;j=1;if(j)return;printf(nttt请输入昵称nnttt);scanf(%s,stajj.nickname);saveUser O;printf(tttt账号申诸成功!!nnttt);23,jj+;system(PAUSE);4)找回密码设计思想:根据程序提示,输入账号,然后进行打开文件查找信息,如果找到对应账号,输出密码。函数:voidfindPassword(void)5)修

39、改密码设计思想:根据程序提示,输入账号、密码,然后进行打开文件查找信息,如果找到对应账号,提示输入原密码及新密码,如果新密码和原先密码一样,提示重新输入,输入成功后,存入文件。函数:voidEditPassword(void)例子如下:void EditPassword(void)inti,K=0,KK=O;char a30;printf(t t t 请输入要修改密码的账号:nttt);scanf(%s,a):for(i=0;i jj;i+)if(strcmp(stai.AcName,a)=0)printf(nttt 请输入原密码:nttt);GetPasswd(a);if(strcmp(st

40、ai.password,a)!=0)printf(n t t t t密码错误!!nnttt);system(PAUSE);system(cl s);return:printf(nttt 谓输入新密码:nttt);GetPasswd(a);if(strcmp(stai.password,a)=0)printf(nttt新密码与原密码重复,请从新修改!!nnttt);system(PAUSE);system(els);return;24 strcpy(stai.password,a);printf(ntttt修改密码成功!!n);saveUser O;system(PAUSE);system(el

41、s);return;printf(n t t t t查无此账号!!nnttt);system(Pf1USE);3.4指针使用创建链表和密码存储、修改时都用到指针,部分代码如下:typedef struct Node int classnum;int numl;/char namelO;姓名float avel;所有课程平均分struct Node*next;Node;Node*p,*r;3.5多态的实现通过文件中信息写入实现多态,记录文件函数时使用函数重载。1)教师类中声明虚函数virtualvoid write 0,/虚函数学生类继承后使用voidwrite();/2)函数重载int get

42、line(int a)记录学生行数int getline(int a,int b)记录教师信息行数学生输入作为例子:25 void student:write()学生信息的输入 static int n=O;inti=O;char sflO ;printf(tttt请输入密码:nntttt);GetPasswd(sf);for(i=O;i jj;i+)endl;if(strcmp(stai.password,sf)=0)strcpy(p2,sf);if(n=0)ofstream outfile(xuesheng.txt);if(!outfile)cerr ERROR OPEN endl;exi

43、t(l);outfile.close O;of stream outfi le(xuesheng.txt,ios:app);if(!outfile)cerr ERROR OPEN!endl;exit(l);cout“ntt-_ cout tttt请输入姓名:endl tttt;cin name2;cout tttt请输入工号:endl tttt;cin num2;cout tttt请输入年龄endl tttt ;cin age;outfile name2 t;outfile num2 t;outfile age t;26 outfile p2 t;outfile endl;outfile.cl

44、ose O;n+outfile.close O;break;3.6文件读写文件个数共涉及到五个存储文件和一个删除用的临时文件文件输入账号txtstudent.dat.txt jiaoshi.txt xuesheng.txt 数据个数txt文件写入通过ofstream文件写入流进行实现,代码如下:void Vri te(Adm in Admind,int n)文件写入函数of stream myFile(student.dat.txt,ios:out I ios:app);if(!myFile)cout student.dat.txt cant open!endl;exit(l);for(int

45、 i=O;in;i+)使用文件myFile Admindi.class_num Admindi.num Admindi.name Admindi.num _of_course A dmindi.average,:for(int j=0;jAdmind日num_of_course;j+)myFi le Admind i.course j.course_num Admind i.course j.course_name Admind i.course j.regular_score Adm ind i.course j.finalscore Admindi.coursej.average_scor

46、e Admindi.coursej.study_score 27 Adm ind i.course j.re bu lid m yFile endl;myFile.close O;文件读取文件读取通过江stream文件输出流进行实现,代码如下:int Read(Admin Admind)文件读取函数int a;if stream myFile(student.lat.txt,ios:in);迁(!my臼le)cout student.dat.txt cant open!endl;exit(l);int n=getline(a);for(int i=O;in;i+)myFile Ad川indi.

47、classnum A dmindi.num Admindi.name Admind i.num_of_course Admind i.average;for(int j=O;j Admindi.coursej.course_num Admind i.course j.course_name Admind i.course j.regularscor e Admindi.coursej.final_score Admindi.coursej.average_score Admindi.coursej.study_score Admindi.course且rebulid;m yFile.close

48、 O;return n;函数返回一个查询出来的数仇3.7技术创新1)文件与链表结合28 设计思想:只通过文件,后面成绩操作管理实现时效率较低,链表对数据操作效率高,但不能存储永久使用,而文件能连续存储,结合后提高程序效率,同时又可连续存储。Node*createlist(Node*L,Admin Admind)把学生信息从文件转到链表文件与链表特色结合 Node*P,*r;L=(Node*)malloc(sizeof(Node);L-next=NULL;r=L;int a;迁streammyFile(student.lat.txt,(!my臼le)if ios:in);cout student

49、.dat.txt cant open!endl;exit(l);int n=getline(a);(int i=0;i n for i+)p=(Node*)malloc(sizeof(Node);指针rnyFile Admindi.class_nurn Admindi.num Admindi.name Admind i.num_of_course Admind i.average;for(int j=0;j Admindi.coursej.average_score Admindi.coursej.rebulid;p=(Node*)malloc(sizeof(Node);Admind日cour

50、sej.study _score p-)classnum=Admind日class_num;p-)numl=Admind i.num;p-avel=Admind i.average;p-next=NULL;r-next=p;r=r-next;29 4 myPile.close O;return L;2)密码隐式输入设计思想:输入时使用getch()进行输入,存入数组,然后putchar(*)进行显示,3)实现隐藏密码功能。音乐播放使用ShellExecute()函数实现,播放音乐有两种方式:通过打开音乐播放器播放,同时通过循环加了等待界面后缀名Mp3直接作为背景进行音乐播放,后缀名wavMcs

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁