欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年高语言课程方案文档要求 .pdf

    • 资源ID:28412792       资源大小:218.91KB        全文页数:19页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年高语言课程方案文档要求 .pdf

    个人资料整理仅限学习使用高级语言课程设计实验工程:学生成绩管理系统学号: 1027330854 姓名:申延松专业:网络工程班级:20185)指导教师:成绩:2018年 12 月 19 日目录1、系统分析22、系统设计 错误!未定义书签。2.1 数据结构设计32.2 各功能模块设计62.2.1 学生记录录入模块设计62.2.2错误!未定义书签。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 19 页个人资料整理仅限学习使用3、系统实现83.1 学生记录录入模块的实现84、总结 191、系统分析 1 概述1.1 系统目标精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 19 页个人资料整理仅限学习使用学生信息管理系统以计算机为工具,通过对教务管理所需的信息管理,实现快捷,方便,安全的管理学生信息; 2 用户需求2.1 功能要求?学生记录录入:通过用户指定文件或手动添加录入学生的学号,姓名,性别,年龄,班级;各科成绩;?.学生信息管理 : 学生个人全部显示包括成绩),学生信息添加及删除和修改;?.学生成绩管理:可按学号大小排列或按总成绩高低显示学生全部信息,可查询不及格和平均分高于80分的同学信息;管理人员可查询指定学号,姓名,班级的学生信息不可修改)?.保存:把录入的学生信息,保存的用户指定的文件中;2.2 使用权限全部可用;2 系统分析2.1 数据结构设计定义一个全局变量vector allClass( 用于存储班级对象。 int stuNum 总人数)。定义类:ClassClass班级类,类成员班级名char className10。学生向量vector stu。;成员函数char * getclassName(获取班级名;void setclassname(char*classname对 className 进行设值; void addStu(Student & one添加学生对象;Class * getstu(Class & one获取班级对象;void printAll(输出班级学生信息;bool delSut(char * id。删除学号为ID 的学生信息;bool reviseStu(char * id修改学号为ID 的学生信息void sortById( 。/学号排序排序; void sortByScore(。/按成绩排序;void printLess60( 。/输出低于60 分的学生信息; void printMore80( 输出平均分为80 分以上的学生信息;bool searchByName(char * name根据 name查找学生信息;bool searchById(char*id 。根据 ID 查找学生信息;class Class private: 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 19 页个人资料整理仅限学习使用char className10。int num。public: vector stu。char * getclassName( return className。 void setclassname(char*classname。void addStu(Student & one 。Class * getstu(Class & one 。void printAll( 。void printone( 。bool delSut(char * id 。bool reviseStu(char * id 。void sortById( 。/排序void sortByScore( 。/成绩排序void printLess60( 。/输出低于60分得void printMore80( 。bool searchByName(char * name 。bool searchById(char*id 。学生类 Student 学生 id;char stuId10 ;班级名称:char className10。姓名: char name40 。总成绩float total。年龄: int age。;性别: char sex。学分: int allCredi 。;是否及格bool isLess60 。课程数目: int courseNum 。分数向量vector score。成员函数:void settotal(int total 。设定总成绩;float gettotal( 获取对象的总成绩;void setInfo(char * sID,char * sName,int age,char sex,char *clas设置学生的各种信息void addScore(Score & one 。 添 加Score 对 象 ; void print( 。 输 出 学 生 信 息 ; void printLess60( 。输出不及格的学生信息;class Student private: char stuId10 。char className10。char name40。float total 。int age。char sex。float ave。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 19 页个人资料整理仅限学习使用int allCredi 。int courseNum 。bool isLess60。public: void settotal(int total 。float gettotal( return total。 vector score。void setInfo(char * sID,char * sName,int age,char sex,char *clas。void addScore(Score & one 。void print( 。void printLess60( 。char * getStuId( return stuId。 char*getname( return name。 char * getclass( return className。 int getage( return age。 char getsex( return sex。 。成绩类定义课程名称char name40。int 类型的学分credit。浮点型的成绩score。;成员函数char* getname(;int getcredit( ;float getscore( ;void setInfo(char * sname,int cre,float s 。/设置课程名,学分,成绩。void print( 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 19 页个人资料整理仅限学习使用class Score private: char name40。int credit 。float score。public: char* getname( return name。 int getcredit( return credit。 float getscore( return score。 void setInfo(char * sname,int cre,float s 。void print( 。;2.2 各功能模块设计2.2.1 学生记录录入模块设计1 从键盘输入学生各种信息,学号,姓名,年龄,性别,班级,成绩:课程名称,学分,成绩。遍历全局变量,把学生对象添加到相应的班级中,不存在班级,新建班级对象,把该学生添加进去,2 从文件中录入学生信息,运用文件流从文件读取相应信息,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 19 页个人资料整理仅限学习使用2.22.学生信息管理功能模块设计1 学生信息显示,遍历allClass。然后遍历相应班级里的学生。输出学生信息,2 学生信息添加,调用从键盘输入信息的方法。3 删除学生信息,遍历全部学生信息,查找该学生,找到了则删除该学生对象,找不到返回“未找到该学生“4 学生修改信息,遍历全部学生,查找指定,找到该学生,修改学生各种信息,然后重新赋值给该对象。2.33. 3.学生成绩管理功能模块设计1 按学号排大小,遍历allClass。先确定班级,然后遍历该班级的每个学生,根据每个学生的学号,用冒泡方法排序。2 按总成绩高到低排列,遍历allClass。先确定班级,然后遍历该班级的每个学生,根据每个学生的总成绩,用冒泡方法排序。3 输出所有60 分一下的学生,遍历全部学生成绩。假如有低于60 分的课程,则输出该学生信息。4 输出所有80 分以上的学生,遍历全部学生成绩。假如有高于80 分的课程,则输出该学生信息。5 查询指定学生的信息,遍历全部学生信息,根据学号查找该同学,存在,输出该学生信息,不存在,输出“不存在该学生“6 查找指定姓名的学生信息,遍历全部学生信息,根据学生姓名查找该同学,存在,输出该学生信息,不存在,输出“不存在该学生“7 查询指定班级的学生信息,遍历全部班级,输出每个班级全部学生信息,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 19 页个人资料整理仅限学习使用3、系统实现3.1 学生记录录入模块的实现/1。手动输入学生信息void readFormKeyboard(/ 手动添加 int n。 char sid10 。 char name40 。 int age。 char sex。 char Classname10。 int credit。float soc。char kechen40 。char H。float total=0 。coutn 。stuNum+=n 。/在全局变量上加n;for(int i=0 。i system(cls 。cout 请输入第 i+1 个学生信息 n 。coutsid 。coutname。coutage。coutsex。coutClassname。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 19 页个人资料整理仅限学习使用Student stu。stu.setInfo(sid,name,age,sex,Classname。system(cls 。cout 输入该学生选修的课程信息课程名,学分,成绩;n 需要终止输入在该行末尾输入#n 。do coutkechen。coutcredit 。coutsoc。cinH 。total+=soc。/计算学生的总成绩Score oneScore。oneScore.setInfo(kechen,credit,soc。/设置对象 oneScore的属性stu.addScore(oneScore。 /把对象 oneScore。添加到向量stu中;while(H!=# 。if(getClass(Classname=NULL/ 向量中该班级不存在建立新的班级对象 Class aClassname 。aClassname.setclassname(Classname 。stu.settotal(total。total=0。aClassname.addStu(stu。 / 把 学 生stu 对 象 添 加 到 新 建 班 级aClassname中allClass.push_back(aClassname。把该班级添加到全局变量中 Else/班级存在; Class oneclass =*getClass(Classname。 stu.settotal(total 。total=0。 oneclass.addStu(stu。 *getClass(Classname=oneclass。 void Score:setInfo(char * sname,int cre,float s/ 设置精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 19 页个人资料整理仅限学习使用 strcpy(name,sname。this-credit=cre 。this-score=s。 void Person:setInfo(char * pName,int pAge,char pSex/设置 strcpy(name,pName。this-age=pAge 。this-sex=pSex。 void Student:setInfo(char * sID,char * sName,int age,char sex,char *clas/设置 strcpy(name,sName。strcpy(stuId,sID 。strcpy(className,clas。this-age=age。this-sex=sex。 /2.运用文件流录入学生信息void readFromFile(/ 导入文件 M: char stid10 。 char stuName40 。 float Age 。 char sex。 char classname10。 char kechen40。 int credit 。float soc。int num。int courceNum 。char fileName40 。float total 。string str。coutfileName 。ifstream fin(fileName 。if(!fin/ 文件不存在 cout 不存在文件! 。istringstream sin(str 。if(sinnum stuNum+=num 。for(int i=0 。i / 循环 num 次,每次读入一个学生信息 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 19 页个人资料整理仅限学习使用Student stu。getline(fin,str 。 /读入第一行istringstream sin1(str 。 /定义字符串流对象sin1 sin1stidstuNameAgesexclassname 。stu.setInfo(stid,stuName,Age,sex,classname。getline(fin,str 。istringstream sin2(str 。 /定义字符串流对象sin2 sin2courceNum 。/getline(fin,str 。for(int j=0 。j getline(fin,str 。istringstream sin3(str 。sin3kechencreditsoc 。Score oneScore1。oneScore1.setInfo(kechen,credit,soc。total+=soc。stu.addScore(oneScore1。/getline(fin,str 。 if(getClass(classname=NULL Class aClassname 。aClassname.setclassname(classname 。stu.settotal(total。total=0。aClassname.addStu(stu。allClass.push_back(aClassname。 else Class oneclass =*getClass(classname。 stu.settotal(total 。total=0。 oneclass.addStu(stu。 *getClass(classname=oneclass。 - 3.2 学生信息管理功能模块的实现/1 学生信息显示:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 19 页个人资料整理仅限学习使用void Student:print(/ 输入一个学生的个人全部信息 cout 学 号 : 姓 名 : 性 别 : 班级: n 。for(int k=0 。k。k+/ 遍历该学生的score输入全部的成绩信息 cout课程: 学分: 成绩 endl 。 cout for(int i=0 。i 。i+/ 遍历 allClass Class acls=allClassi 。cout 这是 班endl 。for(int c=0 。c。c+/ 遍历 allClassi 。 Student ast=acls.stuc。ast.print(。/输入该学生的个人全部信息 /2:学生信息添加: readFormKeyboard(/ 手动添加/3:学生信息删除:void delSut(/ 删除学生信息 char*stid。coutstid 。Class twoClass。bool check=twoClass.delSut(stid 。if(check cout 删除成功! 。 else 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 19 页个人资料整理仅限学习使用cout/ 删除信息 for(int h=0 。h。h+/ 遍历,查找是否有存在学号为id 的学生 Class bcls=allClassh 。for(int x=0 。x 。x+ Student bst=bcls.stux 。 char*asid=bst.getStuId( 。if(asid=id stu.erase(stu.begin(。return true。 return false。 /4:学生信息修改:bool Class:reviseStu(char * id/ 修改信息 char sid10 。char name40。int age。char sex。char Classname10。string str。int num。char aid10 。long nend。for(int t=0 。t。t+/ 遍历各个班级 Class ccls=allClasst 。for(int y=0 。y 。y+ Student cst=ccls.stuy 。if(strcmp(cst.getStuId(,id=0/比较字符串是否相同 cout 请输入用户的新信息。coutsid 。coutname。coutage。coutsex。coutClassname。Student ostu。ostu.setInfo(sid,name,age,sex,Classname。/重新设置对象属性;ccls.stuy=ostu 。allClasst.stuy=ostu 。/赋值return true。 return false。 3. 3.学生成绩管理功能模块实现/1.按学号从小到大排列void Class:sortById(/ 学号排序 for(int i=0 。i 。i+/ 冒泡排序法 for(int j=0 。j-i-1 。j+ if(strcmp(stuj.getStuId(,stuj+1.getStuId(0/判 断 字 符 串 的 大小 Student temp。temp=stuj 。stuj=stui 。stui=temp 。/交换位置 /h=sj 。sj=sj+1 。sj+1=h 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 19 页个人资料整理仅限学习使用 /2.按总成绩由高到底排列void Class:sortByScore(/ 对每个班级分别进行成绩排序 Score aSco。 Student temp。for(int a=0 。a。a+/ 遍历 allClass for(int b=0 。b 。b+/ 冒泡排序 for(int c=0 。c-b-1 。c+ if(allClassa.stuc.gettotal(/比较总成绩 temp=allClassa.stuc。allClassa.stuc=allClassa.stuc+1。allClassa.stuc+1=temp 。 /3.输出所有60 分一下的学生void Class:printLess60(/ 输出 60 分一下的 Score aSco。for(int i=0 。i 。i+ Class Ccls=allClassi 。for(int k=0 。k 。k+ Student tstu=Ccls.stuk 。for(int y=0 。y 。y+/ 遍历学生的各门成绩 aSco=tstu.scorey。if(aSco.getscore(/ 判断是否低于60分 Ccls.stuk.print( 。 /输入该学生的个人信息y=tstu.score.size(。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 19 页个人资料整理仅限学习使用 / 4.输出平均分在80 分以上的学生信息void Class:printMore80(/ 输出平均分超过80 的 float SOC=0 。Score aSco。for(int i=0 。i 。i+/ 遍历全部班级 Class Ccls=allClassi 。for(int k=0 。k 。k+/ 遍历全部学生 Student tstu=Ccls.stuk 。SOC=Ccls.stuk.gettotle( 。/获取成绩SOC=SOC/Ccls.stuk.score.size( 。/求平均分if(SOC80 Ccls.stuk.print( 。 /输入各人信息cout 平均分: SOC / 根据 ID 找学生 Student Tstu。Class Mcls。for(int i=0 。i 。i+/ 遍历 Mcls=allClassi 。for(int k=0 。k 。k+ Tstu=Mcls.stuk 。if(strcmp(Tstu.getStuId(,id=0/比较字符串是否相等; Tstu.print(。return true。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 19 页个人资料整理仅限学习使用 cout Student tstu。Class Bcls。for(int i=0 。i 。i+ Bcls=allClassi 。for(int k=0 。k 。k+ tstu=Bcls.stuk 。if(strcmp(tstu.getname(,name=0/ 比较两字符串 tstu.print( 。/输出学生个人信息return true。 cout/ 查找指定班级的学生: char C10。Student Astu。cout 请输入你要查询的班级名字:C 。for(int i=0 。i 。i+/ 遍历 if(strcmp(allClassi.getclassName(,C=0/比较字符串 for(int k=0 。k 。k+/ 遍历该班级全部学生 Astu=allClassi.stuk。cout 第k+1 个学生 。/输出学生个人信息精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 19 页个人资料整理仅限学习使用 3. 4.保存模块实现void writefile(/ 写入文件,把学生信息保存在指定文件 char filename40 。coutfilename 。ofstream outfile(filename 。/创建文件流对象vector sstu。Score Tscor。if(!outfile/ 文件不存在,生成指定文件 cout 。 outfile.seekp(0,ios:end 。设定指针位置outfilestuNumendl 。 /写入for(int i=0 。i 。i+ sstu=allClassi.stu 。for(int k=0 。k。 k+遍历学生,写入各学生个人信息 outfile endl。outfileendl 。for(int sk=0。sk。 sk+/遍历学生成绩、写入文件 Tscor=sstuk.scoresk 。outfile 。/关闭文件 4.总结问题:对 C+语言的不熟悉,思考问题不严谨,对知识的了解程度低,动手能力偏低,实验心得:设计程序所需要的是一个好的思想路线,思考问题须要紧,建议:增添一些涉及抽象类,接口,要运用到继承,多态等面向对象的工程,老师适当讲一些有关设计模式的知识。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 19 页

    注意事项

    本文(2022年高语言课程方案文档要求 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开