这是我大一时写的一个管理系统。
-------------------------------------------------------------------------
运行环境:Windows10,VC++6.0
-------------------------------------------------------------------------
该系统主要功能如下图所示:
============================================
输入 9 显示如下:
-----------------------------------------------------------------------------
程序框架:
============================================
附源代码如下:
#include
#include
#include
#include
#pragma comment(lib, "winmm.lib")
#include
int n,m; /*声明两个全局变量*/
int openl(); /*声明打开函数*/
void type(); /*声明输入函数*/
void look(); /*声明查看函数*/
void search();/*声明查看函数*/
void search_name(); /*声明按姓名查看函数*/
void search_number(); /*声明按学号查看函数*/
void search_class();/*声明查找一组信息函数*/
void order(); /*声明排序函数*/
void order1(); /*声明平均成绩排序函数*/
void order2(); /*声明语文排序函数*/
void order3(); /*声明数学排序函数*/
void order4(); /*声明英语排序函数*/
void del(); /*声明删除函数*/
void save(); /*声明保存函数*/
void save2(); /*建立保存文件函数*/
void welcome(); /*声明组员信息函数*/
void play();/*声明播放函数*/
void aver();/*声明平均成绩函数*/
struct student /*定义学生信息的结构体类型*/
{
char num[15]; /*学号*/
char name[20]; /*姓名*/
char sex[4]; /*性别*/
int english; /*英语成绩*/
int math; /*数学成绩*/
int chinese; /*语文成绩*/
float aver; /*平均成绩*/
float sum; /*总成绩*/
}stu[100];
void main() /*主函数即用户的操作界面*/
{
int b,flag=0; /*声明局部变量*/
system("color 1F"); /*设计文本颜色*/
while(1) /*循环输出以下信息*/
{
printf("\n\t\t\t欢迎来到学生成绩管理系统!\n");
printf("\n\t\t\t\t 光信二班C3小组制作\n");
printf("\t\t\t-------------------------------\n");
printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/
printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/
printf("\t\t\t3.查找学生的信息\n\n"); /*查找学生的信息*/
printf("\t\t\t4.按学号查看一组学生信息\n\n"); /*按学号查看一组学生的信息*/
printf("\t\t\t5.按成绩排序\n\n"); /*排序*/
printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/
printf("\t\t\t7.科目平均成绩\n\n"); /*科目平均成绩*/
printf("\t\t\t8.背景音乐\n\n"); /*打开音乐文件*/
printf("\t\t\t9.组员信息\n\n"); /*组员信息*/
printf("\t\t\t0.退出\n\n"); /*退出*/
printf("\t\t\t请输入你的选择:");
scanf("%d",&b);
switch(b)
{
case 1:type();break; /*调用键入学生信息函数*/
case 2:look();break; /*调用查看函数*/
case 3:search();break; /*调用查看函数*/
case 4:search_class();break; /*调用学号查看函数*/
case 5:order();break; /*调用排序函数*/
case 6:del();break;/*调用删除函数*/
case 7:aver();break;/*调用平均成绩函数*/
case 8:play();break;/*调用播放函数*/
case 9:welcome();break;/*调用组员信息函数*/
case 0:flag=1;break;/*退出SWITCH语句*/
default :printf("错误!");
}
if(flag) break; /*如果选择0就退出循环*/
}
}
void welcome() /*组员信息函数*/
{
system("CLS");/*清屏*/
printf("\n\n\t\t------------组长------------"); /*在屏幕上输出一下信息*/
printf("\n\n\n\n\t\t姓名:刘红琛");
printf("\t\t\tSex:男\n");
printf("\n\t\t--------组员--------\n\n\n");
printf("\t\t姓名:甄越");
printf("\t\tSex: 女\n\n");
printf("\t\t姓名:李明慧");
printf("\t\tSex:女\n\n");
printf("\t\t姓名:杨梦春");
printf("\t\tSex:女\n\n");
printf("\t\t姓名:郭涛源");
printf("\t\tSex:男\n\n");
printf("\t\t姓名:唐浩铭");
printf("\t\tSex:男\n\n");
printf("\n\n\t\t按任意键返回欢迎屏幕!");
getch(); /*按任意键返回主函数-->conio头文件包括*/
}
int openl() /*定义打开文件函数*/
{
int i;
FILE *fp;
system("CLS");
if((fp=fopen("student.txt","r"))==NULL)
{
printf("Cannot open file.\n");
exit(0);
}
for(i=0;!feof(fp);i++)
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
return (i-1);
}
void save() /*建立保存文件函数*/
{
FILE *fp; /*定义文件型指针*/
int i;
system("CLS");
if((fp=fopen("student.txt","w"))==NULL) /*打开输出文件*/
{
printf("不能打开文件!\n");
return ; /*终止程序*/
}
for(i=0;i
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp); /*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
getch();
}
void save2() /*建立保存文件函数*/
{
FILE *fp; /*定义文件型指针*/
int i;
system("CLS");
if((fp=fopen("student.txt","w"))==NULL) /*打开输出文件*/
{
printf("不能打开文件!\n");
return ; /*终止程序*/
}
for(i=0;i
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp); /*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
getch();
}
void type() /*定义键入学生信息函数*/
{
int i; /*定义局部变量*/
system("CLS");
n=openl();/*调用openl函数*/
printf("\t\t输出你想输入的学生信息个数:");
scanf("%d",&m);
for(i=n;i
{
printf("\n\t\t\t----------------\n");
printf("\t\t\t学号:");
scanf("%s",&stu[i].num); /*输入学号*/
printf("\t\t\t姓名:");
scanf("%s",&stu[i].name); /*输入姓名*/
printf("\t\t\t性别:");
scanf("%s",&stu[i].sex); /*输入性别*/
printf("\t\t\t英语:");
scanf("%d",&stu[i].english); /*输入英语成绩*/
printf("\t\t\t数学:");
scanf("%d",&stu[i].math); /*输入数学成绩*/
printf("\t\t\t语文:");
scanf("%d",&stu[i].chinese); /*输入语文成绩*/
stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/
stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/
printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver); /*输出平均成绩*/
printf("\t\t\t总成绩=%4.1f\n",stu[i].sum); /*输出总成绩*/
}
printf("\n\n\t\t\t按任意键返回菜单!!");
getch();
save();
}
void aver()/*定义求平均成绩函数*/
{
float aver_C=0,aver_E=0,aver_M=0,aver_S;
int i;
n=openl();/*调用openl函数*/
for(i=0;i
{
aver_C=aver_C+stu[i].chinese;
aver_E=aver_E+stu[i].english;
aver_M=aver_M+stu[i].math;
}
aver_C=aver_C/n;
aver_E=aver_E/n;
aver_M=aver_M/n;
aver_S=aver_C+aver_M+aver_E;
printf("\n\n\n\t\t\t语文平均成绩:%.1f",aver_C);
printf("\n\n\n\t\t\t英语平均成绩:%.1f",aver_E);
printf("\n\n\n\t\t\t数学平均成绩:%.1f",aver_M);
printf("\n\n\n\t\t\t总平均成绩:%.1f",aver_S);
printf("\n\n\n\n\t\t\t请按任意键返回菜单!!");
getch();
}
void look() /*定义查看函数*/
{
int i;
system("CLS");
n=openl(); /*调用openl函数*/
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
void search()/*定义查找函数*/
{
char k;
system("CLS");
printf("\n\n\n\n\t\t\t用姓名查找则输入a");
printf("\n\n\t\t\t用学号查找则输入b");
printf("\n\n\n\t\t\t请输入排序方式:");
scanf("%s",&k);/*多分支选择查找方式*/
if(k=='a')
{search_name();}
else if(k=='b')
{search_number();}
}
void search_name() /*按姓名查看函数*/
{
int i;
char name[20]; /*声明字符数组*/
n=openl();
system("CLS");
printf("\t\t\t请输入学生姓名:\n");
scanf("%s",name);
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
if(strcmp(stu[i].name,name)==0) /*将输入的姓名与结构体中的姓名进行比较*/
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意键返回菜单");
}
getch();
}
void search_number() /*定义按学号查看函数*/
{
int i;
char number[15]; /*声明字符数组*/
n=openl();
system("CLS");
printf("\t\t\t请输入学号:\n");
scanf("%s",number);
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
if(strcmp(stu[i].num,number)==0) /*将输入的学号与结构体中的学号进行比较*/
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
struct a /*定义学生学号的结构体类型*/
{
char max[20]; /*较大学号*/
char min[20]; /*较小学号*/
}a[100];
void search_class()/*根据学号查找一组人*/
{
int i,q,w,e;
n=openl();
system("CLS");
printf("\n\n\n\t\t\t输入较小学号:");
scanf("%s",&a[0].min);
printf("\n\t\t\t输入较大学号:");
scanf("%s",&a[0].max);
q=atoi(a[0].min);w=atoi(a[0].max);/*atoi函数将字符型转化为整型数*/
printf("\n\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
e=atoi(stu[i].num);
if(q<=e&&e<=w)
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,
stu[i].aver,stu[i].sum);
}
}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
void order()/*定义排序函数*/
{
char k;
system("CLS");
printf("\n\n\n\n\t\t\t按平均成绩排序则输入a");
printf("\n\n\t\t\t按语文成绩排序则输入c");
printf("\n\n\t\t\t按数学成绩排序则输入m");
printf("\n\n\t\t\t按英语成绩排序则输入e");
printf("\n\n\n\t\t\t请输入排序方式:");
scanf("%s",&k);/*多分支选择排序方式*/
if(k=='a')
{order1();}
else if(k=='c')
{order2();}
else if(k=='m')
{order3();}
else if(k=='e')
{order4();}
}
void order1() /*定义平均成绩排序函数*/
{
int i,j;
char a;
struct student temp; /*声明结构体变量*/
n=openl();
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
for(j=i+1;j
if(stu[i].sum
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序后的文件*/
save2();
else
printf("退出");
getch();
}
void order2() /*定义语文排序函数*/
{
int i,j;
char a;
struct student temp; /*声明结构体变量*/
n=openl();
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
for(j=i+1;j
if(stu[i].chinese
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序后的文件*/
save2();
else
printf("退出");
getch();
}
void order3() /*定义数学排序函数*/
{
int i,j;
char a;
struct student temp; /*声明结构体变量*/
n=openl();
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
for(j=i+1;j
if(stu[i].math
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序后的文件*/
save2();
else
printf("退出");
getch();
}
void order4() /*定义英语排序函数*/
{
int i,j;
char a;
struct student temp; /*声明结构体变量*/
n=openl();
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
{
for(j=i+1;j
if(stu[i].english
{
temp=stu[i];
stu[i]= stu[j];
stu[j]=temp;
}
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
}
getch();
printf("是否保存?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否保存排序后的文件*/
save2();
else
printf("退出");
getch();
}
void del() /*定义删除学生信息函数*/
{
int i;
char a;
char name[20];
n=openl();
system("CLS");
printf("\t\t\t输入学生名字:\n");
scanf("%s",name);
system("CLS");
printf("\t学号\t姓名\t性别\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i
if(strcmp(stu[i].name,name)==0)
{
printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);
getch();
printf("真的要删除?(y or n)");
getchar();
scanf("%c",&a);
if(a=='y') /*是否删除该信息*/
{
for(;i
stu[i]=stu[i+1];
n=n-1;
printf("你已经删除信息");
}
else
printf("退出");
getch();
}
save2();
}
void play()/*定义播放音乐函数*/
{
/*注意音乐文件的位置*/
PlaySound(TEXT("D:\\sounds.wav"),NULL,SND_FILENAME|SND_ASYNC);
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}