




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题名称 c+面向对象程序设计课程设计报告 - 1 - c+课程设计报告课程设计报告 课程设计题目:学籍管理系统课程设计题目:学籍管理系统 ii 2011 年年 9 月月 4 日日 课题名称 c+面向对象程序设计课程设计报告 - 2 - 【内容提要】学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修 改, 统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的 知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相 关数据,运用了指针实现相应功能函数的功能,运用了 student ,两个类实现面 向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制程序 的调试。 【关键字】 学籍管理 vc+6.0 面向对象 程序控制 类 【任务书】 面向对象技术与面向对象技术与 c+c+ +课程设计任务书课程设计任务书 课 程面向对象技术与 c+ 班级 100601-604 指导教师姜虹 题 目学籍管理系统 2完成时间2011 年 8 月 29 日至 2011 年 9 月 2 日 主要内容 问题描述(功能要求): 实现数据录入,查询、排序和删除功能,详细要求见后 设计报告要求 1封面:(格式附后) 2课程设计任务书 3课程设计报告: 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料 说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字 迹工整(也可用以打印),文字不少于 5000 字,并装订成册。 星期 周次 一二三四五六日 第 2 周 1-41-41-41-41-4 上机时间安排 指导时 间地点 上机时间,e506 版面要求 1.题目用黑体三号,段后距 18 磅(或 1 行) ,居中对齐; 2.标题用黑体四号,段前、段后距 6 磅(或 0.3 行) ; 3.正文用小四号宋体,行距为 1.25 倍行距; 4.标题按“一” 、 “” 、 “1” 、 “”顺序编号。 课题名称 c+面向对象程序设计课程设计报告 - 3 - 课题名称 c+面向对象程序设计课程设计报告 - 4 - 目目目 录录录 一一 概述概述.3 二二 系统分析系统分析.3 (一)系统的实现.3 (二)实现的基本功能.3 (三)拓展.4 三三 设计设计.4 (一) 系统功能设计.4 (二) 类设计.4 (三) 函数设计.4 (四)流程图.5 四四 主程序主程序.7 (一)代码.7 (二)运行结果24 五五 不足之处不足之处24 六六 心得体会心得体会24 七七 参考文献参考文献 25 课题名称 c+面向对象程序设计课程设计报告 - 5 - 一一 概述:概述: (一)课程设计的任务: 用 c+面向对象程序设计语言编写一个小型的学籍管理系统,要求 数据的录入、查询、排序和删除。 (二)系统特点: 系统要能够对相应的数据进行很好的测试,系统的统计对每一科 的 总成绩,平均成绩,及格律都进行了统计;系统数据的录入以手工录 入: 系统统计学生的基本信息较全面包括学号,姓名,性别,学分,平时 成 绩,卷面成绩,综合成绩,实得学分、实得总学分;程序中查找运用 了 两种查找方式即学号查找和姓名查找。 (三)我的工作: 在小组中我负责资料的查找和类的编写,以及和大家一起对程序 进行分析和修改。 二二 系统分析系统分析 (一)系统的实现 1、对任务书做仔细分析,查询资料,对程序有一个大概思路,并 做出相应的拓展。 2、画出流程图,根据流程图编写程序。 3、上机对程序进行调试,修改,完善。 4、整理资料,撰写课程设计报告。 (二)实现的基本功能 1、学生基本信息的录入包括学号、姓名、性别等。 课题名称 c+面向对象程序设计课程设计报告 - 6 - 2、数据的查询(学生基本情况查询成绩查询) 3、实得学分的计算 4、学生信息的删除 (三)拓展 1、学生数据的修改 2、学生成绩的统计 3、学生数据的插入 三三 设计设计 (一)功能设计(结构图) (二)类的设计 类:class 数据成员:学号、姓名、性别、学分、平时成绩、卷面成绩、 综合成绩、实得学分、实得总学分 课题名称 c+面向对象程序设计课程设计报告 - 7 - (三)函数的设计 函数:input(录入数据) asearch(基本信息查询) bsearch(成 绩查询)change(修改数据) shanchu(删除数据) tongji (统计数据)show(显示数据) display(显示菜单) sdxfjs (计算实得学分) (四)流程图 1、主函数流程图 ? y n 2、增加函数流程图 id1 创建学生类 student 根据输入 执行操作 学生数加 1 输入成绩 输入成绩 创建学生对象节点 学生节点加入链表 课题名称 c+面向对象程序设计课程设计报告 - 8 - 3、修改函数 4、查找函数 5、数据录入函数流程图 id ? 输入学生姓名或学号 开始 输入查找学生的姓名或学号 学生基本情况查询 学生成绩查询 显示信息 结束 开始 输入学生信息 是否继续录入 课题名称 c+面向对象程序设计课程设计报告 - 9 - y n 6、统计函数流程图 是 否 四四 主程序主程序 (一) 代码 /类的定义与函数的声明,student.h #include #include #include using namespace std; /学生成绩结构体/ struct score float yw;/语文成绩 float sx;/数学成绩 float yy;/英语成绩 float wl;/物理成绩 结束 开始 输入要统计的科目 显示该科目信息 是否继续统计 结束 课题名称 c+面向对象程序设计课程设计报告 - 10 - float cjj;/c+成绩 float sum;/总成绩 float avar;/平均成绩 float zxf;/实得总学分 struct score *next;/定义结构指针 next ; /学生数据类/ class student public: student() student()/析构函数 string mun;/学号 string name;/姓名 string sex;/性别 score xf;/学分 score pscj; /平时成绩 score jmcj; /卷面成绩 score zhcj;/综合成绩; score sdxf; /实得学分 score sdzxf;/实得总学分 class student *next;/定义结构指针 next ; /函数声明/ void input(student *head);/录入数据 void asearch(student *head);/学生基本信息查询 void bsearch(student *head);/成绩查询 void change(student *head);/修改数据 void shanchu(student *head);/删除数据 void tongji(student *head);/统计数据 void show(student *head);/显示数据 void display();/显示菜单 float sdxfjs (float zhcj,float xf);/计算实得学分 /类的实现与函数的定义,student.cpp #include #include #include using namespace std; int amount=0; /记录学生个数 课题名称 c+面向对象程序设计课程设计报告 - 11 - /显示菜单/ void display() coutnext; while(stu!=null) coutnext; /学生数据录入/ void input(student *head) char c; int j=0; student *p=head; do student *stu=new student;/动态创建对象,调用默认构造函数进行初始化学生 学籍管理系统的数据 cout(*stu).mun; cout(*stu).name; cout(*stu).sex; cout(*stu).pscj.yw; cout(*stu).jmcj.yw; cout(*stu).xf.yw; cout(*stu).pscj.sx; cout(*stu).jmcj.sx; 课题名称 c+面向对象程序设计课程设计报告 - 13 - cout(*stu).xf.sx; cout(*stu).pscj.yy; cout(*stu).jmcj.yy; cout(*stu).xf.yy; cout(*stu).pscj.wl; cout(*stu).jmcj.wl; cout(*stu).xf.wl; cout(*stu).pscj.cjj; cout(*stu).jmcj.cjj; cout(*stu).xf.cjj; /综合成绩的计算/ (*stu).zhcj.yw=(*stu).pscj.yw)*0.30+(*stu).jmcj.yw)*0.70; (*stu).zhcj.sx=(*stu).pscj.sx)*0.30+(*stu).jmcj.sx)*0.70; (*stu).zhcj.yy=(*stu).pscj.yy)*0.30+(*stu).jmcj.yy)*0.70; (*stu).zhcj.wl=(*stu).pscj.wl)*0.30+(*stu).jmcj.wl)*0.70; (*stu).zhcj.cjj=(*stu).pscj.cjj)*0.30+(*stu).jmcj.cjj)*0.70; /总成绩和平均成绩的计算/ (*stu).zhcj.sum=(*stu).zhcj.yw+(*stu).zhcj.sx+(*stu).zhcj.yy+(*stu).zhcj.wl+(*stu).zhcj.c jj; (*stu).zhcj.avar=(*stu).zhcj.sum/5.0; /实得学分的计算/ (*stu).sdxf.yw=sdxfjs(*stu).zhcj.yw,(*stu).xf.yw); (*stu).sdxf.sx=sdxfjs(*stu).zhcj.sx,(*stu).xf.sx); (*stu).sdxf.yy=sdxfjs(*stu).zhcj.yy,(*stu).xf.yy); (*stu).sdxf.wl=sdxfjs(*stu).zhcj.wl,(*stu).xf.wl); (*stu).sdxf.cjj=sdxfjs(*stu).zhcj.cjj,(*stu).xf.cjj); 课题名称 c+面向对象程序设计课程设计报告 - 14 - (*stu).sdzxf.zxf=(*stu).sdxf.yw+(*stu).sdxf.sx+(*stu).sdxf.yy+(*stu).sdxf.wl+(*stu).sdxf. cjj; stu-next=p-next; p-next=stu; amount+;/若成功录入一个学生数据,则学生人数加 1 coutc; p=p-next; while(c!=y while(c=y); j+; coutnext; bool flag=0; coutname; do if (stu!=null coutnext; while(stu!=null); if(flag=0) coutc; while(c!=y while(c=y); /学生成绩查询/ void bsearch(student *head) 课题名称 c+面向对象程序设计课程设计报告 - 16 - char c; string xh; do student *stu=head-next; bool flag=0; coutxh; do if (stu!=null coutnext; while(stu!=null); if(flag=0) coutc; while(c!=y while(c=y); /学生数据的修改/ void change(student *head) string name; char c; do bool flag2=0; student *stu=head-next; coutname; do if (name=(*stu).name) /对要修改的学生进行信息修改 flag2=1; cout(*stu).mun; cout(*stu).name; cout(*stu).sex; cout(*stu).pscj.yw; cout(*stu).jmcj.yw; 课题名称 c+面向对象程序设计课程设计报告 - 18 - cout(*stu).pscj.sx; cout(*stu).jmcj.sx; cout(*stu).pscj.yy; cout(*stu).jmcj.yy; cout(*stu).pscj.wl; cout(*stu).jmcj.wl; cout(*stu).pscj.cjj; cout(*stu).jmcj.cjj; /综合成绩的计算/ (*stu).zhcj.yw=(*stu).pscj.yw)*0.30+(*stu).jmcj.yw)*0.70; (*stu).zhcj.sx=(*stu).pscj.sx)*0.30+(*stu).jmcj.sx)*0.70; (*stu).zhcj.yy=(*stu).pscj.yy)*0.30+(*stu).jmcj.yy)*0.70; (*stu).zhcj.wl=(*stu).pscj.wl)*0.30+(*stu).jmcj.wl)*0.70; (*stu).zhcj.cjj=(*stu).pscj.cjj)*0.30+(*stu).jmcj.cjj)*0.70; /总成绩和平均成绩的计算/ (*stu).zhcj.sum=(*stu).zhcj.yw+(*stu).zhcj.sx+(*stu).zhcj.yy+(*stu).zhcj.wl+(*stu).zhcj.c jj; (*stu).zhcj.avar=(*stu).zhcj.sum/5.0; /实得学分的计算/ (*stu).sdxf.yw=sdxfjs(*stu).zhcj.yw,(*stu).xf.yw); (*stu).sdxf.sx=sdxfjs(*stu).zhcj.sx,(*stu).xf.sx); (*stu).sdxf.yy=sdxfjs(*stu).zhcj.yy,(*stu).xf.yy); (*stu).sdxf.wl=sdxfjs(*stu).zhcj.wl,(*stu).xf.wl); (*stu).sdxf.cjj=sdxfjs(*stu).zhcj.cjj,(*stu).xf.cjj); (*stu).sdzxf.zxf=(*stu).sdxf.yw+(*stu).sdxf.sx+(*stu).sdxf.yy+(*stu).sdxf.wl+(*stu).sdxf. cjj; 课题名称 c+面向对象程序设计课程设计报告 - 19 - coutnext; while(stu!=null); if(flag2=0) coutc; while(c!=y while(c=y); /学生数据的删除/ void shanchu(student *head) char c; string xh; do bool flag=0; coutxh; student *q,*p; q=head; while(q-next!=null if(q-next!=null) flag=1; p=q-next; q-next=q-next-next; /要删除学生数据移走,后面数据上移 amount-;/删除一个学生,则学生人数减 1 free(p);/释放 p 指针所指向的变量所占的空间 coutc; while(c!=y while(c=y); 课题名称 c+面向对象程序设计课程设计报告 - 21 - /某科目学生成绩的统计/ void tongji(student *head) char z; string kemu; do int i,a,b,c,d,e; a=b=c=d=e=0;/初始化统计各成绩段人数的参数 student *stu=head-next; bool flag=0; coutkemu; do if(stu!=null i = (*stu).zhcj.yw/10; if(stu!=null i = (*stu).zhcj.sx/10; if(stu!=null i = (*stu).zhcj.yy/10; if(stu!=null i = (*stu).zhcj.wl/10; if(stu!=null i = (*stu).zhcj.cjj/10; switch (i) case 10: 课题名称 c+面向对象程序设计课程设计报告 - 22 - case 9: a+;/综合成绩在 90-100 之间的人数统计 break; case 8: b+;/综合成绩在 80-90 之间的人数统计 break; case 7: c+;/综合成绩在 70-80 之间的人数统计 break; case 6: d+;/综合成绩在 60-70 之间的人数统计 break; default: e+;/综合成绩在 60 以下的人数统计 break; stu=stu-next; while(stu!=null); if(flag=1)/输出统计科目各分数段的人数 coutz; while(z!=y while(z=y); /实得学分计算/ float sdxfjs (float zhcj,float xf) int i; 课题名称 c+面向对象程序设计课程设计报告 - 23 - float sdxf; i = zhcj/10; switch (i) case 10: case 9: sdxf=xf;/综合成绩在 90-100 之间 ,应得学分=学分*100% break; case 8: sdxf=xf*0.8;/综合成绩在 80-90 之间 ,应得学分=学分*80% break; case 7: sdxf=xf*0.75; /综合成绩在 70-80 之间 ,应得学分=学分*75% break; case 6: sdxf=xf*0.6;/综合成绩在 60-70 之间 ,应得学分=学分*60% break; default: sdxf=0;/综合成绩在 60 以下 ,应得学分=学分*0% break; return (sdxf); /主函数,main.cpp #include #include #include using namespace std; /主函数/ void main() char x; bool flag2=0; student *head=new student;/动态创建对象,调用默认构造函数进行初始化学生 学籍管理系统的数据 head-next=null; coutx;/选择操作 if(x=1/查询内容选择 while (z!=a switch(z) 课题名称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我的梦想演讲稿话题方向性7篇
- 朋友间的真诚友谊写人作文5篇
- 音乐专业考试试题及答案
- 易溶盐考试试题及答案
- 六一公司关爱活动方案
- 六一创意足球活动方案
- 六一小班活动方案
- 六一摊位义卖活动方案
- 六一检察活动方案
- 六一活动创意活动方案
- 2025-2030中国劳务派遣行业市场发展现状及前景趋势与投资研究报告
- 2025-2030律师事务所项目商业计划书
- 贵州省毕节地区大方县2024-2025学年小升初常考易错数学检测卷含解析
- 大型住宅小区施工组织设计
- 旅行社代订业务合同模板
- 2025年中考化学总复习必考基础知识复习汇编(完整版)
- 上海民办华二某中学初一新生分班(摸底)数学模拟考试(含答案)
- 公司事故隐患内部报告奖励制度
- 2022年7月国家开放大学汉语言文学本科《中国当代文学专题》期末纸质考试试题及答案
- 2025年建筑工程典型安全质量事故案例分析大量案例(共103张)
- 2025年中国国际货运航空股份有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论