北大青鸟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(" ");
}
相关文章推荐
- C语言项目--教师信息/学生成绩管理系统
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
- C语言学生信息管理系统小项目
- python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
- ACCP4.0 [项目实战2]学员成绩管理系统
- C语言小项目(学生信息管理系统)
- [置顶] C语言项目--教师信息/学生成绩管理系统
- C语言小项目(简单的学生成绩管理系统)
- C语言项目2:图书管理系统
- [置顶] C语言项目--教师信息/学生成绩管理系统
- C语言项目:学生成绩管理系统
- C语言项目--教师信息/学生成绩管理系统
- Python开发【项目】:学员管理系统(mysql)
- C语言项目--教师信息/学生成绩管理系统
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
- 项目分享:通过使用SSH框架的公司-学员关系管理系统(CRM)
- C语言项目2:图书管理系统
- Django项目之【学员管理系统】
- Java项目之学员管理系统
- 学生管理系统项目演示