#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 10 /* 字符串最大长度 */
#define STU_NUM 30 /* 最多的学生人数 */
/* 最多的考试科目数 */
typedef struct student
{
long num; /* 每个学生的学号 */
char name[MAX_LEN]; /* 每个学生的姓名 */
/* 每个学生COURSE_NUM门功课的成绩 */
/* 每个学生的平均成绩 */
}STU;
int Menu(void);
void ReadScore(STU stu[], int n);
void PrintScore(STU stu[], int n);
int main()
{
char ch;
int n = 0; /* 学生人数为n,课程门数为m */
STU stu[STU_NUM];
printf("Input student number(n<=%d):", STU_NUM);
scanf("%d", &n);
while (1)
{
ch = Menu(); /* 显示菜单,并读取用户输入 */
switch (ch)
{
case 1:ReadScore(stu, n);
break;
case 12: del(stu,n);
break;
case 11:PrintScore(stu, n);
break;
case 0: printf("End of program!");
exit(0);
default:printf("Input error!");
}
}
return 0;
}
/* 函数功能:显示菜单并获得用户键盘输入的选项 */
int Menu(void)
{
int itemSelected;
printf("欢迎来到学生管理系统\n");
printf("1.输入成绩\n");
printf("12.删除信息\n");
printf("11.List record\n");
printf("0.Exit\n");
printf("Please Input your choice:");
scanf("%d", &itemSelected); /* 读入用户输入 */
return itemSelected;
}
/* 函数功能:输入n个学生的m门课成绩 */
void ReadScore(STU stu[], int n)
{
int i;
printf("Input student's ID, name:\n");
for (i=0; i<n; i++)
{
scanf("%ld%s", &stu[i].num, stu[i].name);
}
}
//删除学生信息函数
void del(STU stu[],int n) //删除学生信息
{
int nums;
int i,j,d;
printf("\n============按学号进行删除信息===========\n");
printf("输入想要删除人的学号: ");
scanf("%d",&nums);
for(i=1;i<=n;i++)
{
if(nums==stu[i].num)
{
printf("学号\t姓名\n");
printf("%d\t%s\t\n",stu[i].num,stu[i].name);
printf("确认删除!(1.Y 2.N)\n");
scanf("%d",&d);
if(d==1)
{
for(j=i;j<=n;j++)
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
}
n--;
return main();
}
if(d==2)
{
return main();
}
}
}
/* 函数功能: 打印学生成绩 */
void PrintScore(STU stu[], int n)
{
int i;
printf("姓名 学号\n");
for (int i=0; i<n; i++)
{
printf("%ld\t%s\t\n", stu[i].num, stu[i].na
为什么我选了删除功能会自动退出系统而不会回到主菜单
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 绿豆蛙给生活加点甜 2022-04-11 18:22关注
你这个做法不太合理吧。试试我大一课设的做法?
https://blog.csdn.net/qq_53226437/article/details/112690494
如果对你有帮助,望采纳本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan