您的位置:首页 > 编程语言 > C语言/C++

北大青鸟S1的C语言项目(学员管理系统)

2007-12-13 02:15 162 查看

#include <stdio.h>


#include <windows.h>


#include <string.h>


#define M 30//常量


void Sleep();//睡觉函数




void pri();//打印所有函数


void pri1();//打印单个成员




void index(); //主介面的选择函数




void addstu();//添加函数




void check();//修改函数


void cname();//按名字修改


void cnum();//按学号修改


void insert();//插入新学员的资料




void delet();//删除函数




void find();//查询函数


void find1();//特殊查询函数


void fname();//名字查询


void fnum();//按学号排列显示学员资料


void fmal();//按性别排列学员资料


void fscore();//按成绩由高到低显示学员资料


void flater();//按考勤由高到低显示学员资料






//system("cls");//清屏函数




struct student //定义结构数组,存储学员的资料




...{


int num;//学号


char name[20];//姓名


char sex;//性别


int older;//年龄


char borned[20];//籍贯


float score;//成绩


int later;//考勤


char pho[15];//联系电话


char address[30];//地址






}stu[M]=...{




...{1,"李芳",'F',18,"广东茂明",45,90,"075586013388","深圳市南山区科技圆"},




...{4,"于红",'M',22,"广东汕头",62.5,80,"13511007788","深圳市龙华区梅林关彗星公寓"},




...{7,"何万山",'F',24,"湖南长沙",92.5,75,"13875533445","深圳市罗湖区公安局宿舍"},




...{9,"程亚丽",'M',25,"山东鲁能",87,77,"075588889999","深圳市福田区彩福大厦"},




...{10,"王明",'M',20,"四川成都",58,78,"13675555667","深圳市罗湖区东门中"}


};


struct student stu1[1];






int i;








void main()




...{


index();




}




void index() //欢迎界面的函数




...{


int a;


printf("------------------>>>>欢迎使用 学员管理系统 <<<<----------------- ");


printf("***************************************************************** ");


printf(" **** 1,添加学员资料 **** ");


printf("**** 2,查询学员资料 **** ");


printf(" **** 3,修改学员资料 **** ");


printf("**** 4,删除学员资料 **** ");


printf(" **** 5,退出系统 **** ");




printf("***************************************************************** ");


printf("请输入您要进入的系统功能: ");


fflush(stdin);


scanf("%d",&a);


if(a>5||a<1) //判断用户输入的选项是否符合要求,这个程序语句在每个人做的功能选择语句时一定要写。




...{


printf("请输入1-5的数字 ");


index(); //如果用户输入的选项要求不符合的时候,从新调用介面函数,进入主界面


}




else ...{


switch(a) //举个简单的例子进入各个模块




...{


case 1:addstu(); //添加学员资料


break;


case 2:find(); //查询学员资料


break;


case 3:check(); //修改学员资料


break;


case 4:delet(); //删除学员资料


break;


case 5:exit(0); //退出系统


break;


}


}




}




void addstu() //添加函数




...{


int a;


pri();


for(i=0;i<10;i++)




...{


if(stu[i].num==0)




...{


printf(" 开始添加学员资料>>>>>>>>>>>>>>>>> ");


fflush(stdin);


printf(" 请输入该学员学号: ");


scanf("%d",&stu[i].num);


fflush(stdin);


printf(" 请输入学员姓名 ");


gets(stu[i].name);


fflush(stdin);


printf(" 请输入学员性别(F/M): ");


stu[i].sex=getchar();


fflush(stdin);


printf(" 请输入学员年龄: ");


scanf("%d",&stu[i].older);


fflush(stdin);


printf(" 请输入学员籍贯: ");


gets(stu[i].borned);


fflush(stdin);


printf(" 请输入学员成绩: ");


scanf("%f",&stu[i].score);


fflush(stdin);


printf(" 请输入学员考勤: ");


scanf("%d",&stu[i].later);


fflush(stdin);


printf(" 请输入学员联系电话: ");


gets(stu[i].pho);


fflush(stdin);


printf(" 请输入学员的地址: ");


gets(stu[i].address);


break;




}




}


pri();




while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续添加学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


addstu();




}


else if(a=='n'||a=='N')




...{


system("cls");


index();




}


printf("请输入Y或者N");


}


}




//以下的三个函数,check(),cnum(),cname().都为修改函数




void check()//修改函数




...{


int a;


printf(" 请选择要修改的学员资料: ");


printf(" 1.按名字搜索,并开始修改 ");


printf(" 2.按学号搜索,并开始修改 ");


printf(" 3.插入新的学员资料 ");


printf(" 4.返回主界面 ");


fflush(stdin);


scanf("%d",&a);


if(a>3||a<1) //判断用户输入的选项是否符合要求,这个程序语句在每个人做的功能选择语句时一定要写。




...{


printf("请输入1-3的数字 ");


check(); //如果用户输入的选项要求不符合的时候,从新调用介面函数,进入主界面


}


switch(a)




...{


case 1:cname();


break;


case 2:cnum();


break;


case 3:insert();


break;


case 4:system("cls");


index();


break;


}




}


void cnum()//输入学号进行修改




...{


int a,b,k;


char cname1[20],csex;


float cscore;




int colder;//年龄


char cborned[20];//籍贯




int clater;//考勤


char cpho[15];//联系电话


char caddress[30];//地址






pri();


printf("请输入您要修改的学员的学号:");




scanf("%d",&a);


for(i=0;i<M;i++)//判断数组中存真实值的最后一个数




...{


if(stu[i].num==0)




...{


k=i;


break;




}


}


if(a<1||a>k)//输入错误后,从新进入修改界面




...{


printf("没有这个学号的学员,请重新输入");


cnum();


}




for(i=0;i<M;i++)




...{


if(a==stu[i].num)




...{


pri1();


break;


}


}


printf(" 请选择要修改的学员资料: ");


printf("1.修改姓名 2.修改性别 3.修改成绩 4.修改年龄 5.修改籍贯 6.修改考勤 7.修改联系电话 8.修改地址 ");


fflush(stdin);


scanf("%d",&b);


switch(b)




...{


case 1:fflush(stdin);


printf(" 请输入新的姓名:");


gets(cname1);


strcpy(stu[i].name,cname1);


printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 2:fflush(stdin);


printf(" 请输入新的性别:");




stu[i].sex=getchar(csex);


printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 3:printf(" 请输入新的成绩:");


scanf("%f",&cscore);


stu[i].score=cscore;




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 4:printf(" 请输入新的年龄:");


scanf("%d",&colder);


stu[i].older=colder;




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 5:fflush(stdin);


printf(" 请输入新的籍贯:");


gets(cborned);


strcpy(stu[i].borned,cborned);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 6:printf(" 请输入新的考勤:");


scanf("%d",&clater);


stu[i].later=clater;




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 7:fflush(stdin);


printf(" 请输入新的联系电话:");


gets(cpho);


strcpy(stu[i].pho,cpho);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 8:fflush(stdin);


printf(" 请输入新的地址:");


gets(caddress);


strcpy(stu[i].address,caddress);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


}


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续修改学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


check();




}


else if(a=='n'||a=='N')




...{


system("cls");


index();




}


printf("请输入Y或者N");


}






}




void cname()//输入姓名开始修改




...{


int a,b;


char cname1[20],csex;


float cscore;




int colder;//年龄


char cborned[20];//籍贯




int clater;//考勤


char cpho[15];//联系电话


char caddress[30];//地址




pri();




printf("请输入您要修改的学员的姓名:");


fflush(stdin);


gets(cname1);


for(i=0;i<10;i++)




...{


if(strcmp(cname1,stu[i].name)==0)




...{


pri1();


break;


}


}


printf("请选择要修改的学员资料: ");


printf("1.修改姓名 2.修改性别 3.修改成绩 4.修改年龄 5.修改籍贯 6.修改考勤 7.修改联系电话 8.修改地址 ");


scanf("%d",&b);


switch(b)




...{


case 1:fflush(stdin);


printf("请输入新的姓名:");


gets(cname1);


strcpy(stu[i].name,cname1);


printf("修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 2:fflush(stdin);


printf("请输入新的性别:");




stu[i].sex=getchar(csex);


printf("修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 3:printf("请输入新的成绩:");


scanf("%f",&cscore);


stu[i].score=cscore;




printf("修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 4:printf(" 请输入新的年龄:");


scanf("%d",&colder);


stu[i].older=colder;




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 5:fflush(stdin);


printf(" 请输入新的籍贯:");


gets(cborned);


strcpy(stu[i].borned,cborned);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 6:printf(" 请输入新的考勤:");


scanf("%d",&clater);


stu[i].later=clater;




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 7:fflush(stdin);


printf(" 请输入新的联系电话:");


gets(cpho);


strcpy(stu[i].pho,cpho);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


case 8:fflush(stdin);


printf(" 请输入新的地址:");


gets(caddress);


strcpy(stu[i].address,caddress);




printf(" 修改后的%d学号的学生资料为: ",b);


pri1();


break;


}


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续修改学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


check();




}


else if(a=='n'||a=='N')




...{


system("cls");


index();




}


printf("请输入Y或者N");


}






}


void insert()//插入学员资料函数




...{


int j;


char a;


printf(" 请输入要插入的新学员资料>>>>>>>>>>>>>>>>> ");


fflush(stdin);


printf(" 请输入该学员学号: ");


scanf("%d",&stu1[0].num);


fflush(stdin);


printf(" 请输入学员姓名 ");


gets(stu1[0].name);


fflush(stdin);


printf(" 请输入学员性别(F/M): ");


stu1[0].sex=getchar();


fflush(stdin);


printf(" 请输入学员年龄: ");


scanf("%d",&stu1[0].older);


fflush(stdin);


printf(" 请输入学员籍贯: ");


gets(stu1[0].borned);


fflush(stdin);


printf(" 请输入学员成绩: ");


scanf("%f",&stu1[0].score);


fflush(stdin);


printf(" 请输入学员考勤: ");


scanf("%d",&stu1[0].later);


fflush(stdin);


printf(" 请输入学员联系电话: ");


gets(stu1[0].pho);


fflush(stdin);


printf(" 请输入学员的地址: ");


gets(stu1[0].address);


for(i=0;i<M;i++)




...{


if(stu1[0].num>stu[i].num)




...{




for(j=0;j<M;j++)//判断数组中存真实值的最后一个数




...{


if(stu[j].num==0)




...{




break;




}


}


for(;j>i+1;j--)




...{


stu[j]=stu[j-1];


}


stu[i+1]=stu1[0];


}


}


pri();


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续修改学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


check();




}


else if(a=='n'||a=='N')




...{


system("cls");


index();




}


printf("请输入Y或者N");


}








}










void delet()//删除程序




...{


pri();


char sel,a;//接收是否确定


int count,n;//接收删掉学员学号和计数器


n=M;


printf("请问你想删掉第几个学员的信息:");


scanf("%d",&count);


fflush(stdin);




printf(" 请问是否确定:(Y/N) ");


sel=getchar();




Sleep();//睡觉




printf(" 号码 姓名 性别 年龄 籍贯 成绩 考勤 联系电话 地址 ");


if(sel=='y'||sel=='Y')




...{


for(i=count-1;i<n;i++)




...{


stu[i]=stu[i+1];


}


for(i=0;i<n-1;i++)




...{


if(stu[i].num==0)




...{break;


}




printf(" %d %s %c %d %s %.2f %d %s %s ",stu[i].num,stu[i].name,


stu[i].sex,stu[i].older,stu[i].borned,stu[i].score,stu[i].later,


stu[i].pho,stu[i].address);


}


n=n-1;


}




else if(sel=='n'||sel=='N')




...{


pri();


}


else




...{


printf("你输入有误!");


}


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续删除学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


delet();




}


else if(a=='n'||a=='N')




...{


system("cls");


index();




}


printf("请输入Y或者N");


}


}






//以下为查询函数find(),find1()...






void find()//查询函数




...{


int a;


printf(" 请选择要查询学员资料的方式: ");


printf(" 1.输入姓名查询: ");


printf(" 2.输入学号查询: ");


printf(" 3.特殊查询方式(按成绩,考勤等查询): ");


printf(" 0.返回主界面 ");


fflush(stdin);


scanf("%d",&a);


if(a>3||a<0) //判断用户输入的选项是否符合要求,这个程序语句在每个人做的功能选择语句时一定要写。




...{


printf("请输入0-3的数字 ");


find(); //如果用户输入的选项要求不符合的时候,从新调用介面函数,进入主界面


}


switch(a)




...{


case 1:fname();//输入姓名查询


break;


case 2:fnum();//输入学号查询


break;


case 3:find1();//特殊查询方式


break;


case 0:system("cls");


index();//返回主界面


break;


}




}




void find1()




...{


int a;


printf(" 请选择要特殊查询学员资料的方式: ");


printf(" 1.按学号排列显示学员资料 ");


printf(" 2.按性别排列学员资料 ");


printf(" 3.按成绩由高到低显示学员资料 ");


printf(" 4.按考勤由高到低显示学员资料 ");


printf(" 0.返回上一界面 ");


fflush(stdin);


scanf("%d",&a);


if(a>4||a<0) //判断用户输入的选项是否符合要求,这个程序语句在每个人做的功能选择语句时一定要写。




...{


printf("请输入0-3的数字 ");


find1(); //如果用户输入的选项要求不符合的时候,从新调用介面函数,进入主界面


}


switch(a)




...{


case 1:pri();//按学号排列显示学员资料


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续查询学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


find1();




}


else if(a=='n'||a=='N')




...{


//system("cls");


find();




}


printf("请输入Y或者N");


}


break;


case 2:fmal();//按性别排列学员资料


break;


case 3:fscore();//按成绩由高到低显示学员资料


break;


case 4:flater();//按考勤由高到低显示学员资料


break;


case 0:find();//返回查询主界面


break;


}






}




void fname()




...{


char name1[20];


char a;


pri();


fflush(stdin);


printf(" 请输入您要查询的名字: ");


gets(name1);


for(i=0;i<M;i++)




...{


if(strcmp(stu[i].name,name1)==0)




...{


pri1();


break;


}


}


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续查询学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


fname();




}


else if(a=='n'||a=='N')




...{


//system("cls");


find();




}


printf("请输入Y或者N");


}




}




void fnum()//按学号排列显示学员资料




...{


int b;


char a;


pri();


printf("请输入您要查询的学员学号:");


scanf("%d",&b);


for(i=0;i<M;i++)




...{


if(b==stu[i].num)




...{


pri1();


break;


}


}


while(1)//循环判断用户是否继续使用该功能




...{


printf("是否继续查询学员信息(Y/N)");


fflush(stdin);


a=getchar();


if(a=='y'||a=='Y')




...{


fnum();




}


else if(a=='n'||a=='N')




...{


//system("cls");


find();




}


printf("请输入Y或者N");


}




}




void fmal()//按性别排列学员资料




...{


printf(" 号码 姓名 性别 年龄 籍贯 成绩 考勤 联系电话 地址 ");




for(i=0;i<M-1;i++)




...{


if(stu[i].num==0)




...{break;


}


if(stu[i].sex=='m'||stu[i].sex=='M')




...{


printf(" %d %s %c %d %s %.2f %d %s %s ",stu[i].num,stu[i].name,


stu[i].sex,stu[i].older,stu[i].borned,stu[i].score,stu[i].later,


stu[i].pho,stu[i].address);


printf(" ");


}


}


for(i=0;i<M-1;i++)




...{


if(stu[i].num==0)




...{break;


}


if(stu[i].sex=='f'||stu[i].sex=='F')




...{


printf(" %d %s %c %d %s %.2f %d %s %s ",stu[i].num,stu[i].name,


stu[i].sex,stu[i].older,stu[i].borned,stu[i].score,stu[i].later,


stu[i].pho,stu[i].address);


printf(" ");


}


}


find1();






}




void fscore()//按成绩由高到低显示学员资料




...{




int j;


for(i=0;i<M;i++)




...{


if(stu[i].num==0)




...{


break;


}


for(j=0;j<M-i-1;j++)




...{


if(stu[i].num==0)




...{


break;


}


if(stu[j].score<stu[j+1].score)




...{


stu1[0]=stu[j];


stu[j]=stu[j+1];


stu[j+1]=stu1[0];


}




}


}


pri();


find1();






}




void flater()//按考勤由高到低显示学员资料




...{


int temp,j;


for(i=0;i<M;i++)




...{


if(stu[i].num==0)




...{


break;


}


for(j=0;j<M-i-1;j++)




...{


if(stu[i].num==0)




...{


break;


}


if(stu[j].later<stu[j+1].later)




...{


stu1[0]=stu[j];


stu[j]=stu[j+1];


stu[j+1]=stu1[0];


}




}


}


pri();


find1();






}








void pri()//打印所有成员函数




...{




printf(" 号码 姓名 性别 年龄 籍贯 成绩 考勤 联系电话 地址 ");


for(i=0;i<M;i++)




...{


if(stu[i].num==0)




...{


break;


}


printf(" %d %s %c %d %s %.2f %d %s %s ",stu[i].num,stu[i].name,


stu[i].sex,stu[i].older,stu[i].borned,stu[i].score,stu[i].later,


stu[i].pho,stu[i].address);


printf(" ");


}




}




void pri1()//打印单个成员函数




...{


printf(" 号码 姓名 性别 年龄 籍贯 成绩 考勤 联系电话 地址 ");


printf(" %d %s %c %d %s %.2f %d %s %s ",stu[i].num,stu[i].name,


stu[i].sex,stu[i].older,stu[i].borned,stu[i].score,stu[i].later,


stu[i].pho,stu[i].address);




}




void Sleep()//睡觉函数




...{


int i;


for(i=0;i<50;i++)//循环50次后退出




...{


printf(">");//打印形状


Sleep(100);//睡觉(里面的单位是毫秒)


}


printf(" ");


}





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: