石家庄经济学院。
高级语言程序设计”课程实习报告。
班级: 4101090301
姓名: 梁立建
学号: 410109030121
日期: 2012.5.7
目录。1 概述 3
2 系统的分析与设计 3
2.1 系统设计目标 3
2.2 系统的功能分析 3
2.3 系统的结构和工作原理(或流程) 5
2.3.1 系统功能模块设计 5
2.3.2 系统的结构和工作原理(或流程) 6
3 系统的实现与测试 8
3.1 实现方法和技术 8
3.2 系统的实现与测试 16
3.2.1设计(规化)将要实现的系统所提供的操作界面 16
3.2.2 功能测试 17
4 总结 22
参考文献 23
这份课程设计报告介绍一个课程管理信息系统smms,该系统针对学校开设的所有课程,采用高级语言c和类型文件,能够对相关信息进行存储和管理,具有学生信息输入、信息修改、信息显示、按成绩排序、按姓名查找学生信息、删除学生信息、插入学生信息、保存学生信息等诸多功能,能够为学校的教学提供信息化支撑和服务。本文详细介绍了这个项目的内容,包括设计目标、系统功能分析、系统结构、系统实现、运行分析。
本系统开发和运行环境:开发工具visual c++ 6.0,运行环境windows 9x 、windows 2000、windows xp。
2.1 系统设计目标。
随着高校扩招,学生数量急剧增加,有关学生的各种信息量也成倍增长。在这种情况下单靠人工来处理学生的信息,工作量将很大,若学生有几万甚至几十万,人工处理将变得不可想象。用计算机可使人们从繁重的劳动中解脱出来,仅使用一些简单的操作便可及时、准确地获得需要的信息。
该系统的具体任务就是设计一个学生信息管理系统,由计算机来代替人工执行一系列诸如增加新进学生信息、变更学生信息、删除学生信息、查询等操作。这样就使管理人员可以轻松快捷地完成学生信息管理的任务,使学校的学生管理工作系统化、规范化、自动化,从而达到提高学校管理效率的目的。
设计的指导思想是一切为用户着想,界面要美观大方,操作尽量简单明了,而且作为一个实用的应用程序要有良好的容错性,在用户出现误操作时能尽量及时地给出警告,以便用户及时改正。
2.2 系统的功能分析。
1)该系统用了两种存储结构的实现方式:数组和单链表,用户可根据自己需要选择;
2)用数组的实现方式实现了如下功能包括:输入,保存信息,输出,计算平均分,排序, 息,统计管理,保存学生信息;
3)用双链表的实现方式实现了如下功能包括:链表保存信息,排序,查找学生信息,删除,插入,清空,链表保存学生信息;
4)程序中的子程序功能和要求如下:
功能1:读入每个学生的基本信息,并计算每个学生的平均分;
要求:a. 此函数要求以结构体数组作为函数参数;
b. 既可以从键盘读入学生的人数和基本信息。也可以从文件读入学生的基本信息。若程序是第一次运行,则学生信息必须从键盘读入。若程序不是第一次运行,则学生信息可以从文件读入。
功能2: 计算某门课的平均分,将低于平均分的人数作为函数值返回主函数,将低平均分的学生基本信息存储到形参数组中返回给主函数。
要求:a. 函数具有通用性;
b. 函数有返回值,返回值为低于平均分的人数;
c. 低于平均分的学生基本信息,通过形参数组返回主函数;
d. 在主函数中输出低于平均分的学生的基本信息。
功能3: 按照某门课成绩或学生平均分排序。
要求:a. 函数具有通用性,既可以按某门课成绩排序,也可以按平均分排序;
b. 函数具有通用性,既可以升序也可以降序排序,使用函数指针作为参数;
c. 函数参数有多个,必须包括指向结构体数组的指针;
d. 函数内部的排序,要求使用指针实现。
功能4:按照学生姓名的字典顺序排序。
要求:a. 函数参数为指向结构体数组的指针;
b. 函数内部的排序,要求使用指针实现。
功能5: 按姓名查找学生基本信息。
要求:a. 同时可以查找多个人。例如可以查找系统中有无张。
三、李四、王五这三个人。多个人的名字在主函数中存储在二维字符数组中;
b. 函数返回值为查找到的人数;
c. 查找的学生信息通过形参数组返回主函数;
d. 函数参数中包括行指针,接收要查找的学生姓名信息。
功能6: 按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,对某门课分别统计每个类别的人数及所占百分比。
要求:a. 函数具有通用性;
b. 结构体数组作为函数参数。
功能7: 将所有学生信息保存到文件中。
要求:a. 函数参数为指向结构体数组的指针。
功能8: 创建链表保存学生基本信息。
要求:a. 学生信息既可以从数组中读取也可以从文件中读取;
b. 链表可以是双向链表也可以是单向链表;
c. 函数返回链表的头指针。
功能9: 按学号从小到大对链表进行排序。
功能10: 查找某门课成绩最高的学生的基本信息,某门课成绩最高的可能不只一名生。
要求:a. 成绩最高的人数通过函数返回;
b. 成绩最高的学生基本信息通过指针数组返回;
c. 函数具有通用性。
功能11: 查找某个年龄段的学生人数和学生基本信息。
要求:a. 查找的人数通过函数返回;
b. 学生基本信息通过指针数组返回;
c. 函数具有通用性。
功能12: 按姓名查找学生基本信息,对学生信息进行修改后保存;
要求:a. 函数参数均为指针;
b. 若找到并修改成功,通过指针返回修改后的学生姓名;
c. 若要找的学生不存在,返回空串。
功能13: 按学号删除学生信息;
要求:a. 函数返回链表的头指针;
b. 学号通过参数传入。
功能14: 对已按学号排好序的链表,插入一名新的学生信息,要求插入后依然有序;
要求:a. 函数返回链表的头指针。
功能15: 将链表中的学生信息保存到文件中。
要求:a. 信息存入文件中后,清空链表。
2.3 系统的结构和工作原理(或流程)
2.3.1 系统功能模块设计。
系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。在系统功能分析的基础上,考虑visual c 6.0程序编制的特点,得到如下所示的系统功能模块结构图。
学生信息管理系统。
图2.3.1
用户进入学生信息管理系统后,看到界面的提示信息,进行使用,按相应的选项进入不同的功能模块。增加记录模块主要是添加新学生的信息,修改模块可以修改错误学生信息,删除模块可删除学生信息,查找模块可查找学生信息并且分为姓名查找学号查找,统计模块是统计学生的成绩,按成绩把学生分类。排序模块可按学生姓名排序也可按学生各科成绩排序。
保存模块实现了数组保存和链表保存。最和可选推出模块退出该程序。
2.3.2 系统的结构和工作原理(或流程)
主菜单栏为:
1.录入8.建立链表。
2.输出9.链表排序。
3.计算平均分10.按成绩查找链表。
4.排序11.按年龄查找链表。
5.查找12.按姓名查找链表。
6.统计13.删除链表学生信息。
7.保存14.插入链表学生信息。
0.退出15.保存链表学生信息。
数组存储结构流程图:
功能模块为:
1.录入。2.输出。
3.计算平均分。
4.排序。5.查找。
6.统计。7.保存。
0.退出。链表存储结构流程图:
功能模块为:
8.建立链表。
9.链表排序。
10.按成绩查找链表。
11.按年龄查找链表。
12.按姓名查找链表。
13.删除链表学生信息。
14.插入链表学生信息。
15.保存链表学生信息。
3.1 实现方法和技术。
高级语言程序
课程实训报告。题目 多功能菜单选择程序设计与实现。设计者 专业班级 学号 指导教师 2011年 01 月 17 日。计算机工程系。1 题目与要求。1.1 问题提出。本人计划编写一个多功能菜单选择程序设计与实现,主要用来实现解一元二次方程 解决josephus问题 学生信息管理。1.2 本系统涉及的知...
高级语言程序设计
总分 100.00,做题时间 90分钟 一 单项选择题 总题数 15,分数 30.00 语言早期规定建立文件缓冲区采用的形式是 分数 2.00 a.缓冲文件系统。b.非缓冲文件系统。c.分页文件系统。解析 2.以下是对二维数组的正确说明的是 分数 2.00 a 3,4 a 1 4 a 3 4 解析 ...
复习,高级语言,c程序
所谓标识符,就是你起的一个名字。c c 中,是你用来标识变量名 符号常量名 函数名 数组名 文件名 类名 对象名等的。就好像你父母有了你以后给你起的名字 c c 有效标识符的构成规则如下 1 第一个字符必须是字母 不分大小写 或下划线 2 后跟字母 不分大小写 下划线 或数字组成 3 标识符中的大小...