當前位置:首頁 » 考試成績 » 假設有張學生成績表

假設有張學生成績表

發布時間: 2021-01-18 07:47:07

㈠ 假設收集到了一個班學生的所有成績信息(不低於20人),要求用C語言編寫一個簡單的成績管理系統

代碼已發,在附件,郵件名「代碼」,附件Untitled2.c

如果有疑問歡迎追問。

代碼如下:

#include<stdio.h>

#include<string.h>

#include<malloc.h>

#include<math.h>

#define min(A,B) (A<B?A:B)

#define max(A,B) (A<B?B:A)

typedef struct Student

{

long long int id;

char name[11];

int score[4];

double avg;

struct Student* next;

} Student;

void print(Student* stu)

{

printf("學號:%10lld 姓名:%10s 成績:語文:%3d 數學:%3d 英語:%3d 計算機:%3d 平均分:%3.2lf ",

stu->id,stu->name,stu->score[0],stu->score[1],stu->score[2],stu->score[3],stu->avg);

}

int main(void)

{

Student* head = 0;


int stucount=0;//數量


while(1)

{

printf("輸入操作號:1:錄入學生 2:瀏覽 3:查詢 4:修改 5:排序 6:統計 ");


int quest;

scanf("%d",&quest);

scanf("%*[^ ]");


if(quest==1)

{

printf("錄入學生: ") ;

while(1)

{

printf("請輸入學生學號(-1退出錄入): ");

long long int id;

scanf("%lld", &id);


if(id==-1)break;


Student* newStudent = (Student*)malloc(sizeof(Student));

newStudent->id=id;


printf("請輸入學生名字: ");

scanf("%10s", newStudent->name);

scanf("%*[^ ]");


printf("請輸入學生語文成績: ");

scanf("%d",&(newStudent->score[0]));


printf("請輸入學生數學成績: ");

scanf("%d",&(newStudent->score[1]));


printf("請輸入學生英語成績: ");

scanf("%d",&(newStudent->score[2]));


printf("請輸入學生計算機成績: ");

scanf("%d",&(newStudent->score[3]));


int sum=0;

for(int i=0; i<4; ++i)sum+=newStudent->score[i];

newStudent->avg = sum/4.0;

printf("學生已錄入!平均分為:%lf ",newStudent->avg);


//插入鏈表首,這樣最新添加的顯示在最上面,容易看見效果

newStudent->next=head;

head=newStudent;


++stucount;

}



}

else if(quest==2)

{

if(head==0)

printf("沒有學生! ");

else

{

printf("開始瀏覽學生: ");

int st=0,en=min(st+10,stucount);

while(1)

{

printf("瀏覽學生:%d個到%d個學生 ",st+1,en);

Student* stu = head;

for(int i=0; i<st; ++i)

{

stu=stu->next;

}

for(int i=st; i<en; ++i)

{

print(stu);

stu=stu->next;

}

printf("輸入操作號:1 向後翻頁;2 向前翻頁;-1 退出 ");

int squest;

scanf("%d",&squest);

scanf("%*[^ ]");

if(squest==1)

{

if(en!=stucount) st=en;

}

else if(squest==2)

{

st=max(0,st-10);

}

else if(squest==-1)break;

en=min(st+10,stucount);

}

}

}

else if(quest==3)

{

printf("開始查詢學生信息: ");


while(1)

{

printf("通過什麼查詢?1:學生id 2:學生名字 3:學生語文成績 4:學生數學成績 5:學生英語成績 6:學生計算機成績 7:平均分 -1 退出 ");

int squery,squery2;

scanf("%d", &squery);

if(squery==-1)break;

Student temp;

Student* newStudent = &temp;

if(squery==1)

{

printf("請輸入學生id: ");

scanf("%lld", &(newStudent->id));

}

else if(squery==2)

{

printf("請輸入學生名字: ");

scanf("%10s", newStudent->name);

scanf("%*[^ ]");

}

else if(squery==3)

{

printf("請輸入學生語文成績: ");

scanf("%d",&(newStudent->score[0]));

}

else if(squery==4)

{


printf("請輸入學生數學成績: ");

scanf("%d",&(newStudent->score[1]));

}

else if(squery==5)

{

printf("請輸入學生英語成績: ");

scanf("%d",&(newStudent->score[2]));

}

else if(squery==6)

{

printf("請輸入學生計算機成績: ");

scanf("%d",&(newStudent->score[3]));

}

else if(squery==7)

{

printf("請輸入學生平均分: ");

scanf("%lf",&(newStudent->avg));

}

if(squery>=3 && squery<=7)

{

printf("顯示比此分數高還是低的學生?1:低 2:高 ");

scanf("%d",&squery2);

}


Student* stu = head;

int flag=0;

while(stu!=0)

{

if(squery==1)

{

if(newStudent->id==stu->id)

{

print(stu);

flag=1;

}

}

else if(squery==2)

{

if(strcmp(newStudent->name,stu->name)==0)

{

print(stu);

flag=1;

}

}

else if(squery==7)

{

if((newStudent->avg!=stu->avg) && ((newStudent->avg>stu->avg) ^ (squery2==2)))

{

print(stu);

flag=1;

}

}

else if(squery>2 && squery<7)

{

if((newStudent->score[squery-3]!=stu->score[squery-3]) && ((newStudent->score[squery-3]>stu->score[squery-3]) ^ (squery2==2)))

{

print(stu);

flag=1;

}

}


stu=stu->next;

}

if(flag==0)

{

printf("沒有查到學生! ");

continue;

}



}

}

else if(quest==4)

{

printf("開始修改學生信息: ");


while(1)

{

printf("請輸入學生學號(-1退出修改): ");

long long int id;

scanf("%lld", &id);


if(id==-1)break;


Student* newStudent = head;

Student* lststu = 0;

while(newStudent!=0 && newStudent->id!=id)

{

lststu=newStudent;

newStudent=newStudent->next;

}

if(newStudent==0)

{

printf("沒有查到學生! ");

continue;

}

printf("請輸入操作號:1:修改學生名字 2:修改學生語文成績 3:修改學生數學成績 4:修改學生英語成績 5:修改學生計算機成績 6:刪除學生 ");


int squery;

scanf("%d", &squery);

if(squery==1)

{

printf("請輸入學生名字: ");

scanf("%10s", newStudent->name);

scanf("%*[^ ]");

}

else if(squery==2)

{


printf("請輸入學生語文成績: ");

scanf("%d",&(newStudent->score[0]));

}

else if(squery==3)

{


printf("請輸入學生數學成績: ");

scanf("%d",&(newStudent->score[1]));

}

else if(squery==4)

{

printf("請輸入學生英語成績: ");

scanf("%d",&(newStudent->score[2]));

}

else if(squery==5)

{

printf("請輸入學生計算機成績: ");

scanf("%d",&(newStudent->score[3]));

}

else if(squery==6)

{

stucount--;

if(lststu!=0)

lststu -> next = newStudent -> next;

else

head = newStudent -> next;

printf("已刪除學生! ");

}

if(squery!=6)

{

int sum=0;

for(int i=0; i<4; ++i)sum+=newStudent->score[i];

newStudent->avg = sum/4.0;

printf("學生已修改!他的平均分為:%lf ",newStudent->avg);

}

}

}

else if(quest==5)

{

if(head==0)

printf("沒有學生! ");

else

{

printf("對學生按什麼排序?:1:學生號 2:名字 3:語文成績 4:數學成績 5:修改學生英語成績 5:計算機成績 6:平均分 ");

int squery;

scanf("%d", &squery);

printf("升序還是降序? 1:升序 2:降序 ");

int squery2;

scanf("%d", &squery2);

int flag=1;

Student* stu = head;

Student* lststu = 0;

while(flag==1)

{

flag=0;

while(stu->next!=0)

{

int swflag=0;

if(squery==0)

{

if((stu->next->id > stu->id) ^ (squery2==1))swflag=1;

}

else if(squery==1)

{

if((strcmp(stu->next->name,stu->name)>0) ^ (squery2==1))swflag=1;

}

else if(squery==6)

{

if((stu->next->avg > stu->avg) ^ (squery2==1))swflag=1;

}

if(swflag==1)

{

flag=1;

if(lststu==0) head=stu->next;

else lststu->next=stu->next;

Student* temp = stu->next->next;

stu->next->next=stu;

stu->next=temp;

}

lststu=stu;

stu=stu->next;

}

}

printf("已排序! ");

}


}

else if(quest==6)

{


double totscore[4]= {0};

double sum=0;

Student* stu=head;

while(stu!=0)

{

for(int i=0; i<4; ++i)

{

totscore[i]+=stu->score[i];

sum+=stu->avg;

}

}

for(int i=0; i<4; ++i) totscore[i]=totscore[i]/4.0;

sum=sum/4.0;

printf("統計:學生人數:%d 語文平均分:%lf 數學平均分:%lf 英語平均分:%lf 計算機平均分:%lf 總平均分:%lf ",stucount,totscore[0],totscore[1],totscore[2],totscore[3],sum);

}

else if(quest==-1)

break;

}

return 0;

}

㈡ 設計一個學生管理系統,假設每個學生包括如下信息:學號,姓名,各門課成績(數學,英語,C++)

首先你要有一個登錄功能,登陸成功進入學生列表
列表顯示全部學生信息,專也支持按學號或姓名屬的模糊查詢 ,並進行排序
每條列表後面有一個刪除按鈕和修改按鈕
刪除按鈕直接根據id刪除,修改按鈕進入修改頁面,

工具欄有添加學生信息功能 進入添加頁面
修改刪除,新增後都要生成 記錄文件.dat,每次覆蓋掉舊的dat,你不覆蓋也可以
然後還有注銷功能

㈢ 假設一個Excel工作表中包含某班所有學生的計算機成績,如何計算出該班級計算機成績

假如計算機成績在a2到a80
你找個空格輸入=sum(a2:a80),就是總成績
求平均,再找個空格輸入=sum(a2:a80)/79
79是人數

㈣ 假設score.txt文件中保存了三個班學生的考試成績,請編寫一段shell程序來計算每個班級的學生人數與平均分

只要文件中每行為一個學生的成績列表 分數是分開的
是可以做到的。看score.txt的內容具體格式是什麼了

㈤ 假設有3個學生 每個學生均選修了4門課程 計算出每個學生的平均分與總成績 的c語言 編程怎麼寫

#include <stdio.h>
#define M 4
#define N 3
void main()
{
float score[M],add[N]={0},k[M]={0};
int i,j;
for(i=0;i<N;i++)
{
add[i]=0;
printf("輸入第%d個學生%d門課專程的成績屬\n",i+1,M);
for(j=0;j<M;j++)
{
scanf("%f",&score[j]);
add[i]+=score[j];
k[j]+=score[j];
}
}
for(i=0;i<N;i++)
printf("第%d個學生平均成績:%.1f\n",i+1,add[i]/M);
for(i=0;i<M;i++)
printf("第%d門課的平均成績:%.1f\n",i+1,k[i]/N);
}

㈥ 設計一個學生成績管理系統,假設每個學生包括如下信息:學號、姓名、各門課成績(數學、英語、C語言)。

void print(struct student *);
void input(struct student *);

struct student
{
int num;
char name[20];
int score[3];
}stu[10];

struct student *p;

void main()
{
p = stu;
input(p);
print(p);
system("pause");
}

void input(struct student *p)
{
int i = 0, j;
for(p = stu; p < stu + 2; p++, i++)
{
("請輸入第%d個人的學號:", i + 1);
scanf("%d",&p->num);
printf("請輸入第%d個人的姓名:", i + 1);
scanf("%s",&p->name);
for(j = 0; j < 3; j++)
{
printf("請輸入他第%d門課的成績:", j + 1);
scanf("%d",&p->score[j]);
}
}
p = stu;
}

void print(struct student *p)
{
int num, j;
float avg, sum = 0;
struct student *q;
num = p->score[0];
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
{
if(q->score[j] > num)
num = q->score[j];
sum += q->score[j];
}
}
avg = sum / 3 * 2;
printf("%f\t%d\n", avg, num); //找出最大的一個然後比較,找到最大的那個所在的哪一個stu[i],然後輸出這個組的所有數據就搞定···
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
if(q->score[j] == num)
{
printf("%d\t%s\n",q->num, q->name);
for(j = 0; j < 3; j++)
printf("%d\t",q->score[j]);
printf("\n");
break;
}
}
}

㈦ 假設某學校有一個學生成績管理系統。其中用到一張表,表名為student(有學生學號、姓名、語文、數學、英語

如果不是專門為了練習編程,Excel表格就能完成你想得到的。

㈧ 假設資料庫中有學生信息表、課程信息表和成績表三個表查處所有信息及總分數怎麼做

select b1.name,b2.name,b3.chengji from b1 inner join (b2 inner join b3 on b2.id=b3.b2ID) on b1.id=b2.b2ID where b2.name='資料庫' and b3.chengji>69 and b1.zhuanye='計算機回答' order by b3.chengji desc

㈨ 假設ACCESS資料庫中有一個學生成績表,用SQL語令查詢學生的學號和成績

(1)select學號復,成績制from學生成績表where姓名='張三'
(2)select班級,count(*)人數from學生成績表groupby班級
(3)selectmax(成績)from學生成績表

㈩ 假設有一個成績表score,有id、學號stu_id、分數score三個欄位,將此表跟上述學生表進

mysql 左連接
select * from tb_student(學生表版權) stu left join score sco on stu.id=sco.stu_id;
右連接
select * from tb_student(學生表) stu right join score sco on stu.id=sco.stu_id;

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919