编写学生成绩管理系统(C语言)
主函数
#include
#include
#include
void jiemian();
void menu();
void menu1();
void color();
using namespace std;
int main()
{
clock_t start = clock();
extern int b;
extern int d;
color();
jiemian();
if(b!=1){
menu1();
getchar();
}else if(d!=2){
menu();
getchar();
}
clock_t end = (clock() - start)/CLOCKS_PER_SEC;
cout<<"本次操作用时 "<<end<<endl; printf("秒\n");
return 0;
}
界面
#include
#include
#include "head.h"
int b,d;
void jiemian()
{
int x,cnn=0,n,y,i,c;
printf("--------------------------------\n");
printf("| |\n");
printf("| Windows |\n");
printf("| 欢迎使用学生成绩管理系统 |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("--------------------------------\n");
printf("请输入你的账号:");
scanf("%d",&x);
printf("请输入你的密码(学生密码为账号后四位/管理员密码为后四位之前):");
c=x/10000;
n=x000;
for(i=0;i<1;i++){
scanf("%d",&y);
if(n!=y){
b=1;
printf("\a");
break;
}else if(n==y){
printf("登入成功\n");
while(x!=0){
cnn++;
printf("%d你好!你是第%d名访问者。\n",x,cnn);
if(x%2==0){
printf("女士\n");
}else{
printf("男士\n");
}
x=(x/100);
printf("信息%d班\n",x);
printf("输入0进入下一界面。");
scanf("%d",&x);
}
break;
}
}
for(i=0;i<1;i++){
if(x!=0){
if(c!=y){
d=2;
printf("\a");
printf("密码错误\n");
break;
}else if(c==y){
printf("登入成功\n");
while(x!=0){
cnn++;
printf("管理员你好!你是第%d名访问者。\n",cnn);
x=(x/100);
printf("输入0进入下一界面。");
scanf("%d",&x);
}
break;
}else{
break;
}
}
}
}
管理员菜单
#include
#include"head.h"
void menu(){
Readfile();
int x;
for(;x<=10;){
printf("-------------------------------\n");
printf("|=============================|\n");
printf("【 1.初始化 】\n");
printf("【 2.添加学生信息 】\n");
printf("【 3.删除学生信息 】\n");
printf("【 4.按姓名查询学生信息 】\n");
printf("【 5.按学号查询学生信息 】\n");
printf("【 6.修改学生信息 】\n");
printf("【 7.按总分排名 】\n");
printf("【 8.分数等级划分 】\n");
printf("【 9.格式化 】\n");
printf("【 10.查看信息 】\n");
printf("【 0.结束 】\n");
printf("|=============================|\n");
printf("-------------------------------\n");
printf("请输入您的选择(1,2,3,4,5,6,7,8,9,10,0)?\n");
scanf("%d",&x);
switch(x){
case 1:
printf("您的选择是初始化\n");
init();
print();
break;
case 2:
printf("您的选择是添加学生信息\n");
addstudent();
print();
break;
case 3:
printf("您的选择是删除学生信息\n");
modifystu();
print();
break;
case 4:
printf("您的选择是按姓名查询学生信息\n");
namecx();
break;
case 5:
printf("您的选择是按学号查询学生信息\n");
idcx();
break;
case 6:
printf("您的选择是修改学生信息\n");
xiugai();
print();
break;
case 7:
printf("您的选择是按总分排名\n");
sortstu();
print();
break;
case 8:
printf("你选择的是分数等级划分\n");
fsdjhf();
break;
case 9:
printf("您选择的是格式化\n");
format();
break;
case 10:
printf("您选择的是查看信息\n");
print();
break;
case 0:
break;
}
Writerfile();
if(x==0){
break;
}
}
}
学生菜单
#include
#include
#include"head.h"
void menu1(){
Readfile();
int x;
for(;x<=5;){
printf("-------------------------------\n");
printf("|=============================|\n");
printf("【 1.初始化 】\n");
printf("【 2.添加学生信息 】\n");
printf("【 3.按姓名查询学生信息 】\n");
printf("【 4.按学号查询学生信息 】\n");
printf("【 5.查看信息 】\n");
printf("【 0.结束 】\n");
printf("|=============================|\n");
printf("-------------------------------\n");
printf("请输入您的选择(1,2,3,4,5,0)?\n");
scanf("%d",&x);
switch(x){
case 1:
printf("您的选择是初始化\n");
init();
print();
break;
case 2:
printf("您的选择是添加学生信息\n");
addstudent();
print();
break;
case 3:
printf("您的选择是按姓名查询学生信息\n");
namecx();
break;
case 4:
printf("您的选择是按学号查询学生信息\n");
idcx();
break;
case 5:
printf("您选择的是查看信息\n");
print();
break;
case 0:
break;
}
Writerfile();
if(x==0){
break;
}
}
}
初始化
#include
#include
#include "head.h"
#include
int size;
struct student stu[100];
void init(){
int i;
float p;
printf("请输入班级人数:");
scanf("%d",&size);
for(i=0;i
printf("请输入第%d个人的信息。\n",i+1);
printf("学号:");
scanf("%d",&stu[i].id);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("语文:");
scanf("%f",&stu[i].china);
printf("数学:");
scanf("%f",&stu[i].math);
printf("英语:");
scanf("%f",&stu[i].english);
stu[i].sum=stu[i].china+stu[i].english+stu[i].math;
printf("总成绩为:%.2f\n",stu[i].sum);
p=stu[i].sum/3;
printf("平均成绩:%.2f\n",p);
printf("***************over***********\n");
}
}
添加学生信息
#include
#include
#include "head.h"
#include
void addstudent(){
while(1){
extern int size;
extern struct student stu[100];
float p;
printf("请输入信息\n");
printf("学号:");
scanf("%d",&stu[size].id);
printf("姓名:");
scanf("%s",&stu[size].name);
getchar();
printf("数学:");
scanf("%f",&stu[size].math);
getchar();
printf("语文:");
scanf("%f",&stu[size].china);
getchar();
printf("英语:");
scanf("%f",&stu[size].english);
getchar();
stu[size].sum=stu[size].china+stu[size].english+stu[size].math;
printf("总成绩为:%.2f\n",stu[size].sum);
p=(stu[size].china+stu[size].english+stu[size].math)/3;
printf("平均成绩:%.2f\n",p);
printf("***********over*************\n");
printf("****************以下为添加学生信息**************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[size].id,stu[size].name,stu[size].math,stu[size].china,stu[size].english,stu[size].sum);
printf("**********************查询完毕******************\n");
printf("查看信息输入是否有误(y/n)?\n");
size++;
if(getchar()=='y'){
int people,i;
printf("输入信息有误的学号:\n");
scanf("%d",&people);
for(i=0;i
if(people==stu[i].id){
printf("****************以下为修改的学生信息**************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].china,stu[i].english,stu[i].sum);
printf("**********************查询完毕********************\n");
for(;i
stu[i]=stu[i+1];
}
size--;
printf("请从新输入信息:\n");
printf("学号:");
scanf("%d",&stu[size].id);
printf("姓名:");
scanf("%s",&stu[size].name);
printf("数学:");
scanf("%f",&stu[size].math);
printf("语文:");
scanf("%f",&stu[size].china);
printf("英语:");
scanf("%f",&stu[size].english);
stu[size].sum=stu[size].china+stu[size].english+stu[size].math;
printf("总成绩为:%.2f\n",stu[size].sum);
p=(stu[size].china+stu[size].english+stu[size].math)/3;
printf("平均成绩:%.2f\n",p);
printf("***********over************\n");
size++;
}
}
}
if(getchar()=='n'){
break;
}
printf("成功!\n");
printf("是否继续?(y/n)");
if(getchar()=='n'){
break;
}
}
}
按学号查询信息
#include
#include
#include "head.h"
#include
void idcx(){
while(1){
extern int size;
extern struct student stu[100];
int i;
int x;
printf("输入查询的学号:");
scanf("%d",&x);
for(i=0;i
if(stu[i].id==x){
printf("****************以下为学生信息**************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].china,stu[i].english,stu[i].sum);
printf("*******************查询完毕*****************\n");
break;
}
}
if(stu[i].id!=x){
printf("查无此人\n");
}
getchar();
printf("是否继续(y/n)?");
if(getchar()=='n'){
break;
}
}
}
按姓名查询信息
#include
#include
#include "head.h"
#include
void namecx(){
while(1){
extern int size;
extern struct student stu[100];
int i;
char na[10];
printf("输入查询的姓名:");
scanf("%s",&na);
for(i=0;i
if(strcmp(stu[i].name,na)==0){
printf("****************以下为学生信息**************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].china,stu[i].english,stu[i].sum);
printf("*******************查询完毕*****************\n");
break;
}
}
if(strcmp(stu[i].name,na)!=0){
printf("查无此人\n");
}
getchar();
printf("是否继续(y/n)?");
if(getchar()=='n'){
break;
}
}
}
按总成绩排序
#include
#include
#include "head.h"
#include
void sortstu(){
extern int size;
extern struct student stu[100];
int i,j;
struct student tmp;
for(i=0;i
for(j=1;j
if(stu[j-1].sum
tmp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=tmp;
}
}
}
}
删除学生信息
#include
#include
#include "head.h"
#include
void modifystu(){
extern int size;
extern struct student stu[27];
while(1){
int delid,i;
printf("请输入要删除学生的学号:");
scanf("%d",&delid);
for(i=0;i
{
if(delid==stu[i].id){
for(;i
stu[i]=stu[i+1];
}
size--;
printf("《成功!》\n");
}
}
printf("是否继续进行删除操作?[y/n]:");
char x[3];
scanf("%s",x);
if(strcmp(x,"n")==0){
break;
}
}
}
修改学生信息
#include
#include
#include "head.h"
#include
void xiugai(){
while(1){
extern int size;
extern struct student stu[100];
int people,i;
float p;
printf("输入修改的人的学号:");
scanf("%d",&people);
for(i=0;i
if(people==stu[i].id){
printf("****************以下为修改的学生信息**************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].china,stu[i].english,stu[i].sum);
printf("**********************查询完毕********************\n");
for(;i
stu[i]=stu[i+1];
}
size--;
printf("输入修改后的信息:\n");
printf("学号:");
scanf("%d",&stu[size].id);
printf("姓名:");
scanf("%s",&stu[size].name);
printf("数学:");
scanf("%f",&stu[size].math);
printf("语文:");
scanf("%f",&stu[size].china);
printf("英语:");
scanf("%f",&stu[size].english);
stu[size].sum=stu[size].china+stu[size].english+stu[size].math;
printf("总成绩为:%.2f\n",stu[size].sum);
p=(stu[size].china+stu[size].english+stu[size].math)/3;
printf("平均成绩:%.2f\n",p);
printf("***********over************\n");
size++;
}else if(people!=stu[i].id){
printf("查无此人\n");
}
}
getchar();
printf("是否继续(y/n)?");
if(getchar()=='n'){
break;
}
}
}
按等级划分
#include
#include
#include "head.h"
#include
void fsdjhf(){
extern int size;
extern struct student stu[100];
int a=0,s=0,d=0,l=0;
int z=0,x=0,c=0,h=0,i;
int q=0,w=0,e=0,k=0;
for(i=0;i
if(stu[i].china<=100&&stu[i].china>=80){
a++;
}
if(stu[i].china<80&&stu[i].china>=70){
s++;
}
if(stu[i].china<70&&stu[i].china>=60){
d++;
}
if(stu[i].china<60){
l++;
}
}
for(i=0;i
if(stu[i].math<=100&&stu[i].math>=80){
z++;
}
if(stu[i].math<80&&stu[i].math>=70){
x++;
}
if(stu[i].math<70&&stu[i].math>=60){
c++;
}
if(stu[i].math<60){
h++;
}
}
for(i=0;i
if(stu[i].english<=100&&stu[i].english>=80){
q++;
}
if(stu[i].english<80&&stu[i].english>=70){
w++;
}
if(stu[i].english<70&&stu[i].english>=60){
e++;
}
if(stu[i].english<60){
k++;
}
}
printf("******************分数划分*******************\n");
printf("语文:优秀\t良好\t及格\t不及格\n");
printf("\t%-d\t%-d\t%-d\t%-d\n",a,s,d,l);
printf("********************over*********************\n");
printf("******************分数划分*******************\n");
printf("数学:优秀\t良好\t及格\t不及格\n");
printf("\t%-d\t%-d\t%-d\t%-d\n",z,x,c,h);
printf("********************over*********************\n");
printf("******************分数划分*******************\n");
printf("英语:优秀\t良好\t及格\t不及格\n");
printf("\t%-d\t%-d\t%-d\t%-d\n",q,w,e,k);
printf("********************over*********************\n");
}
输出函数
#include
#include
#include
#include "head.h"
void print(){
extern int size;
extern struct student stu[100];
printf("******************以下为学生信息****************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
for(int i=0;i
printf("%-d\t%-s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\n",stu[i].id,stu[i].name,stu[i].math,stu[i].china,stu[i].english,stu[i].sum);
}
printf("*******************显示结束*********************\n");
}
格式化
#include
#include
#include "head.h"
#include
void format(){
extern int size;
extern struct student stu[100];
int i,s;
s=size;
for(i=0;i<=s;i++){
size--;
}
printf("****************以下为学生信息****************\n");
printf("学号\t姓名\t数学\t语文\t英语\t总分\n");
printf("\t\t已被格式化\n");
printf("******************显示结束********************\n");
}
读入文件
#include
#include
#include
#include "head.h"
void Readfile(){
extern int size;
extern struct student stu[100];
FILE *fp;
int i;
if ((fp=fopen("Database.txt","rb"))==NULL){
printf("不能打开文件!\n");
return;
}
if (fread(&size,sizeof(int),1,fp)!=1){
size=-1;
}else{
for(i=0;i
fread(&stu[i],sizeof(struct student),1,fp);
}
}
fclose(fp);
}
写入文件
#include
#include
#include
#include "head.h"
void Writerfile(){
extern int size;
extern struct student stu[100];
FILE *fp;
int i;
if((fp=fopen("Database.txt","wb"))==NULL){
printf("不能打开文件!\n");
return;
}
if(fwrite(&size,sizeof(int),1,fp)!=1){
printf("写入文件错误!\n");
}
for (i=0;i
if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1){
printf("写入文件错误!\n");
}
}
fclose(fp);
}
头文件
#ifndef _HEAD_H_
void menu1();
void dengru();
void init();
void print();
void addstudent();
void modifystu();
void sortstu();
void idcx();
void namecx();
void xiugai();
void fsdjhf();
void format();
void Writerfile();
void Readfile();
struct student{
int id;
char name[10];
float math;
float china;
float english;
float sum;
};
#endif
颜色函数
#include
#include
#include
#include
void color(){
char con[5];
char color[20]="color ";
printf(" |*选着系统的颜色*|\n");
printf("\n");
printf("***************控制台颜色和图形颜色*****************\n");
printf("0 = 黑色 8 = 灰色\n");
printf("1 = 蓝色 9 = 浅蓝色\n");
printf("2 = 绿色 A = 淡绿色\n");
printf("3 = 浅绿色 B = 淡浅绿色\n");
printf("4 = 红色 C = 淡红色\n");
printf("5 = 紫色 D = 淡紫色\n");
printf("6 = 黄色 E = 淡黄色\n");
printf("7 = 白色 F = 亮白色\n");
printf("请输入两位数,第一位为控制台颜色,第二位为图形颜色\n");
gets(con);//获取控制台和文字颜色显示选项
strcat(color,con);//合并color和选项
system(color);//调用system()函数实现显示颜色变化
}