大家都在看
急!!![80分]求一C语言程序
最佳答案
#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"); } }
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。