C语言课程设计 学生成绩管理系统

原问题:C语言课程设计 学生成绩管理系统
分类:编程开发 > 最后更新时间:【2017-07-12 09:13:08】
问题补充:

1、用C语言实现系统;

2、对学生信息(包括学号、姓名、语文、数学、英语、平均分、总分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出。

3、要求设计的管理系统能够完成以下功能:

(1) 每一条记录包括一个学生的学号、姓名、3门课成绩、平均分、总分

(2) 学生信息录入功能:完成学生记录的添加。

(3) 学生信息显示浏览功能:完成全部学生记录的显示。

(4) 查询功能:完成按姓名查找学生记录,并显示。

(5) 成绩信息的删除:按学号进行删除某学生的成绩.

(6) 排序功能:按学生平均成绩进行排序。

(7) 统计功能:能进行成绩统计。 、

(8) 应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

急急急 vc++6.0可运行

注意:是C程序,不是C++

补充:功能要全,符合题意

最佳答案

#include "stdio.h"

#include "conio.h"

#define M 100

#define N 10

#define NU 20

#include<stdio.h>

#include<string.h>

typedef struct stu

{ int xuehao;

char name[N];

char sex[N];

int eng,math,ds;

char jianjie[NU];

}stu;

typedef struct student

{stu data[M];

int len;

}student;

/*1信息输入*/

student createdatabase( )

{ student L;

int i;

printf("请输入要创建的学生总数\n");

scanf("%d",&L.len);

for(i=1;i<=L.len;i++)

{ printf("第 %d 个学生的基本信息\n",i);

printf("请输入学号\n");

scanf("%d",&L.data[i-1].xuehao);

printf("请输入姓名\n");

scanf("%s",L.data[i-1].name);

printf("请输入性别\n");

scanf("%s",L.data[i-1].sex);

printf("请输入英语成绩\n");

scanf("%d",&L.data[i-1].eng);

printf("请输入数学成绩\n");

scanf("%d",&L.data[i-1].math);

printf("请输入数据结构成绩\n");

scanf("%d",&L.data[i-1].ds);

printf("请输入注释\n");

scanf("%s",L.data[i-1].jianjie);

}

return L;

}

/*2信息输出*/

void out(student L)

{int i;

printf(" 学号 姓名 性别 英语 数学 数据结构 注释 \n");

for(i=1;i<=L.len;i++)

{printf(" %d\t ",L.data[i-1].xuehao);

printf("%s\t ",L.data[i-1].name);

printf("%s\t",L.data[i-1].sex);

printf("%d\t",L.data[i-1].eng);

printf("%d\t",L.data[i-1].math);

printf("%d\t ",L.data[i-1].ds);

printf("%s \n",L.data[i-1].jianjie);

}

}

/*3按照姓名查找学生*/

void search_name(student L)

{

int j=1;

char n[N];

printf("输入要查询的姓名:\n");

scanf("%s",n);

while(strcmp(L.data[j-1].name,n)&&j<=L.len)

j++;

if(strcmp(L.data[j-1].name,n)==0)

{

printf("%d ",L.data[j-1].xuehao);

printf("%s ",L.data[j-1].name);

printf("%s ",L.data[j-1].sex);

printf("%d ",L.data[j-1].eng);

printf("%d ",L.data[j-1].math);

printf("%d ",L.data[j-1].ds);

printf("%s \n",L.data[j-1].jianjie);

}

else

printf("没有此学生!");

}

/*4按照学号查找学生*/

void search_no(student L)

{

int j=1;

int n;

printf("输入要查询的学号:\n");

scanf("%d",&n);

while(L.data[j-1].xuehao!=n&&j<=L.len)

j++;

if(L.data[j-1].xuehao==n)

{

printf("%d ",L.data[j-1].xuehao);

printf("%s ",L.data[j-1].name);

printf("%s ",L.data[j-1].sex);

printf("%d ",L.data[j-1].eng);

printf("%d ",L.data[j-1].math);

printf("%d ",L.data[j-1].ds);

printf("%s \n",L.data[j-1].jianjie);

}

else

printf("没有此学生!");

}

void search(student L)

{

int c;

printf("\n1:查询学号 ");

printf("2:查询姓名 ");

printf("3:退出\n");

printf("\n选择:");

scanf("\n%d",&c);

switch(c)

{

case 1:search_no(L);break;

case 2:search_name(L);break;

case 3:break;

default:printf("输入有错!\n");

}

}

/*5按照学号更新学生信息*/

student update_no(student L)

{

int i=1;

int n;

printf("输入要更新的学生的学号:\n");

scanf("%d",&n);

while(L.data[i-1].xuehao!=n&&i<=L.len)

i++;

if(L.data[i-1].xuehao==n)

{printf("请输入要修改的学生的基本信息\n");

printf("请输入英语成绩\n");

scanf("%d",&L.data[i-1].eng);

printf("请输入数学成绩\n");

scanf("%d",&L.data[i-1].math);

printf("请输入数据结构成绩\n");

scanf("%d",&L.data[i-1].ds);

printf("请输入注释\n");

scanf("%s",L.data[i-1].jianjie);

}

return L;

}

/*6按照姓名更新学生信息*/

student update_name(student L)

{

int i=1;

char n[N];

printf("输入要更新的姓名:\n");

scanf("%s",n);

while(strcmp(L.data[i-1].name,n)&&i<=L.len)

i++;

if(strcmp(L.data[i-1].name,n)==0)

{ printf("请输入要修改的学生的基本信息\n");

printf("请输入英语成绩\n");

scanf("%d",&L.data[i-1].eng);

printf("请输入数学成绩\n");

scanf("%d",&L.data[i-1].math);

printf("请输入数据结构成绩\n");

scanf("%d",&L.data[i-1].ds);

printf("请输入注释\n");

scanf("%s",L.data[i-1].jianjie);

}

return L;

}

student update(student L)

{

int c;

printf("\n1:按照学号查找并更新学生成绩 ");

printf("2:按照姓名查找并更新学生成绩 ");

printf("3:退出\n");

printf("\n选择:");

scanf("\n%d",&c);

switch(c)

{

case 1:L=update_no(L);break;

case 2:L=update_name(L);break;

case 3:break;

default:printf("输入有错!\n");

}

return L;

}

/*7学号是否存,寻找插入位置 */

int isnu(student L,int n)

{ int i=1;

while(L.data[i-1].xuehao!=n&&i<=L.len)

i++;

if(i>L.len)

return L.len;

else

return -1;

}

/*8插入一个新学生的信息*/

student insert(student L)

{ int n,x;

printf("请输入该学生的学号:\n");

scanf("%d",&n);

x=isnu(L,n);

if(x>0)

{ L.data[x].xuehao=n;

printf("请输入学生的基本信息\n");

printf("请输入姓名\n");

scanf("%s",L.data[x].name);

printf("请输入性别\n");

scanf("%s",L.data[x].sex);

printf("请输入英语成绩\n");

scanf("%d",&L.data[x].eng);

printf("请输入数学成绩\n");

scanf("%d",&L.data[x].math);

printf("请输入数据结构成绩\n");

scanf("%d",&L.data[x].ds);

printf("请输入注释\n");

scanf("%s",L.data[x].jianjie);

L.len++;}

else

printf("请重新输入该学生的学号:\n");

return L;

}

/*9查找要删畴的学生的学号*/

int isnuo(student L,int n)

{ int i=1;

while(L.data[i-1].xuehao!=n&&i<=L.len)

i++;

if(i>L.len)

return -1;

else

return i;

}

/*9删畴一个学生的信息*/

student delete1(student L)

{ int n,x,j;

printf("请输入要删除该学生的学号:\n");

scanf("%d",&n);

x=isnuo(L,n);

if(x>0)

{ for(j=x+1;j<=L.len;j++)

{ L.data[j-2].xuehao=L.data[j-1].xuehao;

strcpy(L.data[j-2].name,L.data[j-1].name);

strcpy(L.data[j-2].sex,L.data[j-1].sex);

L.data[j-2].eng=L.data[j-1].eng;

L.data[j-2].math=L.data[j-1].math;

L.data[j-2].ds=L.data[j-1].ds;

strcpy(L.data[j-2].jianjie,L.data[j-1].jianjie);

}

L.len--;}

return L;

}

/*10将学生按照科目进行排序*/

student sort1(student L)

{ int j; stu x; int i;

for(j=2;j<=L.len;j++)

{ x.xuehao=L.data[j-1].xuehao;

strcpy(x.name,L.data[j-1].name);

strcpy(x.sex,L.data[j-1].sex);

x.eng=L.data[j-1].eng;

x.math=L.data[j-1].math;

x.ds=L.data[j-1].ds;

strcpy(x.jianjie,L.data[j-1].jianjie);

i=j-1;

while((i>=1)&&(L.data[i-1].eng>=x.eng))

{L.data[i].xuehao=L.data[i-1].xuehao;

strcpy(L.data[i].name,L.data[i-1].name);

strcpy(L.data[i].sex,L.data[i-1].sex);

L.data[i].eng=L.data[i-1].eng;

L.data[i].math=L.data[i-1].math;

L.data[i].ds=L.data[i-1].ds;

strcpy(L.data[i].jianjie,L.data[i-1].jianjie);

i--;

}

L.data[i].xuehao=x.xuehao;

strcpy(L.data[i].name,x.name);

strcpy(L.data[i].sex,x.sex);

L.data[i].eng=x.eng;

L.data[i].math=x.math;

L.data[i].ds=x.ds;

strcpy(L.data[i].jianjie,x.jianjie);

}

return L;

}

student sort2(student L )

{ int j; stu x; int i;

for(j=2;j<=L.len;j++)

{ x.xuehao=L.data[j-1].xuehao;

strcpy(x.name,L.data[j-1].name);

strcpy(x.sex,L.data[j-1].sex);

x.eng=L.data[j-1].eng;

x.math=L.data[j-1].math;

x.ds=L.data[j-1].ds;

strcpy(x.jianjie,L.data[j-1].jianjie);

i=j-1;

while((i>=1)&&(L.data[i-1].math>=x.math))

{L.data[i].xuehao=L.data[i-1].xuehao;

strcpy(L.data[i].name,L.data[i-1].name);

strcpy(L.data[i].sex,L.data[i-1].sex);

L.data[i].eng=L.data[i-1].eng;

L.data[i].math=L.data[i-1].math;

L.data[i].ds=L.data[i-1].ds;

strcpy(L.data[i].jianjie,L.data[i-1].jianjie);

i--;

}

L.data[i].xuehao=x.xuehao;

strcpy(L.data[i].name,x.name);

strcpy(L.data[i].sex,x.sex);

L.data[i].eng=x.eng;

L.data[i].math=x.math;

L.data[i].ds=x.ds;

strcpy(L.data[i].jianjie,x.jianjie);

}

return L;

}

student sort3(student L)

{ int j; stu x; int i;

for(j=2;j<=L.len;j++)

{ x.xuehao=L.data[j-1].xuehao;

strcpy(x.name,L.data[j-1].name);

strcpy(x.sex,L.data[j-1].sex);

x.eng=L.data[j-1].eng;

x.math=L.data[j-1].math;

x.ds=L.data[j-1].ds;

strcpy(x.jianjie,L.data[j-1].jianjie);

i=j-1;

while((i>=1)&&(L.data[i-1].ds>=x.ds))

{

L.data[i].xuehao=L.data[i-1].xuehao;

strcpy(L.data[i].name,L.data[i-1].name);

strcpy(L.data[i].sex,L.data[i-1].sex);

L.data[i].eng=L.data[i-1].eng;

L.data[i].math=L.data[i-1].math;

L.data[i].ds=L.data[i-1].ds;

strcpy(L.data[i].jianjie,L.data[i-1].jianjie);

i--;

}

L.data[i].xuehao=x.xuehao;

strcpy(L.data[i].name,x.name);

strcpy(L.data[i].sex,x.sex);

L.data[i].eng=x.eng;

L.data[i].math=x.math;

L.data[i].ds=x.ds;

strcpy(L.data[i].jianjie,x.jianjie);

}

return L;

}

/*11选择科目排序*/

choice(student L)

{ int n; student L1;

printf("请输入要选择的科目序号:\n");

printf("1. 英语\t 2. 数学 \t 3.数据结构 \t 4.退出\n");

scanf("\n%d",&n);

switch(n)

{ case 1:L1=sort1(L);out(L1);break;

case 2:L1=sort2(L);out(L1);break;

case 3:L1=sort3(L);out(L1);break;

case 4:break;

default:printf("输入有错!\n");

}

}

void main()

{ student L,L1,L2,L3; int n;

L=createdatabase( );

out( L);

search(L);

choice(L);

L1=delete1(L);

out(L1);

L2=insert(L);

out(L2);

L3=update(L);

out( L3);

getch();

}


追问:
这个程序并不符合题意 追答:
把数据结构改为语文即可,修改量不大,你自己修改吧
追问:
平均分,排序,统计功能都没有
  • 追答:
    没看完程序吧,怎说没有排序?至于平均分在结构里增加一个域即可。 /*10将学生按照科目进行排序*//*11选择科目排序*/"1. 英语\t 2. 数学 \t 3.数据结构
    最佳答案由网友  宛丘山人  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    10

    分享到:

    其他回答

    暂无其它回答!

      推荐