学生成绩管理系统(界面版)
    这个是老师的源程序的思路,没用到指针,我改了一下,主要就是界面的美化工作了,呵呵,感觉还可以吧,以下的程序在DEV-C++下编译通过,若要在VC下编译,请把主函数开关的int main改为main
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int count=0; //计算学员的人数
struct student
{
int id;
char name[20];
float cj[3];
float avg;
}s[50]; //定义一个50个元素的结构数组
void input(){ //录入函数
int i,j;
char var;
system("cls"); //系统清屏
printf("\n\t\t\t\t 添加学员\n");
printf("\n--------------------------------------------------------------------------------\n");
for(i = count;i<50;i++){
printf("请输入第%d位学员的信息:\n",i+1);
printf("学号:");
scanf("%d",&s[i].id);
printf("姓名:");
fflush(stdin);
gets(s[i].name);
printf("三门成绩:\n");
for(j=0;j<3;j++)
{
printf("成绩%d:",j+1);
fflush(stdin);
scanf("%f",&s[i].cj[j]);
}
printf("\n");
s[i].avg=(s[i].cj[0] + s[i].cj[1] + s[i].cj[2]) / 3;
count++; //学生人数加1
printf("是否继续输入学员信息(y/n)?");
fflush(stdin);
var = getchar();
if(var == 'n')
break;
}
}
void display() //查看函数
{
int i;
system("cls"); //系统清屏
printf("\n\t\t\t\t 查看学员\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t学号\t姓名\t语文\t数学\t英语\t平均成绩\n");
for(i = 0;i<count;i++)
{
printf("\t\t %d\t %s\t %.1f\t %.1f\t %.1f\t %.1f\n",s[i].id,s[i].name,s[i].cj[0],s[i].cj[1],s[i].cj[2],s[i].avg);
}
printf("\n");
system("pause");
}
void sort() //排序函数
{
int i,j;
struct student temp;
system("cls"); //系统清屏
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(s[j].avg<s[j+1].avg)
{
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
printf("排序完成,请返回主菜单用查看功能查看排序结果.\n");
system("pause");
}
void insert() //插入函数
{
int i,j;
struct student temp;
system("cls"); //系统清屏
printf("\n\t\t\t\t 插入学员\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("请输入插入学员的信息:\n");
printf("学号:");
scanf("%d",&temp.id);
printf("姓名:");
fflush(stdin);
gets(temp.name);
printf("三门成绩:\n");
for(j=0;j<3;j++)
{
printf("成绩%d:",j+1);
fflush(stdin);
scanf("%f",&temp.cj[j]);
}
printf("\n");
temp.avg=(temp.cj[0] + temp.cj[1] + temp.cj[2]) / 3;
for(i=0;i<count;i++){
if(temp.avg>s[i].avg)
break;
}
for(j=count;j>i;j--){
s[j] = s[j-1];
}
s[i] = temp;
count++;
printf("插入完成,请返回主菜单用查看功能查看插入结果.\n");
system("pause");
}
void del() //删除函数
{
system("cls"); //系统清屏
printf("\n\t\t\t\t 删除学员\n");
printf("\n--------------------------------------------------------------------------------\n");
int i,j,no,flag=0;
printf("请输入要删除学生的学号:");
scanf("%d",&no);
for(i=0;i<count;i++){
if(s[i].id == no){
flag = 1;
break;
}
}
if(flag == 1){
for(j=i;j<count-1;j++){
s[j] = s[j+1];
}
count--;
printf("删除完成,请返回主菜单用查看功能查看删除结果.\n");
}else{
printf("没有该学员的信息\n");
}
system("pause");
}
void found() //查找函数
{
system("cls"); //系统清屏
printf("\n\t\t\t\t 查找学员\n");
printf("\n--------------------------------------------------------------------------------\n");
int no;
int i,flag=0;
printf("请输入要查询的学生的学号:");
scanf("%d",&no);
for(i = 0;i<count;i++){
if(no==s[i].id){
flag = 1;
break;
}
}
if(flag == 1){
printf("你要查找的学员信息是:\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t学号\t姓名\t语文\t数学\t英语\t平均成绩\n");
printf("\t\t %d\t %s\t %.1f\t %.1f\t %.1f\t %.1f\n",s[i].id,s[i].name,s[i].cj[0],s[i].cj[1],s[i].cj[2],s[i].avg);
}else{
printf("没有你要找的学员\n");
}
printf("\n");
system("pause");
}
int main()
{
int select;
do{
system("cls"); //系统清屏
printf("\n\t\t\t 学生成绩管理系统\n");
printf("\n--------------------------------------------------------------------------------\n");
printf("\t\t\t 0. 退出程序\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 5. 删除学员\n ");
printf("\t\t\t 6. 查找学员\n ");
printf("\n-------------------------------------------------------------------------------\n\n");
do{
printf("\t\t\t请输入你要执行的功能:");
scanf("%d",&select);
if(select<0 || select>6)
printf("\t\t\t输入错误,请输入0~6的数\n");
}while(select<0 || select>6); //如果选择项不在0~6之间则重输
switch (select)
{
case 0: exit(0);
case 1: input(); break; //录入函数
case 2: display(); break; //查看函数
case 3: sort(); break; //排序函数
case 4: insert(); break; //插入函数
case 5: del(); break; //删除函数
case 6: found(); break; //查找函数
}
}while(1);
}
返回开头      返回上一页

版权所有©牛腩
2007-03-09 ver2.0
QQ:164423073   UC:1170098384
niunan.snid@gmail.com