当前位置:首页 » 考试成绩 » c语言学生成绩记录设计

c语言学生成绩记录设计

发布时间: 2021-03-02 20:24:31

㈠ c语言课程设计 成绩记录薄

c++语言行吗>

学生成绩记录簿设计 编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:

刚给人补一个来……
你有学习源C语言程序指导书么?就是全是编程解答的一本书,上面有该实验源代码,你要是一点没写就可以一下。如果没有,你可以网络当当网《C程序设计题解与实验指导》清华大学出版社李丹程等著,上面有个阅读,点一下就行,还不用买。

㈢ c语言的 学生成绩记录薄

㈣ c语言课程设计总结 题目是学生成绩记录薄设计

我简单写,请借鉴:

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "time.h"
#include "string.h"

#include<iostream>
using namespace std;

struct Student //定义学生结构
{
char id[20]; //id
char name[11]; //姓名
char res[4]; //成绩
int end; //存储时显示换行, 可去掉
Student(){end = 0x0a0d;} //回车,换行

}list[100]; //100个账号, 测试

void main()
{
srand((unsigned)time(0)); //种子
char buf[256]; //缓存

//初始化学生100名
int i;
for(i=0;i<100;++i)
{
strcpy(list[i].id ,itoa(i,buf,10));
strcpy(list[i].name ,"某人");
strcpy(list[i].res, itoa(rand()%100,buf, 10));
}

//保存数据
FILE * pf = fopen("data.txt", "wb");

for(i=0;i<100;++i)
{
fwrite(&list[i], sizeof(Student), 1, pf);
}
fclose(pf);

//读出数据
Student list_1[100]; //新数组
pf = fopen("data.txt", "rb");
for(i=0;i<100;++i)
{
fread( &list_1[i], sizeof(Student), 1, pf);
}

//显示 list_1 测试
for(i=0;i<100;++i)
{
cout<<list_1[i].id<<" "<<list_1[i].name <<" "<<list_1[i].res<<endl;
}

}

㈤ 求大神指教:学生成绩记录簿设计,编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。

// 包含必须的头文件
#include<stdio.h> #include<stdlib.h> #include<string.h>

// 定义课程的结构体
struct course {
int num; //课程编号
char name[20]; // 课程名字
int result; // 学生的成绩
float credit; // 学分
};
// 定义成绩记录簿的结构体,每个学生修了4门课
struct scorelist { int num; //学号
char name[10]; //学生姓名
struct course subject[4]; //课程相关的数据。意思是一个学生修了4门课
};
int n=0; // n用来存储一共有多少个学生
struct scorelist score[200]; //初始化成绩记录簿,上限为200条学生成绩
// 查询课程的函数
void queryclass() { int number,i,j,max=0,count=0; float average;//平均分
float pass=0; //及格人数
printf("*********请输入要查询的课程编号:"); scanf("%d",&number);
// 遍历所有的学生,打印每个学生修的课程成绩 for(i=0;i<n;i++) // 遍历所有学生
{ for(j=0;j<4;j++) // 遍历当前学生所修的4门课 {
if(score[i].subject[j].num==number) // 如果符合此条件,说明当前条目即为用户查询的课程 {
printf("学号:%d 姓名:%s %s:%d\n",score[i].num,score[i].name,score[i].subject[j].name,score[i].subject[j].result);
if(score[i].subject[j].result>=60) pass++; max+=score[i].subject[j].result; count++; } } }
if(count!=0) {
average=(float)max/count; pass=pass/count;
printf("平均分:%f\n",average);
printf("及格率:%.2f%c\n\n",pass*100,37); } }
// 查询学生信息 void querystudent() { char xm[10]; int i,flag=0,j,a,xh;
printf("*********请输入要查询的项目: 1.学号 2.姓名;"); scanf("%d",&a);
if(a==1) scanf("%d",&xh); else scanf("%s",xm);
// 根据用户输入判定用户是根据学号还是姓名查询 switch(a) {
// 根据学号查询
case 1:
// 遍历查找用户所输入的学号
for(i=0;i<n;i++) if(score[i].num==xh){ j=i;flag=1;} if(flag==0) printf("*****抱歉没有找到.******"); // 没有找到,跳出 else //找到了用户输入的学号,打印 { printf("学号:%d 姓名: %s\n",score[j].num,score[j].name); printf("**课程编号 课程名称 课程成绩 课程学分**\n"); for(i=0;i<4;i++)
{printf("%d %s %d %5.2f\n",score[j].subject[i].num, score[j].subject[i].name,score[j].subject[i].result,score[j].subject[i].credit); } } break;
// 根据姓名查询 case 2:
// 遍历查找用户输入的姓名 for(i=0;i<n;i++) if(strcmp(score[i].name,xm)==0) {j=i;flag=1; } if(!flag) printf("*****抱歉没有找到.******"); else // 找到了用户输入的学生姓名,打印 { printf("学号:%d 姓名: %s\n",score[j].num,score[j].name); printf("课程编号 课程名称 课程成绩 课程学分\n"); for(i=0;i<4;i++) {
printf("%d %s %d %f\n",score[j].subject[i].num, score[j].subject[i].name,score[j].subject[i].result,score[j].subject[i].credit); } } break;
default:printf("****输入错误!!****"); } }
// 删除一条学生记录 void del() { char xm[10];

printf("****请输入姓名: "); scanf("%s",score[n].name);ch=getchar(); for(i=0;i<4;i++)
{ printf("***请输入第%d门的课程编号 : ",i+1); scanf("%d",&score[n].subject[i].num);
printf("***请输入第%d门的课程名称 : ",i+1); scanf("%s",score[n].subject[i].name);
printf("***请输入第%d门的课程成绩 : ",i+1); scanf("%d",&score[n].subject[i].result);
printf("***请输入第%d门的课程学分 : ",i+1); scanf("%f",&score[n].subject[i].credit); } n++;
printf("\n1、继续添加 2、退出[ ]\b\b"); scanf("%d",&choice); if(choice==2) break; } }
// 写入文件 void writefile() { FILE *fp; int i;
fp=fopen("score_list","wb");//以写二进制的模式打开文件
//遍历所有记录,并把每一个结构体对象以二进制形式写入文件 for(i=0;i<=n-1;i++)
fwrite(&score[i],sizeof(struct scorelist),1,fp); printf(" !!!文件已保存为scorelist\n\n"); fclose(fp); //关闭文件 }
// 读文件,并初始化学生成绩数组 void readfile()
{ struct scorelist add; FILE *fp; n=0; fp=fopen("score_list","rb"); // 以读取二进制文件的模式打开文件 fread(&add,sizeof(struct scorelist),1,fp); // 读取一个结构体长度的数据并把它付给add对象。
// 持续读取文件,初始化新的add对象,并把它加到score的数组中去 while(!feof(fp)){ score[n]=add;n++;

fread(&add,sizeof(struct scorelist),1,fp); } printf(" !!! 文件scorelist已读取\n"); fclose(fp); // 关闭文件 }
// 主程序入口 main() { int a; struct scorelist add; FILE *fp;
// 如果没有score_list这个文件,创建它 if((fp=fopen("score_list","rb"))==NULL) fp=fopen("score_list","wb");
else{ // 如果有score_list这个文件,那么将其中的数据读取到全局的score数组。参考readfile() fread(&add,sizeof(struct scorelist),1,fp); while(!feof(fp)){ score[n]=add;n++;
fread(&add,sizeof(struct scorelist),1,fp); } }
fclose(fp);
// 程序一直读取用户输入并解析,然后调用不同的函数进行处理,并返回结果。 while(1) {
printf("********************************************************************************");
printf("\t\t 欢迎 Welcome to\n");
printf("\n\t\t\t 使用成绩记录簿系统1.0\n");
printf("****right归山东超峰所有********************在此鸣谢 网络知道 老师****************\n")
printf("*************************************MENU***************************************"); printf("\n"); printf(" 成绩记录簿\n"); printf("** ****1.添加\n"); printf("** *****2.删除\n"); printf("** *****3.查学生成绩\n"); printf("** *****4.查班成绩表(附加功能@显示平均分和及格率@)\n"); printf("** *****5.写入文件\n"); printf("** *****6.读取文件\n");
printf("** *****0.退出\n"); printf("\n\t\t输入你的选择Enter your choice(0--6):"); scanf("%d",&a); getchar(); switch(a) {
case 1:append();break; case 2:del();break; case 3:querystudent();break; case 4:queryclass();break; case 5:writefile();break; case 6:writefile();readfile();break; case 0:writefile();exit(0);break; default:printf("*********错!请再输入一遍********"); } }
}

㈥ C语言制作成绩记录簿

#include<stdio,h>
#include<stdlib.h>
struct node
{ char data;struct node *next;};

struct node *insert(struct node *h,char c)
{ struct node *p,*p1,*p2;
p=(struct node *)malloc(sizeof(struct node)); p->data=c;p->next=NULL;
if(h==NULL)h=p;
else
{ p1=p2=h;
while(c>p1->data&&p1->next!=NULL) { p2=p1;p1=p1->next;}
if(c<=p1->data)
if(p1==h) { p->next=h;h=p;}
else { p2->next=p;p->next=p1;}
else { p1->next=p;}
}
return h;
}

struct node *del(struct node *h)
{
struct node *p=h;
while(p!=NULL)
{ if(p->data%2==0) p->next=p->next->next;
p=p->next;
}
return h;
}

void printf(struct node *h)
{ struct node *p=h;
while(p!=NULL)
{ printf("%c",p->data); p=p->next;
printf("\n");
}

void main()
{ struct node *head=NULL; char *item="32659",*p=item;
puts(item);
while(*p) head=insert(head,*p++);
print(head); del(head); print(head);
}

㈦ 用C语言设计一个学生成绩统计系统

// Note:Your choice is C++ IDE
#include <iostream>
#include <string>
using namespace std;
//N代表科目数,M代表人数
#define N 2
#define M 3

class student
{public:
float score[N];
string name;
float average;
float total;
int rank;

student();
void inscore();
void calav();
void caltt();
void show();

};

void student::inscore()
{
int i;
cout<<"输入姓名:";
cin>>name;
cout<<"输入成绩:";
for(i=0;i<N;i++)
{
cin>>score[i];
}
caltt();
calav();

}

void student::calav()
{
average=total/N;
}

void student::caltt()
{
int i;
for(i=0;i<N;i++)
total+=score[i];
}

void student::show()
{
int i;
cout<<rank<<" "<<name<<" ";
for(i=0;i<N;i++)
cout<<score[i]<<" ";

cout<<endl;
}

void setrank(student sys[M])
{
int i,j;
student tmp=sys[0];

for(i=0;i<M-1;i++)
{
for(j=i+1;j<M;j++)
if(sys[j].average>sys[i].average)
{
tmp=sys[j];
sys[j]=sys[i];
sys[i]=tmp;
}
sys[i].rank=i+1;
}
sys[i].rank=i+1;
}

void findsc(student sys[M])
{
string n;
int i;
cout<<"请输入查询的名字:";
cin>>n;
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(i=0;i<M;i++)
if(sys[i].name==n)
{

sys[i].show();
}
}

void findrank(student sys[M])
{
string n;
int i;
cout<<"请输入查询的名字:";
cin>>n;
for(i=0;i<M;i++)
if(sys[i].name==n) cout<<sys[i].rank;

}

void find10(student sys[M])
{
int j;
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<10;j++)
sys[j].show();
}

void findgrade(student sys[M])
{
int i,j;
cout<<"1.>=85 2.>=75 3.>=60 4.<60"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 2:
{
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average>=75 && sys[j].average<85) sys[j].show();

}
break;
case 3:
{
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 4:
{
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average<60) sys[j].show();

}
break;

}

}

void findbad(student sys[M])
{
int i,j,k;
for(i=0;i<M;i++)
{
k=0;

cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(j=0;j<N;j++)
{
if(sys[i].score[j]<60) k++;
if(k==3)
}
}
}

void pub(student sys[M])
{
int i;
cout<<"排名 "<<"姓名 "<<"--成绩--"<<endl;
for(i=0;i<M;i++)
sys[i].show();
}

int main()
{
student st[M];
int i,j;

while(1)
{
cout<<
"-------------------------------\n"<<
"1.输入成绩\n"<<
"2.查询任一学生成绩\n"<<
"3.查询任一学生排名\n"<<
"4.查询前十的学生\n"<<
"5.查询成绩级别的情况\n"<<
"6.查询三门不及格的学生\n"<<
"7.按成绩高低,顺序输入所有学生\n"<<
"-------------------------------"<<endl;
cin>>i;
switch(i)
{
case 1:
for(j=0;j<M;j++)
{
cout<<"输入第"<<j+1<<"个学生的成绩"<<endl;
st[j].inscore();
};
setrank(st);
break;

case 2:findsc(st);system("pause");break;
case 3:findrank(st);system("pause");break;
case 4:find10(st);system("pause");break;
case 5:findgrade(st);system("pause");break;
case 6:findbad(st);system("pause");break;
case 7:pub(st);system("pause");break;
}

}

return 0;
}

㈧ 用C语言设计一个学生成绩统计程序,

要求输入10个学生5门功课的成绩,分别用子函数求出:(1)每个学生的平均分;(2)每门功课的平均分;(3)找出最高分所对应的学生和功课。
#include<stdio.h>
#include<stdlib.h>
structstudent
{
doublescore[5];
}s[10];
voidavg()
{
printf(" ");
doublesum;
for(inti=0;i<10;i++)
{
sum=0;
printf("第%d位学生的平均分数是:",i+1);
for(intj=0;j<5;j++)
sum+=s[i].score[j];
printf("%.2lf ",sum/5);
}
printf(" ");
return;
}
voidtavg()
{
printf(" ");
doublesum;
for(intj=0;j<5;j++)
{
sum=0;
for(inti=0;i<10;i++)
sum+=s[i].score[j];
printf("第%d门功课的平均分是:%.2lf ",j+1,sum/10);
}
return;
}
voidmaxsc()
{
printf(" ");
doublemax=-1;
inti,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
if(max<s[i].score[j])
{
max=s[i].score[j];
}
}
printf("最高分是:%.2lf分,对应学生与功课如下: ",max);
for(i=0;i<10;i++)
{
for(intj=0;j<5;j++)
if(max==s[i].score[j])
{
printf("第%d位学生的第%d门成绩 ",i+1,j+1);
}
}
printf(" ");
}
intmain()
{
inti,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
printf("输入第%d位学生的第%d门功课的成绩:",i+1,j+1);
scanf("%lf",&s[i].score[j]);
printf(" ");
}
printf(" ");

}
printf("学生平均分数情况: ");
avg();//每个学生的平均分
printf("功课平均分数情况: ");
tavg();//每门功课的平均分
printf("最高分数即对应学生功课: ");
maxsc();//最高分对应的学生和功课
system("PAUSE");
return0;
}

热点内容
武汉大学学生会辅导员寄语 发布: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