C语言编写学生成绩管理系统。。。高分求助!!!!

作者&投稿:岳蒲 (若有异议请与网页底部的电邮联系)
高悬赏!!!!C语言课程设计 学生成绩管理系统《急!!!!!!》求高手帮忙!!~

#include "stdio.h"
#define N 10
struct student
{char num[10];
char name[20];
float score[3];
float sum;
float aver;
}stu[N];
void main()
{
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
int i;
float temp;
for(i=0;i<N;i++)
{printf("enter data of the%dth student:
",i+1);
printf("number: ");
gets(stu[i].num);
printf("name: ");
gets(stu[i].name);
printf("score1: ");
scanf("%f",&temp);
stu[i].score[0]=temp;
printf("score2: ");
scanf("%f",&temp);
stu[i].score[1]=temp;
printf("score3: ");
scanf("%f",&temp);
getchar();
stu[i].score[2]=temp;
}
count(stu);
printf("
");
sort(stu);
printf("
");
find(stu);
}

void count(struct student stu[])
{float sum,aver;
int i,j;
for(i=0;i<N;i++)
{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
aver=sum/3.0;
stu[i].sum=sum;
stu[i].aver=aver;
}
printf("number name sum average
");
for(i=0;i<N;i++)
printf("%-8s%-10s%-9.2f%-9.2f
",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}

void sort(struct student stu[])
{int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;}
}
printf("number name score1 score2 score3 sum average
");
for(i=0;i<N;i++)
printf("%-8s%-10s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);
}

void find(struct student stu[])
{int i,j,sum,flag=0;
printf("the student of two scores<60:
");
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<3;j++)
if(stu[i].score[j]<60)sum++;
if(sum>=2)
{flag=1;
printf("%-8s%-10s
",stu[i].num,stu[i].name);
}
}
if(flag==0)
printf(" not exist!
");
}

#include
#define LEN sizeof(struct student)
struct student
{long num;
float score[3];
float average;
struct student *next;
};
int n;
struct student*creat()/*录入模块*/
{struct student *head,*p1,*p2;
n=0;head=NULL;
p1=(struct student*)malloc(LEN);
scanf("%ld,%f,%f,%f",&p1->num,&p1->score[0],&p1->score[1],
&p1->score[2]);p1->next=NULL;
while(p1->num!=0)
{++n;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld,%f,%f,%f",&p1->num,&p1->score[0],&p1->score[1],
&p1->score[2]);
p1->next=NULL;
}
free(p1);
return(head);
}
void print(struct student *head)/*显示模块*/
{struct student *p;
printf("
Now,These %d nodes are:
",,n);
p=head;
if(head!=NULL)
do
{printf("%ld %5.2lf %5.2lf %5.2lf
",p->num,p1->score[0],
p1->score[1],p1->score[2]);
p=p->next;
}while(p!=NULL);
}
struct student *find(struct student *head,long num)/*查询模块*/
{if(head==NULL)
{frintf("
list null!
");
goto end;
}
p1=head;
while(num!=p1->num&&p1!=NULL)
{p2=p1;p1=p1->next;}
if(p1=NULL)
printf("find:%ld %5.2lf %5.2lf %5.2lf
",num,p1->score[0],
p1->score[1],p1->score[2]);
else
printf("%ld not been found!
",num);
end;
return(head);
}
void average(struct student *head)/*统计模块*/
{struct student *p;
p=head;
if(head!=NULL)
do{p->average=(p->score[0]+p->score[1]+p->score[2])/3;
printf("%ld %5.2lf",p->num,p->average);
}while(p!=NULL);
}
void main()
{
long num;
creat();
print(head);
scanf("%ld",num);/*输入要查询的学生学号*/
find(head,num);
average(head);
}

#include <stdio.h>
#include <io.h>
#include <stdlib.h>
#include <string.h>
#define MAX 200
struct student
{
char no[10]; // 学号
char name[50]; // 姓名
int sum; // 次数
float score; // 分数
};
struct data
{
int count; // 当前学生数组中学生的个数
struct student stu[MAX]; // 学生数组
} dd;
// 显示主菜单
void menu()
{
system("cls");//清屏
printf("\n");
printf("\t\t\t********************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 健身跑学分管理系统 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t* [0] 退出 *\n");
printf("\t\t\t* [1] 查看所有学生信息 *\n");
printf("\t\t\t* [2] 输入学生记录 *\n");
printf("\t\t\t* [3] 删除学生记录 *\n");
printf("\t\t\t* [4] 编辑学生记录 *\n");
printf("\t\t\t* [5] 查询(学号) *\n");
printf("\t\t\t* [6] 查询(姓名) *\n");
printf("\t\t\t* [7] 排序(学号) *\n");
printf("\t\t\t* [8] 跑步签到 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t********************************\n");
}
// 等待用户按回车后回到主菜单
void to_menu()
{
char c1,c2;
printf("\n\n\n按回车键返回主菜单...");
scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键
menu();
}
// 查看所有学生信息
void view_data()
{
int i;
printf("学号\t姓名\t次数\t学分");
printf("\n-------------------------------------------------------------------\n");
for(i=0;i<dd.count;i++)
printf("%s\t%s\t%d\t%-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].sum,dd.stu[i].score);
}
// 将数据从结构体数组保存到文件中
void save_data()
{
FILE *fp;//文件指针
int i,k;
k=dd.count;
fp=fopen("dada.txt","w");//文件存储位置:当前文件夹
fwrite(&k,sizeof(int),1,fp);
for(i=0;i<k;i++)
fwrite(&dd.stu[i],sizeof(struct student),1,fp);
fclose(fp);
}
// 输入学生记录
void add_data()
{
struct student st;
int b;
int k;
while(1)
{
printf("\n请输入学生信息:");
printf("\n学号\t姓名");
printf("\n---------------------------------------------------------------\n");
scanf("%s%s",st.no,st.name);
k = dd.count;
strcpy(dd.stu[k].no,st.no);
strcpy(dd.stu[k].name,st.name);
dd.stu[k].sum=0;
dd.stu[k].score=0;
dd.count++;
printf("\n\n继续添加学生信息[1-yes 0-no]:");
scanf("%d",&b);
if(b==0) break;
}
save_data();
}
// 将数据从文件读到结构体数组中
void read_data()
{
FILE *fp;
int i,k;
struct student st;
k=0;
if(access("dada.txt",0)==-1) // 如果文件不存在
{
fp=fopen("dada.txt","w");
fwrite(&k,sizeof(int),1,fp);
fclose(fp);
}
fp=fopen("dada.txt","r");
fread(&k,sizeof(int),1,fp);
dd.count=k;
for(i=0;i<k;i++)
{
fread(&st,sizeof(struct student),1,fp);
strcpy(dd.stu[i].no,st.no);
strcpy(dd.stu[i].name,st.name);
dd.stu[i].sum=st.sum;
dd.stu[i].score=st.score;
}
fclose(fp);
}
// 删除学生记录
void delete_data()
{
int i,k;
char no[10];
printf("\n请输入要删除学生的学号:");
scanf("%s",no);
k=-1;
for(i=0;i<dd.count;i++)
{
if(strcmp(dd.stu[i].no,no)==0)
{
k=i;
break;
}
}
if(k==-1)
{
printf("\n\n没有找到该学生(学号-%s)!",no);
}
else
{
dd.stu[k].sum=0;
dd.stu[k].score=0;
save_data();
printf("\n\n删除学生(学号-%s)记录成功!",no);
}
}
// 编辑学生记录
void edit_data()
{
int i,k;
char no[10],name[50];
printf("\n请输入要编辑学生的学号:");
scanf("%s",no);
k=-1;
for(i=0;i<dd.count;i++)
{
if(strcmp(dd.stu[i].no,no)==0)
{
k=i;
break;
}
}
if(k==-1)
{
printf("\n\n没有找到该学生(学号-%s)!",no);
}
else
{
printf("\n请输入学生数据:");
printf("\n姓名");
printf("\n--------------------------------------------------------------------\n");
scanf("%s",name);
strcpy(dd.stu[k].name,name);
save_data();
printf("\n\n编辑学生记录(学号-%s)成功!",no);
}
}
// 查询(学号)
void query_data_no()
{
int i,k;
char no[10];
printf("\n请输入要查询学生的学号:");
scanf("%s",no);
k=-1;
for(i=0;i<dd.count;i++)
{
if(strcmp(dd.stu[i].no,no)==0)
{
if(k==-1)
{
printf("\n\n学号\t姓名\t次数\t学分");
printf("\n-----------------------------------------------------------------\n");
}
k=i;
printf("%s\t%s\t%d\t%-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].sum,dd.stu[i].score);
}
}
if(k==-1)
{
printf("\n\n没有找到该学生(学号-%s)!",no);
}
}
// 查询(姓名)
void query_data_name()
{
int i,k;
char name[10];
printf("\n请输入要查询学生的姓名:");
scanf("%s",name);
k=-1;
for(i=0;i<dd.count;i++)
{
if(strcmp(dd.stu[i].name,name)==0)
{
if(k==-1)
{
printf("\n\n学号\t姓名\t次数\t学分");
printf("\n-----------------------------------------------------------------\n");
}
k=i;
printf("%s\t%s\t%d\t%-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].sum,dd.stu[i].score);
}
}
if(k==-1)
{
printf("\n\n没有找到该学生(姓名-%s)!",name);
}
}
// 排序(学号)
void sort_data_no()
{
int i,k;
struct student tmp;
k=dd.count-1;
while(k>0)
{
for(i=0;i<k;i++)
{
if(strcmp(dd.stu[i].no,dd.stu[i+1].no)>0)//最大的放末尾
{
strcpy(tmp.no,dd.stu[i].no);
strcpy(tmp.name,dd.stu[i].name);
tmp.sum=dd.stu[i].sum;
tmp.score=dd.stu[i].score;
strcpy(dd.stu[i].no,dd.stu[i+1].no);
strcpy(dd.stu[i].name,dd.stu[i+1].name);
dd.stu[i].sum=dd.stu[i+1].sum;
dd.stu[i].score=dd.stu[i+1].score;

strcpy(dd.stu[i+1].no,tmp.no);
strcpy(dd.stu[i+1].name,tmp.name);
dd.stu[i+1].sum=tmp.sum;
dd.stu[i+1].score=tmp.score;
}
}
k--;
}
save_data();
printf("\n\n排序成功!");
}
// 跑步签到
void sign()
{
int i,k;
char no[10];
float tmp;
printf("\n请输入要签到学生的学号:");
scanf("%s",no);
k=-1;
for(i=0;i<dd.count;i++)
{
if(strcmp(dd.stu[i].no,no)==0)
{
k=i;
break;
}
}
if(k==-1)
{
printf("\n\n没有找到该学生(学号-%s)!",no);
}
else
{

dd.stu[k].sum++;
tmp=(float)(dd.stu[k].sum/20*0.5);
if(tmp>2) tmp=2;
dd.stu[k].score=tmp;
save_data();
printf("\n\n签到(学号-%s)成功!",no);
}
}
// 主函数
main()
{
int fun;
read_data();
menu();
while(1)
{
printf("请输入功能号[0-8]:",&fun);
scanf("%d",&fun);
switch(fun)
{
case 0: break; // 退出
case 1: view_data();break; // 查看所有学生信息
case 2: add_data(); break; // 输入学生记录
case 3: delete_data();break; // 删除学生记录
case 4:edit_data();break; // 编辑学生记录
case 5: query_data_no();break; // 查询(学号)
case 6:query_data_name();break; // 查询(姓名)
case 7:sort_data_no(); break; // 排序(学号)
case 8:sign();break; // 跑步签到
}
if(fun==0) break;
to_menu();
}
}

100分。。。。。


用c语言编写的学生成绩管理系统。 学生成绩管理系统要求实现如下功能...
int as;start: printf("\\n\\t\\t\\t欢迎使用学生成绩管理系统\\n");\/*一下为功能选择模块*\/ do { printf("\\n\\t\\t\\t\\t1.录入学员信息\\n\\t\\t\\t\\t2.显示学员信息\\n\\t\\t\\t\\t3.成绩排序信息\\n\\t\\t\\t\\t4.添加学员信息\\n\\t\\t\\t\\t5.删除学员信息\\n\\t\\t\\t\\t6.修改学员信息\\n\\t...

c语言编写查询学生成绩管理程序。
scanf("%s",stu[i].name);printf("\\n请输入第 %d 个学生的性别:",i+1);scanf("%s",stu[i].sex);printf("\\n请输入第 %d 个学生的数学成绩:",i+1);scanf("%d",&stu[i].ke1);printf("\\n请输入第 %d 个学生的语文成绩:",i+1);scanf("%d",&stu[i].ke2);printf("\\n请输...

求以下c语言编程:一个简单的学生成绩管理系统。其中每个学生信息包括学 ...
一个简单的学生成绩管理系统。其中每个学生信息包括学号、姓名、数学成绩、英语成绩、计算机成绩。编写一个菜单程序分别完成以下功能:每个学生的信息使用结构体变量存储。 编写函数fun1(),检查录入时的学号冲突情况,具体功能为:在录入时如果已有学号相同的学生信息,需提示用户,并允许用户重新输入信息(即用新的数据覆盖原来...

用C++语言编写一个“学生成绩管理系统”。
fputs(p->sc.chinese, fp); \/\/输出语文成绩 fputs(p->sc.english, fp); \/\/输出英语成绩 fputs(p->sc.math, fp); \/\/输出数学成绩 fputs(p->sc.physics, fp); \/\/输出物理成绩 fputs(p->pe.name, fp); \/\/输出姓名 fputs(p->pe.sex, fp); \/\/输出性别 fputs(p->pe.GJ, fp); \/\/输出国籍...

用C语言 设计一学生成绩管理系统,要求: 1. 学生成绩的信息包括:学号...
printf("请输入学生成绩:\\n"); scanf("%d",&p->score); p->next=Null; r->next=p; \/\/ 这个地方我总是不明白,是怎样让结点下移一个的呢? r=r->next; } return (head); }void find (list *h){ int k; \/\/ 要找的学生学号 list *p; p=h->next; printf("请输入要查找的学生学号:\\n"...

求助高手,用C语言写一个学生成绩管理系统。。。
求助高手,用C语言写一个学生成绩管理系统。。。 题目:学生成绩管理系统功能:学生成绩管理系统,每个学生是一个记录,包括学号,姓名,性别,3门课程成绩。系统要求实现以下功能:1、信息录入:录入学生成绩信息(包括学生学号、姓... 题目:学生成绩管理系统功能:学生成绩管理系统,每个学生是一个记录,包括学号,姓名,性别,3...

用C语言编译程序学生成绩管理系统
用C语言编译程序学生成绩管理系统 1.实验说明设某班有n位同学,每位同学的数据包括以下内容:学号(长整型或字符串)、姓名(字符串)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下五项功能:新建数据档... 1. 实验说明设某班有n位同学,每位同学的数据包括以下内容:学号(长整型或字符串)、姓名(字符串)、...

用C++语言编写一个简单的“学生成绩管理系统”
《学生成绩管理系统》是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。 目的: 通过课程设计培养了我的动手能力以及综合运用所学的C++语言基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C++语言进行...

怎样用C语言写学生成绩管理系统?
student[][1]到student[][4]存放四门成绩,\\x0d\\x0a\/\/student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名\\x0d\\x0a int n,i,j,k,p,t,count,flag;\\x0d\\x0a int a[100],b[100],c[100];\\x0d\\x0a\/\/a[]存放排序后的下标,b[]存放总分(备份),c[]...

C语言学生管理系统
C语言学生管理系统 学生成绩管理系统主要功能:一、当前学生信息:通过结构体structstudent来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且可以输入当前学生初始信息。二、学... 学生成绩管理系统主要功能:一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和...

锡山区13686483982: 编程如何用C语言编写一个学生成绩管理系统程序 -
仁视德宝: 我们才做了这个作业... #include <malloc.h> #include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct scorenode) #define DEBUG #include <string.h> struct scorenode { int number;/*学号*/ char name[8];/*姓名*/ float cj1;/*成绩1*/ ...

锡山区13686483982: 高分求用C语言编写学生成绩管理系统 -
仁视德宝: #include<iostream> #include<iomanip> #include<fstream> #include<string> using namespace std; #define max 100; class student { public: student *next; public: string name;//姓名 long num;//学号 int x,y,z;//数学,语文e799bee5baa6e58685e...

锡山区13686483982: 学生成绩管理系统 用C语言写
仁视德宝: #include #include #define LEN sizeof(struct stu) //#define NULL 0 struct score { char work1[64]; int score1; char work2[64]; int score2; char work3[64]; int score3; }; struct stu { char name[100]; int age; int classes; char address[500]; char telephone[14...

锡山区13686483982: c语言编写学生成绩管理系统 -
仁视德宝: #include <stdio.h> void main() { /*输入资料*/ int student[5][4],i; for (i=0; i<=4; i++); scanf("%d,%d,%d \n",student[i][0],student[i][1],student[i][2],student[i][3]) /*平均分*/ for (i=0; i<=4; i++); printf("%f",(float)((student[i][1]+student[i][2]+student[i][3]...

锡山区13686483982: c语言设计学生成绩管理系统 -
仁视德宝: #include<iostream> #include<cstdio> #include<cmath> #include<vector> #include<list> #include<cstring> #include<map> #include<set> #include<algorithm> #include<queue> using namespace std; int n; struct birth {int year,month,day; };struct ...

锡山区13686483982: 怎么用c语言编写一个学生成绩管理系统啊?急…… -
仁视德宝: C语言课程设计报告-------学生成绩简单管理程序 一、系统菜单的主要功能 (1)输入若干条记录 (2)显示所有记录 (3)按学号排序 (4)插入一条记录 (5)按姓名查找,删除一条记录 (6)查找并显示一条记录 (7)输出统计信息 (新增)...

锡山区13686483982: 如何用C语言编一个学生成绩管理系统 -
仁视德宝: #include "stdio.h"#include "stdlib.h"#include "string.h"#define NULL 0 int shoudsave=0; struct student { char num[10]; char name[20]; char sex[4]; int cgrade; int mgrade; int egrade; int totle; int ave; char neartime[10]; }; typedef struct node { ...

锡山区13686483982: 求怎么用C语言做一个学生成绩管理系统 -
仁视德宝: 去年写的,你稍微改下加个成绩就行#include#include#include FILE *fp; struct student{ char name[10]; char number[12]; char age[3]; struct student *next; }; struct student *creat(); //手动创建链表 struct student *build_list(); //从文件读取信息...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网