您的位置:首页 > 理论基础

c语言程序设计(学生成绩管理系统)————提供给计算机系c语言初学者参考

2013-11-02 16:53 357 查看
#include <stdio.h>
#include<stdlib.h>
#include <string.h>
void manu();
struct student
{
int num;
char name[20];
int cl;
int ch;
int math;
int sum;
int aver;

}stu[200]={{200,"张三",1,89,98},{201,"李四",2,67,100},{202,"王五",1,78,99}};
struct student stu1[20];
int N=0;
int n=3;
void add()
{
char a,b;
int i,j;
int k;
int count=0;
int count1=0;
system("cls");
do
{
printf("添加第%d学生的信息\n",n+1);
printf("输入学生的学号");
scanf("%d",&k);
for(i=0;i<n;i++)
{
if(stu[i].num==k)
{
printf("学号重复");
count1++;
system("pause");
system("cls");
manu();
}

}
if(count1==0)
{
stu
.num=k;
}
fflush(stdin);
printf("输入学生的姓名");
gets(stu
.name);
fflush(stdin);
printf("输入学生的班级");
scanf("%d",&stu
.cl);
printf("输入学生的语文成绩");
fflush(stdin);
scanf("%d",&stu
.ch);
printf("输入学生的数学成绩");
fflush(stdin);
scanf("%d",&stu
.math);
n++;
fflush(stdin);
printf("输入q停止输入\n");
scanf("%c",&a);

}
while(a!='q');

printf("是否要实现插入操作输入y进入");
fflush(stdin);
scanf("%c",&b);
printf("%c",b);
if(b=='y'||b=='Y')
{
system("cls");
printf("插入哪个学号之前");
scanf("%d",&j);
k=1;
for(i=0;i<n;i++)
{
if(stu[i].num==j)
{
j=i;
printf("此学号存在");
k--;
break;
}

}
if(k==1)
{
printf("学号不存在");
system("pause");
system("cls");
manu();
}
for(i=n;i>=j;i--)
{
stu[i+1]=stu[i];
}
n++;
printf("登陆学生信息\n");
printf("输入学生的学号\n");
scanf("%d",&k);
for(i=0;i<n;i++)
{
if(stu[i].num==k)
{
printf("学号重复");
count++;
system("pause");
system("cls");
manu();
}

}
if(count==0)
{
stu[j].num=k;
}

fflush(stdin);
printf("输入学生的姓名");
fflush(stdin);
gets(stu[j].name);
fflush(stdin);
printf("输入学生的班级");
scanf("%d",&stu[j].cl);
printf("输入学生的语文成绩");
fflush(stdin);
scanf("%d",&stu[j].ch);
printf("输入学生的数学成绩");
fflush(stdin);
scanf("%d",&stu[j].math);
}
else
{
printf("输入有误\n");
system("pause");
system("cls");
manu();
}
system("cls");
manu();

}
void display()
{   int j;
system("cls");
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
for(j=0;j<n;j++)
{
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
}
system("pause");
system("cls");
manu();

}
void Delete()
{   int  nm;
int count;
int j,m=0;
char k;

system("cls");
printf("\t******************欢迎进入删除界面*****************************\t\n");
//display();
printf("\t\t选择按学号查找\n");
fflush(stdin);
scanf("%d",&nm);
for(j=0;j<n;j++)
{
if(stu[j].num==nm)
{
printf("找到了\n");
count=j;
m++;

break;
}

}
if(m==0)
{
printf("没找到\n");
printf("按y重新输入\n");
fflush(stdin);
system("pause");
scanf("%c",&k);
if(k=='y'||k=='Y')
{
Delete();

}

}

for(j=count;j<n;j++)
{
stu[j]=stu[j+1];
}
n--;
system("pause");
display();
system("pause");
manu();

}
void Class()
{
int i,j;
int k=0;
char a;
system("cls");
printf("输入班级号\n");
scanf("%d",&i);
printf("\t学号\t姓名\t班级\t语文成绩\t数学成绩\n");
for(j=0;j<n;j++)
{
if(stu[j].cl==i)
{
printf("\t%d\t%s\t%d\t%d\t%d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
k=1;
continue;
}

}

if(k==0)
{
printf("很抱歉 没找到\n");
printf("输入y继续");
scanf("%c",&a);
if(a=='y'||a=='Y')
{
system("pause");
system("cls");
manu();
}
else
{
printf("输入有误");
system("pause");
system("cls");
manu();

}

}

system("pause");
system("cls");
manu();

}
void num()
{
int i,j;
int k=0;
char a;
system("cls");
printf("输入学号\n");
scanf("%d",&i);
printf("\t学号\t姓名\t班级\t语文成绩\t数学成绩\n");
for(j=0;j<n;j++)
{
if(stu[j].num==i)
{
printf("\t%d\t%s\t%d\t%d\t%d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
k=1;
continue;
}

}

if(k==0)
{
printf("很抱歉 没找到\n");
system("pause");
printf("输入y继续");

scanf("%c",&a);
if(a=='y'||a=='Y')
{
system("pause");
system("cls");
manu();
}
else
{
printf("输入有误");
system("pause");
system("cls");
manu();

}

}
system("pause");
system("cls");
manu();
}
void tiaojian( int score)
{ int i;
int k=0;
for(i=0;i<n;i++)
{
if(stu[i].ch>=score&&stu[i].math>=score)
{
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[i].num,stu[i].name,stu[i].cl,stu[i].ch,stu[i].math);
k++;
system("pause");
system("cls");
manu();
}

}
if(k==0)
{
printf("不存在满足条件的学生");
system("pause");
system("cls");
manu();

}
}
void lookfor()
{   int i,j;
int k=0;
system("cls");
printf("\t=======================欢迎进入查找界面=========================\t\n");

printf("             1,按班级查找\n");
printf("             2,按学号查找\n");
printf("             3,单科在90分以上\n");
printf("             4,单科在80分以上\n");
printf("             5,单科在60分以上\n");
printf("             6,单科在60分以下\n");
fflush(stdin);
scanf("%d",&i);
switch(i)
{
case 1:Class();
break;
case 2:num();
break;
case 3:
tiaojian(90);
break;
case 4:
tiaojian(80);
break;
case 5:
tiaojian(60);
break;
case 6:

for(i=0;i<n;i++)
{
if(stu[i].ch<60&&stu[i].math<60)
{
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[i].num,stu[i].name,stu[i].cl,stu[i].ch,stu[i].math);
k++;
system("pause");
system("cls");
manu();
}

}
if(k==0)
{
printf("不存在满足条件的学生");
system("pause");
system("cls");
manu();

}
break;

}
}
void xiugai()
{  int i;
int j;//循环序号
char a[20];
int k=0;//标志点
int m;//选择点
int h;//循环序号
int count=0;//标志点
int g;
system("cls");
printf("\t******************欢迎进入修改界面*****************************\t\n");
printf("                      按学号查找\n");
printf("输入学号\n");
fflush(stdin);
scanf("%d",&g);
for(j=0;j<n;j++)
{
if(stu[j].num==g)
{   k++;
printf("找到了\n");
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);

printf("                1,修改该生的学号\n");
printf("                2,修改该生的姓名\n");
printf("                3,修改该生的班级\n");
printf("                4,修改该生的语文成绩\n");
printf("                5,修改该生的英语成绩\n");
scanf("%d",&m);
if(m==1)
{
printf("学号修改成:\n");
scanf("%d",&i);
for(h=0;h<n;h++)
{
if(stu[h].num==i)
{ printf("学号重复");
k++;
system("pause");
system("cls");
manu();
}

}
if(k!=0)
{
stu[j].num=i;
}
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
system("pause");
system("cls");
manu();
break;
}
if(m==2)
{
printf("姓名修改成:\n");
scanf("%s",&stu[j].name);
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
system("pause");
system("cls");
manu();
}
if(m==3)
{
printf("班级修改成:\n");
scanf("%d",&stu[j].cl);
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
system("pause");
system("cls");
manu();
}
if(m==4)
{
printf("语文成绩修改成:\n");
scanf("%d",&stu[j].ch);
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
system("pause");
system("cls");
manu();
}
if(m==5)
{
printf("数学成绩修改成:\n");
scanf("%d",&stu[j].math);
printf("\t学号\t姓名\t班级\t语文成绩   数学成绩\n");
printf("\t%d\t%s\t %d\t  %d  \t     %d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math);
system("pause");
system("cls");
manu();
}

}

}
if(k==0)
{
printf("没找到\n");
system("pause");
system("cls");
xiugai();
}

}
void clear()
{
n=0;
printf("恭喜你 信息已经清空");
system("pause");
display();
manu();

}
void Exit()
{
system("exit");
}
void sort()
{   int i;
int j,k;
system("cls");
printf("\t===============欢迎进入排序界面===============\t\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t     1,按姓名排序\n");
printf("\t\t     2,按班级排序\n");
printf("\t\t     3,按语文成绩排序\n");
printf("\t\t     4,按数学排序\n");
printf("\t\t     5,按总分排序\n");
scanf("%d",&i);
switch (i)
{
case 1:

for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
if(stu[k].name>stu[k+1].name)
{
stu[199]=stu[k];
stu[k]=stu[k+1];
stu[k+1]=stu[199];

}
}

}
display();
break;
case 2:
for(j=0;j<n;j++)
{
for(k=0;k<n-1;k++)
{
if(stu[k].cl>stu[k+1].cl)
{
stu[199]=stu[k];
stu[k]=stu[k+1];
stu[k+1]=stu[199];

}
}

}
display();
break;
case 3:
for(j=0;j<n;j++)
{
for(k=0;k<n-1;k++)
{
if(stu[k].ch>stu[k+1].ch)
{
stu[100]=stu[k];
stu[k]=stu[k+1];
stu[k+1]=stu[100];

}
}

}
display();
break;
case 4:
for(j=0;j<n;j++)
{
for(k=0;k<n-1;k++)
{
if(stu[k].math>stu[k+1].math)
{
stu[199]=stu[k];
stu[k]=stu[k+1];
stu[k+1]=stu[199];

}
}

}
display();
break;
case 5:
for(j=0;j<n;j++)
{
stu[j].sum=stu[j].math+stu[j].ch;
stu[j].aver=stu[j].sum/2;

}
for(j=0;j<n;j++)
{
for(k=0;k<n-1;k++)
{
if(stu[k].sum>stu[k+1].sum)
{
stu[199]=stu[k];
stu[k]=stu[k+1];
stu[k+1]=stu[199];

}
}

}
display();
break;

}
}

void tongji()
{   int i,j,k=0;
int summath=0;
int avermath;
int sumch=0;
int averch;
char a;
system("cls");
printf("\t\t==========1,每个学生的总分平均分============\n");
printf("\t\t==========2,统计各个科目的平均分============\n");
printf("\t\t==========3,统计班级的单科平均分============\n");
printf("\t\t==========4,统计班级的总平均分==============\n");

scanf("%d",&i);
switch(i)
{
case 1:for(j=0;j<n;j++)
{
stu[j].sum=stu[j].math+stu[j].ch;
stu[j].aver=stu[j].sum/2;

}
printf("\t学号\t姓名\t班级\t语文\t数学\t总分\t平均分\n");
for(j=0;j<n;j++)
{
printf("\t%d\t%s\t%d\t%d\t%d\t%d\t%d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math,stu[j].sum,stu[j].aver);
}
system("pause");
system("cls");
manu();
break;
case 2:

for(j=0;j<n;j++)
{
summath+=stu[j].math;
avermath=summath/n;
sumch+=stu[j].ch;
averch=sumch/n;
}
printf("\t学号\t姓名\t班级\t语文\t数学\t语文均分\t数学均分\n");
for(j=0;j<n;j++)
{
printf("\t%d\t%s\t%d\t%d\t%d  \t%d  \t%d\n",stu[j].num,stu[j].name,stu[j].cl,stu[j].ch,stu[j].math,averch,avermath);
}
system("pause");
system("cls");
manu();

break;
case 3:                          //统计班级的单科平均分
printf("输入班级号");
scanf("%d",&i);
for(j=0;j<n;j++)
{
if(stu[j].cl==i)
{
summath+=stu[j].math;
sumch+=stu[j].ch;
k++;
}
else
{
printf("您输入的班级号不存在\n");
system("pause");
system("cls");
tongji();

}
}
avermath=summath/k;
averch=sumch/k;
printf("\t班级\t语文均分\t数学均分\n");
printf("\t%d\t%d\t%d\n",i,averch,avermath);
system("pause");
system("cls");
manu();
break;
case 4:                                 //统计班级的总平均分
printf("输入班级号");
scanf("%d",&i);
for(j=0;j<n;j++)
{
if(stu[j].cl==i)
{
summath+=stu[j].math+stu[j].ch;

k++;
}
else
{
printf("您输入的班级号不存在\n");
system("pause");
system("cls");
tongji();

}

}
avermath=summath/k;
printf("\t班级\t总均分\n");
printf("\t%d\t%d\n",i,avermath);
system("pause");
system("cls");
manu();
break;
}

}

void  manu()//登录界面函数
{
int i;
system("cls");
printf("\t************************************************************\n");
printf("\t                      管理员登陆界面                        \n");
printf("\t************************************************************\n");
printf("\t                      欢迎进如学生管理系统                  \n");
printf("\t请选择业务:\n");
printf("\t1,查看所有记录显示\n");
printf("\t2,添加学生成绩\n");
printf("\t3,修改学生成绩\n");
printf("\t4,删除学生成绩\n");
printf("\t5,清空记录\n");
printf("\t6,按要求查询学生成绩\n");
printf("\t7,按要求排序\n");
printf("\t8,按要求统计成绩\n");
printf("\t9,退出\n");
printf("\t请选择");
scanf("%d",&i);
switch(i)
{
case 1:
display();
break;
case 2:
add();
break;
case 3:
xiugai();
break;
case 4:
Delete();
break;
case 5:
clear();
break;
case 6 :
lookfor();
break;
case 7:
sort();
break;
case 8:
tongji();
break;
case 9:
Exit();
break;
default: printf("输入有误");
}
}
void Ymanu()
{
int i;
system("cls");
printf("\t************************************************************\t\n");
printf("\t                  用户登陆界面                                  \n");
printf("\t************************************************************\t\n");
printf(" \t               欢迎进入学生管理系统                       \t\n");
printf("\t请选择业务:\n");
printf("\t1,查看所有记录显示\n");
//  printf("\t2,添加学生成绩\n");
//  printf("\t3,修改学生成绩\n");
//  printf("\t4,删除学生成绩\n");
// printf("\t5,清空记录\n");
printf("\t2,按要求查询学生成绩\n");
printf("\t3,按要求排序\n");
printf("\t4,按要求统计成绩\n");
printf("\t5,退出\n");

printf("\t************************************************************\t\n");
printf("\t请选择");
scanf("%d",&i);
switch(i)
{
case 1:
display();
break;
/*  case 2:
add();
break;
case 3:
xiugai();
break;
case 4:
Delete();
break;
case 5:
clear();
break;*/
case 2 :
lookfor();
break;
case 3:
sort();
break;
case 4:
tongji();
break;
case 5:
Exit();
break;
default: printf("输入有误");
}
}
void main()
{  int i;
char a[20]={'l','i','u'};
int j=123;
char b[20];
int k;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t\t  1,普通用户登陆\n");
printf("\t\t\t  2,管理员账户登陆\n");
printf("\t\t\t  选择输入");
scanf("%d",&i);
if(i==1)
{
Ymanu();
}
if(i==2)
{

printf("输入用户名和密码\n");
printf("用户名\n");
fflush(stdin);
gets(b);
//fflush(stdin);
printf("密码\n");
scanf("%d",&k);

if(strcmp(a,b)==0&&j==k)
{
manu();
}
else
{
printf("输入错误");
system("exit");
}

}
else
{
printf("输入错误");
system("exit");
}
}


  

很久没更新博客了(其实也就是两天哈哈哈~_~),最近在写思创的c语言程序设计刚刚完成答辩。程序基本功能全部实现,还附带了一个回收站的功能,也算是自己的一个特色了。现在迫切想写下自己这几天的感受。

说实话人与人在学习计算机方面的差别还是有的,有的人学习的快,有的人学习的慢,可能我就是学习慢的人。但是我并不气馁,我喜欢计算机,我也一直会坚持着去学习他,坚持着做自己吧。

一旦迷恋上什么事,就不会感觉累,就像爱觉不累,真是这样。在课程设计中,有时候因为一个debug而调试到深夜,当真正的去实现他的时候,你会有无比的喜悦。

优点:能持之以恒的完成课设,并在此基础上添加了些附加功能,使之看起来优于其他人。很遗憾没能看陈俊杰的代码

不足:应用能力不够,学习过的东西不能很快的再需要的时候实现,导致中间走了许多弯路,效率也大打折扣。

接下来就是操作系统考试,数据结构,数据库,还有私房菜的学习。

相信你能在这个学期表现的不错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: