




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实训任务书一、题目1、电话簿管理系统2、商品销售管理系统3、基于内存的学籍管理系统(以windows系统实现为主,尝试Lmux平台下的程序实现)二、实训的性质和任务1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函 数、指针、文件等等方面的基本知识和技能。2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。三、实训的基本要求通过本次实训,学生应达到以卞几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决
2、问题, 努力培养自己的独立工作能力。2、知识要求熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌 握C语句的功能、用法以及函数的调用使用和头文件的使用等。3、能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过 本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的 分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。四、实训内容及要求天/日 期任务描述通过标准第1天说明系统功能,明确课题
3、任务与涉及的要求、分配具体的任 务。分析实训内容,讲解相关知识,引导学生入门。学生理解题目第2天学生具体分析第一个实训题目,明确思路和任务,并可以查 询相关书籍、资料,设计出每一个模块的流程图:理解并设 计相关的数据类型定义。画出相关流程图第3天编写 piiiitheaderO printdata()两个函数代码通过第4天编写Disp()、stiingmputQ两个函数代码通过第5天编写Locate。、Add()两个函数,完成定位和添加功能代码通过第6天编写Quran ( )、Del ()两个函数,完成查询和删除功能代码通过第7天编写Insert ( )、Modify ()函数,实现插入和修改
4、功能代码通过第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.
5、 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实训任务对程序设计的基本知识与基本技能有进一步的掌握,能用基本的语言以自己的逻辑 实现自定义的功能来进行小型应用程序开发。通过本次实训培养学生适应岗位需要,独 立分析问题、解决问题的基本能力,以及团队合作精神。2题目介绍设计一个
6、基于线性顺序排列的vector动态数组的学生学籍管理系统,能实现对学生 信息进行录入,增加,修改,删除,查询,插入,排序和输出等基本操作。1.3主要内容管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英成 绩,专业课成绩。2、能在屏幕上以列表的方式输出所有学生的信息3、能以文件形式保存学生信息。4、能批量增加学生信息与插入任意位置学生信息5、能根据输入的学号从动态数组中删除学生的记录。6、能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、能实现排序功能,根据计算得出的平均成绩以降序排序。1.4基本要求1. 素质要求以积极认真的
7、态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题, 解决问题,努力培养自己的独立工作能力。2. 知识要求熟悉C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。3. 能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际 应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的 习惯。通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简 单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单 的、常见的系统。2整
8、体设计流程2.1整体设计思路生成执行文件2. 2设计流程2. 2.1需求分析阶段:1、能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英 成绩,专业课成绩。2、能在屏幕上以列表的方式输出所有学生的信息3、能以文件形式保存学生信息。4、能批量增加学生信息与插入任意位置学生信息5、能根据输入的学号从动态数组中删除学生的记录。6、能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、能实现排序功能,根据计算得出的平均成绩以降序排序2. 2. 2逻辑设计阶段1、创建学生个体类class student (),以vector动态数组存储学生对象信息,2、定义能对学生信息
9、数据操作的增删改查等方法。3、在main()中调用定义的各种方法进行功能的实现。2.3包含的模块根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改 学生信息模块、输出学生信息模块、删除学生信息模块、查询学生信息模块、插入学生 信息模块。系统功能机构图如下:2详细设计以及设计的实现主函数设计:choose创建学生信息浏览学生信息保存学生信息查 询 学 生 信 息排 序 平 均 成 绩插 入 学 生 信 息Choose! =1-9结束3.1.录入学生信息模块的设计基本逻辑:1. 通过stringinput ()中的cin实现从键盘读入数据赋值操作以及如何计算平均成绩。2. 通
10、过create ()中的count«实现屏幕上的请以以下顺序输入信息(共9个),以空格或 回车隔开"学号,姓名,性别,年龄,院系,高数,大英,专业课",并调用 stringinput ()方法实现学生信息的录入。效果展示:Bl C:UsersMenixdocuments.visual studio 2010ProjectsdeDebugde.exe茨迎进入学籍信息管理系统 请输入编号进行相应的操作1,新建2,浏览2,保存4,増加5,删除6,修改7,杳询5排序9,插入右右 右右 右丄右 "X*右丄右 右 ""A*A* 右"X*
11、""A*"X-" 右 -A右 右 右&右 右丄右 右 右- I | j | j »j | - J* j j J J j j j j-*T*>* j 1 j- * | *T"" J| J | _丫 - - 1 J j- j- j- | J j j J-* j 丫学1学3功is85学5个 息722幕翳慕建 入性生国生燼),5990 O8 >息8旺央专业课录4F息3. 2输出学生信息模块的设计1 从屏幕上展示学生信息基本逻辑:通过printheader ()与printdata ()定义在屏幕上分别打印出学生信
12、息列表的表头以及 表中各项数据。然后通过disp ()调用以上两个函数实现输出。效果展示:号学0102龄2123年系教教院国国高数 大英专业课 平均809095 88.3333758595852 保存到文件中输出学生信息基本逻辑:在save()方法中利用C+中的ofstream文件输出流来实现将学生信息写入到指定路径 的文本数据中。效果展示:请鮒入需要有效的文件名(可指定路径,必须包含后缀名)F: inf or ma ticm.保老成功!informabon.brt -记爭本文件(F)案左(E;格疋O) 5S(V)壬助(H)学号性别年龄尤姿专业课平均01李佳21809095 88. 33330
13、2高秋男23国教758595853. 3.修改学生信息模块的设计基本逻辑图:接受要修改的位置"Key=styjd- 、亠 未找到该学号“输入更新项门效果展小:i-SWA要更新更学生壬另:,02请蠢入需更麺的项,盍选以逗亘幔幵.亠 ._ 亠"一4孝号,2,坯名,&性别,£年龄,5,院系,6,高数,7,大英,8,专业课,0,全部4请龄:22更新成功!3. 4添加学生信息模块的设计1 指定位置插入学生信息逻辑图:效果展小:了入要插入的位置1专业课鲨:二鑿f簡丁輻俶紆高数,103刘宇女21侣科90 90 80供邑,宀赴苕,生别,年龄,院系,高数, 103刘宇女21
14、侣科90 90 80 惟入成功!2号学030102龄212122j 年 -数908075咼大英专业课平均908086. 6667909588. 33338595852.直接增加一条学生数据逻辑图:输入増扣的学生数量亠依次输入待插入学生信息4成功插入卩效果图:賣鮒离髀I毎杠),0芦04刘明男23应数90 80 70 输入完毕,成功增加1个学生信息记录!学030102ZOS女男男性数90807590专业课 平均80 86. 666795 88. 3333958570803. 5.查询学生信息模块的设计逻辑图:return;cout« M未找到该学号,查询失败! "vvendl;
15、效果展示:请输入霧询的醫学号捕年龄亠望 咼粮 男 22聲大畫专蟹1?3. 6.排序学生信息模块的设计基本逻辑:在selectSort ()函数中遍历vector对象student,并比较其average字段,使成绩按 照升序排列。效果展示:和据平均成绩排序完成!号4231与 o o o O别男男女女性J龄23222121年Ki大英专业课平岀207080859585908086. 6667909588. 33333. 7.删除学生信息模块的设计效果展示:未找到该学号*接受要删除的学号Q成功删除屮奮输入要删除的学生学号!|04檢功删除!号学020301别男女女性J-龄222121年高大英专业课 平
16、均859585908086.6667909588.33334总结本系统在Visual Studio2010下编译调试通过,可顺利运行,各项功能达到设计要 求。本系统程序由一个.h头文件和一个,pp源文件构成。釆用分模块的方法进行编译, 即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并产生可执行文件 de. exe。5参考文献11杨路明,C语言程序设计教程北京:北京邮电大学出版社,2005 (2009.7重印)2 谭浩强,C卄程序设计.北京:清华大学出版社,2004. 63 杨路明,C语言程序设计上机指导与习题选解北京:北京邮电大学出版社,20056附录(源代码)Stiident.
17、h#ifndef VECTOR #define VECTOR #iiiclude<vector> using namespace std;#endif class studentchar stud20;char name 10;char depailment20;char sex3;shoit age;float point_math;float point_english;float point_piogiam; double average;public:static void pimtheaderQ; void stringmputQ;void pnntdataQ;fiien
18、d bool opefatoi=(coiist student &.const student &); fiiend class students;;class studentsvectoi<student> mark; public:void cieate();void disp();void save();void inseit();void add();void delQ;void modifyO;void quran();void selectSoitQ;;void init(stiidents &);Student.cpp# iiicludeMst
19、udent.hM #ifndef VECTOR# iiiclude<vector> using namespace std;#end if# iiiclude<iostieam># iiiclude<fstieam># iiiclude<iomamp># iiiclude<cstnng># iiiclude<stimg> void student:pimtheader()cout«setw( 10)«n 学号” «setw(8)«H 姓名” «setw(8)«&q
20、uot;性别” «setw(8)«"年龄” «setw(8)«H 院系” «setw(8)«H 高数” «setw(8)«H 大英”«setw(9)«H 专业课"«setw(8)«n 平均” «endl;void student: :stnngmputOcin » tlus->stu_id » this->name»this->sex »tlus->age»this->
21、;depanment»this->pomt_math »this->pomt_english»this->pomt_progiam;tlus->aveiage = (this->pomt_math + this->pomt_englisli 十 this->pomt_progiam)/3.0; void student:prmtdataQcout«setw(8)«tlus->snid «setw(l 0)«this->name «setw(8)«thi
22、s->sex «setw(8)«this->age «setw(8)«this->department «setw(8)«this->pomt_math «setw(8)«this->pomt_englisli «setw(8)«this->pomt_piogiam «setw(8)«this->average «endl; bool opeiator=(const student &sl,const student
23、 &s2) if(sl.sni_id = s2.stu_id)fetiini tme;elseletiun false; void students:create() it->aveiage = (it->point_math 十 it->pouit_english + it->pomt_pi ogram)/3; ous«setw(8)«it->stid«setw(9)«it->name«setw(8)«it->sex«setw(8)«it->age«
24、;setw(8)«it->depaftment«setw(8)«it->point_math«setw(8)«it->point_english«setw(8)«it->point_piogiam«setw(8)«it->average«endl;ous.close();cout«n 保存成功!M«endl; void students:add()mt num = 0;mt i = 0;student s;cout« ”请输入增加的学生
25、数量:“;cin » num;cout”请以以下顺序输入信息(共9个),以空格或回车隔开n « endl;coutvv”学号,姓名,性别,年龄,院系,高数,大英,专业课y<endl;while(i < num)cout« n请输入第M « (i+l) « n个学生信息:n«endl;s.stiingmput();maik.pusli_back(s);i卄;cout« n输入完毕,成功增加H «num«H学生信息记录! H « endl;void students: :del()cha
26、r key20;cout« ”请输入要删除的学生学号!” << endl;cin » key;fbi(auto it = maik.beginO; it != mark.endQ; it+)if(! strcmp(key4t->stu_id)mark.eiase(it);coutvv”成功删除! u«endl;return;cout« H未找到该学号,删除失败!” « endl;void students: :modify()char key20;cout« 请输入要更新的学生学号:”;cin » key;
27、for(auto it = maik.beginQ; it != mark.endQ; it+)if(! strcmp(key,it->stu_id)char sti20;char c;cout« ”请输入需更新的项,多选以逗号隔开H «endl;coutvv”l,学号,2,姓名,3,性别,4,年龄,5,院系,6,高数,7,大英,8, 专业课,0,全部” <Vendl;cm » str;fdr(int i = 0; i< strlen(sti); i+)c = stri;switch(c)case T:cout« ”请输入学号:”;ci
28、n»it->stu_id; break;case 2:cout« "请输入姓名:n; cin»it->name; break;case 31:cout« %青输入性别:n; cin»it->sex; break;case 4:cout« %青输入年龄:n; cin»it->age; break;case 嗖:cout« %青输入院系:n; cin»it->department; break;case 6:cout« "请输入数学成绩:cm
29、7;it->point_math; break;case 71:cout« "请输入英语成绩:n; cm»it->point_english; break;casecout« "请输入程式成绩:n; cin»it->poiiit_piogram; break;case 'O':cout« -it以以下顺序输入更新信息(共8个),以空格或回车隔开” « endl;cout«学号,姓名,性别,年龄,院系,高数,大英,专 业课"«endl;it->st
30、nnginput(); break;cout« "更新成功! " endl;return;cout« "未找到该学号,更新失败!” « endl;void students: :quian()char key20;cout« ”请输入要查询的学生学号:”;cin » key;foi(auto it = maik.beginQ; it != mark.endQ; it+)if(! strcmp(key4t->stu_id)student:pnntheadei();it->pnntdata();cout &
31、#171; ”查询成功! ”;return;cout« M未找到该学号,查询失败! "vvendl;void students: :selectSoitQstudent temp;for(auto it = maik.beginQ; it < maik.end(); it+)fbi(auto is = it+1; is != maik.end(); is卄)if(it->aveiage > is->aveiage)temp = (*it);(*it) = (*is);(*is) = temp;cout« "根据平均成绩排序完成! "V V endl;void students: :inseit()mt 1 = 0;student s;cout« ”请输入要插入的位置:”;cin »i;while(i>(maik. size()+1) | |i <= 0)cout« "
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 22460-1:2025 EN Cards and security devices for personal identification - ISO UAS licence and drone or UAS security module - Part 1: Physical characteristics and basi
- 2025年消费者行为与市场趋势相关试卷及答案
- 2025年道路交通运输管理职业考试试卷及答案
- 2025年公共卫生与预防医学考试试卷及答案
- 数字化教与学平台的建设与应用 黄海 中山大学
- 2025年金属基复合材料项目发展计划
- 2025年氟碳涂料项目发展计划
- 肿瘤的淋巴转移
- 蛋白过敏宝宝护理指南
- 中药饮片工业管理体系研究
- 主题班会《中国梦我的梦》课件
- 古诗词诵读《客至》-统编版高中语文选择性必修下册
- 西南交11春学期《模拟电子技术A》离线作业
- 施工单位平安工地考核评价表(标准)
- 建筑材料分类整理
- 人民币发展史-课件(PPT演示)
- 经历是流经裙边的水
- 骨科疾病的康复课件
- 三氯乙醛 氯醛MSDS危险化学品安全技术说明书
- 合作社贷款申请书范文(优选十三篇)
- 产品平台与CBB技术管理课件
评论
0/150
提交评论