您好,欢迎来到品趣旅游知识分享网。
搜索
您的当前位置:首页信息管理系统CPP文件

信息管理系统CPP文件

来源:品趣旅游知识分享网


#include #include #include

int m; //全局变量存放学生个数 struct student //定义结构体 {

char id[10]; char name[10]; float Chinese; float English; float Math; };

//变量声明

voidluru(struct student message[100]); voidxianshi(struct student message[100]); voidpaixu(struct student message[100]); void save(struct student message[100]); voidxiugai(struct student message[100]); voidtongji(struct student message[100]);

//主函数 int main() {

struct student message[100]; //定义结构体数组存放数据 intxuan;

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\");

while(1) {

printf(\"请选择功能选项:\");

scanf(\"%d\",&xuan); //输入功能选项

while(xuan>7||xuan<1) //输入了非功能选项的代号则重新输入 {

printf(\"输入错误,请从新输入:\"); scanf(\"%d\",&xuan); }

switch(xuan) //调用各函数实现各个功能选项,并递归调用主菜单函数 {

case 1:luru(message);break; case 2:xianshi(message);break; case 3:save(message);break; case 4:paixu(message);break; case 5:xiugai(message);break; case 6:tongji(message);break;

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

} }

voidluru(struct student message[100]) /*录入信息*/ { inti,ch; FILE *fp;

if((fp=fopen(\"information.txt\",\"wb\"))==NULL) {

printf(\"不能打开此文件!\\n\"); exit(0); }

printf(\"请输入学生个数:\"); scanf(\"%d\",&m); for(i=0;iprintf(\"请输入学号:\"); scanf(\"%s\",message[i].id); printf(\"请输入姓名:\");

scanf(\"%s\",message[i].name); printf(\"请输入语文成绩:\");

scanf(\"%f\",&message[i].Chinese); printf(\"请输入英语成绩:\");

scanf(\"%f\",&message[i].English); printf(\"请输入数学成绩:\"); scanf(\"%f\",&message[i].Math); }

printf(\"录入结束!!\\n\"); printf(\"按任意键继续\");

ch=getchar(); //接受回车字符

ch=getchar(); //按任意键继续运行程序

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

voidxianshi(struct student message[100]) /*显示信息*/ {

inti,ch;

FILE *fp; //课本335,…………定义一个指向文件的指针变量fp fp=fopen(\"information.txt\",\"r\");

//fscanf(fp1,\"%d\课本344,fscanf,fprintf函数的读写对象不是终端而是文件, //调用方式:fscanf(文件指针,格式字符串,输出列表); for(i=0;ifread(&message[i],sizeof(struct student),1,fp);//课本345 printf(\"学号\姓名\语文\英语\数学\\n\"); for(i=0;iprintf(\"%s\%s\%3.1f\%3.1f\%3.1f\\n\",message[i].id,message[i].name,message[i].Chinese,me

ssage[i].English,message[i].Math); }

printf(\"按任意键继续\"); ch=getchar(); ch=getchar();

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

voidpaixu(struct student message[100]) /*成绩排序*/ {

FILE *fp; inti,j,ch;

fp=fopen(\"information.txt\",\"r\");

for(i=0;ifread(&message[i],sizeof(struct student),1,fp);

struct student t; 的相互交换

printf(\"语文成绩排序如下:\\n\"); for(i=0;iif(message[i].Chineset=message[i];

message[i]=message[j]; message[j]=t; }

xianshi(message);

printf(\"数学成绩排序如下:\\n\"); for(i=0;iif(message[i].Matht=message[i];

message[i]=message[j]; message[j]=t; }

xianshi(message);

printf(\"英语成绩排序如下:\\n\"); for(i=0;iif(message[i].Englisht=message[i];

message[i]=message[j]; message[j]=t;

//定义一个中间变量以便学生数据

}

xianshi(message);//还原为学号排序 for(i=0;iif(message[i].id>message[j].id) {

t=message[i];

message[i]=message[j]; message[j]=t; }

printf(\"按任意键继续\"); ch=getchar(); ch=getchar();

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

/*文件保存*/

void save(struct student message[100]) {

FILE *fp; intch,i;

if((fp=fopen(\"information.txt\",\"wb\"))==NULL) //新建一个文件 {

printf(\"不能打开文件!\\n\"); }

for(i=0;i//新建一个文件存放全局变量m,即学生个数

fclose(fp);//关闭文件 printf(\"文件保存完毕!\"); printf(\"按任意键继续\"); ch=getchar(); ch=getchar();

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

voidxiugai(struct student message[100]) /*成绩修改*/ {

FILE *fp; inti,k,ch;

fp=fopen(\"information.txt\",\"r\");

for(i=0;ifread(&message[i],sizeof(struct student),1,fp);

charc,a[10]=\"111111\",b[10],num[100]; //设初始密码为111111 printf(\"请输入密码(111111):\\n\"); scanf(\"%s\",&b);

while(strcmp(a,b)!=0) {

printf(\"密码错误,请重新输入:\"); scanf(\"%s\",&b); }

printf(\"请输入要修改成绩的学生的学号:\"); scanf(\"%s\",&num); for(i=0;iif(strcmp(num,message[i].id)==0) //比较学号,相同则修改该学号对应学生的成绩 {

printf(\"请输入该生语文成绩:\"); scanf(\"%f\",&message[i].Chinese); printf(\"请输入该生数学成绩:\"); scanf(\"%f\",&message[i].Math); printf(\"请输入该生英语成绩:\"); scanf(\"%f\",&message[i].English); } }

printf(\"1.继续修改.\\n2.返回主菜单.\\n请选择:\"); c=getchar(); scanf(\"%d\",&k); if(k==1)

xiugai(message);

printf(\"按任意键继续\"); ch=getchar(); ch=getchar();

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

voidtongji(struct student message[100]) /*成绩统计*/ {

int i,j,n1=0,n2=0,n3=0,ch; float a=0,b=0,c=0; FILE *fp;

fp=fopen(\"information.txt\",\"r\"); for(i=0;ifread(&message[i],sizeof(struct student),1,fp); struct student t;

printf(\"统计情况如下:\\n\");

for(i=0;iif(message[i].Chinese{

t=message[i]; //结构体数组元素整体代换,即学生数据整体代换 message[i]=message[j]; message[j]=t; }

printf(\"语文成绩最高的学生信息为:\\n\"); printf(\"学号\姓名\语文\英语\数学\\n\");

printf(\"%s\%s\%3.1f\%3.1f\%3.1f\\\n\",message[0].id,message[0].name,message[0].Chinese,message[0].English,message[0].Math); for(i=0;iif(message[i].Matht=message[i];

message[i]=message[j]; message[j]=t; }

printf(\"数学成绩最高的学生信息为:\\n\"); printf(\"学号\姓名\语文\英语\数学\\n\");

printf(\"%s\%s\%3.1f\%3.1f\%3.1f\\\n\",message[0].id,message[0].name,message[0].Chinese,message[0].English,message[0].Math); printf(\"英语成绩排序如下:\\n\"); for(i=0;iif(message[i].Englisht=message[i];

message[i]=message[j]; message[j]=t; }

printf(\"英语成绩最高的学生信息为:\\n\"); printf(\"学号\姓名\语文\英语\数学\\n\");

printf(\"%s\%s\%3.1f\%3.1f\%3.1f\\\n\",message[0].id,message[0].name,message[0].Chinese,message[0].English,message[0].Math);

for(i=0;ia=a+message[i].Chinese; b=b+message[i].Math; c=c+message[i].English; }

a=a/m;b=b/m;c=c/m;

printf(\"语文平均分为:%3.2f\\n数学平均分为:%3.2f\\n英语平均分为:%3.2f\\n\",a,b,c); for(i=0;iif(message[i].Chinese>a)

n1=n1+1;

if(message[i].Math>b) n2=n2+1;

if(message[i].English>b) n3=n3+1; }

printf(\"超过语文成绩平均分的同学有%d位\\n超过数学成绩平均分的同学有%d位\\n超过英语成绩平均分的同学有%d位\\n\",n1,n2,n3); printf(\"按任意键继续\"); ch=getchar(); ch=getchar();

printf(\"1.成绩录入\2.成绩显示\3.成绩保存\\n4.成绩排序\5.成绩修改\6.成绩统计\\n7.退出系统\\n\"); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务