您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 22课程设计报告模板
北京理工大学珠海学院课程设计说明书2011—2012学年第1学期题目:学生成绩管理程序学院:计算机学院专业班级:10计算机科学与技术3班学号:100201031006100201031008学生姓名:许良锋罗森勇指导教师:陈东伟成绩:时间:2011年12月18日课程设计分工安排姓名课程设计负责工作备注许良锋显示类,文件类,和各类与函数之间的连接罗森勇接口类,文件读写实现I摘要学生成绩管理程序演示程序时,根据显示提示操作,用户可以先存储学生的成绩,然后再根据自己的需要对学生的成绩进行增删改查,根据界面的提示,然后由用户进行相应的操作。本程序使用C++语言,操作时,使用文本命令界面。关键词:登入界面功能界面文件操作类文件读写类界面显示类各相关接口类I目录第一章设计内容与目标.........................................................................1第二章总体设计.....................................................................................12.1模块化设计总方案.................................................................................12.2类的设计.................................................................................................1第三章详细设计.....................................................................................23.1学生成绩的清空和添加功能..................................错误!未定义书签。3.2指定学生成绩的删除和查找功能..........................错误!未定义书签。3.3所有学生成绩的显示功能......................................错误!未定义书签。3.4保存与安全的退出系统的功能..............................错误!未定义书签。第四章调试与测试.................................................................................74.1调试过程中的主要问题.........................................................................74.2测试过程与结果.....................................................错误!未定义书签。参考文献....................................................................................................10心得体会....................................................................................................10北京理工大学珠海学院计算机学院课程设计1第一章设计内容与目标学生成绩管理程序设计要点:使用文本命令行界面。当输入学生成绩时,系统能登录学生成绩管理系统,用户可以按照以下规则进行:【删除】:删除指定学生数据【查找】:查找指定学生数据【显示】:显示所有学生数据。【添加】:插入一条学生数据【删除】:删除指定学生数据【保存】:保存所有学生数据关键技术分析:建立文件操作类、文件读写类、界面显示类等以及各相关接口类。第二章总体设计2.1模块化设计总方案采用分布式设计为实现系统功能,本程序主要分为六个模块。它们分别为:界面类显示,,文件读写类,查找,保存,插入,删除。2.2类的设计本程序设计了3个类,界面显示类,Link类和文件读写类。2.2.1:界面类显示classNode//界面类{public:intid;//学号stringname;//姓名doubleenglish;//英语doublemath;//数学doublec;//C++doublesum;//总分Node*next;//指向下一结点的指针Node(intnid=0,stringnname=noname,//构造函数,初始化变量doublee=0,doublem=0,doublecl=0,北京理工大学珠海学院计算机学院课程设计2doubles=0);};2.2.2Link类Node::Node(intnid,stringnname,doublee,doublem,doublecl,doubles){id=nid;name=nname;next=NULL;english=e;math=m;c=cl;sum=s;}//classNOde结束//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象2.2.3文件读写类classStudent{private:Linkslink;//Link对象成员boolk;//记录数据是否被修改public:Student();voidstudentClear();voidstudentInsert();voidstudentDelete();voidstudentFind();voidstudentView();voidstudentLoad();voidstudentSave();voidExit();//退出程序voidshowMenu();//显示菜单voidshowTip();//显示操作提示voiddoMenu(charn);//执行相应菜单项功能};第三章详细设计3.1学生成绩的清空和添加功能voidStudent::studentClear(){//清空学生记录北京理工大学珠海学院计算机学院课程设计3cout确定要清除所有记录,YorN:;chari;cini;if(i=='y'||i=='Y'){slink.linkClear();cout成功清空学生记录!endl;}else{cout记录没有任何改动~~~endl;}}voidStudent::studentInsert(){//插入学生记录Node*p=newNode();cout请输入学号:;cinp-id;cout请输入姓名:;cinp-name;if(!slink.linkFind(p-id)){//判断学号是否存在slink.linkInsert(p);k=true;}elsecout学号为p-id的学生已存在,插入失败!endl;cout请输入成绩:endl;cout英语:;cinp-english;coutendl;北京理工大学珠海学院计算机学院课程设计4cout数学:;cinp-math;coutendl;coutC++:;cinp-c;coutendl;(p-sum)=(p-english)+(p-math)+(p-c);//计算总分}voidStudent::studentDelete(){//删除学生记录inti;if(slink.linkIsEmpty())//链表为空的情况cout没有学生记录!endl;else{cout请输入学号:;cini;if(slink.linkDelete(i)){cout成功删除学号为i的学生记录!endl;k=true;}elsecout没有找到学号为i的学生!endl;}}3.2指定学生成绩的删除和查找功能voidStudent::studentFind(){//查找某学号的学生记录intn;Node*p;北京理工大学珠海学院计算机学院课程设计5if(slink.linkIsEmpty())//链表为空的情况cout没有学生记录!endl;else{cout请输入要查找的学号:;cinn;p=slink.linkFind(n);//获得找到的结点的指针if(p){//指针值不为NULL时(p-sum)=(p-english)+(p-math)+(p-c);//计算总分coutsetw(6)学号setw(8)姓名setw(8)英语setw(8)数学setw(8)C++setw(8)总分endl;coutsetw(6)p-idsetw(8)p-namesetw(8)p-englishsetw(8)p-mathsetw(8)p-csetw(8)p-sumendl;}else//指针值为NULL时cout没有找到学号为n的学生记录!endl;}}3.3所有学生成绩的显示功能voidStudent::studentView(){//显示所有学生的记录if(slink.linkIsEmpty())cout没有学生记录!endl;elseslink.linkView();}voidStudent::studentLoad(){//从文件中读入数据,创建链表Node*p;intnid;北京理工大学珠海学院计算机学院课程设计6ifstreaminfile(data.txt);if(!infile)cerr错误:、不能打开!\n;elsewhile(infilenid){//读取学号,直到读空p=newNode();p-id=nid;infilep-namep-englishp-mathp-cp-sum;//读取姓名slink.linkInsert(p);}infile.close();//关闭文件}3.4保存与安全的退出系统的功能北京理工大学珠海学院计算机学院课程设计7voidStudent::studentSave(){//将数据保存到文件Node*p=slink.getHead();ofstreamoutfile(data.txt);if(!outfile)cerr错误:数据文件不能打开!\n;else{while(p){outfilep-id''p-name''p-english''p-math''p-c''p-sumendl;p=p-next;}k=false;cout保存成功!endl;}}voidStudent::Exit(){chars='Y';if(k){//判断数据是否修改cout数据已经改变,是否保存?(y/n):;cins;if(s=='y'||s=='Y')studentSave();}cout已安全退出,;system(pause);exit(0);}第四章调试与测试4.1调试过程中的主要问题1.Link类的创建问题:一开始我们一直创建不好连接类,有时会少定义那些变量。2.文件的读取问题:北京理工大学珠海学院计算机学院课程设计84.2测试过程与结果添加功能北京理工大学珠海学院计算机学院课程设计9查找功能显示功能北京理工大学珠海学院计算机学院课程设计10参考文献【1】P.J.Deitel&H.M.Deitel著《C++大学教程》(第七版)[M],电子工业出版社【2】谭浩强著《C程序设计》(第四版)[M],清华大学出版社心得体会1.通过此程序更加明白了类与类之间的调用,类与函数的搭配。2.界面的排版以及边框的修
本文标题:22课程设计报告模板
链接地址:https://www.777doc.com/doc-3508983 .html