数据结构课程设计---成绩管理系统(编辑修改稿)内容摘要:

%s的学号为: ,16,c)。 scanf(%ld,amp。 std[i].num)。 printf(%c 变更 %s的数学成绩为: ,16,c)。 scanf(%f,amp。 std[i].grade)。 printf(%c 变更 %s的语文成绩为: ,16,c)。 scanf(%f,amp。 std[i].chinese)。 std[i].total=std[i].chinese+std[i].grade。 //将总成绩修改 done()。 else {printf(\n%c 此姓名不存在。 ,19)。 done()。 //该函数与按学号修改函数思路完全一致 . void fix() if (empty()==0) system(cls)。 else int s。 scanf(%d,amp。 s)。 switch(s) case 1:fix_number()。 break。 //按学号修改成绩 case 2:fix_name()。 break。 //按姓名修改成绩 default :system(cls)。 void del_number() long num。 int i,j,flag=0。 printf(\n%c 请输入学生的学号: ,16)。 scanf(%ld,amp。 num)。 for(i=1。 i=n。 i++)//循环搜索需要删除的成绩 8 if (std[i].num==num) flag=1。 break。 if (flag==1) for(j=i。 j=n。 j++) std[j].num=std[j+1].num。 //将删除数据之后的学号前移一位 strcpy(std[j].c,std[j+1].c)。 // 将删除数据之后的姓名前移一位 std[j].grade=std[j+1].grade。 //分别将数学,语文,总成绩前移一位 std[j].chinese=std[j+1].chinese。 std[j].total=std[j+1].total。 n=1。 done()。 else {printf(\n%c 此学号不存在。 ,19)。 done() //删除算法的思路,经典在于删除数据后将之后所有数据提前的循环量的控制首先还是简单的查找删除数据的位置, n=1改变表单数据量 void del_name() char c[21]。 int i,j,flag=0。 printf(\n%c 请输入学生的姓名: ,16)。 scanf(%s,c)。 for(i=1。 i=n。 i++) if (strcmp(std[i].c,c)==0) flag=1。 break。 if (flag==1) for(j=i。 j=n。 j++) std[j].num=std[j+1].num。 //将删除数据之后的学号前移一位 strcpy(std[j].c,std[j+1].c)。 // 将删除数据之后的姓名前移一位 std[j].grade=std[j+1].grade。 //分别将数学,语文,总成绩前移一位 std[j].chinese=std[j+1].chinese。 n=1。 done()。 else {printf(\n%c 此姓名不存在。 \n,19)。 done()。 按照姓名删除与按照学号删除思路一致 void del() if (empty()==0) system(cls)。 else int s。 scanf(%d,amp。 s)。 switch(s) case 1:del_number()。 break。 //按照学号删除成绩 9 case 2:del_name()。 break。 //按照姓名删除成绩 default :system(cls)。 void search_number() long num。 int i,flag=0。 scanf(%ld,amp。 num)。 for(i=1。 i=n。 i++) //循环查找若找到了该学号则进行输出,没有找到则跳出查找 if (std[i].num==num) flag=1。 break。 if (flag==1) printf(\n%ld\t\t%s\t\t%\t\t%\n,std[i].num,std[i].c,std[i].grade,std[i].chinese)。 done()。 else {printf(\n%c 此学号不存在。 ,19)。 done()。 } void search_name() char c[21]。 int i,flag=0。 printf(%c 请输入学生的姓名: ,16)。 scanf(%s,c)。 for(i=1。 i=n。 i++) if (strcmp(std[i].c,c)==0)//循环查找该姓名 ,没有找到则跳出操作 flag=1。 break。 if (flag==1) printf(\n%ld\t\t%s\t\t%\t\t%\n,std[i].num,std[i].c,std[i].grade,std[i].chinese)。 done()。 else {printf(\n%c 此姓名不存在。 ,19)。 done()。 } void search() if (empty()==0) system(cls)。 else int s。 printf(\n查找数 据 \n\n)。 printf(请选择查找方式( 按学号查找; 按姓名查找;任意键返回。 ): )。 scanf(%d,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。