(一)要求:设计一个简单的学籍管理系统,包括的学生信息为:学号、姓名、年龄、C语言成绩。假设该班级学生10人,能够实现以下功能:
(1)输入10名学生的基本信息;
(2)输出10名学生的基本信息;
(3)输入学号/姓名,输出该学生的基本信息。
(4)c语言程序成绩降序排序;
(5)统计优、良、不及格的学生。
(二)数据结构分析 :
10名学生的学号、年龄、C语言成绩可分别用长度为10的一位数组sno(long int) 、sage(int)、cs(float)存储,10 名学生的姓名可以用长度为20个字符的一围数组,即字符型二维数组sname存储。
(三)算法分析
该系统主要可以由6个主要模块构成:输入学生的基本信息,输出学生的基本信息,查找学生的基本信息,排序,统计,退出。
(四)各模块的具体实现:
a. 输入学生的基本信息input
void input (unsigned long sno[], char sname[][20], int sage[], float cs[], int N)
{
int i;
//输入N个学生的基本信息
printf("请输入%d个学生的基本信息.\n",N);
for( i=0; i<N; i++)
{
printf("\n输入第%d个学生的\n",i+1);
printf("学号:");
scanf("%lu",&sno[i]);
//getchar();
printf("姓名:");
//gets(sname[i]);
scanf("%s",&sname[i]);
printf("年龄:");
scanf("%d",&sage[i]);
printf("成绩:");
scanf("%f",&cs[i]);
}
}
b.输出学生信息函数 output
void output(unsigned long sno[], char sname[][20], int sage[], float cs[], int N)
{
int i;
//输出i个学生的基本信息
printf("\n%d个学生的基本信息为\n",N);
for( i=0; i<N; i++)
{
printf("%-10lu",sno[i]);
printf("%-16s",sname[i])