学籍管理系统C语言课程的设计
德州学院计算机系
课程设计报告
实习名称 C语言课程设计
设计题目 学籍管理系统
实习时间 2012-03-05至2012-03-11
专业班级 2011计算机科学与技术
指导老师 王付山
教学单位(盖章)
小组分工情况:
学号姓名分工设计、编码测试、编写文档
二零一二年 五 月 二十五 日目录
1 实习目的1
2 问题描述1
3 需求分析1
4 概要设计2
5 详细设计3
5.1 数据结构分析3
5.2 算法分析3
5.3 主函数的设计8
5.4 预处理、常量定义、函数原型及主函数的设计12
6 测试分析14
6.1 操作员管理功能14
6.2测试截图14
7使用说明16
8总结17
9参考文献,17
10附录18
源程序18
1 实习目的
通过实习,了解并初步掌握设计,实现较大系统的完整过程,包括系统分析,编码设计,系统集成,以及调试分析,熟练掌握数据结构的选择,设计,实现以及操作方法,为进一步的应用开发打好基础。
2 问题描述
设计一个程序完成一个简单的学籍管理系统,学生的基本信息有:学号,姓名,年龄,C语言成绩。假设班级有2名学生,能实现以下功能:
(1)输入2名学生的基本信息。
(2)输出2名学生的基本信息。
(3)输入学号/姓名,输出该学生的基本信息。
(4)按学号/年龄对学生进行排序(升序),按C语言成绩降序排序。
(5)统计优、良、不及格的学生
3 需求分析
设计一个学生管理系统,通过此系统可以实现如下功能:
(1)可以录入信息(数据可以存储在一个数据文件中,数据结构、具体数据自定)可以查询任意(如,输入号,查询)可以输入号)
图1 学籍管理系统的功能示意图
该图为查找学生的基本信息时的功能示意图,如下图(图2):
图2 学生的基本信息时的功能示意图
5 详细设计
5.1 数据结构分析
此案例是一维数组、二维数组的综合运用。2名学生的学号、年龄、C语言成绩可分别用长度为10的一维数组sno(long型)、sage(int型)、cs(float型)存储;2名学生的姓名可用元素长度为20个字符的一维数组,即字符型二维数组sname存储。
5.2 算法分析
使用模块化设计思想,进入系统主界面时有6个主要模块,输入学生的基本信息、输出学生的信息、查找学生的基本信息、学生成绩排序、统计学生成绩分布、退出。学籍管理系统的流程图如图3所示:
图3 学籍管理系统流程图
(1)输入学生的基本信息、输出学生的基本信息
输入学生的基本信息、输出学生的基本信息模块使用一重循环即可实现。对应的函数为input,output。具体实现程序流程图如下(图4):
图4 输入/输出学生基本信息流程图
查找学生的基本信息又分为按学号查找和按姓名查找,所以查找学生的基本信息模块结构如图5所示。按学号查找、按姓名查找实现函数功能,程序流程图如下:
图5 查找学生的基本信息流程图
(3)排序模块:完成对2名学生C语言成绩按降序排序。
(4)统计模块:完成各个分数段学生的统计,并将其基本信息输出。如图6所示:
图6 各个分数段学生的统计流程图
(5)退出模块:完成退出系统的功能,使用语句exit(1),即可实现。
5.3 主函数的设计
主函数的功能是:
(1)变量及数组定义。
(2)显示界面。
(3)选择操作。
其中,显示界面由函数maininterface实现,对应代码如下:
void maininterface()
{
printf("\t\t*********************************************\n");
printf("\t\t* 欢迎使用学籍管理 系统 *\n");
printf("\t\t*1.输入学生的基本信息 2.输出学生的信息 *\n ");
printf("\t\t*3.查找学生的基本信息 4统计学生的成绩排序 *\n ");
printf("\t\t*5.统计学生的成绩分布 0.退出 *\n ");
printf("\t\t*********************************************\n");