1226.C++程序设计_第1页
1226.C++程序设计_第2页
1226.C++程序设计_第3页
1226.C++程序设计_第4页
1226.C++程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、学 号: 2006 2007 学年 第 1 学期 xxx 科技大学科技大学 windows 程序设计 课程设计报告课程设计报告 题 目: c+程序设计程序设计 专 业: 计算机科学与技术计算机科学与技术 班 级: 计科应计科应 05 姓 名: 指导教师: 成 绩: 电子信息工程学院 2007 年3月15日 摘要摘要 该论文分别对软件的需求进行分析,对软件的概要设计和软件的详细设计 进行阐述,以及对软件的组装及测试的详细叙述,并附加了软件的使用说明书 (操作手册) 。程序设计一般由两部分组成:算法和数据结构,合理选择和实现 一个数据结构与处理这些数据结构具有同样的重要性。以将每个功能分别编译 实

2、现,再通过函数包含,调用等方法实现各项功能间的连接为设计思想,并采 用将学生当作一个整体,整体类型为结构体,结构体中的域表示学生的属性的 这种定义结构作为数据结构。软件将各个模块的功能分为列菜单、表明结构体、 录入、排序、查询、插入及读取等来组成整个程序,实现对学生成绩的系统管 理。该程序界面友好,易于操作,使操作者和使用者应用更加方便。 关键字:数据结构,设计思想,界面,软件需求,概要设计,详细 设计,组装及测试等 目录 第 1 章 软件设计内容.1 11 软件达到的目的.1 12 软件功能说明.1 1.2.1 功能分析说明图.1 1.2.2 各项功能说明.1 13 软件功能的验收标准.2

3、第 2 章 软件设计环境与原理.3 2.1 设计环境与模块的划分.3 2.1.1 软件设计环境.3 2.1.2 软件模块的划分.3 2.2 软件设计主要原理.4 2.2.1 采用的主要数据结构类型.4 2.2.2 各个模块之间的调用关系和数据储存格式说明.4 2.2.3 主要流程图.4 第 3 章 软件的设计过程.9 3.1 各软件模块之间的调用方式.9 3.2 软件中实现各项功能的函数与程序代码.9 3.3 数据保存方式以及格式.11 第 4 章 设计结果与分析.12 41 软件使用结果.12 总结.17 致谢.18 参考文献.19 第 1 章 软件设计内容 1 11 1 软件达到的目的 该

4、软件主要是实现对学生成绩进行系统化的管理,首先可以对学生基本信息进行 输入和存取,其次可以读取显示学生的相关信息,然后可以删除和插入学生的相关信 息,还有就是可按学号查询此学号的学生的相关信息,并按照总成绩算出的平均分的 高低进行排序。由此来系统化管理学生成绩,并达到简易操作的目的。 12 软件功能说明 1.2.1 功能分析说明图 该软件功能分析说明图如 1-2-1 所示: 学生成绩管理系统 图图:1-2-1 1.2.2 各项功能说明 (1)学生基本信息的录入和保存: 学生基本信息录入与保存 数据的读取 数据删除 数据追加 学生信息查找 按平均成绩排序 退出系统 这部分的功能主要包括信息的录入

5、和保存和总分、平均分的计算,首先按程序提示输入所要输入的学生人数,接着是 分别输入有关学生的相关信息包括学号、姓名、性别以及学生各科成绩的分数等。在录入数据的同时,系统将对信息 的合法性进行检验(学号范围为 10011020、姓名在 7 个字节之内、性别只能输入 m(男 male)或 f(女 fmale)、各科成 绩均限定在 0100 之间) ,若用户录入了不合法的数据系统将会作出提示,并且要求重新输入。如果合法性成立则录入 完毕后系统将显示全部学生相关信息,信息中已包含对学生成绩总分的计算和其平均分的计算结果。最后输出学生的 信息表,与是否保存提示,选择存盘后,系统则自动将学生信息存入(li

6、st.dat)电脑。 (2)读取学生信息: 此功能是将原录入并保存的的学生信息读出,并在屏幕上显示出来。 (3)删除学生信息: 进入该项功能界面后,用户可以通过学生的姓名对谋个学生信息进行删除。 (4)追加学生信息: 进入插入界面,系统将提示输入新学生的相关信息,程序则会将新的信息 插入原学生信息清单中,并将新的学生信息列表输出,以方便用户的确认。 (5)按学号查找学生信息: 此项功能可以根据拥护输入的学生学号查出该学生的所有信息。 (6)按照平均分输出学生信息清单。 选择次项功能后,系统将自动在屏幕上显示出所有学生按照平均成绩的高 低排序后的清单。 (7)退出系统,结束任务。 13 软件功能

7、的验收标准 一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使 用软件的各项功能。 二、有严密正确的数据验证功能和数据处理功能,能够求和、求平均成绩, 对总成绩进行排序,对数据进行保存和读取,能按学号查找学生信息,以及插 入和删除学生信息。 三、系统要有一定的可靠性。 第 2 章 软件设计环境与原理 2.1 设计环境与模块的划分 2.1.1 软件设计环境 microsoft visual c+ 6.0 2.1.2 软件模块的划分 该软件主要组成模块和各个模块之间的调用关系如图2-1: 学生成绩管理系统 主菜单 主函数(包含 以下所有函数) 图图 2-1 其中学生基本信息的录入和

8、保存里已经包含了总分和平均分的计算、按学号排 序输出的处理。 学生基本信息录入与保存 数据的读取 数据删除 数据追加 学生信息查找 按平均成绩排序 退出系统 1 2365478 2 2 9 2.2 软件设计主要原理 2.2.1 采用的主要数据结构类型 该程序采用的是结构体类型来处理学生的所有基本信息,如下所述。 包含的库函数有: # include # include # include # include # include 包含的函数有: main() /*主函数*/ menu() /*菜单函数*/ input() /*输入与保存函数*/ bubble() /*排序输出函数*/ query

9、() /*查找信息函数*/ insert() /*追加信息函数*/ delete() /*删除信息体函数*/ read() /*文件读取体函数*/ 包含的类: class student() 2.2.2 各个模块之间的调用关系和数据储存格式说明 各函数模块之间的调用关系主要是主函数调用所有其它功能函数和菜单函 数,并利用循环使各个功能函数运行完毕后都会回到菜单。该程序的数据以二 进制储存。 2.2.3 主要流程图 一、主函数 开始 图图 2-2 二、数据的输入和保存 2 输出 struct i 输入 n、 struct i 输出是否保存提 示信息 3 4 78 三、学生信息的读取 四、数据的删

10、除 no yes yes yes no 图图 2-4 图图 2-5 五、根据平均成绩排序 六、退出系统 no yes stu_list 为空 输出“can not open file” 输出 stui i n 1 输出是否删 除提示 确认 1 1 10 输入“stu i ” n=n-1, stu i =stu i +1 in-1 确认 10 将输入的学生信息按照 平均成绩的高低排序 输出新的学生 成绩单 getch(); 输出是否 退出提示 推出程序 图图 2-7 1 56 确定 七、学生信息的追加 八、根据学号查询 学生信息 no yes 图图 2-9 图图 2-8 输出是否追加 提示 1

11、输入要追加的 学生信息 进行追加数 据处理 输出追加后 的新学生信 息 getchar (); 1 输入要学生学 号 输出该学号 学生的信息 getch() ; 1 第 3 章 软件的设计过程 3.1 各软件模块之间的调用方式 程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现 的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数 进行调用。 3.2 软件中实现各项功能的函数与程序代码 一、一个包含学生基本信息的类 class student() public: char *name; int id; char sex; float math, eng, comp

12、, totll, aver; . 二、输入函数 void input() . for(j=1; j=n; j+) cout 输入学生信息 jendl; obj.setup(); /用一个佛人 for 循环将学生信息录入。 三、信息的保存与读取 保存:void save() int i; ofstream fout(list.txt); if(!fout) coutcannot open output file!n,; for(i=1; i=s; i+) foutobi.id obi.sex obi.math obi.eng p obi.totll obi.averendl;

13、fout.close(); 读取: void read() ifstream fin(list_1); if(!fin) couta; coutaendl; fin.close(); 四、菜单函数 void menu() coutnn; cout- 学生成绩系统 -endlendl; couttt1.录入与保存学生信息.n; couttt2.读取学生信息.n; couttt3.删除学生信息.n; couttt4.追加学生信息.n; couttt5.查询学生信息.n; couttt6.显示成绩名次.n; couttt7.退出系统.nnn; couttt 请选择功能项: ; 五、添加学生信息函数

14、void add() int i,j=1, d=s+1; cout输入要添加学生的信息:endl; obd.setup(); coutendl-学生信息表 - endl; coutendl 学号 姓名 性别 数学 英语 计算机 总分 平均分endl; for(i=1; i=s+j; i+) obi.show(); ofstream fout(list.txt); if(!fout) coutcannot open output file!n,; for(i=1; i=s+j; i+) foutobi.id obi.sex obi.math obi.eng p obi.totl

15、l obi.averendl; fout.close(); getchar(); j+; 3.3 数据保存方式以及格式 本学生信息系统将能自动把输入的学生信息保存为 .dat 文件,全名为 list.dat ,在文件的读取时,系统将能自动把该二进制文件读出,并在屏幕上显示出学 生信息。 第 4 章 设计结果与分析 41 软件使用结果 在此,我们将把软件使用过程写出,并对此程序的一些细节和具体的操 作方法加以说明,说明如下: 1、将软件进行初始化。 2、进入程序菜单,界面如图 4-1-1: 菜单界面菜单界面 图图 4-1-14-1-1 界面显示的是“一个学生信息系统” ,总的操作流程有七个方面:

16、 (1) 输入和存取学生信息; (2) 读取学生信息; (3) 用人名从列表中删除学生信息; (4) 在列表中插入学生信息; (5) 用学号查询学生信息; (6) 按总成绩的高低对学生成绩进行排序; (7) 退出菜单界面。 最后是提示用户做出要软件进行怎样功能运行的选择。 3、输入和存取学生信息:选择菜单界面的第一个选择,按 enter 键进入 此选择界面,出现的界面如图 4-1-2: 学生人数学生人数 图图 4-1-24-1-2 在这个界面给出了学生人数的选择,也就是说,用户想要输入多少个 学生的信息,已经输入学生人数后,按 enter 键进入输入界面,输入界面 如图 4-1-3: 输入学生

17、信息输入学生信息 图图 4-1-3 用户可在此界面上输入想要输入的学生的相关信息(学号、姓名、性别、 数学分数、英语以及计算机科目的分数等) ,但是由于程序合法的要求, 所以姓名的范围规定在 4 到 7 个字节之间,学号的范围是 1001-1021,性 别分别是男(m)或女(f),而分数的范围是 0-100。 如果输入的数据不在这些范围内,则界面上将显示错的数据输入的 句子,用户将重新输入正确的数据,才可以进行下面的程序。如果全部 学生的信息输入完毕,按 enter 键则进入了存取界面,如图 4-1-4: 存取学生信息存取学生信息 图图 4-1-4 界面上出现全部学生的清单,最后有提醒用户是否

18、要将如上信息存储的 提示信息,如果要存储则输入 y,不存储则输入 n,最后按 enter 完成当 前和结束当前操作。并回到菜单界面。 4、读取学生信息:选择菜单界面第二个选择,按 enter 键进入此界面, 则出现的界面如图 4-1-5: 读取学生信息读取学生信息 图图 4-1-54-1-5 界面上的图即显示的是读取学生信息界面的内容,它表示的是全部学生 信息的列表,可按 enter 键退出此界面。 5、用人名从列表中删除学生信息:从菜单界面中选择第三个选择,按 enter 键入, 则出现图 4-1-6 的界面; 删除学生信息删除学生信息 图图 4-1-64-1-6 界面上出现的是删除学生信息

19、的界面,在界面的开头有提示用户输入 所要删除的那个学生的学号,按 enter 键则界面上显示出所要删除的 学生的相关信息,重复按 enter 键界面则显示出删除此学生信息后的 新的学生信息列表。 6、在列表中插入学生信息:从菜单界面中选择 4 输入,按 enter 键进界 面 则出现图 4-1-7 的界面: 插入学生信息插入学生信息 图图 4-1-74-1-7 首先界面上有提示用户输入所要插入的学生的学号,然后反复按 enter 键输入所要插入学生的相关信息。最后将出现新的学生信息列 表。 7、用学号查询学生信息:从界面选 5 输入后按 enter 进入此程序,则出 现界面 图 4-1-9:

20、用学号查询学生信息用学号查询学生信息 图图 3-3-93-3-9 按照提示信息输入所要查询的学生的学号,按 enter 键则会出现此学 号的学生相关的信息,即可查阅他/她的成绩和其他信息。 8、按总成绩高低对学生成绩进行排序:从菜单界面选 6 输入按 enter 键进入程序则出现界面如图 4-1-10: 排序后的新学生信息列表排序后的新学生信息列表 图图 4-1-104-1-10 于是界面上显示的是按学生的总成绩从高到低排序的列表,通过此操作程 序,用户可以管理学生成绩更轻松。 9、退出菜单界面:在菜单界面上输入 7 按 enter 键进入界面如图 4-1- 11: 退出界面退出界面 图图 4

21、-1-114-1-11 则屏幕上显示出提示退出的信息,并且提示用户按任意键可退出菜单界 面,即完成 当前操作,结束运行。 总结 通过两星期的 c+语言程序设计实习,我们从中受益匪浅,并且对 c+语 言程序设计这一门课程有了更深一步的认识。在实习中,我们可以把这学期所 学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。虽然我们对这 些 c+语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。 发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。 在实习中,我们设计了一组对学生成绩进行管理的系统,它基本满足了界 面友好,易于操作的要求,因此更利于用户操作方便,运

22、行简易,从而达到对 学生成绩更加有效系统的管理,并且速度更快内容更直接地达到用户所想要的 效果。在该软件中我们实现了对学生信息的输入和存取、读取,对学生相关信 息的删除和插入,并且可以按学号查询学生的相关信息,以及按平均分的高低 对学生成绩进行排序等的功能。但软件中仍然存在一些不足,例如在输入有关 学生的数据时名字没有限定,插入新的学生信息的程序还有待完善,删除后没 有把新的学生成绩列表进行保存,菜单不美观等。 我们一边实习一边探索,发现理论和实践要充分地结合,是需要扎实的基 本功的,这就表明学好基础知识是理论付诸实践的前提。在实习中我们学到了 很多,希望在以后我们能充分利用实习的机会充实自己,并希望这样的机会能 被更好更多地提供。 2007-3-1 致谢 经过这两

温馨提示

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

评论

0/150

提交评论