信息管理与系统开发设计综合模拟实习
一、实习目的
通过模拟实习,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力.信管07级学生的模拟实习主要是复杂程序和简单软件的实现.通过该模拟实习,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知识的综合运用能力。
二、实习环境
计算机硬件配置:cpu 内存 硬盘操作系统:windows xp 开发环境:visual c++ 6.0
三、实习内容
内容一:运动会分数统计
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m〈=20,n〈=20)
功能要求:
1
(1)可以输入各个项目的前三名或前五名的成绩;
(2)能统计各学校总分;
(3)可以按学校编号、学校总分、男女团体总分排序输出;
(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校.
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中(.数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据.进行程序测试,以保证程序的稳定.测试数据及测试结果请在上交的资料中写明;
内容二:纸牌游戏
2
任务:编号为1—52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;。..再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?
内容三:设计学生成绩管理系统。该系统中存储学生的学号、姓名、性别、年龄、课程成绩等信息。
要求:(1)浏览学生信息
(2)添加学生信息
(3)删除学生信息
(4)查找学生信息
(5)修改学生信息
(6)对成绩的处理
①求出每个学生各门课程的总成绩、平均成绩、最高分和最低分.
②求出某一门课程所有学生总成绩、平均成绩、最高分和最低分。
(7)按照学生某门课程的成绩对学生排序
3
四、算法分析、设计与描述
1.算法分析和设计
内容一:
运动会分数统计是对运动会信息的基本管理与统计,它包括:运动会信息的输入、运动会总体成绩的查询、指定学校成绩的查询、以及各种要求的排列。
使用模块化编程的方法每项功能有一个函数来完成,对应如下:
按学校编号排序void bianhao( ) 按学校总分排序void zongfen( )
按学校男总分排序void malezf( ) 按学校女总分排序void femalezf( )
查询某个学校成绩void cxsch( ) 查询某个项目成绩void cxxm( )
为了把数据封装起来更方便使用,创建了表示项目结构体的struct item和表示学校的结构体struct school。
struct item
{
char name[15];
4
int snum[5];
int s;
}p[21];
struct school
{
int num;
char name[15];
int score;
int mscore;
int wscore;
}sch[21];
内容二:
此题算法比较简单,按题目要求相当于从第一张牌算起,若这张牌是二的倍数,则翻面,是三的倍数则再翻一次,是四的倍数则再翻一次,循环直到52为止,则此张牌结算完
5
成。翻完第一张牌后,再继续算第二张牌,直到52张牌都结算完成。
内容三:
学生信息管理系统是对学生信息的基本管理,它包括:浏览学生信息、添加学生信息、删除学生信息、查找学生信息、修改学生信息、对成绩的处理、按照学生某门课程的成绩对学生排序
使用模块化编程的方法每项功能有一个函数来完成,对应如下:
(1)浏览学生信息以及读取数据 void print(ID *head)
(2)添加学生信息以及对成绩的处理ID *insert(ID *head)
(3)删除学生信息 ID *delet(ID *head)
(4)查找学生信息ID *search(ID *head)
(5)修改信息 ID *amend(ID *head)
(6)按照学生某门课程的成绩对学生排序ID *sort(ID *head)
(7)存储数据以及退出系统ID *breaksys(ID *head)
为了把数据封装起来更方便使用,创建了表示学生信息的结构体struct id
6
struct id
{
char name[20];
int num;
int a;
int b;
int c;
double ave;
ID *next;
};
2.算法描述
内容一:
7
开始输入数据选择操作按学校编号排序按学校总分排序按学校男总分排序按学校女总分排序查询某学校成绩查询某个项目成绩退出结束 图4。1 计分系统总体模块流程图
开始N输入学校的个数nYn>=1&&n<=20输入学校的名称输入男子项目数m和女子项目数wYN输入项目的名称m<=20&&m>=1&&w<=20&&w>=1输入项目选取的名次sN输入项目的前s名的学校编号x>=1&&x<=nY储存数据结束
8
图4。2 数据输入保存流程图
开始i=0i 9 内容二: 开始i=1Ni<=52Yj=2j<=52Yi%j=0YNNa=-aj++a==1YN输出ii++结束 图4。4 流程图 文件的读取与存贮使数据可以保存下来,这也是在以前的学习过程中没有掌握的内容,在开始时遇到了不小的困难. 另外,感觉到自己能编写的程序都非常的简短,系统性也不强。我还需要在编程方面进一步提高。 从这次编程序的过程中,我学到了编程所必须具备的专业技能,更领会编译程序所需要的细心和耐心。同时也提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。 10 因篇幅问题不能全部显示,请点此查看更多更全内容