教务信息管理系统

学计算机软件技术基础(VC)课程设计任务书一、 题目:教务信息管理系统 二、目的与要求:1. 目的:培养学生综合利用C++语言进行程序设计的能力,考察学生的观察能力和总结能力,使学生将所学知识转化为分析和设计简单实际问题的能力。2. 基本要求:要求用C++语言编程,在Visual C++环境下调试完成。3. 创新要求:(1) 界面中添加菜单,用户可以重复进行操作,例如: 程序中可添加多级菜单,此处仅为举例,请同学们自己设计。(2)程序运行后,用户可以添加新的学生信息,并且可以查看新的排序结果,和查询操作4.写出设计说明书,书写设计报告的要求 设计报告中包含以下几个方面:(1)题目(2)列出程序清单,并加以必要的注释(3)写出调试程序的方法(4)写出所设计问题的不足和改进方案三、设计方法和基本原理:1. 问题描述:(1)学生基本情况录入:如,学号、姓名、班级、三门功课的卷面成绩、三门功课的平时成绩。(2)基于各种基本数据的统计计算:① 计算每门功课的综合成绩:综合成绩=卷面成绩×70%+平时成绩×30%注意:以下所指“成绩”均为“综合成绩”。② 计算每个学生的平均成绩: 平均成绩=三门功课成绩之和/3③ 输出每个学生的信息包括:学号、姓名、班级、综合成绩、平均成绩④ 统计并输出各班各门功课的平均成绩。注意:班级数不固定,以用户输入的班级数目为准。例如,5个学生分别属于3个班。(3)基于数据的查询: ①输入学号,程序输出该学生的信息(学号、姓名、班级、平均成绩)。 注意:每个学生的学号是唯一的。 (4)排序 用户可以选择以下三种排序方式浏览数据:①按照学生平均分排序输出学生信息(名次、学号、姓名、平均成绩)。②按照单科成绩排序输出学生信息(学号、姓名、单科成绩)2.问题的解决方案:(1)使用二维数组来存放数据;(2)排序:冒泡排序法;(3)插入:首先,找到插入位置;其次,插入数据。
2026年09月19日 23:54
有2个网友回答
网友(1):

/* Note:Your choice is C IDE */
#include

struct Student
{
int num;
char name[20];
float score[3];
float avg;
}stus[30];

void Add(float*);/*填加学员*/
void List();/*/学员详细列表 */
void Asc();/*/显示后三名学员 */
void Desc();/*/显示前三名学员*/
void Display();

void main()
{
int s;
float xxx;

while(1)
{
printf("Students System:\n");
printf("1. Add Student\n");
printf("2. Student list\n");
printf("3. Display the before Three\n");
printf("4. Display the last three NUm\n");
printf("5. Display the average\n");
printf("6. Exit\n");
printf("Please input select:\t");
scanf("%d",&s);

switch(s)
{
case 1:
Add(&xxx);
break;
case 2:
List();
break;
case 3:
Desc();
Display();
break;
case 4:
Asc();
Display();
break;
case 5:
Display();
break;
case 6:
return;
break;
default:
printf("Select Wrong!\n");
break;
}
}
}

void Add(float* p)
{
int i,k;
float sum;
char c;

for(i=0;i<30;i++)
{
printf("Input the num %d student Information:\n",i+1);
printf("Num:");
scanf("%d",&stus[i].num);
printf("Name:");
fflush(stdin);
scanf("%s",stus[i].name);
printf("Please the before three chenji:\n");

sum=0;
for(k=0;k<3;k++)
{
printf("%d:",k+1);
scanf("%f",p);
stus[i].score[k]=*p;
sum+=stus[i].score[k];
}
stus[i].avg=sum/3;

printf("Is go on?");
fflush(stdin);
scanf("%c",&c);

if(c=='n' || c=='N')
return;
}

}

void List()
{
int i,j=0;
printf("Num\tName\tChenji1\tChenji2\tChenji3\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);

}
}

}

void Asc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Desc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg>stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Display()
{
int i,d=0;
printf("Num\tName\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);
d++;
}
if(d==3)
break;
}

}
在楼上的这位基础上稍候修改了一下,因为其在TC中不能正常编译.......

网友(2):

来我空间,我这有啊!865475739