




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训任务书一、题目1、电话簿管理系统2、商品销售管理系统3、基于内存的学籍管理系统(以windows系统实现为主,尝试Linux平台下的程序实现)二、实训的性质和任务1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。三、实训的基本要求通过本次实训,学生应达到以下几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。2、知识要求熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。3、能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。四、实训内容及要求天/日期任务描述通过标准第1天说明系统功能,明确课题任务与涉及的要求、分配具体的任务。分析实训内容,讲解相关知识,引导学生入门。学生理解题目第2天学生具体分析第一个实训题目,明确思路和任务,并可以查询相关书籍、资料,设计出每一个模块的流程图;理解并设计相关的数据类型定义。画出相关流程图第3天编写printheader()、printdata()两个函数代码通过第4天编写Disp()、stringinput()两个函数代码通过第5天编写Locate()、Add()两个函数,完成定位和添加功能代码通过第6天编写Quran()、Del()两个函数,完成查询和删除功能代码通过第7天编写Insert()、Modify()函数,实现插入和修改功能代码通过第8天编写Save()、SelectSort()两个函数,实现存盘和排序功能同上第9天编写函数main()函数,整合前面的功能模块,完成整个系统成功运行系统第10天答辩按照要求完成任务,阐述清楚。第11天撰写实训报告格式满足相关文档要求五、考核指标及成绩评定实训成绩由下面构成: 平时成绩(10%)+作品(70%)+实训报告(20%)=总评成绩作品成绩评定标准:1、全部完成90-1002、主要功能完成70-903、部分功能完成60-704、少部分完成40-605、几乎没做0-40完 成 期 限: 年 月 日指导教师签章: 专业负责人签章: 教学院长签章 年 月 日 目录1 实训简介 1.1 实训任务 1.2 题目介绍 1.3 主要内容 1.4 基本要求2 整体设计流程 2.1 整体设计思路 2.2 设计流程 2.3 包含的模块3 详细设计以及设计的实现 3.1.录入信息模块的设计与实现 3.2.输出信息的设计与实现 3.3.修改信息模块的设计与实现 3.4.插入信息的设计与实现 3.5 查询信息的设计与实现 3.6 排序信息的设计与实现 3.7 删除信息的设计与实现4 总结5 参考文献6 附录(源代码)正 文1 实训简介1.1实训任务对程序设计的基本知识与基本技能有进一步的掌握,能用基本的语言以自己的逻辑实现自定义的功能来进行小型应用程序开发。通过本次实训培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。1.2题目介绍设计一个基于线性顺序排列的vector动态数组的学生学籍管理系统,能实现对学生信息进行录入,增加,修改,删除,查询,插入,排序和输出等基本操作。1.3主要内容管理系统应该实现以下功能:1、 能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英成绩,专业课成绩。2、 能在屏幕上以列表的方式输出所有学生的信息3、 能以文件形式保存学生信息。4、 能批量增加学生信息与插入任意位置学生信息5、 能根据输入的学号从动态数组中删除学生的记录。6、 能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、能实现排序功能,根据计算得出的平均成绩以降序排序。1.4 基本要求1.素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。2知识要求熟悉C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。3.能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。2 整体设计流程2.1 整体设计思路222.2 设计流程2.2.1需求分析阶段:1、能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英成绩,专业课成绩。2、 能在屏幕上以列表的方式输出所有学生的信息3、 能以文件形式保存学生信息。4、 能批量增加学生信息与插入任意位置学生信息5、 能根据输入的学号从动态数组中删除学生的记录。6、 能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、 能实现排序功能,根据计算得出的平均成绩以降序排序2.2.2逻辑设计阶段1、创建学生个体类class student(),以vector动态数组存储学生对象信息,2、定义能对学生信息数据操作的增删改查等方法。3、在main()中调用定义的各种方法进行功能的实现。2.3 包含的模块 根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、输出学生信息模块、删除学生信息模块、查询学生信息模块、插入学生信息模块。系统功能机构图如下: 学籍管理系统排序学生信息查询学生信息修改学生信息插入学生信息删除学生信息输出学生信息录入学生信息存到文本文件屏幕列表打印直接修改全部任选一项修改2 详细设计以及设计的实现主函数设计: 开始 Choose!=1-9 显示主菜单创建学生信息插入学生信息浏览学生信息保存学生信息增加学生信息删除学生信息修改学生信息查询学生信息排序平均成绩接收用户选择 choose1 2 3 4 5 6 7 8 9 Y 结束 N 3.1.录入学生信息模块的设计基本逻辑:1通过stringinput()中的cin实现从键盘读入数据赋值操作以及如何计算平均成绩。2. 通过create()中的count实现屏幕上的请以以下顺序输入信息(共9个),以空格或回车隔开 学号, 姓名, 性别, 年龄, 院系, 高数,大英,专业课,并调用stringinput()方法实现学生信息的录入。效果展示:3.2.输出学生信息模块的设计1.从屏幕上展示学生信息基本逻辑:通过printheader()与printdata()定义在屏幕上分别打印出学生信息列表的表头以及表中各项数据。然后通过disp()调用以上两个函数实现输出。效果展示:2.保存到文件中输出学生信息基本逻辑:在save()方法中利用c+中的ofstream文件输出流来实现将学生信息写入到指定路径的文本数据中。效果展示:3.3.修改学生信息模块的设计基本逻辑图:效果展示:3.4.添加学生信息模块的设计1.指定位置插入学生信息逻辑图:效果展示:2.直接增加一条学生数据逻辑图:效果图:、3.5.查询学生信息模块的设计逻辑图:return;cout 未找到该学号,查询失败! endl;效果展示:3.6.排序学生信息模块的设计基本逻辑:在selectSort()函数中遍历vector对象student,并比较其average字段,使成绩按照升序排列。效果展示:3.7.删除学生信息模块的设计效果展示:4 总结本系统在VisualStudio2010下编译调试通过,可顺利运行,各项功能达到设计要求。本系统程序由一个.h头文件和一个.cpp源文件构成。采用分模块的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并产生可执行文件de.exe。5 参考文献1杨路明,C语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7重印)2谭浩强,C+程序设计.北京:清华大学出版社,2004.63杨路明,C语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,20056 附录(源代码)Student.h#ifndef VECTOR#define VECTOR#includeusing namespace std;#endifclass studentchar stu_id20;char name10;char department20;char sex3;short age;float point_math;float point_english;float point_program;double average;public:static void printheader();void stringinput();void printdata();friend bool operator=(const student &,const student &);friend class students;class studentsvector mark;public:void create();void disp();void save();void insert();void add();void del();void modify();void quran();void selectSort();void init(students &);Student.cpp#includestudent.h#ifndef VECTOR#includeusing namespace std;#endif#include#include#include#include#includevoid student:printheader()coutsetw(10)学号setw(8) 姓名setw(8)性别setw(8)年龄setw(8)院系setw(8)高数setw(8)大英setw(9)专业课setw(8)平均 this-stu_id this-name this-sex this-age this-department this-point_math this-point_english this-point_program;this-average = (this-point_math + this-point_english + this-point_program)/3.0;void student:printdata()coutsetw(8)stu_idsetw(10)namesetw(8)sexsetw(8)agesetw(8)departmentsetw(8)point_mathsetw(8)point_englishsetw(8)point_programsetw(8)averageendl;bool operator=(const student &s1,const student &s2)if(s1.stu_id = s2.stu_id)return true;elsereturn false;void students:create()int num = 0;int i = 0;student s;cout num;cout 请以以下顺序输入信息(共9个),以空格或回车隔开 endl;cout 学号, 姓名, 性别, 年龄, 院系, 高数,大英,专业课 endl;while(i num)cout 请输入第 (i+1) 个学生信息: endl;s.stringinput();mark.push_back(s);i+;cout 输入完毕,成功创建 num 个学生信息记录! printdata();void students:save()string filename;cout请输入需要有效的文件名(可指定路径,必须包含后缀名) filename;ofstream ous;ous.open(filename);oussetw(10)学号setw(8)姓名setw(8)性别setw(8)年龄setw(8)院系setw(8)高数setw(8)大英setw(9)专业课setw(8)平均average = (it-point_math + it-point_english + it-point_program)/3;oussetw(8)stu_idsetw(9)namesetw(8)sexsetw(8)agesetw(8)departmentsetw(8)point_mathsetw(8)point_englishsetw(8)point_programsetw(8)averageendl;ous.close();cout保存成功!endl;void students:add()int num = 0;int i = 0;student s;cout num;cout 请以以下顺序输入信息(共9个),以空格或回车隔开 endl;cout 学号, 姓名, 性别, 年龄, 院系, 高数,大英,专业课 endl;while(i num)cout 请输入第 (i+1) 个学生信息: endl;s.stringinput();mark.push_back(s);i+;cout 输入完毕,成功增加 num 个学生信息记录! endl;void students:del()char key20;cout 请输入要删除的学生学号! key;for(auto it = mark.begin(); it != mark.end(); it+)if(!strcmp(key,it-stu_id)mark.erase(it);cout 成功删除! endl;return;cout 未找到该学号,删除失败! endl;void students:modify()char key20;cout key;for(auto it = mark.begin(); it != mark.end(); it+)if(!strcmp(key,it-stu_id)char str20;char c;cout 请输入需更新的项,多选以逗号隔开 endl;cout 1,学号,2,姓名,3,性别,4,年龄,5,院系,6,高数,7,大英,8,专业课,0,全部 str;for(int i = 0; i strlen(str); i+)c = stri;switch(c)case 1:cout it-stu_id; break;case 2:cout it-name; break;case 3:cout it-sex; break;case 4:cout it-age; break;case 5:cout it-department; break;case 6:cout it-point_math; break;case 7:cout it-point_english; break;case 8:cout it-point_program; break;case 0:cout 请以以下顺序输入更新信息(共8个),以空格或回车隔开 endl; cout 学号, 姓名, 性别, 年龄, 院系, 高数,大英,专业课 stringinput(); break;cout 更新成功! endl;return;cout 未找到该学号,更新失败! endl;void students:quran()char key20;cout key;for(auto it = mark.begin(); it != mark.end(); it+)if(!strcmp(key,it-stu_id)student:printheader();it-printdata();cout 查询成功!;return;cout 未找到该学号,查询失败! endl;void students:selectSort()student temp;for(auto it = mark.begin(); it average is-average)temp = (*it);(*it) = (*is);(*is) = temp;cout 根据平均成绩排序完成! endl;void students:insert()int i = 0;student s;cout i;while(i(mark.size()+1)|i = 0)cout 输入位置不合法,请重新输入! i;auto it = mark.begin() + (i-1);cout 请以以下顺序输入信息(共9个),以空格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑工程班组合同签订版
- 自考英语基础试题及答案
- 租赁房产押金合同范本(含房屋租赁期限及用途限制)
- 离婚子女抚养费用及父母监护责任及财产分割合同样本
- 科研机构国际合作合同风险分析与规避措施
- 离婚协议财产分割及股权、债权、房产全面转让合同
- 师徒帮带合同6篇
- 2025年机器人级理论试题及答案
- 项目经理或管理招聘笔试题及答案2025年
- 风湿专科护士竞聘笔试题含答案2025年
- RB/T 040-2020病原微生物实验室生物安全风险管理指南
- GB/T 11021-2007电气绝缘耐热性分级
- 元数据教学讲解课件
- CCP与备货0403 (华为培训)课件
- ASCVD时代总体心血管风险评估工具的更新ppt参考课件
- 人工智能导论-课件-第2章知识图谱
- 华中8型数控系统设备连接与参数配置
- 防突管理制度汇编
- 江苏省教育科学规划课题开题报告
- 医疗器械GMP文件PUR-OP-001 Rev 01采购控制程序
- 精选商务礼仪情景模拟情景
评论
0/150
提交评论