C++课程设计样本_第1页
C++课程设计样本_第2页
C++课程设计样本_第3页
C++课程设计样本_第4页
C++课程设计样本_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。大 连 科 技 学 院题 目 好学生C+成绩管理系统 学生姓名 安凯辰 专业班级 计算机08-1班 指导教师 王影 刘瑞杰 职 称 高工 讲师 所在单位 信息科学系计算机教研室 教学部主任 王立娟 完成日期 9月课程设计报告单学号姓名安凯辰专业班级计算机08-1考 核 项 目评分备注1平时工作态度及遵守纪律情况( 10分) 2掌握基本理论、 关键知识、 基本技能的程度和阅读参考资料的水平( 10分) 3独立工作能力、 综合运用所学知识分析和解决问题能力及实际工作能力提高的程度( 20分) 4完成课程设计说明书及软件的情况与水平( 小组分

2、工情况、 规范性、 整洁清楚、 叙述完整性、 思路清晰程度、 工作量及实际运行情况和创新性) ( 60分) 总评成绩综 合 评 定: ( 优、 良、 中、 及格、 不及格) 指导教师签字: 面向对象程序设计(A)课程设计任务书一、 课程设计任务及要求: 任务: 为了解决中高学校信息混乱不易查找、 减轻相关工作压力等问题。本次课程设计开发了这套稳定可靠、 操作简单、 相对安全的在校学生C+成绩管理系统。该系统将对学生成绩信息进行管理, 输入N个学生的成绩, 包括学号, 姓名, 成绩, 经过插入、 删除、 修改、 输出优秀成绩人数等操作对系统进行操作。 要求: (1) 根据软件系统开发的一般原则,

3、 完成相应系统的功能设计, 完成主要功能模块的程序实现并进行测试训练, 给出代码运行结果和相应的设计文档。能够分组进行, 但所有学生必须经历整个系统的开发全过程, 以便加深对系统开发全过程的认识。( 2) 提交课程设计报告。( 3) 指标: 要求完成课程设计报告3000字以上(约二十页); 完成所设计的题目, 设计题目的语句行数在200行语句以上。二、 工作量2周( 10个工作日) 时间三、 计划安排第1个工作日: 查找相关资料、 书籍, 阅读示例文档, 选择题目。第2个工作日第3个工作日: 设计程序结构、 模块图。第4个工作日第9个工作日: 完成程序的编码, 而且自己调试、 测试。穿插进行课

4、程设计报告的撰写。第10个工作日: 上交课程设计报告, 由教师检查软件测试效果、 检查课程设计报告, 给出学生成绩。指导教师签字: 目录 TOC o 1-3 u 1需求分析 PAGEREF _Toc h 12概要设计 PAGEREF _Toc h 23详细设计 PAGEREF _Toc h 33.1主函数流程图 PAGEREF _Toc h 33.2类的设计 PAGEREF _Toc h 33.3函数的设计 PAGEREF _Toc h 34编码 PAGEREF _Toc h 44.1功能函数代码 PAGEREF _Toc h 44.2程序运行环境 PAGEREF _Toc h 75调试分析

5、PAGEREF _Toc h 96测试结果及运行效果 PAGEREF _Toc h 107系统开发所用到的技术 PAGEREF _Toc h 14参考文献 PAGEREF _Toc h 15课程设计实践总结 PAGEREF _Toc h 16附录 PAGEREF _Toc h 171需求分析用链表数据结构完成一个学生C+成绩管理系统, 此系统具体功能如下: ( 1) 学生成绩输入功能用户从键盘输入每个学生的信息: 学号、 姓名、 C+成绩。( 2) 文件保存功能a 学生成绩等信息存为一个数据文件, 数据文件可在程序中打开、 修改和重新保存。b 用户输入学生成绩可随时保存数据文件。( 3) 文件

6、打开功能a 程序只能对当前打开的数据文件进行编辑。( 4) 查询功能a 浏览所有学生成绩; b 按学号查询学生成绩; c 查询某个学生成绩;d 查询及格学生个数和优秀成绩学生个数。( 5) 修改功能对已经存在的学生成绩进行修改, 并保存。( 6) 报表输出功能a 按学号输出一个学生信息: 学号、 姓名、 C+成绩, 到屏幕和文件。 2概要设计图2-1函数的功能设计图设计思路: 1.宏定义N, 因为题目要求输入多个学生信息, 在程序过程中比较繁琐。而使用宏定义能够大大减轻负担。2.定义一个学生结构体, 声明结构体类型Student。包括一个数组num, 能够容纳6个字符, 包括6个整型变量。3.

7、定义Student类型的数组stu和数组stud。struct结构体名 成员表列;4.构建各个模块: 输入模块, 统计优秀成绩模块, 删除模块, 修改模块, 查找模块, 菜单模块。5调试验证, 运行修改程序, 及时查漏补缺。3详细设计3.1主函数流程图图3-1主函数流程图3.2类的设计类: Student数据成员: 编号、 学生姓名、 C+成绩3.3函数的设计函数: inputData(输入成绩) searchScore( 查询成绩) modifyScore( 修改成绩) outputData( 打印成绩) count( 统计及格人数和优秀成绩人数) exitSys( 退出系统) 4编码4.1

8、功能函数代码( 1) 输入成绩代码: void inputData(LinkList *head) /输入成绩int score;char name20;int stuNo;cout请输入姓名: name;cout请输入C+成绩: score;cout请输入编号: stuNo;insertLinkList(head,name,score,stuNo);( 2) 查询成绩代码: void searchScore(LinkList *head) /查询成绩。int stuNo;cout请输入编号: stuNo;LinkList * p =NULL;p =head-next;while(p & p-

9、Data.stuNo != stuNo)p = p-next;if(!p)coutNO RESULT!Data.stuNo = stuNo)coutstuNO name score endl;coutData.stuNo D Data.scoreendl;( 3) 修改程序代码: void modifyScore(LinkList *head) /修改成绩。int stuNo;cout请输入编号: stuNo;cin.get();LinkList * p =NULL;p =head-next;while(p & p-Data.stuNo != stuNo)p = p-next;

10、if(!p)coutNO RESULT!Data.stuNo = stuNo)int score;cout请输入成绩: score;cin.get();p-Data.score = score;cout改后的信息: endl;coutstuNO name score endl;coutData.stuNo D Data.scorenext;coutstuNO name score endl;while(p)coutData.stuNo D Data.scorenext;4.2程序运行环境本系统是有VC+ 6.0中文版本编译的, 首先创立了一个Student的工程

11、。图4-1在VC+中创立一个student工程其次, 在Student工程中创立一个Student的类, 在student类中的student.cpp中进行编译。图4-2在student.cpp中对程序进行编译图4-3编译成功, 弹出cmd5调试分析此次c+课程设计, 在指导教师的教导下, 我学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识, 然后系统分析与系统设计, 最后是代码设计与调试。程序实现上, 设计了简单的查询界面, 将各个功能集中出来按照程序编写原则, 便于查询。根据C+课程所学的概念、 理论和方法, 按照C+程序设计的基本步骤, 设计出一个适当规

12、模的程序; 进一步加深对C+语言的理解和掌握。理论联系实际, 加深和巩固所学的理论知识, 提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的, 程序的编写原则很重要, 只要我们在编程, 就必须不断改进, 才能更好提高编程能力。尽管大家很认真了, 但仍有些许不足之处, 这也正暴露了我们学习中的诸多漏洞, 在今后仍得继续努力, 踏踏实实的学好基础知识。由于对C+知识的了解不够透彻以及时间问题, 本程序没有能够实现排序功能, 在今后我会继续努力不断完善本程序功能。6测试结果及运行效果图6-1程序的主页面图6-2程序的第一个功能: 输入学生信息及成绩图6-3程序的第二个功能: 查询功

13、能图6-4程序的第三个功能: 输出所有学生的成绩图6-5修改功能界面图6-6 退出系统界面图6-7输出优秀成绩和及格人数功能7系统开发所用到的技术本程序是使用C+语言编写的。经过VC+ 6.0进行编译的, 是经过cmd运行的。Visual C+6.0简称VC或VC6.0, 是微软推出的一款C+编辑器, 将”高级语言”翻译成”机器语言( 低级语言) ”的程序。Visual C+6.0开发环境是基于windows操作系统的可视化、 面向对象的集成开发环境( Integrated Development Environment, IDE) 。在该环境下用户能够开发有关C和C+的各种应用程序, 应用程

14、序包括建立、 编辑、 浏览、 保存、 编译、 链接和调试等操作, 这些操作都能够经过单击菜单选项或工具栏按钮来完成, 使用方便、 快捷。它还提供了项目工作区( WorkSpace) 、 应用程序向导( AppWizard) 、 类操作向导( ClassWizard) 和WizardBar等实用编辑工具。Visual C+6.0的最大优点就是提供了功能强大的MFC类库, MFC是一个很大的C+类层次结构, 其中封装了大量的类及其函数, 很多windows程序所共有的标准内容能够由MFC的类来提供, MFC类为这些内容提供了用户接口的标准实现方法, 程序员所需要做的就是经过预定义的接口把具体应用程

15、序特有的东西填入这个轮廓。命令提示符窗口( cmd.exe) 是Windows的”标配”组件, 它能够实现用户与操作系统的直接交流, 并负责用户输入的所有命令的解释和支持。参考文献1 谭浩强.C+面向对象程序设计.北京: 清华大学出版社. 2 谭浩强.C程序设计( 第三版) .北京: 清华大学出版社. 3 谭浩强编著.C程序设计题解与上机指导( 第三版) .北京: 清华大学出版社. 4 StanleyB.Lippman,JoseeLaijoie等.C+ primer(中文版).人民邮电出版.5 夏云庆, Visual C+6.0数据库高级编程.北京: 希望电子出版社. 6 Dcoder编著.C

16、/C+程序设计.北京: 中国铁道出版社. 课程设计总结课程设计是培养学生综合运用所学知识, 发现、 提出、 分析和解决实际问题, 锻炼解决实践能力的重要环节, 是对学生实际工作能力的具体训练和考察的重要环节, 是对学生实际工作能力的具体训练和考察过程。回顾此次课程设计, 至今我感慨颇多, 的确, 自从拿到题目到完成整个编程, 从理论到实践, 在整整两个星期的日子里, 能够学到很多在书本上没有学到的知识, 而且巩固了以前学过的知识。经过这次课程设计是我懂得了理论与实践相结合时很重要的, 只有理论知识是远远不够的, 只有把所学的理论知识与实践结合起来, 从理论中得出结论, 才能真正提高自己的实际动

17、手能力。在此, 感谢这两个星期里老师对我的悉心指导, 帮我分析代码, 解决问题。附录1 主函数部分代码#include#include#includeusing namespace std;struct studentstrint stuNo;char name20;int score; /这里假设为整型, 其实为实数比较妥当;typedef struct linkstruct studentstr Data;struct link * next;LinkList;int linkListLen(LinkList * head) /返回链表长度, 这样能够很容易计算学生编号int len =0

18、;LinkList * p =NULL;p = head-next;while(p)len+;p=p-next;return len;LinkList * createLinkList(LinkList *head)head = new LinkList;head-Data.stuNo = -1;head-next = NULL;return head;int calcStuNo(LinkList *head)return 1000+linkListLen(head); /设置学号的一个起始值void insertLinkList(LinkList *head,char * name,int

19、score,int stuNo)LinkList *p = NULL;LinkList *q = NULL;p= new LinkList;p-Data.stuNo = calcStuNo(head);strcpy(p-D,name);p-Data.score = score;p-next = NULL;q=head;while(q-next)q = q-next;q-next = p;int menu()cout好学生C+成绩管理系统endl;cout*endl;cout*endl;cout*1-输入成绩*endl;cout*2-查询成绩*endl;cout*3-修改成绩*e

20、ndl;cout*4-输出所有学生成绩*endl;cout*5-统计及格和优秀人数*endl;cout*6-退出系统*endl;cout*endl;int innum;while(1)cout请输入你的选择: innum;cin.get();if(innum = 1 & innum = 6)break;elsecout输入有误! endl;return innum;2 输入成绩部分代码void inputData(LinkList *head) /输入成绩int score;char name20;int stuNo;cout请输入姓名: name;cout请输入C+成绩: score;cou

21、t请输入编号: stuNo;insertLinkList(head,name,score,stuNo);3 查询成绩部分代码void searchScore(LinkList *head) /查询成绩int stuNo;cout请输入编号: stuNo;LinkList * p =NULL;p =head-next;while(p & p-Data.stuNo != stuNo)p = p-next;if(!p)coutNO RESULT!Data.stuNo = stuNo)coutstuNO name score endl;coutData.stuNo D Data.sco

22、reendl;4 修改成绩部分代码void modifyScore(LinkList *head) /修改成绩int stuNo;cout请输入编号: stuNo;cin.get();LinkList * p =NULL;p =head-next;while(p & p-Data.stuNo != stuNo)p = p-next;if(!p)coutNO RESULT!Data.stuNo = stuNo)int score;cout请输入成绩: score;cin.get();p-Data.score = score;cout改后的信息: endl;coutstuNO name score endl;coutData.stuNo D Da

温馨提示

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

评论

0/150

提交评论