学生成绩管理系统的流程图

学生成绩管理系统的流程图,第1张

这里说不清楚,反正图很简单,就看你怎么设计了

表示开始是一个椭圆形

表示运算处理是一个矩形

分支判断则是菱形

程序结束又是椭圆

再用箭头将它们连接起来,按执行顺序连接

在每个图形旁边标注它的功能

void main()

{

int num = 1, score = 2, pjun;

pjun = num + score;

if (pjun > 0)

{

pjun++;

}

else

{

pjun--;

}

}

它的流程图就该是:

椭圆

|

\|/

矩形

|

\|/

矩形<--pjun<=0-- 菱形--pjun > 0-->矩形

| | |

| \|/ |

|---> 椭圆 <----|

// biaobiaocpp : Defines the entry point for the console application

//

#include "stdafxh"

#include<stdioh>

#include<mathh>

#include <stringh>

#define MaxSize 100

typedef struct stud

{

char name[10];

int num;

float c;

float math;

float english;

float zf;

int pnum;

int pzf;

}Stud;

void ReadFile(Stud stud[],int &n)

{

FILE fp;

long length;

int i;

if((fp=fopen("studdat","rb"))==NULL){

n=0;

return;

}

fseek(fp,0,2);

length=ftell(fp);

rewind(fp);

n=length/sizeof(Stud);

if(n!=0)

n--;

else

     stud[0]pnum=stud[0]pzf=-1;

for(i=0;i<=n;i++)

fread(&stud[i],sizeof(Stud),1,fp);

fclose(fp);

}

void Clearup(Stud stud[],int &n)

{

FILE fp;

if((fp=fopen("studdat","wb"))==NULL){

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

return;

}

stud[0]pnum=stud[0]pzf=-1;

n=0;

fclose(fp);

printf(" ============================================================================\n");

}

void SaveFile(Stud stud[],int &n)

{

int i;

FILE fp;

if((fp=fopen("studdat","wb"))==NULL){

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

return;

}

if(n>1)

 for(i=0;i<=n;i++)

fwrite(&stud[i],sizeof(Stud),1,fp);

fclose(fp);

printf(" ============================================================================\n");

}

void Input(Stud stud[],int &n)

{

int i;

int flag=0;

printf(">>请输入登记学生 姓名 学号 C语言成绩 数学成绩 英语成绩:\n");

n++;

scanf("%s%d%f%f%f",&stud[n]name,&stud[n]num,&stud[n]c,&stud[n]math,&stud[n]english);

stud[n]zf=stud[n]c+stud[n]math+stud[n]english;

for(i=0;i<=n-2;i++)

{

if(stud[i]num==stud[n]num)

{

flag=flag+1;

}

}

if(flag!=0)

printf("学号输入重复,请检查!!\n");

stud[n]pnum=stud[n]pzf=0;

printf(" ============================================================================\n");

}

void OutputFile(Stud stud[],int n)

{

int i;

if(n<1)

{

 printf(">>没任何记录\n");

 return;

}

printf(" -----------------------------------------------------------------\n");

printf("|    姓名    | 学号 | C语言成绩 | 数学成绩 | 英语成绩 |    总分  |\n");

printf(" -----------------------------------------------------------------\n");

for(i=1;i<=n;i++)

{

printf("|%10s  |  %3d |  %62f   |   %62f |   %62f | %62f   |\n",stud[i]name,stud[i]num,stud[i]c,stud[i]math,stud[i]english,stud[i]zf);

printf(" -----------------------------------------------------------------\n");

}

}

void Dispnum(Stud stud[],int n)

{ int i=2,j;

int k=stud[0]pnum;

if(n<1)

{

 printf(">>没有这种记录,不能进行排序\n");

 return;

}

stud[0]pnum=1;stud[1]pnum=-1;

while(i<=n)

{

 j=0;

 while(stud[j]pnum!=-1 && stud[stud[j]pnum]num<stud[i]num)

j=stud[j]pnum;

stud[i]pnum=stud[j]pnum;

    stud[j]pnum=i;

    i++;

}

 printf(" -----------------------------------------------------------------\n");

 printf("|    姓名    | 学号 | C语言成绩 | 数学成绩 | 英语成绩 |    总分  |\n");

 printf(" -----------------------------------------------------------------\n");

while(k!=-1)

{

 printf("|%10s  |  %3d |  %62f   |   %62f |   %62f | %62f   |\n",stud[k]name,stud[k]num,stud[k]c,stud[k]math,stud[k]english,stud[k]zf);

 printf(" -----------------------------------------------------------------\n");

 k=stud[k]pnum;

}

printf(" ============================================================================\n");

}

void Dispzf(Stud stud[],int n)

{ int i=2,j;

int k=stud[0]pzf;

if(n<1)

{

 printf(">>没有记录,不能进行排序\n");

 return;

}

stud[0]pzf=1;stud[1]pzf=-1;

while(i<=n)

{

 j=0;

 while(stud[j]pzf!=-1 && stud[stud[j]pzf]zf<stud[i]zf)

j=stud[j]pzf;

 stud[i]pzf=stud[j]pzf;

 stud[j]pzf=i;

 i++;

}

 printf(" -----------------------------------------------------------------\n");

 printf("|    姓名    | 学号 | C语言成绩 | 数学成绩 | 英语成绩 |    总分  |\n");

 printf(" -----------------------------------------------------------------\n");

while(k!=-1)

{

 printf("|%10s  |  %3d |  %62f   |   %62f |   %62f | %62f   |\n",stud[k]name,stud[k]num,stud[k]c,stud[k]math,stud[k]english,stud[k]zf);

 printf(" -----------------------------------------------------------------\n");

 k=stud[k]pzf;

}

printf(" ============================================================================\n");

}

void xuehao(Stud stud[],int n)

{

int num,i,flag=0;

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

scanf("%d",&num);

for(i=0;i<=n;i++)

{

if(stud[i]num==num)

{

 printf(" -----------------------------------------------------------------\n");

 printf("|    姓名    | 学号 | C语言成绩 | 数学成绩 | 英语成绩 |    总分  |\n");

 printf(" -----------------------------------------------------------------\n");

 printf("|%10s  |  %3d |  %62f   |   %62f |   %62f | %62f   |\n",stud[i]name,stud[i]num,stud[i]c,stud[i]math,stud[i]english,stud[i]zf);

 printf(" -----------------------------------------------------------------\n");

 flag++;

}

}

if(flag==0)printf("查询 *** 作失败,没有你要查询的学生!!!\n");

else printf("查询 *** 作成功!!!\n");

printf(" ============================================================================\n");

}

void xingming(Stud stud[],int n)

{

char name[10];

int i,flag=0;

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

scanf("%s",&name);

for(i=0;i<=n;i++)

{

if(strcmp(stud[i]name,name)==0)

{

printf(" -----------------------------------------------------------------\n");

    printf("|    姓名    | 学号 | C语言成绩 | 数学成绩 | 英语成绩 |    总分  |\n");

        printf(" -----------------------------------------------------------------\n");

    printf("|%10s  |  %3d |  %62f   |   %62f |   %62f | %62f   |\n",stud[i]name,stud[i]num,stud[i]c,stud[i]math,stud[i]english,stud[i]zf);

    printf(" -----------------------------------------------------------------\n");

flag++;

}

}

if(flag==0)printf("查询 *** 作失败,没有你要查询的学生!!!\n");

else printf("查询 *** 作成功!!!\n");

printf(" ============================================================================\n");

}

void Modify(Stud stud[],int n)

{

int NO,j;

int flag=0;

float c,math,english;

printf("请输入你要修改学生的学号:\n");

scanf("%d",&NO);

for(j=0;j<=n;j++)

{

if(stud[j]num==NO)

{

printf("请输入你要修改的学生的 C语言成绩  数学成绩 英语成绩:\n");

scanf("%f%f%f",&c,&math,&english);

stud[j]c =c;stud[j]math=math;stud[j]english=english;

stud[j]zf=stud[j]c+stud[j]math+stud[j]english;

flag++;

}

}

if(flag==0)printf("修改 *** 作失败,该学号不存在!!!\n");

else printf("修改 *** 作成功!!!\n");

printf(" ============================================================================\n");

}

void Delete(Stud stud[],int &n)

{

int NO,i,j;

int flag=0;

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

scanf("%d",&NO);

for(i=0;i<=n;i++)

{

if(stud[i]num==NO)

{

for(j=i;j<n;j++)

stud[j]=stud[j+1];

flag++;

}

}

if(flag==0)printf("删除 *** 作失败,该学号不存在!!!\n");

else {n--;

      printf("删除 *** 作成功!!!\n");

     }

 printf(" ============================================================================\n");

}

void main()

{   double dummy=sin(00);

Stud stud[MaxSize];

int k, n;

  printf("                     欢迎使用学生成绩管理系统!!!\n");

  printf(" ============================================================================\n");

  ReadFile(stud,n);

  do{

 printf("            1:学生登记           2:显示学生信息\n ");

 printf("           3:清空记录           4:删除记录\n");

 printf("            5: 按学号排序输出    6:按总分排序输出\n");

 printf("            7:学号查询           8:姓名查询\n");

 printf("            9:修改               0:储存退出\n");

 printf("请选择相应的功能:");

 scanf("%d",&k);

 if(k>9&&k<0)printf(" *** 作不当,请重新输入:\n");

 switch(k)

 {

  case 1:Input(stud,n);

break;

  case 2:OutputFile(stud,n);

break;

  case 3:Clearup(stud,n);

break;

  case 4:Delete(stud,n);

break;

  case 5:Dispnum(stud,n);

break;

  case 6:Dispzf(stud,n);

break;

  case 7:xuehao(stud,n);

break;

  case 8:xingming(stud,n);

break;

  case 9:Modify(stud,n);

break;

  case 0:SaveFile(stud,n);

break;

 }

 }while(k!=0);

}

效果图:

给你一点思路。

1、成绩单类、班级类、学生类、课程类。

其中成绩单中有其它类对象,班级类中有学生对象,学生类中有课程对象。分别用Vector<> 或者ArrayList存放对象。

2、序列化所有对象保存到文件中。但是这样只能从从程序中存入文件,打开文件则是乱码显示。所以还是用数据库比较好。建立4张表,存放相应的信息,再对其进行SQL *** 作。

3、就是对数据一系列查询、插入、修改和删除 *** 作。建议用Vector<>存放对象 *** 作比较方便。

以上就是关于学生成绩管理系统的流程图全部的内容,包括:学生成绩管理系统的流程图、c语言帮帮忙 学生成绩管理 要用流程图描述实现算法,根据算法进行代码的编写、学生考试成绩分析程序 java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10129567.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存