求C语言-学生管理系统, 编程!~

作者&投稿:花鲍 (若有异议请与网页底部的电邮联系)
用C语言编程学生信息管理系统!~

/*【学生管理系统】*/
//modify
#include
#include
#include
#include
#include

#define N 100
typedef struct student
{
int num; //学号,姓名,年龄,性别,出生年月,地址,电话,
char name[18];
char sex;
int age;
int y,m;
int tel;
char add[30];
char mail[20];
int res;
int stu;
} SDate;
int PassWord();
void Menu();
int Input_Choice(); //函数声明
void Info_Paixu(SDate *student,int n);
void Info_print(SDate *stu,int n);
int Input_file(SDate *stu1);
int Info_Input(SDate *stu,int count);
void Info_Seach(SDate *stu,int n);
void Info_Change(SDate *stu,int n,int Num);
void Exit();
void Print_file(SDate *stu,int n);
int Info_Del(SDate *stu, int n, int del);
void Info_Change(SDate *stu, int res, int choice);
int Info_Add(SDate *stu, int count);
int main()
{
SDate stu[N];
int ret=0,res=0,choice=0;
char ch;
loop:
ret=PassWord(); //登录函数 默认密码为admin
if(!ret)
{
system("cls");
printf("
密码错误或验证码错误!
"); //默认密码:admin
system("pause");
system("cls");
goto loop;
}
system("cls");
e:
Menu(); //菜单显示函数
printf("你的选择是?
");
scanf("%d",&ret);
switch(ret)
{
case 1:
choice=Input_Choice(); //InputChoice()数据输入方式选择函数
if(choice==1)
res=Info_Input(stu,res); //键盘输入函数
else if(choice==2)
res=Input_file(stu); //文件读取函数
else
{
system("cls");
goto e;
}
break;
case 2:
if(res==0)
{
system("cls");
printf("没有数据输入,请重新选择!
");
goto e;
}
else
Info_print(stu,res);
break;
case 3:
if(res==0||res==1)
{
system("cls");
printf("没有需要排序数据,请重新选择!
");
goto e;
}
else
Info_Paixu(stu,res);
break;
case 4:
Info_Seach(stu,res);
break;
case 5:
res=Info_Add(stu,res);
break;
case 6:
Info_print(stu,res);
printf("输入学号进行删除:");
scanf("%d",&choice);
res=Info_Del(stu, res, choice);
break;
case 7:
printf("请输入需要修改的学号:");
scanf("%d",&choice);
Info_Change(stu,res,choice);
break;
case 8:
Print_file(stu, res);
break;
case 9:
Exit();
break;
default :
printf("您的选泽有误!
");
}
getchar();
printf("返回主菜单重新选择y/n?");
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
{
system("cls");
goto e;
}
return 0;
}

int yanzheng() //验证码模块
{
int a,b,c,d;
srand((unsigned)time(NULL));
a=rand()%100;
b=rand()%100;
c=a+b;
printf("
**************************
");
printf("验证码: %d+%d=?
",a,b);
printf(" 答案为:");
scanf("%d",&d);
if(c==d)
return 1;
else
return 0;
}
int PassWord() //登录模块
{
int i=0;
char passWord[18];
char p[]="admin"; //默认密码设置
char ch;
printf(" 欢迎使用学生信息管理系统
");
printf("
");
printf("用户名:Admin
");
printf("
");
printf("密码:");
while((ch=getch())!=13)
{
putchar('*');
passWord[i]=ch;
i++;
}
passWord[i]='\0';
if(strcmp(p,passWord)==0)
yanzheng();
else
return 0;
}

void Menu() //菜单模块
{
printf(" 欢迎使用学生信息管理系统
");
printf("
*******************************************
");
printf("** 1、学生信息录入 **
");
printf("** 2、学生信息浏览 **
");
printf("** 3、学生信息排序 **
");
printf("** 4、学生信息查找 **
");
printf("** 5、学生信息添加 **
");
printf("** 6、学生信息删除 **
");
printf("** 7、学生信息修改 **
");
printf("** 8、学生信息保存 **
");
printf("**9、退出 **
");
printf("*******************************************
");
}

int Input_Choice() //数据输入方式选择
{
int i;
system("cls");
printf(" 欢迎使用学生信息管理系统
");
printf("1、键盘录入
");
printf("2、文件读取
");
printf("0、返回
");
printf("你的选择是?");
scanf("%d",&i);
return i;
}

int Info_Input(SDate *stu,int count) //信息从键盘输入模块
{
SDate *p;
p=stu;
system("cls");
printf("请输入第%d个学生学号(输入0结束):
",count+1);
scanf("%d",&p->num);
while(p->num!=0)
{
printf("请输入该学生姓名:
");
scanf("%s",p->name);
printf("请输入该学生年龄:
");
scanf("%d",&p->age);
getchar();
printf("请输入该学生性别:
");
scanf("%c",&p->sex);
printf("请输入该学生出生年月:
");
scanf("%d%d",&p->y,&p->m);
printf("请输入该学生住址:
");
scanf("%s",p->add);
printf("请输入该学生联系电话:
");
scanf("%d",&p->tel);
printf("请输入该学生E-Mail:
");
scanf("%s",p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):
",count);
scanf("%d",&p->num);
}
return count;
}

int Input_file(SDate *stu1) //信息从文件输入模块
{
int rin=0;
SDate *p;
FILE *fp;
p=stu1;

if((fp=fopen("StuInfo.txt","r"))==NULL)
printf("该文件不存在!
");
while(!feof(fp))
{
fscanf(fp,"%d %s %c %d %d %d %d %s %s
",&p->num,p->name,&p->sex,&p->age,&p->y,&p->m,&p->tel,p->add,p->mail);
p++;
rin++;
}
fclose(fp);
printf("文件读取成功!
");
return rin;
}

void Info_print(SDate *stu,int n) //信息输出至屏幕模块
{
SDate *p;
if(n==0) //学号,姓名,年龄,性别,出生年月,地址,电话,
printf("没有录入信息!
");
else
{
printf("
以下是%d个同学的信息
",n);
printf("学号 姓名 性别 年龄 出生年月 电话 地址 E-Mail
");
for(p=stu; p<stu+n; p++)
printf("%d %s %c %d %d-%d %d %s %s
",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail);
}
}

void Print_file(SDate *stu,int n) //信息保存至文件模块
{
FILE *fp;
SDate *p;
p=stu;
if((fp=fopen("StuInfo.txt","a"))==NULL)
printf("文件读取失败!
");
else
{
for(; p<stu+n; p++)
fprintf(fp,"%d %s %c %d %d %d %d %s %s
",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail);
fclose(fp);
printf("
保存成功!
");
}
}


void Info_Paixu(SDate *stu,int n) //学号排序模块
{
int i,j;
SDate p;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-1-i; j++)
{
if((stu[j].num)>(stu[j+1].num))
{
p=stu[j];
stu[j]=stu[j+1];
stu[j+1]=p;
}
}
}
printf("排序完成!
");
}

void Exit() //退出模块
{
printf("谢谢使用!
");
exit(1);
}

void Info_Seach(SDate *stu,int n) //查询模块,目前仅支持学号或姓名的精准查询
{
int num,choice;
char name[10];
int flag=-1,i;
system("cls");
printf("请输入查询方式:1、学号查询
2、名字查询
");
printf("您的选择是?");
scanf("%d",&choice);
if(choice==1)
{
lab1:
printf("请输入需要查找的学号:
");
scanf("%d",&num);
for(i=0; i<n; i++)
{
if(num==stu[i].num)
{
flag=i;
printf("%d %s %c %d %d-%d %d %s %s
",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail);
}
}
if(flag==-1)
{
printf("未找到!请重新选择
");
printf("1、返回继续查询
2、退出查询,返回主菜单
3、退出程序你的选择是?");
scanf("%d",&choice);
if(choice==1)
{
system("cls");
goto lab1;
}
if(choice==2)
goto end;
else
Exit();
}
}
else if(choice==2)
{
lab2:
printf("请输入需要查找的姓名:
");
scanf("%s",name);
for(i=0; i<n; i++)
if(strcmp(name,stu[i].name)==0)
{
flag=i;
printf("%d %s %c %d %d-%d %d %s %s
",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail);
}
if(flag==-1)
{
printf("您的输入有误!请重新选择
");
printf("1、返回继续查询
2、退出查询,返回主菜单
3、退出程序
你的选择是?");
scanf("%d",&choice);
if(choice==1)
{
system("cls");
goto lab2;
}
if(choice==2)
goto end;
else
Exit();
}
}
end:
;
}

void Info_Change(SDate *stu,int n,int Num) //信息修改模块
{
int i;
for(i=0; i<n; i++)
if(stu[i].num==Num)
{
printf("请输入该学生姓名:
");
scanf("%s",stu[i].name);
printf("请输入该学生年龄:
");
scanf("%d",&stu[i].age);
getchar();
printf("请输入该学生性别:
");
scanf("%c",&stu[i].sex);
printf("请输入该学生出生年月:
");
scanf("%d%d",&stu[i].y,&stu[i].m);
printf("请输入该学生住址:
");
scanf("%s",stu[i].add);
printf("请输入该学生联系电话:
");
scanf("%d",&stu[i].tel);
printf("请输入该学生E-Mail:
");
scanf("%s",stu[i].mail);
printf("学号为%d的同学信息修改完成!
",Num);
}
}

int Info_Del(SDate *stu, int n, int del) //信息删除模块
{
int i,j;
for(i=0; i<n; i++)
if(stu[i].num==del)
for(j=i; j<n-1; j++)
stu[j]=stu[j+1];
n--;
printf("删除成功!
");
return n;
}

int Info_Add(SDate *stu,int count) //信息添加模块
{
SDate *p;
system("cls");
printf("当前共有%d个数据
",count+1);
p=stu+(count);
printf("请输入第%d个学生学号(输入0结束):
",count+1);
scanf("%d",&p->num);
while(p->num!=0)
{
printf("请输入该学生姓名:
");
scanf("%s",p->name);
printf("请输入该学生年龄:
");
scanf("%d",&p->age);
getchar();
printf("请输入该学生性别:
");
scanf("%c",&p->sex);
printf("请输入该学生出生年月:
");
scanf("%d%d",&p->y,&p->m);
printf("请输入该学生住址:
");
scanf("%s",p->add);
printf("请输入该学生联系电话:
");
scanf("%d",&p->tel);
printf("请输入该学生E-Mail:
");
scanf("%s",p->mail);
count++;
p++;
system("cls");
printf("请输入第%d个学生学号(输入0结束):
",count+1);
scanf("%d",&p->num);
}
return count;
}

#include
#include
#include
#define t 100
void fun(struct student *s);
void fun1(struct student *s);
void fun2(struct student *s);
void fun3(struct student *s);
void fun4(struct student *s);
void fun5(struct student *s);
void fun6(struct student *s);
struct student
{
char no[20];
char name[20];
char spec[20];
int grade;
char sex[20];
};
void main()
{
struct student s[t]={{"10001","zhang","chinese",12,"male"},
{"10002","wang","math",13,"fale"},
{"10003","lisi","chemsi",12,"male"},
{"10004","mazhi","english",13,"fale"},
{"10005","kuko","math",14,"male"}};

fun(s);
}
void fun(struct student *s)
{
int n;
printf("

学生档案管理系统");
printf("

----------------------------------------");
printf("

1:录入学生信息系统");
printf("

2:修改学生信息系统");
printf("

3:删除学生信息系统");
printf("

4:查询学生信息系统");
printf("

5:输出学生信息系统");
printf("

6:退出系统");
printf("

----------------------------------------");
printf("

请选择你要的服务(按数字1~6进入):");
scanf("%d",&n);
system("cls");
if(n==1)
{
printf("

欢迎进入录入学生系统");
fun1(s);
}
else if(n==2)
{
printf("

欢迎进入修改学生系统");
fun5(s);
}
else if(n==3)
{
printf("

欢迎进入删除学生系统");
fun6(s);
}
else if(n==4)
{
printf("

欢迎进入查询学生系统");
printf("

----------------------------------------");
printf("

1:按学号查询学生信息系统");
printf("

2:按班级查询学生信息系统");
printf("

----------------------------------------");
printf("

请选择你要的服务(按数字1~2进入):");
scanf("%d",&n);
system("cls");
if(n==1)
{
printf("

1:按学号查询学生信息系统");
fun2(s);
}
else if(n==2)
{
printf("

1:按班级查询学生信息系统");
fun3(s);
}
else
{
printf("

数据错误");
}
}
else if(n==5)
{
printf("

欢迎进入输出学生系统");
fun4(s);

} else if(n==6)
{
printf("

谢谢使用学生管理系统!
");
printf("

请双击Enter键退出系统:");
getchar();
getchar();
exit(0);
}
else
printf("

数据错误");
}
void fun1(struct student *s)
{
int n,i;
char d;
printf("

请输入学生的数量:");
scanf("%d",&n);
for(i=5;i<n+5;i++)
{
printf("
请输入学生学号:");
scanf("%s",s[i].no);
printf("
请输入学生姓名:");
scanf("%s",s[i].name);
printf("
请输入学生专业:");
scanf("%s",s[i].spec);
printf("
请输入学生年级:");
scanf("%d",&s[i].grade);
printf("
请输入学生性别:");
scanf("%s",s[i].sex);
getchar('
');
system("cls");
}
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
for(i=0;i<n+5;i++)
{
printf("

%-8s%-8s%-8s%-8d%-8s",s[i].no,s[i].name,s[i].spec,s[i].grade,s[i].sex);
}
printf("
---------------------------------------------------
");
printf("返回首页(请按任意键):");
scanf("%c",&d);
system("cls");
fun(s);
}
void fun2(struct student *s)
{
char a[20],d;
int i;
printf("

请输入要查询学生的学号(10001~10005):");
scanf("%s",a);
for(i=0;i<5;i++)
{
if(!strcmp(s[i].no,a))
{
printf("
此学生的信息:");
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
printf("

%-8s%-8s%-8s%-8d%-8s
",s[i].no,s[i].name,s[i].spec,s[i].grade,s[i].sex);
printf("
---------------------------------------------------");
}

if(i==4&&s[i].no!="10005")
{
printf("
查无此人!");

}
}
printf("

返回首页(请按任意键):");
getchar();
scanf("%c",&d);
system("cls");
fun(s);
}
void fun3(struct student *s)
{
int i,a;
char d;
printf("

请输入要查询学生的班级(12~14):");
scanf("%d",&a);
for(i=0;i<5;i++)
{
if(a==s[i].grade)
{
printf("
此学生的信息:");
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
printf("

%-8s%-8s%-8s%-8d%-8s
",s[i].no,s[i].name,s[i].spec,s[i].grade,s[i].sex);
printf("
---------------------------------------------------");
}
if(i==4&&s[i].grade!=a)
{
printf("
查无此人!");

}
}
printf("

返回首页(请按任意键):");
getchar();
scanf("%c",&d);
system("cls");
fun(s);
}
void fun4(struct student *s)
{
int i;
char d;
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
for(i=0;i<5;i++)
{
printf("

%-8s%-8s%-8s%-8d%-8s",s[i].no,s[i].name,s[i].spec,s[i].grade,s[i].sex);
}
printf("
---------------------------------------------------
");
printf("返回首页(请按任意键):");
scanf("%c",&d);
getchar();
system("cls");
fun(s);
}
void fun5(struct student *s)
{
char a[20],d;
int i;
printf("

请输入要修改学生的姓名:");
scanf("%s",a);
for(i=0;i<5;i++)
{
if(!strcmp(s[i].name,a))
{ printf("
请输入修改学号:");
scanf("%s",s[i].no);
printf("
请输入修改专业:");
scanf("%s",s[i].spec);
printf("
请输入修改年级:");
scanf("%d",&s[i].grade);
printf("
请输入修改性别:");
scanf("%s",s[i].sex);
getchar('
');
system("cls");
}
}
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
for(i=0;i<5;i++)
{
printf("

%-8s%-8s%-8s%-8d%-8s",s[i].no,s[i].name,s[i].spec,s[i].grade,s[i].sex);
}
printf("
---------------------------------------------------
");
printf("返回首页(请按任意键):");
scanf("%c",&d);
system("cls");
fun(s);
}
void fun6(struct student *s)
{
char a[20],d;
int i,k;
printf("

请输入要删除学生的姓名:");
scanf("%s",a);
for(i=0;i<5;i++)
{
if(!strcmp(s[i].name,a))
{
s[i]=s[i+1];
printf("
此学生的信息:");
printf("

学号姓名专业年级性别");
printf("
---------------------------------------------------");
for(k=0;k<4;k++)
{
printf("

%-8s%-8s%-8s%-8d%-8s
",s[k].no,s[k].name,s[k].spec,s[k].grade,s[k].sex);
}
printf("
---------------------------------------------------");
}
if(i==4)
{
printf("没有此人!");
}
}
printf("返回首页(请按任意键):");
getchar();
scanf("%c",&d);
system("cls");
fun(s);
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define N 30
#define M 30
struct date
{
int year;
int month;
int day;
}birthday;
struct student
{
char name[20];
char num[6];
char sex[4];
struct date birthday;
char addr[40];
int cla;
}stu[31];
struct student1
{
char num[6];
char name[10];
int average;
}stu1[M];
struct student2
{
char num[6];
char name[10];
int score[4];
}stu2[M];
int n;
int a;
struct stu*head;
struct stu*p1,*p2;
FILE *in,*out,*fp;
struct stu
{
char num[6];
char name[20];
char sex[4];
struct date birthday;
char addr[40];
int cla;
int scoreEng;
int scoreMath;
int scoreC;
int scoreJiexi;
int sum;
int ave;
struct stu*next;
};
void information(struct student stu[])
{
struct student *p;
printf("学号 姓名 性别 出生年月日 家庭地址 班级\n");
for(p=stu;p<stu+30;p++)
printf("%s%10s%6s%10d%3d%3d%16s%7d\n",p->num,p->name,p->sex,p->birthday.year,p->birthday.month,p->birthday.day,p->addr,p->cla);
}
void revise(struct stu * head)
{
int a,score,flage=0;
char number[6];
struct stu *p;
p=head;
printf("请输入要修改信息的学生的学号:");
scanf("%s",number);
while(p!=NULL)
{
if(strcmp(p->num,number)==0)
{
flage=1;
printf(" 请选择要修改的科目:\n 英语 : 1 数学分析: 2 C语言 : 3 解析几何 : 4 \n");
scanf("%d",&a);
if(a==1)
{
printf("请输入修改后的分数: ");
scanf("%d",&score);
p->scoreEng=score;
printf("修改成功!^_^\n");
}
if(a==2)
{
printf("请输入修改后的分数: ");
scanf("%d",&score);
p->scoreMath=score;
printf("修改成功!^_^\n");
}
if(a==3)
{
printf("请输入修改后的分数: ");
scanf("%d",&score);
p->scoreC=score;
printf("修改成功!^_^\n");
}
if(a==4)
{
printf("请输入修改后的分数: ");
scanf("%d",&score);
p->scoreJiexi=score;
printf("修改成功!^_^\n");
}
}
p=p->next;
}
if(flage==0)
printf("对不起,不存在该生信息!");
}

struct stu *del(struct stu *head)
{
char x[20];
struct stu *p1,*p2;
printf("请输入要删除的学生名字:\n");
scanf("%s",x);
p1=head;p2=head;
while(strcmp(x,p1->name)!=0 && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(x,p1->name)==0)
{
if(p1==head)
head=p1->next;
else p2->next=p1->next;
printf("已删除 %s 的信息 ^_^\n",x);
n=n-1;
}
else printf("对不起,%s 不存在\n",x);
return(head);
}

void statistics()
{

struct student
{
int num;
char name[12];
int score[4];
}stu[N];

FILE *fp1;
int j,k1,i,m,n1=0,n2=0,n3=0,sum=0;
if(a==1)
{
if((fp1=fopen("C:\\score1.txt","r"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
for(j=0;j<N;j++)
fscanf(fp1,"%d%s%d%d%d%d",&stu[j].num,stu[j].name,&stu[j].score[0],&stu[j].score[1],&stu[j].score[2],&stu[j].score[3]);
fclose(fp1);
printf("查询一班成绩请按 1 :\n查询二班成绩请按 2 :\n查询三班成绩请按 3 :\n");
scanf("%d",&k1);
printf("查看英语成绩请按 1 :\n查看数分成绩请按 2 :\n查看C语言成绩请按 3 :\n查看解析成绩请按 4 :\n");
scanf("%d",&m);
for(i=k1*(N/3)-(N/3);i<(N/3)*k1;i++)
{
sum=sum+(stu[i].score[m-1]);
if((stu[i].score[m-1])<60)
n1=n1+1;
if((stu[i].score[m-1])>=90)
n2=n2+1;
if((stu[i].score[m-1])>=80&&(stu[i].score[m-1])<90)
n3=n3+1;
}
printf("该科平均分数为: %f\n",sum/(N/3.));
printf("该科不及格人数为: %d\n",n1);
printf("90分以上人数为: %d\n",n2);
printf("80-90分人数为: %d\n",n3);
}
if(a==2)
{
if((fp1=fopen("C:\\score2.txt","r"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
for(j=0;j<N;j++)
fscanf(fp1,"%d%s%d%d%d%d",&stu[j].num,stu[j].name,&stu[j].score[0],&stu[j].score[1],&stu[j].score[2],&stu[j].score[3]);
fclose(fp1);
printf("查询一班成绩请按 1 :\n查询二班成绩请按 2 :\n查询三班成绩请按 3 :\n");
scanf("%d",&k1);
printf("查看英语成绩请按 1 :\n查看数分成绩请按 2 :\n查看C语言成绩请按 3 :\n查看解析成绩请按 4 :\n");
scanf("%d",&m);
for(i=k1*(N/3)-(N/3);i<(N/3)*k1;i++)
{
sum=sum+(stu[i].score[m-1]);
if((stu[i].score[m-1])<60)
n1=n1+1;
if((stu[i].score[m-1])>=90)
n2=n2+1;
if((stu[i].score[m-1])>=80&&(stu[i].score[m-1])<90)
n3=n3+1;
}
printf("该科平均分数为: %f\n",sum/(N/3.));
printf("该科不及格人数为: %d\n",n1);
printf("90分以上人数为: %d\n",n2);
printf("80-90分人数为: %d\n",n3);
}
}

struct stu * average(struct stu *head)
{
float sum1=0,sum2=0,sum3=0,sum4=0,ave1=0,ave2=0,ave3=0,ave4=0;
struct stu *p;
int x,y=0,i=0;
p=head;
printf("输出个人总分和平均分: 1 输出单科平均分: 2 \n");
scanf("%d",&x);
switch(x)
{
case 1:
{
printf(" 学号 姓名 总分 平均分 \n");
while(p!=NULL)
{
sum1=(float)p->scoreMath+p->scoreEng+p->scoreC+p->scoreJiexi; /*计算个人总分*/
ave1=(float)sum1/4.;
p->sum=sum1;
p->ave=ave1;
printf("%5s%10s %5.1f %5.1f\n",p->num,p->name,sum1,ave1);
p=p->next;
}
break;
}
case 2:
{
while(p!=NULL)
{
sum1=sum1+p->scoreMath;
sum2=sum2+p->scoreEng;
sum3=sum3+p->scoreC;
sum4=sum4+p->scoreJiexi;
y=y+1;
p=p->next;
}
ave1=sum1/y;
ave2=sum2/y;
ave3=sum3/y;
ave4=sum4/y;
printf("数学分析平均分是: %.1f\n",ave1);
printf("英语平均分是: %.1f\n",ave2);
printf("c语言平均分是: %.1f\n",ave3);
printf("解析平均分是: %.1f\n",ave4);
break;
}
}
return(head);
}
void operation1(struct student1 stu1[])
{
int i,m,k,t;
char xiangmu[3][20]={"学号","姓名","平均分"};
for(m=0;m<M;m++)
{
k=m;
for(i=m+1;i<M;i++)
if(stu1[i].average>stu1[k].average)
k=i;
t=stu1[m].average;
stu1[m].average=stu1[k].average;
stu1[k].average=t;
}
for(i=0;i<3;i++)
printf("%s ",xiangmu[i]);
printf("\n");
for(i=0;i<M;i++)
printf("%3s %10s %5d \n",stu1[i].num,stu1[i].name,stu1[i].average);
}
void operation3(struct student2 stu2[],char xiangmu[6][20])
{
int c,i,j,k,flage1=0,flage2=0,flage=0;
char number[6];
printf("查询一个学生不及格科目: 1 查询全部有不及格科目的学生: 2 \n");
scanf("%d",&c);
if(c==1)
{
printf("请输入学生的学号:");
scanf("%s",&number);
for(i=0;i<M;i++)
if(strcmp(stu2[i].num,number)==0)
{
flage1=1;
k=2;
for(j=0;j<4;j++)
{
if(stu2[i].score[j]<60)
{
flage2=1;
printf("%s : %d ",xiangmu[k],stu2[i].score[j]);
}
k++;
}
if(flage2==1)
printf("%s : %s %s : %s \n",xiangmu[0],stu2[i].num,xiangmu[1],stu2[i].name);
}
if(flage1==1)
{
if(flage2==0)
printf("该学生无不及格科目\n");
}
if(flage1==0)
printf("无此学生\n");
}
if(c==2)
{
for(i=0;i<M;i++)
{
k=2;flage=0;
for(j=0;j<4;j++)
{
if(stu2[i].score[j]<60)
{
flage=1;
printf("%s : %d ",xiangmu[k],stu2[i].score[j]);
}
k++;
}
if(flage==1)
printf("%s : %s %s : %s \n",xiangmu[0],stu2[i].num,xiangmu[1],stu2[i].name);
}
}
}
void operation2(struct student2 stu2[])
{
int b,i,j,k,flage=0;
char number[6];
char xiangmu[6][20]={"学号","姓名","英语","数学分析","C语言","解析几何"};
printf("查询个人成绩: 1 查询不及格科目: 2 \n");
scanf("%d",&b);
if(b==1)
{
printf("请输入学生的学号:");
scanf("%s",&number);
for(i=0;i<M;i++)
{
if(strcmp(stu2[i].num,number)==0)
{
flage=1;
for(j=0;j<6;j++)
printf("%5s ",xiangmu[j]);
printf("\n");
printf("%4s %s ",stu2[i].num,stu2[i].name);
for(k=0;k<4;k++)
printf("%d ",stu2[i].score[k]);
printf("\n");
}
}
if(flage==0)
printf("对不起,无此学生\n");
}
if(b==2)
operation3(stu2,xiangmu);
}
void operation(struct student1 stu1[],struct student2 stu2[])
{
int a;
printf("按平均成绩排序: 1 查询学生成绩: 2 \n");
scanf("%d",&a);
if(a==1)
operation1(stu1);
if(a==2)
operation2(stu2);
}
void operate(struct stu *head)
{
struct stu *p;
int i;
i=0;p=head;
do
{
strcpy(stu1[i].num,p->num);
strcpy(stu1[i].name,p->name);
stu1[i].average=p->ave;
strcpy(stu2[i].num,p->num);
strcpy(stu2[i].name,p->name);
stu2[i].score[0]=p->scoreEng;
stu2[i].score[1]=p->scoreMath;
stu2[i].score[2]=p->scoreC;
stu2[i].score[3]=p->scoreJiexi;
i++;
p=p->next;
}while(p!=NULL);
operation(stu1,stu2);
}

void output(struct stu * head)
{
int j;
struct stu *p3;
p3=head;
printf("输出一班成绩请按 1 :\n输出二班成绩请按 2 :\n输出三班成绩请按 3 :\n");
scanf("%d",&j);
printf("班级 学号 姓名 数分 英语 C语言 解析\n");
while(p3!=NULL)
{
if(p3->cla==j)
printf("%2d %8s %7s %4d %6d %6d %6d\n",p3->cla,p3->num,p3->name,p3->scoreMath,p3->scoreEng,p3->scoreC,p3->scoreJiexi);
p3=p3->next;
}
}

void main()
{
int i;
int c;
printf("输入第一学期成绩: 请按 1 输入第二学期成绩: 请按 2\n");
scanf("%d",&a);
if(a==1)
{
n=0;
p1=p2=(struct stu*)malloc(sizeof(struct stu));
if((in=fopen("C:\\xuesheng.txt","r"))==NULL)
{
printf("cannot open C:\\xuesheng.txt\n");
exit(0);
}
fscanf(in,"%s%s%s%d%d%d%s%d",p1->name,p1->num,p1->sex,&p1->birthday.year,&p1->birthday.month,&p1->birthday.day,p1->addr,&p1->cla);
head=p1;

do
{
p1=(struct stu*)malloc(sizeof(struct stu));
fscanf(in,"%s%s%s%d%d%d%s%d",p1->name,p1->num,p1->sex,&p1->birthday.year,&p1->birthday.month,&p1->birthday.day,p1->addr,&p1->cla);
if (!feof(in))
{
p2->next=p1;
p2=p1;
}
else p2->next=NULL;
}while (p2->next!=NULL);
p1=head;
p2=head;
fclose(in);
printf("输入英语成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreEng);
p1=p1->next;
}
p1=head;
printf("输入数分成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreMath);
p1=p1->next;
}
p1=head;
printf("输入C语言成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreC);
p1=p1->next;
}
p1=head;
printf("输入解析几何成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreJiexi);
p1=p1->next;
}
p1=head;
p1=head;
printf("输入完毕,自动保存至C:\\score1.txt文件中。\n");
if((out=fopen("C:\\score1.txt","w"))==NULL)
{
printf("cannot open C:\\score1.txt\n");
exit(0);
}
while(p1!=NULL)
{
fprintf(out,"%s %s %d %d %d %d",p1->num,p1->name,p1->scoreEng,p1->scoreMath,p1->scoreC,p1->scoreJiexi);
p1=p1->next;
fprintf(out,"\n");
}
fclose(out);
}
if(a==2)
{
n=0;
p1=p2=(struct stu*)malloc(sizeof(struct stu));
if((in=fopen("C:\\xuesheng.txt","r"))==NULL)
{
printf("cannot open C:\\xuesheng.txt\n");
exit(0);
}
fscanf(in,"%s%s%s%d%d%d%s%d",p1->name,p1->num,p1->sex,&p1->birthday.year,&p1->birthday.month,&p1->birthday.day,p1->addr,&p1->cla);
head=p1;
do
{
p1=(struct stu*)malloc(sizeof(struct stu));
fscanf(in,"%s%s%s%d%d%d%s%d",p1->name,p1->num,p1->sex,&p1->birthday.year,&p1->birthday.month,&p1->birthday.day,p1->addr,&p1->cla);
if (!feof(in))
{
p2->next=p1;
p2=p1;
}
else p2->next=NULL;
}while (p2->next!=NULL);
p1=head;
p2=head;
fclose(in);
printf("输入英语成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreEng);
p1=p1->next;
}
p1=head;
printf("输入数学分析成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreMath);
p1=p1->next;
}
p1=head;
printf("输入C语言成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreC);
p1=p1->next;
}
p1=head;
printf("输入解析几何成绩:\n");
while(p1!=NULL)
{
printf("%s ",p1->num );
scanf("%d",&p1->scoreJiexi);
p1=p1->next;
}
p1=head;
printf("输入完毕,自动保存至C:\\score2.txt文件中。\n");
if((out=fopen("C:\\score2.txt","w"))==NULL)
{
printf("cannot open C:\\score2.txt\n");
exit(0);
}
while(p1!=NULL)
{
fprintf(out,"%s %s %d %d %d %d",p1->num,p1->name,p1->scoreEng,p1->scoreMath,p1->scoreC,p1->scoreJiexi);
p1=p1->next;
fprintf(out,"\n");
}
fclose(out);
}
loop:
if((fp=fopen("C:\\xuesheng.txt","r"))==NULL)
{
puts("cannot open file");
exit(0);
}
for(i=0;i<31;i++)
fscanf(fp,"%s%s%s%d%d%d%s%d",stu[i].name,stu[i].num,stu[i].sex,&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day,stu[i].addr,&stu[i].cla);
fclose(fp);
printf("\t\t*********************************************\n");
printf("\t\tplease choose:\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\t\t\t7.输出学生信息\n\t\t\t8.退出\n");
printf("\t\t*********************************************\n");
scanf("%d",&c);
switch(c)
{
case 1:revise(head);goto loop;
case 2:del(head);goto loop;
case 3:statistics();goto loop;
case 4:average(head);goto loop;
case 5:operate(head);goto loop;
case 6:output(stu);goto loop;
case 7:information(stu);goto loop;
case 8:{printf("\t\t\t感谢您的使用!祝您有个好心情!^_^\n");
printf("\t\t\t您可以按任意键结束!^_^\n");break;}
}

}

这你可问对人了 如果方便留下邮箱,然后我给你发过去~


用c语言编写一个学生管理系统
用c语言编写一个学生管理系统 1.显示所有学生成绩表2.统计总分、平均分3.按姓名查询学生成绩4.按学号查询学生成绩5.按总分\/平均分排序输出名次6.输出优秀学生成绩表(平均分>=90)7.输出不及格学生成绩表(补考名单...1.显示所有学生成绩表2.统计总分、平均分...

学生成绩管理系统的c语言程序
\/*编制一个学生成绩管理系统,每个学生信息包括:学号、姓名、C语言、高数和英语成绩。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上...

C语言:学生信息管理系统
C语言:学生信息管理系统 有这7种功能就可以了。显示,查找,录入,修改,删除,排序,退出... 有这7种功能就可以了。显示,查找,录入,修改,删除,排序,退出 展开  我来答 4个回答 #热议# 网文质量是不是下降了?闲的我难受 2010-04-05 · TA获得超过459个赞 知道小有建树答主 回答量:236 采纳率:...

怎么样用c语言编学生信息管理系统?
cout<<endl<<"输入学生姓名:";cin>>temp.name;cout<<endl<<"输入学号:";cin>>temp.num;cout<<endl<<"输入年龄";cin>>temp.age;fwrite(&temp,sizeof(temp),1,fp);cout<<endl<<"是否继续?(选否请按数字键0)";cin>>input_temp ;if(strcmp(input_temp,"0")==0){ fileclose();ret...

C语言大学生信息管理系统
2017-12-24 C语言 学生管理系统 2012-07-12 C语言大学生信息管理系统 \\(1) 用C++语言编程,在Vi... 1 2011-07-17 C语言学生信息管理系统程序设计 38 2013-09-04 c语言 大学生公寓管理系统 这个哪位大神会,急求!! 2009-02-22 C语言程序设计题目:学生信息管理系统设计 93 2019-03-19 求C语言大学...

c语言怎么编写学生成绩管理系统
要求利用C语言面向过程的编程思想来完成系统的设计突出C语言的函数特征,以多个函数实现每一个子功能画出功能模块图进行简单界面设计,能够实现友好的交互具有清晰的程序流程图和数据结构的详细定义 熟练掌握C语言对文件的各种操作学生基本信息及成绩所选科目成绩的录入。基本信息的查询(分系、班级;分科目)与修改。对每系...

用C语言做学生信息管理系统设计
C语言课程设计报告---学生成绩简单管理程序一、系统菜单的主要功能(1)输入若干条记录(2)显示所有记录(3)按学号排序(4)插入一条记录(5)按姓名查找,删除一条记录(6)查找并显示一条记录(7)输出统计信息 (新增)(8)从正文中添加数据到结构体数组中(9)将所有数据写入文件中(0)退出程序二、题目分析该题主要考察...

C语言学生信息管理系统设计
开发环境VC++6.0技术:C语言功能:实现一个注册,登陆,并且对学生信息增删改查的小型软件系统。注册登陆个人信息管理系统娱乐天地登陆名(可以为汉字等任何符号的字符)密码(输入2次... 开发环境 VC++6.0技术:C语言功能:实现一个注册,登陆,并且对学生信息增删改查的小型软件系统。注册登陆个人信息管理系统娱乐天地登陆名(...

c语言学生学籍管理系统
已知要求管理的学生信息包括:学号、姓名、性别、年龄。设计一个程序,完成如下功能:(1)能从键盘上输入若干学生的信息(2)能将学生的信息保存到磁盘上(3)能从指定的磁盘文件中读... 已知要求管理的学生信息包括:学号、姓名、性别、年龄。设计一个程序,完成如下功能:(1)能从键盘上输入若干学生的信息(2)能将学生的...

C语言学生成绩管理系统
y\/n):");scanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){ printf("number:");scanf("%d",&stu[m].num);\/*输入学生学号*\/ for(i=0;i<m;i++)if(stu[i].num==stu[m].num){ printf("the number is existing,press any to continue!");getch();...

武乡县15837329097: 用C语言编写一个学生信息管理系统
种娥诺德: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" jiemian();struct student { char name[50]; char sex[5]; int age; char num[50]; float score1; float score2; float score3; float sum; float ave;}stu[50],del; void gn1() {int...

武乡县15837329097: 用C语言编写一个学生管理系统
种娥诺德: 我有源程序,你能给多少分? 题目: 1、用C语言实现基于Dos操作系统的“学生成绩管理系统”. 2、系统启动进入后,弹出“学生成绩管理系统”的用户界面,用户通过界面选择成绩管理系统的各种功能,包括“退出”功能.(5分) 3、用户...

武乡县15837329097: 急需求用C语言编程的学生管理系统
种娥诺德: 学生管理系统的框架 //课程类 class course { int courseno; //课程编号 string cname;//课程名字 int credit; //学分 int score; //成绩 public: void set_cname(string na){cname=na;} //设置课程名 string get_cname(){return cname;} //获取课程名 ...

武乡县15837329097: 用C语言编个学生管理系统
种娥诺德: 很简单的,在winforms新建窗体然后进行每个窗体之间的连接.验证登陆合法性,数据库查询增删改查各种SQL语句

武乡县15837329097: 用c语言做一个学生管理系统 -
种娥诺德: struct stu {char a[10]; int i; int j; int k; int m; int n; int x; }; int sum(struct stu p) {int sum=p.i+p.j+p.k+p.m+p.n; return sum;} main() {struct stu p[6],ac; int l,a[6],b; for(l=0;l{scanf("%s%d%d%d%d%d",p[l].a,&p[l].i,&p[l].j,&p[l].k,&p[l].m,&p[l].n); p[l].x=sum(p[l])...

武乡县15837329097: 学生信息管理系统C语言编程 -
种娥诺德: 原发布者:xuekunlun666 用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作.在主函数里能实现以下功能.运行后出现一个选择提示.可选择的功能有1)创建新的学生信息...

武乡县15837329097: C语言编写一个学生信息管理系统,求原代码谢谢
种娥诺德: #include <iostream> #include "conio.h" #include "malloc.h" #include "windows.h" using namespace std; typedef struct { char name[20]; int stunum; int score; }StuElem;class StuList { private: StuElem *StuElem1; int Length; int MaxContine; ...

武乡县15837329097: 求一个学生成绩管理系统的C语言代码!!急!! -
种娥诺德: #includestruct student { char num[10];char name[20];char sex[5];float grade[7];float v;float sum;}stu[50]; int k=0;void input(); void output(); void search(); void average(); void sort(); void save(); void main() { int a;do{printf("\n\n **************...

武乡县15837329097: 编程如何用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*/ ...

武乡县15837329097: 用c语言编写学生管理系统, -
种娥诺德: 原发布者:沃流域滔#include"stdio.h"#include"stdlib.h"/*标准库函数*/#include"string.h"/*字符串操作函数*/#defineMAX5#definePAGE2#definePRINT1printf("--------------------------------------------------------------\n");#definePRINT2printf("...

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