用C++编写学生成绩管理系统

[复制链接]
查看11 | 回复0 | 2007-11-19 19:27:21 | 显示全部楼层 |阅读模式
第一个:#include #include #include #include#define MAX 50 void input(); void sort(); void display(); void insert(); void del(); void average(); int now_no=0; struct student { int no; char name[20]; char sex[4]; float score1; float score2; float score3; float sort; float ave; float sum; }; struct student stu[MAX],*p; main()//主函数 { char as; start: printf("\t\t\t欢迎使用学生成绩管理系统\n\n"); //一下为功能选择模块 do{ printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.退出\n"); printf("\t\t\t\t选择功能选项:"); as=getch(); switch(as) { case '1': system("cls"); input(); break; case '2': system("cls"); display(); break; case '3': system("cls"); sort(); break; case '4': system("cls"); insert(); break; case '5': system("cls"); del(); break; case '6': system("exit"); exit(0); default: system("cls"); goto start; } }while(1); //至此功能选择结束 } void input()//原始数据录入模块 { int i=0; char ch; do { printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1); printf("\n输入学生编号:"); scanf("%d",&stu.no); fflush(stdin); printf("\n输入学员姓名:"); fflush(stdin); gets(stu.name); printf("\n输入学员性别:"); fflush(stdin); gets(stu.sex); printf("\n输入学员成绩:"); fflush(stdin); scanf("%f",&stu.score1); printf("\n输入学员成绩:"); fflush(stdin); scanf("%f",&stu.score2); printf("\n输入学员成绩:"); fflush(stdin); scanf("%f",&stu.score3); printf("\n\n"); i++; now_no=i; printf("%d",now_no); printf("是否继续输入?(Y/N)"); ch=getch(); system("cls"); } while(ch!='n'); system("cls"); } void sort()//排序数据函数 { struct student temp; int i,j; for(i=1;i//预处理头文件把包含输入输出函数 #include //预处理头文件 改变背景色和延迟时间 /*定义一个结构体来存储学员信息*/ struct student { int num; //学号 char name[20]; //姓名 double c; //c成绩 double java; //java成绩 double sql; //sql成绩 double ave; //平均成绩 }; student input();//student input()录入函数原型声明 void output( student stu[],int n);//output()输出函数原型声明 void sort( student stu[],int n);//sort()排序函数原型声明 void insert( student stu[],int n);//insert()插入函数原型声明 void del( student stu[],int n);//del()删除函数原型声明 void Loading();//Loading()函数原型声明 /*主函数*/ void main() { //定义一个结构student 大小为50 student stu[50]; //定义一个ch用来接收输入是否继续 char ch; //定义一个整型变量count为计数器 并赋值为0 int count=0; //定义一个整型变量k用来接收用户选择功能时的输入 int _k; //windows的调用 Loading(); //提示用户输入学员信息 printf("\n请输入学员信息"); //用do-while循环来控制是否继续 do { //把录入函数input赋值给计数器stu[count] stu[count]=input(); //提示用户是否继续输入 printf("\n是否继续输入 (y/n)"); //清空缓存 fflush(stdin); //接受输入并赋值给ch ch=getchar(); //计数器递增 count++; }while(ch=='y'||ch=='Y');//如果ch为y就继续输入学员信息 //提示排序前的学员信息 printf(" \n排序前的学员信息:\n "); //显示排序前的学员信息 output(stu,count); //提示排序后的学员信息 printf(" \n排序后的学员信息:\n"); //调用排序函数 sort(stu,count); //显示排序后的学员信息 output(stu,count); //用do-while来控制插入学员或删除学员并退出 do { //提示选择功能 printf("\n0.退出 1.插入学员 2.删除学员 \n"); printf("请选择功能:"); //接收输入选择的功能 scanf("%d",&_k); //如果k==0就跳出循环 if(_k==0) break; //用switch来控制选择的功能 switch(_k) { case 1:insert(stu,count); //插入功能 //增加一个学员信息 count++; //调用显示函数 output(stu,count); break; case 2:del(stu,count); //删除功能 //减少一个学员信息 count--; //调用显示函数 output(stu,count); break; //不在0~2之间就提示有错 default : printf("\n输入有错,请在0~2之间选择。\n"); } }while(1); printf("\n\n程序结束,欢迎再次使用!\n\n\n"); } student input()//录入函数 { //定义一个变量num student num; //提示输入学号要是0~50之间 printf(" \n学号(0~50):"); //接收输入学号 scanf("%d",&num.num); //如果学号小于0大于50或为字符就执行循环 while(num.num50) { getchar(); //显示你输入有错,请重新输入 printf("你输入有错,请重新输入"); //接受用户的重新输入学号 scanf("%d",&num.num); } //提示输入姓名 printf("姓名:"); //清空缓存 fflush(stdin); //接收用户输入姓名 gets(num.name); //提示输入C语言成绩在0到100之间 printf("C语言成绩(0~100):"); //接收输入C语言成绩 scanf("%lf",&num.c); //如果输入的成绩小于0或大于100或字符就提示输入有错 while((num.c)100) { getchar(); printf("你输入有错,请重新输入\n"); //接收输入C语言成绩 scanf("%lf",&num.c); } //提示输入JAVA语言成绩在0到100之间 printf("JAVA成绩(0~100):"); //接收输入JAVA语言成绩 scanf("%lf",&num.java); //如果输入的成绩小于0或大于100或字符就提示输入有错 while((num.java)100) { getchar(); printf("你输入有错,请重新输入\n"); //接收输入JAVA语言成绩 scanf("%lf",&num.java); } //提示输入SQL语言成绩在0到100之间 printf("SQL成绩(0~100):"); //接收输入SQL语言成绩 scanf("%lf",&num.sql); //如果输入的成绩小于0或大于100或字符就提示输入有错 while((num.sql)100) { getchar(); printf("你输入有错,请重新输入\n"); //接收输入SQL语言成绩 scanf("%lf",&num.sql); } //计算3课成绩的平均值 num.ave=(num.c+num.java+num.sql)/3; //返回平均值 return num; } void output( student stu[],int n)//显示学员信息 { //定义一个整形变量i用于循环 int i; //显示学员学号 姓名 平均成绩 printf("\n学号\t姓名\t平均成绩 \n"); //用循环来实现学员学号 姓名 平均成绩的输出 for(i=0;ii;j--)//为插入学员空一个位置 { stu[j]=stu[j-1]; } //将要插入的数保留在该位置 stu=temp; printf("\n插入新学员后的信息如下:\n"); } void del( student stu[],int n)//删除学员信息 { int i;//定义一个整形变量i用于循环 int _x;//定义一个x用于输入要删除的学号 printf("\n请输入要删除的学号:"); //接收输入数据 scanf("%d",&_x); for(i=0;i<n;i++) { //如果stu.num==x跳出循环 if(_x==stu.num) break; } for(;i<n;i++) { //删除学员 stu=stu[i+1]; printf(" \n删除后学员的信息如下:\n"); } } void Loading() { int M=30;//定义一个常量来接收方块的个数 int i; printf("\t\t\t学 员 成 绩 管 理 系 统\n"); printf("【程序装载中 "); for(i=1;i<=M;i++) { printf("■"); Sleep(150); } printf("】"); printf("【载入完成】\n"); printf("【欢迎使用学生成绩管理系统,本程序启动代码为**原创... 】"); fflush(stdin); Sleep(800); printf("\t\t\t学 员 成 绩 管 理 系 统\n"); }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行