急!!![80分]求一C语言程序

2025-02-02 19:13:4398 次浏览

最佳答案

#include

// 1结构体,可以保存学生的学号、

//语文、数学、外语,总分,假设学生数目不超过50个

struct Student

{

int No; //学号

float Chinese; //语文

float math; //数学

float English; //外语

float Sum; //总分

}student[50];

//全局变量,记录学生的个数

int n = 0;

//根据学号查找是否存在,-1不存在

int isRepeat(int No);

/*显示提示信息

6.建立一个菜单,如下图所示

1.依次输入成绩

2.修改学生成绩

3.查询学生成绩

4.删除学生成绩

5.退 出 */

void ShowMessage();

/*2 从键盘依次输入每个学生的学号

和语文、数学、外语,并能够计算总分*/

void Input();

/*3 提示操作者输入要修改数据的学生的学号,

然后查找,找到,显示该学生的数据,操作者可以修改数据,

修改后能计算并显示;找不到,显示“zhaobudao xuehao!”。*/

void Update();

/*4 提示操作者输入要查找数据的学生的学号,

然后查找,找到,显示该学生的数据;找不到,

显示“zhaobudao cixuehao!”。*/

void Query();

/*5 提示操作者输入要删除数据的学生的学号,

然后查找,找到,删除该学生的数据;找不到,

显示“zhaobudao cixuehao!”。

在这里删除采用的是把相应的字段置0。*/

void Delete();

//主函数

int main()

{

int Choice;

while (1)

{

ShowMessage();

scanf("%d", &Choice);

switch(Choice)

{

case 1:

Input();

break;

case 2:

Update();

break;

case 3:

Query();

break;

case 4:

Delete();

break;

case 5:

return 0;

break;

default:

ShowMessage();

break;

}

}

}

//根据学号查找是否存在,-1不存在

int isRepeat(int No)

{

int i;

for (i=0; i

{

if (student[i].No==No)

{

return i;

}

}

return -1;

}

/*显示提示信息

6.建立一个菜单,如下图所示

1.依次输入成绩

2.修改学生成绩

3.查询学生成绩

4.删除学生成绩

5.退 出 */

void ShowMessage()

{

printf("*************************************************\n");

printf("* *\n");

printf("* 欢迎使用学生成绩管理系统 *\n");

printf("* *\n");

printf("*************************************************\n");

printf(" 选择您要进行的操作(1—4)\n");

printf(" 1 依次输入成绩\n");

printf(" 2 修改学生成绩\n");

printf(" 3 查询学生成绩\n");

printf(" 4 删除学生成绩\n");

printf(" 5 退 出\n");

}

/*2 从键盘依次输入每个学生的学号

和语文、数学、外语,并能够计算总分*/

void Input()

{

int No;

printf("第%d学生:\n", n+1);

printf("学号:");

scanf("%d",&No);

if (-1!=isRepeat(No))

{

printf("你输入的学号己存在!\n");

}

else

{

student[n].No = No;

printf("语文成绩:");

scanf("%f",&student[n].Chinese);

printf("数学成绩:");

scanf("%f",&student[n].math);

printf("外语成绩:");

scanf("%f",&student[n].English);

student[n].Sum = student[n].Chinese + student[n].math + student[n].English;

++n;

printf("输入完毕!\n");

}

}

/*3 提示操作者输入要修改数据的学生的学号,

然后查找,找到,显示该学生的数据,操作者可以修改数据,

修改后能计算并显示;找不到,显示“zhaobudao xuehao!”。*/

void Update()

{

int No;

int i;

printf("请输入要修改的学生学号:");

scanf("%d", &No);

i = isRepeat(No);

if (-1==i)

{

printf("找不到学号!\n");

}

else

{

printf("语文成绩:%.1f 修改为:", student[i].Chinese);

scanf("%f", &student[i].Chinese);

printf("数学成绩:%.1f 修改为:", student[i].math);

scanf("%f", &student[i].math);

printf("外语成绩:%.1f 修改为:", student[i].English);

scanf("%f", &student[i].English);

student[i].Sum = student[i].Chinese + student[i].math + student[i].English;

printf("修改完毕!\n");

}

}

/*4 提示操作者输入要查找数据的学生的学号,

然后查找,找到,显示该学生的数据;找不到,

显示“zhaobudao cixuehao!”。*/

void Query()

{

int No;

int i;

printf("请输入要查询的学生学号:");

scanf("%d", &No);

i = isRepeat(No);

if (-1==i)

{

printf("找不到此学号!\n");

}

else

{

printf("语文成绩:%.1f\n", student[i].Chinese);

printf("数学成绩:%.1f\n", student[i].math);

printf("外语成绩:%.1f\n", &student[i].English);

printf("输出完毕!\n");

}

}

/*5 提示操作者输入要删除数据的学生的学号,

然后查找,找到,删除该学生的数据;找不到,

显示“zhaobudao cixuehao!”。

在这里删除采用的是把相应的字段置0。*/

void Delete()

{

int No;

int i;

printf("请输入要删除的学生学号:");

scanf("%d", &No);

i = isRepeat(No);

if (-1==i)

{

printf("找不到此学号!\n");

}

else

{

student[i].No = -1;

student[i].Chinese = 0;

student[i].math = 0;

student[i].English = 0;

printf("删除完毕!\n");

}

}

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。