c++实现学籍信息管理系统实训报告材料_第1页
c++实现学籍信息管理系统实训报告材料_第2页
c++实现学籍信息管理系统实训报告材料_第3页
c++实现学籍信息管理系统实训报告材料_第4页
c++实现学籍信息管理系统实训报告材料_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文案题目实训任务书1、电话簿管理系统2、商品销售管理系统windows系统实现为主,尝试Linux平台下的程序实现)3、基于内存的学籍管理系统(以二、实训的性质和任务1、 巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、 构造类型、函 数、指针、文件等等方面的基本知识和技能。2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。三、实训的基本要求通过本次实训,学生应达到以下几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析

2、问题,解决问题, 努力培养自己的独立工作能力。2、知识要求熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。3、能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。通过 本次实训使学生基本能够把握 C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的 分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。四、实训内容及要求天/日期任务描述通过标准第1天说明系统功能,

3、明确课题任务与涉及的要求、分配具体的任务。分析实训内容,讲解相关知识,引导学生入门。学生理解题目第2天学生具体分析第一个实训题目, 明确思路和任务,并可以查 询相关书籍、资料,设计出每一个模块的流程图; 理解并设 计相关的数据类型定义。画出相关流程图第3天编写 printheader()、printdata()两个函数代码通过第4天编写 Disp()、stringinput()两个函数代码通过第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

5、实训简介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实训任务对程序设计的基本知识与基本技能有进一步的掌握,能用基本的语言以自己的逻辑实现自定义的功能来进行小型应用程序开发。通过本次实训培养学生适应岗位需要,独 立分析问题、解决问题的基本能力,以及团队

6、合作精神。1.2题目介绍设计一个基于线性顺序排列的 vector动态数组的学生学籍管理系统,能实现对学生 信息进行录入,增加,修改,删除,查询,插入,排序和输出等基本操作。1.3主要内容管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英成绩,专业课成绩。2、能在屏幕上以列表的方式输出所有学生的信息3、能以文件形式保存学生信息。4、能批量增加学生信息与插入任意位置学生信息5、能根据输入的学号从动态数组中删除学生的记录。6、能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、能实现排序功能,根据计算得出的平均成绩以降序排序。1.4

7、基本要求1. 素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。2 知识要求熟悉C语言的集成开发环境的使用,以及 C语言的数据类型、语法、基本结构等。熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。3.能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际 应用的能力。学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的 习惯。通过本次实训使学生基本能够把握 C语言的精髓,并能够熟练使用 C语言编写简 单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现

8、实生活中简单 的、常见的系统。2整体设计流程2.1整体设计思路2.2 设计流程221需求分析阶段:1、能录入学生的基本信息,包括学号,姓名,性别,年龄,院系,高数成绩,大英成绩,专业课成绩。2、能在屏幕上以列表的方式输出所有学生的信息3、能以文件形式保存学生信息。4、能批量增加学生信息与插入任意位置学生信息5、能根据输入的学号从动态数组中删除学生的记录。6、能根据输入的学号查询学生,并进行任意各项信息或者整体信息的修改。7、能实现排序功能,根据计算得出的平均成绩以降序排序2.2.2逻辑设计阶段1、 创建学生个体类class student(),以vector动态数组存储学生对象信息,2、定义能

9、对学生信息数据操作的增删改查等方法。3、在main()中调用定义的各种方法进行功能的实现。2.3 包含的模块根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、输出学生信息模块、删除学生信息模块、查询学生信息模块、插入学生信息模块。系统功能机构图如下:学籍管理系统2详细设计以及设计的实现主函数设计:开始choose排序平查 询 学 生 信 息插 入 学 生 信 息保存学生信自心浏览学生信息创建学生信息365YChoose! =1-9N结束成 绩73.1. 录入学生信息模块的设计基本逻辑:1. 通过stringinput() 中的cin实现从键盘读入数据赋值操作

10、以及如何计算平均成绩。2. 通过create()中的count实现屏幕上的请以以下顺序输入信息(共9个),以空格或回车隔开学号,姓名,性别,年龄,院系,高数,大英,专业课,并调用 stringin put()方法实现学生信息的录入。效果展示:I C:LIstrsMenixdocuiment:5visuaJ studio 201 OPrajectsdeDebugdeu&Me欢迎进入学籍信息管理系统请输人编号进行相应的操作+*+=壽董驾阖賣霍茶蓉+*+*4,増加E,删除6,修改人查询&排序乱插入數金卡解i漏息營个),以空格二女21国 盲松第2个学生信息; 02高秋男23国教75 85 95 俞島毕

11、,成功仓I建2个学生信息记录!专业课01咬 80 90 953.2. 输出学生信息模块的设计1.从屏幕上展示学生信息基本逻辑:通过printheader()与printdata()定义在屏幕上分别打印出学生信息列表的表头以及表中各项数据。然后通过disp()调用以上两个函数实现输出。效果展示:r it熠彎02 咼萩 舅 23高数 大英专业课 平均809095 88.3333758595852保存到文件中输出学生信息基本逻辑: 在save()方法中利用C+中的ofstream文件输出流来实现将学生信息写入到指定路径 的文本数据中。效果展示:3请输入需要頁效的文件名(可指定路径,必颇包含后缀名)

12、F : VinformatiorL txt 保荐成功! infoirmatiom.txt -记事本1文世(F)锄旧览式口曲;VI学罗锂/年龄Q1華谨2123809095 88. 333302高就7585958533修改学生信息模块的设计基本逻辑图:效果展示:冃鑿号暑签里玛性别肯皐鬱丸院系,乩高数,7,大英,8,专业课,,全部41 22更新成功!34添加学生信息模块的设计1.指定位置插入学生信息逻辑图:效果展示:输警罷S理英,专业课牺入成功!号-fr-oo 12 o O50 0 5 寥9 8 7 高1 22 2 2亠tLJO O 5 妄 9 9 00 大专业课平均80 86. 666795 88

13、. 333395852. 直接增加一条学生数据逻辑图:输A.増加的学生数量口依次输入待描入学生信息心成功插入车,效果图:专业课靱操驛盖薦I鳴个),粤幣回车冒 爲摻制学豐息靱院系磁農 譬入轟男诙蟲落黑息记录!均7平66专业课80 86.95 88.9570io 0 5 0 娄 g 8 7 9 高12 3. lb呀2 2 2 2. 年 -熠女男男-3.5.查询学生信息模块的设计逻辑图:return;cout 未找到该学号,查询失败! endl;效果展示:7青输入鬍询的詐学号需高珞大聶专蟹36排序学生信息模块的设计基本逻辑:在selectSort()函数中遍历vector对象student,并比较其

14、average字段,使成绩按照升序排列。效果展示:8根据平均成绩排序完成!耀男女女院应国信国大英专业课 平均SO7080859585908036. 6667909588. 33333.7.删除学生信息模块的设计效果展示:b 青输入要删除的学生学号!104戯功删除!号学020301姓亠梟李01金2 1 1IhKf2 2 2年专业课平均958580 86. 666795 88. 33334总结本系统在Visual Studio2010下编译调试通过,可顺利运行,各项功能达到设计要 求。本系统程序由一个.h头文件和一个.cpp源文件构成。采用分模块的方法进行编译, 即完成一个函数功能模块就编译一个功

15、能模块,最后再进行整体编译并产生可执行文件 de.exe。5参考文献1 杨路明,C语言程序设计教程北京:北京邮电大学出版社,2005(2009.7重印)2 谭浩强,C+S序设计.北京:清华大学出版社,2004.63 杨路明,C语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,20056附录(源代码)Stude nt.h#ifndef VECTOR#define VECTOR#in clude using namespacestd;#en difclassstude ntchar stu_id20;char n ame10;char departme nt20;char sex3; sh

16、ort age;float poin t_math;float point_en glish;float poin t_program; double average;public:static void printheader(); void stri ngin put();void prin tdata();friend bool operator=(const student &,const student &); friend class students;;classstude ntsvector mark;public:void create();void disp();void

17、save();void in sert();void add();void del();void modify();void quran();void selectSort();void in it(stude nts &);Stude nt.cpp#i ncludestude nt.h#ifndef VECTOR#in cludeusing namespacestd;#en dif#in clude#in clude#i ncludevioma nip#in clude#in cludevoid stude nt:pri ntheader()coutsetw(10)学号 vvsetw(8)v

18、姓名 vvsetw(8)v性别 setw(8)年龄 setw(8)院系 setw(8)高数 setw(8)大英”vvsetw(9)vv专业课 setw(8)vv平均 this-stud this-n ame this-sex this-age this-departme nt this-poi nt_math this-poi nt_en glish this-poi nt_program;this-average = (his-poi nt_math + this-poi nt_en glish + this-poi nt_program)/3.0; _void stude nt:pri n

19、tdata()coutstu_id setw(10)n ame setw(8)sex setw(8)age setw(8)departme nt setw(8)po in t_math setw(8)poi nt_en glish setw(8)po in t_program setw(8)average e ndl;bool operator=(const student &s1const student &s2)if(s1.stud = s2.stud)return true;elsereturn false;void stude nts:create()int num = 0;int i

20、 = 0;stude nt s;cout num;cout 请以以下顺序输入信息(共9个),以空格或回车隔开 endl;cout 学号,姓名,性别,年龄,院系,高数,大英,专业课endl; while(i num)cout 请输入第 (i+1) 个学生信息: endl;s.stri ngin put();mark.push_back(s);i+;cout 输入完毕,成功创建 num 个学生信息记录! pri ntdata();void stude nts:save()stri ng file name;coutvv请输入需要有效的文件名(可指定路径,必须包含后缀名) file name;ofs

21、tream ous;ous.ope n(filen ame);oussetw(10)v学号vvsetw(8)v姓名vvsetw(8)v性别setw(8)年龄setw(8)院系setw(8)高数setw(8)大英”setw(9)专业课setw(8)平均average = (it-po in t_math + it-po int_en glish + it-po in t_program)/3; ousstudsetw(9)n amevsetw(8)vsexsetw(8)agesetw(8)departme ntsetw(8)po in t_mathsetw(8)po int_en glishse

22、tw(8)po in t_programsetw(8)averagee ndl;ous.close();cout保存成功! endl; void stude nts:add()int num = 0;int i = 0;stude nt s;cout num;cout 请以以下顺序输入信息(共9个),以空格或回车隔开 endl;cout 学号,姓名,性别,年龄,院系,高数,大英,专业课endl; while(i num)cout 请输入第 (i+1) 个学生信息: endl;s.stri ngin put();mark.push_back(s);i+;cout 输入完毕,成功增加 num 个学

23、生信息记录! endl;void stude nts:del()char key20;cout 请输入要删除的学生学号! key;for(auto it = mark.beg in(); it != mark.e nd(); it+)if (!strcmp(key,it-stu _id) mark.erase(it);cout 成功删除! endl; return;cout 未找到该学号,删除失败! endl; void stude nts:modify()char key20;cout key;for(auto it = mark.beg in(); it != mark.e nd(); i

24、t+)if (!strcmp(key,it-stu_id)char str20;char c;cout 请输入需更新的项,多选以逗号隔开 endl;8,cout 1,学号,2,姓名,3,性别,4,年龄,5,院系,6,高数,7,大英, 专业课,0,全部 str;for(i nt i = 0; i it-stu_id; break;cin it- n ame; break;cin it-sex; break;cin it-age; break;cin it-departme nt; break;ci n it-poi nt_math; break;cin it-poi nt_en glish; b

25、reak;case1:cout 请输入学号: case2:cout 请输入姓名: case3:cout 请输入性别: case4:cout 请输入年龄: case5:cout 请输入院系: case6:cout 请输入数学成绩: case7:cout 请输入英语成绩:case8:cout it-po in t_program; break;case0:cout 请以以下顺序输入更新信息(共8个),以空格或回车隔开 en dl;cout 学号,姓名,性别,年龄,院系,高数,大英,专 业课stri ngin put(); break;cout 更新成功! endl;return;cout 未找到该

26、学号,更新失败! endl;void stude nts:qura n()char key20;cout key;for(auto it = mark.beg in(); it != mark.e nd(); it+)if (!strcmp(key,it-stu_id)stude nt:pri ntheader();it-pri ntdata();cout 查询成功!;return;cout 未找到该学号,查询失败! endl;void stude nts:selectSort()stude nt temp;for(auto it = mark.beg in(); it average is-average)temp = (*it);(*it) = (*is);(*is) = temp;cout 根据平均成绩排序完成! endl; void stude nts:i nsert()int i = 0;stude nt s;cout i;while(i(mark.size()+1)|i = 0)cout

温馨提示

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

评论

0/150

提交评论