久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
C語言學生成績管理系統
[打印本頁]
作者:
qfzhb
時間:
2021-7-5 08:57
標題:
C語言學生成績管理系統
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
struct student
{
int num;
char name[20];
float score1;
float score2;
float score3;
float average;
};
struct student stu[50];
struct student avg;
int count=0,passwd=1;
int k=0;
void input();
void display();
void sort();
void sort_name();
void sort_score1();
void sort_score2();
void sort_score3();
void sort_average();
void query();
void query_num();
void query_name();
void update();
void update_num();
void update_name();
void re();
void re_num();
void re_name();
void renew();
void renew_num();
void renew_name();
void pa();
void list();
void main()
{
int p;
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t請輸入1啟動: ");
scanf("%d",&p);
if (p==passwd)
list();
else
{
printf("\n\n\n\n輸入錯誤!任意鍵重新輸入!");
getch();
main();
}
}
void list()
{
int a;
system("cls");
printf("----------------學生成績管理系統----------------\n\n\n");
printf("1.錄入\n2.顯示\n3.排序\n4.查詢\n5.修改\n6.刪除\n7.恢復\n8.退出\n\n");
printf("請選擇: ");
scanf("%d",&a);
switch(a)
{
case 1:
input();
break;
case 2:
display();
break;
case 3:
sort();
break;
case 4:
query();
break;
case 5:
update();
break;
case 6:
re();
break;
case 7:
renew();
break;
case 8:
break;
default:
printf("選擇錯誤!");
break;
}
}
void input()
{
char select;
system("cls");
printf("學生成績錄入\n\n");
do
{
printf("\n請輸入第%d個學生信息\n\n",count+1);
printf("學號: ");
scanf("%d",&stu[count].num);
printf("姓名: ");
scanf("%s",stu[count].name);
printf("成績一:");
scanf("%f",&stu[count].score1);
printf("成績二:");
scanf("%f",&stu[count].score2);
printf("成績三:");
scanf("%f",&stu[count].score3);
stu[count].average=(stu[count].score1+stu[count].score2+stu[count].score3)/3;
printf("是否繼續輸入(y/n): ");
fflush(stdin);
select=getchar();
count++;
}while(select=='y'||select=='Y');
if (select=='n'||select=='N')
{
list();
}
}
void display()
{
int i;
system("cls");
printf("學生成績顯示:\n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回主菜單......");
getch();
list();
}
void sort()
{
int select;
system("cls");
printf("學生成績排序:\n\n\n");
printf("\n\t\t\t1.按姓名排序\n\t\t\t2.按成績一排序\n\t\t\t3.按成績二排序\n\t\t\t4.按成績三排序\n\t\t\t5.按平均分排序\n\t\t\t6.返回\n\n");
printf("請選擇: ");
scanf("%d",&select);
switch(select)
{
case 1:
sort_name();
break;
case 2:
sort_score1();
break;
case 3:
sort_score2();
break;
case 4:
sort_score3();
break;
case 5:
sort_average();
break;
case 6:
list();
break;
default:
printf("輸入錯誤!任意鍵返回主菜單!");
getch();
list();
break;
}
}
void sort_name()
{
int i;
struct student temp;
system("cls");
printf("按姓名排序: \n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
if (strlen(stu[i].name)<strlen(stu[i+1].name))
{
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
}
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回......");
getch();
sort();
}
void sort_score1()
{
int i;
struct student temp;
system("cls");
printf("按成績一排序: \n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
if (stu[i].score1<stu[i+1].score1)
{
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
}
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回......");
getch();
sort();
}
void sort_score2()
{
int i;
struct student temp;
system("cls");
printf("按成績一排序: \n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
if (stu[i].score2<stu[i+1].score2)
{
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
}
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回......");
getch();
sort();
}
void sort_score3()
{
int i;
struct student temp;
system("cls");
printf("按成績一排序: \n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
if (stu[i].score2<stu[i+1].score3)
{
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
}
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回......");
getch();
sort();
}
void sort_average()
{
int i;
struct student temp;
system("cls");
printf("按平均分排序: \n\n");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
for (i=0;i<count;i++)
{
if (stu[i].average<stu[i+1].average)
{
temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
}
for (i=0;i<count;i++)
{
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
}
printf("任意鍵返回......");
getch();
sort();
}
void query()
{
int select;
system("cls");
printf("學生成績查詢:");
printf("\n\n\n\t\t\t1.按學號查詢\n\n\t\t\t2.按姓名查詢\n\n\t\t\t3.返回");
printf("\n\n請選擇: ");
scanf("%d",&select);
switch(select)
{
case 1:
query_num();
break;
case 2:
query_name();
break;
case 3:
list();
break;
default:
printf("輸入錯誤!任意鍵返回主菜單!");
getch();
list();
}
}
void query_num()
{
int q,i;
system("cls");
printf("按學生學號查詢:\n\n");
printf("請輸入要查詢學生的學號:");
scanf("%d",&q);
for (i=0;i<count;i++)
{
if (stu[i].num==q)
{
printf("\n%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","========","========","========");
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
printf("查詢完畢,任意鍵返回!");
getch();
query();
break;
}
else
continue;
}
printf("對不起,您所查詢的學生不存在!任意鍵返回!");
getch();
query();
}
void query_name()
{
int i,j;
char find[20];
system("cls");
printf("按學生姓名查詢\n\n\n");
printf("輸入要查詢的學生的姓名: ");
scanf("%s",find);
for (i=0;i<count;i++)
{
j=strcmp(find,stu[i].name);
if (j==0)
{
printf("\n%-8s%-12s%-12s%-12s%-12s%s\n","學號","姓 名","成績一","成績二","成績三","平均成績");
printf("%-8s%-12s%-12s%-12s%-12s%s\n","====","========","=======","=======","========","========");
printf("%-8d%-12s%-12.2f%-12.2f%-12.2f%.2f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].average);
printf("\n\n查詢完畢,任意鍵返回!");
getch();
query();
break;
}
else
continue;
}
printf("對不起,您所查詢的學生不存在!任意鍵返回!");
getch();
query();
}
void update()
{
int select;
system("cls");
printf("修改學生信息:\n\n\n");
printf("\t\t\t1.按學號修改\n\n\t\t\t2.按姓名修改\n\n\t\t\t3.返回");
printf("\n\n請選擇:");
scanf("%d",&select);
switch(select)
{
case 1:
update_num();
break;
case 2:
update_name();
break;
case 3:
list();
break;
default:
printf("輸入錯誤!任意鍵返回!");
getch();
list();
break;
}
}
void update_num()
{
int i,find;
system("cls");
printf("按學生學號修改: \n\n");
printf("請輸入要修改的學生的學號: ");
scanf("%d",&find);
for (i=0;i<count;i++)
{
if (stu[i].num==find)
{
printf("\n\n學號: ");
scanf("%d",&stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
printf("成績一: ");
scanf("%f",&stu[i].score1);
printf("成績二: ");
scanf("%f",&stu[i].score2);
printf("成績三: ");
scanf("%f",&stu[i].score3);
printf("修改成功!任意鍵返回主菜單!");
getch();
list();
break;
}
else
continue;
}
printf("您所要修改的學生不存在,任意鍵返回主菜單!");
getch();
list();
}
void update_name()
{
int i,j=0;
char find[20];
system("cls");
printf("按學生姓名修改: \n\n");
printf("請輸入要修改的學生的姓名: ");
scanf("%s",find);
for (i=0;i<count;i++)
{
j=strcmp(find,stu[i].name);
if (j==0)
{
printf("\n\n學號: ");
scanf("%d",&stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
printf("成績一: ");
scanf("%f",&stu[i].score1);
printf("成績二: ");
scanf("%f",&stu[i].score2);
printf("成績三: ");
scanf("%f",&stu[i].score3);
printf("修改成功!任意鍵返回主菜單!");
getch();
list();
break;
}
else
continue;
}
printf("您所要修改的學生不存在,任意鍵返回主菜單!");
getch();
list();
}
void re()
{
int select;
system("cls");
printf("刪除學生信息: \n\n\n");
printf("\t\t\t1.按學號刪除\n\n\t\t\t2.按姓名刪除\n\n\t\t\t3.返回\n\n");
printf("請選擇: ");
scanf("%d",&select);
switch(select)
{
case 1:
re_num();
break;
case 2:
re_name();
break;
case 3:
list();
break;
default:
printf("輸入錯誤!任意鍵返回!");
getch();
list();
}
}
void re_num()
{
int i,find,j;
system("cls");
printf("按學號刪除學生信息: \n\n");
printf("請輸入要刪除的學生的學號: ");
scanf("%d",&find);
for (i=0;i<count;i++)
{
if (stu[i].num==find)
{
j=1;
k=i;
avg=stu[i];
break;
}
else
continue;
}
if (j!=1)
{
printf("您所刪除的學生不存在!任意鍵返回主菜單!");
getch();
list();
}
else
for (i=k;i<count-1;i++)
{
stu[i]=stu[i+1];
}
printf("刪除成功!任意鍵返回主菜單!");
count--;
getch();
list();
}
void re_name()
{
int i,j,m;
char find[20];
system("cls");
printf("按姓名刪除學生信息: \n\n");
printf("請輸入要刪除的學生的姓名: ");
scanf("%s",find);
for (i=0;i<count;i++)
{
m=strcmp(find,stu[i].name);
if (m==0)
{
j=1;
k=i;
avg=stu[i];
break;
}
else
continue;
}
if (j!=1)
{
printf("您所刪除的學生不存在!任意鍵返回主菜單!");
getch();
list();
}
else
for (i=k;i<count-1;i++)
{
stu[i]=stu[i+1];
}
printf("刪除成功!任意鍵返回主菜單!");
count--;
getch();
s();
}
void renew()
{
int select;
system("cls");
printf("恢復學生信息: \n\n\n");
printf("\t\t\t1.按學號恢復\n\n\t\t\t2.按姓名恢復\n\n\t\t\t3.返回\n\n");
printf("請選擇: ");
scanf("%d",&select);
switch(select)
{
case 1:
renew_num();
break;
case 2:
renew_name();
break;
case 3:
list();
break;
default:
printf("輸入錯誤!任意鍵返回!");
getch();
list();
}
}
void renew_num()
{
int i,del;
system("cls");
printf("請輸入要恢復的學生的學號: ");
scanf("%d",&del);
if (del==avg.num)
{
for (i=k;i<count;i++)
{
stu[i+1]=stu[i];
stu[i]=avg;
break;
}
}
else
{
printf("您要恢復的學生不存在,任意鍵返回主菜單!");
getch();
list();
}
count++;
printf("恢復成功!");
getch();
list();
}
void renew_name()
{
int i,j;
char del[20];
system("cls");
printf("請輸入要恢復的學生的姓名: ");
scanf("%s",del);
j=strcmp(del,avg.name);
if (j==0)
{
for (i=k;i<count;i++)
{
stu[i+1]=stu[i];
stu[i]=avg;
break;
}
}
else
{
printf("您要恢復的學生不存在,任意鍵返回主菜單!");
getch();
list();
}
count++;
printf("恢復成功!");
getch();
list();
}
復制代碼
作者:
linmou
時間:
2021-8-5 09:54
問題1:退出沒有寫入文件,數據會丟:
問題2:修改后,平均成績不會更新
問題3:排序算法錯誤,冒泡只寫了一層循環
問題4:報錯信息不及時更新,新的錯誤提示舊的錯誤信息(偶爾出現)
問題5:578行list() 寫成s();
建議main函數最好還是寫成int main() 加 return 0;
整體寫的不錯
作者:
奔跑步
時間:
2024-8-7 02:31
你好,這個C語言編寫的學生成績管理系統的用那個軟件運行這個代碼。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久精品色欧美aⅴ一区二区
|
国产视频一区二区
|
免费一区二区三区
|
亚洲成人午夜电影
|
亚洲精品一区在线
|
91一区二区三区在线观看
|
欧美精品一区二区三区蜜桃视频
|
夜夜草导航
|
日韩在线视频精品
|
日本黄色一级视频
|
精品欧美一区免费观看α√
|
亚洲精品不卡
|
亚洲国产精品一区二区第一页
|
毛片网站在线观看视频
|
久久精品网
|
欧美精品v国产精品v日韩精品
|
欧美久久久久久
|
天天插天天狠天天透
|
亚洲一二三在线观看
|
亚洲国产精品一区二区第一页
|
亚洲瑟瑟
|
国产成在线观看免费视频
|
亚洲成人免费视频在线观看
|
免费h在线
|
国产在线精品一区二区
|
日韩不卡三区
|
日本久久网
|
亚洲不卡
|
欧美国产视频一区二区
|
国产不卡在线播放
|
国产精品免费观看视频
|
欧美日韩专区
|
欧美一区二区三区一在线观看
|
久久久国产精品入口麻豆
|
91免费视频
|
狠狠操电影
|
99爱在线观看
|
国内精品久久久久久久
|
中文字幕在线视频免费观看
|
欧美日韩不卡合集视频
|
午夜精品影院
|