
这里说不清楚,反正图很简单,就看你怎么设计了
表示开始是一个椭圆形
表示运算处理是一个矩形
分支判断则是菱形
程序结束又是椭圆
再用箭头将它们连接起来,按执行顺序连接
在每个图形旁边标注它的功能
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)