文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计-学生综合管理系统

C语言课程设计-学生综合管理系统

//建议在记事本或VC中查看

# include //包含文件
# include "stdlib.h"
# include "string.h"
int count;
void info_daoru();
void info_xieru();
void info_del();
void info_xiugai();
void data_xieru();
void data_daoru();
void data_xiugai();
void data_chaxun();
void data_input();
void shuchu();

struct student{ //定义学生信息结构数组
double number;
char name[11];
char sex[4];
char phone[14];
}p,info[100],w={0," "," "," "};

struct data{ //定义学生数据结构数组
double number;
char name[11];
char sex[4];
char phone[14];
int chinese,math,english,ksmc,pinde,teacher;
float avg,ceping;
}data[100];

int main() //主函数
{
system("color 2e");
void data_menu();
void info_menu();
void help();
void menu();

printf("\n\n\n\t\t............欢迎使用学生综合管理系统............\n\n");
printf("\t\t \t\t本程序由陈伟独自编写\n\n");
printf("\n\n\t\t");
system("pause");
menu();
return 0;

}
void help() //帮助信息
{

system("cls"); //清屏

printf(" 欢迎使用本系统!\n\n");
printf(" 本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。\n");
printf(" 基本信息包括:学号、姓名、性别、联系电话;\n 各科成绩包括:语文、数学、英语成绩;\n");
printf(" 其它包括:考试名次、品德成绩、任课教师评分等。\n");
printf(" 说明:考试成绩排名是按照考试成绩计算的(考试成绩=(语+数+外)/3);\n");
printf(" 综合测评总分=((考试成绩)*0.6+(品德成绩)*0.2+(任课教师评分)*0.2)\n");
printf(" 其它请按照提示操作即可。\n\n");
printf(" 如有疑问,请联系:QQ:461890117\n\n");
printf("\n\n\t\t");
system("pause");

}

void info_daoru() //学生信息导出文件函数
{
FILE *f_info;
struct student p={NULL};

printf("\n\n\t正在导入...\n\n");
if((f_info=fopen("info.txt","r"))==NULL){
printf("\n\t打开文件失败!\n\n");
return;
}

count=0;
while(!feof(f_info)){
fscanf(f_info,"%lf %s %s %s ",&p.number,https://www.wendangku.net/doc/ca18674908.html,,p.sex,p.phone);
info[count]=p;
count++;
}
printf("\n\t导入已完成!共导入 %d 条记录!\n\n\n",count);
fclose(f_info);
}

void info_input() //学生信息输入函数
{
int i,j;
info_daoru();
for( ; ; ){
printf("\t请输入学号(输入0退出):");
scanf("%lf",&p.number);
if(p.number==0) return;
for(i=0;i<=count;i++){ //判断是否存在该学生
if(p.number==inf

o[i].number){
printf("\n\n\t该学号已存在!请重新输入!\n\n");
return;
}
}

printf("\t请输入姓名:"); //输入学生信息
scanf("%s",https://www.wendangku.net/doc/ca18674908.html,);
printf("\t请输入性别:");
scanf("%s",p.sex);
printf("\t请输入电话号码:");
scanf("%s",p.phone);
info[count]=p;
for(i=0;iif(info[i].number>info[count].number){
for(j=count;j>i;j--){
info[j]=info[j-1];

}
info[i]=p;
break;
}
}
count++;
}

}


void info_output() //学生信息浏览
{

FILE *f_info;
int i;

if((f_info=fopen("info.txt","r"))==NULL){ //判断
printf("\n\t没有学生信息!");
printf("\n\n\t\t");
system("pause");
return;
}
info_daoru();
if(count==0){ //判断
printf("\n\t没有学生信息!");
printf("\n\n\t\t");
system("pause");
return;
}
else{
printf(" \t学号\t 姓名 \t 性别 联系电话\n"); //输出学生信息
for(i=0;iprintf(" %10.0lf",info[i].number);
printf(" %10s",info[i].name);
printf(" %10s",info[i].sex);
printf(" %13s\n\n",info[i].phone);
}
}
printf("\t请按任意键返回上级:");
printf("\n\n\t\t");
system("pause");
printf("\n\n\n\n");

}


void info_menu() //学生信息菜单
{
int choice;
while(1){
system("cls"); //清屏
printf("\n\n\n\n\t\t☆☆☆☆☆学生信息处理系统☆☆☆☆☆\n\n");
printf("\t\t\t● 1.输入学生信息\n");
printf("\t\t\t● 2.修改学生信息\n");
printf("\t\t\t● 3.删除学生信息\n");
printf("\t\t\t● 4.浏览学生信息\n");
printf("\t\t\t● 0.返回主菜单\n\n");
printf("\t\t请输入序号选择操作:");
scanf("%d",&choice);
if(choice==0) break;
switch(choice){
case 1: info_input(); info_xieru(); break;
case 2: info_xiugai(); break;
case 3: info_del(); break;
case 4: info_output(); break;
default: printf("\n\t输入有误!请重新输入!\n\n"); break;
}
}

}


void data_menu() //数据处理菜单
{
int choice;
printf("\n\t在进入学生数据管理前,请确认学生信息已全部完成!\n");
printf("\n\t是否继续?输入数字选择(0:返回;其它数字继续。)\n");
scanf("%d",&choice);
if(choice==0) return;
while(1){
system("cls"); //清屏
printf("\n\n\n\n\t\t☆☆☆☆☆学生数据处理系统☆☆☆☆☆\n\n");
printf("\t\t\t● 1.录入成绩数据\

n");
printf("\t\t\t● 2.修改学生数据\n");
printf("\t\t\t● 3.学生数据查询\n");
printf("\t\t\t● 0.返回主菜单\n\n");
printf("\t\t请输入序号选择操作:");
scanf("%d",&choice);
if(choice==0) break;
switch(choice){
case 1: data_input(); break;
case 2: data_xiugai(); break;
case 3: data_chaxun(); break;
default: printf("\n\t输入有误!请重新输入!\n\n"); break;
}
}

}

void menu() //主菜单函数
{
int choice;
while(1){
system("cls");
printf("\n\n\n\n\t\t-------- ※主 - - - -菜- - - - 单※ --------\n\n");
printf("\t\t\t● 1.学生信息处理系统\n");
printf("\t\t\t● 2.学生数据处理系统\n");
printf("\t\t\t● 3.学生综合信息输出\n");
printf("\t\t\t● 9.帮助信息\n");
printf("\t\t\t● 0.退出系统\n\n");
printf("\t\t请输入序号选择操作:");
scanf("%d",&choice);
printf("\n");
if(choice==0){
printf("\t\t☆☆☆☆☆你已经退出,谢谢使用!☆☆☆☆☆\n\n\t\t");
break;
}
switch(choice){
case 1 : info_menu(); break;
case 2 : data_menu(); break;
case 9 : help(); break;
case 3 : shuchu(); break;
default: printf("\n\t输入有误!请重新输入!\n\n"); break;

}
}
}

void info_xieru() //学生信息写入文件函数
{
FILE *f;

int i;

if((f=fopen("info.txt","w"))==NULL){
printf("\n\t打开文件失败!\n\n");
exit(0);
}
for(i=0;iif(info[i].number==w.number) continue;
else fprintf(f,"%.0lf %s %s %s ",info[i].number,info[i].name,info[i].sex,info[i].phone);
}
fclose(f);
printf("\n\t保存成功!\n\n");
printf("\n\n\t\t");
system("pause");


return;

}

void info_del() //学生信息删除
{
double pp;

int i,j;
info_daoru();
printf("\n\t请输入要删除学生的学号:");
scanf("%lf",&pp);
printf("\n");
for(i=0;i<=count;i++){ //判断
if(info[i].number==pp) break;
if(i>=count){
printf("\n\t没有找到该学生!\n"); return;
}
}
printf(" \t学号\t 姓名 \t 性别 联系电话\n"); //显示删除信息
printf(" %10.0lf",info[i].number);
printf(" %10s",info[i].name);
printf(" %10s",info[i].sex);
printf(" %13s\n\n",info[i].phone);
printf("\n\t是否删除?\t 1.是 \t 2.否 \t ");
while(1){
scanf("%d",&j);
switch(j){
case 1: info[i]=w; printf("\n\t删除成功!\n\n"); info_xieru(); return;
case 2: return;
default : printf("输入错误!请重新输入!");break;
}
break;
}
printf("\n\n\t\t");
system("pause");
}

void info_xiugai

() //修改学生信息
{
double pp;
int i,j;
info_daoru();
printf("\n\t请输入要修改学生的学号:"); //查找
scanf("%lf",&pp);
printf("\n");
for(i=0;i<=count;i++){
if(info[i].number==pp) break;
printf("\n\t没有找到该学生!\n"); return;
}
printf(" \t学号\t 姓名 \t 性别 联系电话\n"); //显示
printf(" %10.0lf",info[i].number);
printf(" %10s",info[i].name);
printf(" %10s",info[i].sex);
printf(" %13s\n\n",info[i].phone);
printf("\n\t是否修改?\t 1.是 \t 2.否 \t ");
while(1){ //修改
scanf("%d",&j);
switch(j){
case 1:{
printf("\t学号为:%.0lf\n",info[i].number);
printf("\t请输入姓名:");
scanf("%s",info[i].name);
printf("\t请输入性别:");
scanf("%s",info[i].sex);
printf("\t请输入电话号码:");
scanf("%s",info[i].phone);
printf("\n\t修改成功!\n\n"); info_xieru(); return; //保存
}
case 2: return;
default : printf("输入错误!请重新输入!");break;
}
break;
}
printf("\n\n\t\t");
system("pause");
}

void data_daoru() //学生数据导出
{
FILE *f_data;
struct data p={NULL};

printf("\n\n\t正在导入...\n\n");
if((f_data=fopen("data.txt","r"))==NULL){
printf("\n\t打开文件失败!\n\n");
return;
}

count=0;
while(!feof(f_data)){
fscanf(f_data,"%lf %s %s %s %d %d %d %f %d %d %d %f ",&p.number,https://www.wendangku.net/doc/ca18674908.html,,p.sex,p.phone,&p.chinese,&p.math,&p.english,&p.avg,&p.ksmc,&p.pinde,&p.teacher,&p.ceping);
data[count]=p;
count++;
}
printf("\n\t导入已完成!共导入 %d 条记录!\n\n\n",count);
fclose(f_data); //关闭文件
}


void data_xieru() //写入文件函数
{
FILE *f;

int i;

if((f=fopen("data.txt","w"))==NULL){
printf("\n\t打开文件失败!\n\n");
exit(0);
}
for(i=0;ifprintf(f,"%.0lf %s %s %s %d %d %d %.1f %d %d %d %.1f ",data[i].number,data[i].name,data[i].sex,data[i].phone,data[i].chinese,data[i].math,data[i].english,data[i].avg,data[i].ksmc,data[i].pinde,data[i].teacher,data[i].ceping);
}
fclose(f);
printf("\n\n\t\t");
system("pause");


return;

}

void data_input() //数据输入
{
FILE *f_info;
int choice,i,k;
struct data p={NULL};

printf("\n\t警告!原有成绩将被覆盖!\n");
printf("\n\t是否继续?输入数字选择(0.返回;其余数字继续)\n\n");
scanf("%d",&choice);
if(choice==0) return;
printf("\n\n\t正在导入...\n\n"); //判断
if((f_info=fopen("info.txt","r"))==NULL){
printf("\n\t打开文件失败!\n\n");
return;
}

count=0;
while

(!feof(f_info)){ //导出学生信息
fscanf(f_info,"%lf %s %s %s ",&p.number,https://www.wendangku.net/doc/ca18674908.html,,p.sex,p.phone);
data[count]=p;
count++;
}
printf("\n\t导入已完成!共导入 %d 条记录!\n\n\n",count);
fclose(f_info);

for(i=0;iprintf("\n\t学号:%.0lf 姓名:%s\n",data[i].number,data[i].name);
printf("\n\t请输入语文成绩:");
scanf("%d",&data[i].chinese);
printf("\t请输入数学成绩:");
scanf("%d",&data[i].math);
printf("\t请输入英语成绩:");
scanf("%d",&data[i].english);
printf("\n\t请输入品德成绩:");
scanf("%d",&data[i].pinde);
printf("\t请输入老师评分:");
scanf("%d",&data[i].teacher);
data[i].avg=(data[i].chinese+data[i].math+data[i].english)/3;
data[i].ceping=(data[i].avg*0.6+data[i].pinde*0.2+data[i].teacher*0.2);
data[i].ksmc=i+1;

for(k=0;kif(data[i].avg>data[k].avg){
data[k].ksmc=data[k].ksmc+1;
if(data[i].ksmc>data[k].ksmc-1)
data[i].ksmc=data[k].ksmc-1;
}
}
}
printf("\n\n\t输入已完成!正在保存... \n");
data_xieru();

}

void data_xiugai() //数据修改
{
double pp;
int i,j,k;
data_daoru();
printf("\n\t请输入要修改学生的学号:");
scanf("%lf",&pp);
printf("\n");
for(i=0;i<=count;i++){
if(data[i].number==pp) break;
printf("\n\t没有找到该学生!\n"); return;
}
printf("\n\t学号:%.0lf 姓名:%s \n\n\t语文:%d 数学:%d 英语:%d 品德成绩:%d 老师评分:%d\n\n",data[i].number,data[i].name,data[i].chinese,data[i].math,data[i].english,data[i].pinde,data[i].teacher);

printf("\n\t是否修改?\t 1.是 \t 2.否 \t ");
while(1){ //询问
scanf("%d",&j);
switch(j){
case 1:{
for(k=0;k<=count;k++){ //重新排名次
if(data[i].avg>data[k].avg) data[k].ksmc=data[k].ksmc-1;
}
printf("\n\t请输入语文成绩:");
scanf("%d",&data[i].chinese);
printf("\t请输入数学成绩:");
scanf("%d",&data[i].math);
printf("\t请输入英语成绩:");
scanf("%d",&data[i].english);
printf("\n\t请输入品德成绩:");
scanf("%d",&data[i].pinde);
printf("\t请输入老师评分:");
scanf("%d",&data[i].teacher);
data[i].avg=(data[i].chinese+data[i].math+data[i].english)/3;
data[i].ceping=(data[i].avg*0.6+data[i].pinde*0.2+data[i].teacher*0.2);
data[i].ksmc=count;

for(k=0;kif(data[i].avg>data[k].avg){
data[k].ksmc=data[k].ksmc+1;
if(data[i].ksmc>data[k].ksmc-1)
data[i].ksmc=data[k].ksmc-1;
}
}

printf("\n\t修改成功!\n\n"); data_xie

ru(); return; //写入文件
}
case 2: return;
default : printf("输入错误!请重新输入!");break;
}
break;
}
printf("\n\n\t\t");
system("pause");
}


void data_chaxun() //数据查询
{
double pp;
int i;
data_daoru(); //导出文件数据
printf("\n\t请输入要查询学生的学号:");
scanf("%lf",&pp);
printf("\n");
for(i=0;i<=count;i++){
if(data[i].number==pp) break;
if(i>=count){
printf("\n\t没有找到该学生!\n");
return;
}
}
printf("\n\t学号:%.0lf 姓名:%s 性别:%s \n\n\t语文:%d 数学:%d 英语:%d 平均成绩:%.1f\n\n\t名次:%d 品德成绩:%d 老师评分:%d 综合成绩:%.1f\n\n",data[i].number,data[i].name,data[i].sex,data[i].chinese,data[i].math,data[i].english,data[i].avg,data[i].ksmc,data[i].pinde,data[i].teacher,data[i].ceping);
printf("\n\n\t\t");
system("pause");
system("cls"); //清屏

}

void shuchu() //学生综合信息输出
{
int i;
data_daoru();
printf(" ____________ ____________ ________________ ___________ ___________ __________ \n");
printf("| 学号 | 姓名 | 电话号码 | 平均成绩 | 名次 | 综合成绩|\n");
printf(" ____________ ____________ ________________ ___________ ___________ __________ \n");
for(i=0;iprintf("|%11.lf |%11s |%15s |%9.1f |%9d |%9.1f |\n",data[i].number,data[i].name,data[i].phone,data[i].avg,data[i].ksmc,data[i].ceping);
printf("|____________|____________|________________|___________|___________|__________|\n");
}
printf("\n\n\t\t");
system("pause");
printf("\n");
}

相关文档
相关文档 最新文档