c语言流程图各个框的作用,请高手帮忙介绍一下这个程序?其中各个功能模块的流程图怎么画?非常感谢!...

已结贴√

问题点数:20 回复次数:2

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

请高手帮忙介绍一下这个程序?其中各个功能模块的流程图怎么画?非常感谢!

#include

#include

#include

int put(int op);

void search();

void add();

void delet();

void chang();

void sort();

void print1();

struct student{

int stuid;

char name[6];

int score;

}stu[30];

main(){

FILE *fp;

int op,n,i;

do{

op=put(op);

switch(op){

case 0:

printf("it is ok!");

exit(0);

break;

case 1:

printf("创建文件读取信息\n");

if((fp=fopen("d:\\test.txt", "w"))==NULL){

printf("can no open fill ");

exit(1);

}

printf("创建成功!\n");

printf("please input number of student:");

scanf("%d",&n);

fwrite(&n,sizeof(int),1,fp);

printf("学号  姓名  成绩\n");

for(i=0;i

scanf("%d %s %d",&stu[i].stuid,stu[i].name,&stu[i].score);

}

fwrite(stu,sizeof(struct student), n, fp); /*一次写入n个数据项*/

fclose(fp);

printf("存储成功!\n");

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

printf("---------信息的输出------\n");

if((fp=fopen("d:\\test.txt", "r"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

printf("学号  姓名  成绩\n");

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

printf("%d %s %d",stu[i].stuid,stu[i].name,stu[i].score);

printf("\n");

}

fclose(fp);

break;

case 2: search();break;

case 3: add();break;

case 4: delet();break;

case 5: chang();break;

case 6:sort();break;

case 7:print1();break;

}

}while(op!=0);

}

void search(){

int n,i,loc=0;

FILE *fp;

if((fp=fopen("d:\\test.txt", "r"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

for(i=0; i

{

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

}

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

scanf("%d",&n);

for(i=0;i

if(n==stu[i].stuid){

loc=1;

break;

}

}

if(loc!=0){

printf("已经查到信息!\n");

printf("学号  姓名  成绩\n");

printf("%d %s %d",stu[i].stuid,stu[i].name,stu[i].score);

printf("\n");

}

else

printf("没有要找的信息!\n");

}

void add(){

int n,i;

FILE *fp;

if((fp=fopen("d:\\test.txt", "a+"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

printf("添加信息\n");

printf("please input number of student:");

scanf("%d",&n);

//fwrite(&n,sizeof(int),1,fp);

printf("学号  姓名  成绩\n");

for(i=0; i

scanf("%d %s %d",&stu[i].stuid,stu[i].name,&stu[i].score);

}

fwrite( stu, sizeof(struct student), n, fp);/*一次写入n个数据项*/

fflush(fp);

printf("存储成功!\n");

for(i=0;i

printf("学号  姓名  成绩\n");

printf("%d %s %d\n",stu[i].stuid,stu[i].name,stu[i].score);

}

fclose(fp);

}

void delet(){

int n,i;

char c;

int flag=0;

struct student *pt;

FILE *fp;

if((fp=fopen("d:\\test.txt", "r+"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

}

pt=stu;

printf("输入删除信息的学号:");

scanf("%d",&n);

for(i=0;i

if(n==stu[i].stuid){

flag=1;

break;

}

}

if(flag!=0){

printf("学号  姓名  成绩\n");

printf("%d %s %d",stu[i].stuid,stu[i].name,stu[i].score);

printf("\n");

printf("查到信息了!你真的想删除?y/n\n");

scanf(" %c",&c);

if(c=='Y'||c=='y'){

printf("学号 姓名 成绩\n");

printf("      ",pt->stuid,pt->name,pt->score);

fwrite( stu, sizeof(struct student), n, fp);

fclose(fp);

fflush(fp);

}

else

printf("没查到信息!\n");

printf("存储成功!\n");

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

printf("---------信息的输出------\n");

if((fp=fopen("d:\\test.txt", "r"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n-1);

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

printf("学号  姓名  成绩\n");

printf("%d %s %d",stu[i].stuid,stu[i].name,stu[i].score);

printf("\n");

}

fclose(fp);;

}

}

void chang(){

int i,n,flag=0;

FILE *fp;

if((fp=fopen("d:\\test.txt", "r+"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

}

printf("修改信息!\n");

printf("输入修改信息的学号:");

scanf("%d",&n);

for(i=0;i

if(n==stu[i].stuid){

flag=1;

break;

}

}

if(flag!=0){

printf("查找到了信息!\n");

printf("%d %s %d\n",stu[i].stuid,stu[i].name,stu[i].score);

printf("输入新数据:\n");

printf("学号  姓名  成绩\n");

scanf("%d %s %d",&stu[i].stuid,stu[i].name,&stu[i].score);

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

printf("%d %s %d\n",stu[i].stuid,stu[i].name,stu[i].score);

fwrite(&stu[i],sizeof(struct student), 1, fp);

}

else

printf("没有查到信息!\n");

fclose(fp);

}

void sort(){

int i,j,n,s,t;

char temp[7];

FILE *fp;

if((fp=fopen("d:\\test.txt", "r"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!");

exit(1);

}

}

for(i=0;i

for(j=n-1;j>i;j--){

s=stu[j-1].score;

stu[j-1].score=stu[j].score;

stu[j].score=s;

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name);

strcpy(stu[j].name,temp);

t=stu[j-1].stuid;

stu[j-1].stuid=stu[j].stuid;

stu[j].stuid=t;

}

}

printf("排序成功!\n");

printf("----输出排序结果-----\n");

for(i=0; i

printf("学号  姓名  成绩\n");

printf("%d %s %d",stu[i].stuid,stu[i].name,stu[i].score);

printf("\n");

}

fclose(fp);

}

void print1(){

int i,n;

float sum=0;

float averg=0;

FILE *fp;

if((fp=fopen("d:\\test.txt", "r+"))==NULL){

printf("can no open fill ");

exit(1);

}

rewind(fp);

fread(&n,sizeof(int),1,fp);

printf("n=%d\n",n);

for(i=0; i

if(fread(&stu[i], sizeof(struct student), 1, fp) != 1 ){

printf("file read error!\n");

exit(1);

}

}

for(i=0;i

sum=sum+stu[i].score;

averg=sum/n;

}

printf("sum=%4.2f\naverg=%4.2f\n",sum,averg);

fclose(fp);

}

int put(int op){

printf("-------学生成绩管理系统----------\n");

printf("------0.退出系统---------------\n");

printf("------1.从文件中读取学生信息-------\n");

printf("------2.信息的寻找---------\n");

printf("------3.信息的添加-------\n");

printf("------4.信息的删除-------\n");

printf("------5.信息的修改--------\n");

printf("------6.信息的排序-------\n");

printf("------7.成绩综合和平均分----\n");

printf("请输入进行操作的选项0--7:\n");

scanf("%d",&op);

return op;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种强大的系统级编程语言,它的功能模块流程图的设计可以帮助开发者组织和理解程序结构。以下是一些主要的功能模块和创建流程图的基本步骤: 1. **预处理**: 包括宏定义、条件编译(#if/#ifdef/#ifndef)等,这些用于设置编译选项或引入头文件。 2. **函数定义**: C语言以函数为基本单位组织代码,包括主函数(main())、库函数和自定义函数。流程图中会看到输入/输出、调用关系等。 3. **数据类型**: 如整型、浮点型、字符型等,它们定义了变量的存储空间和操作方式。 4. **控制结构**: 基本的流程控制有顺序、分支(if-else、switch)、循环(for、while、do-while)。 5. **指针**: C语言支持指针,可以用来间接访问内存地址,流程图中会体现指针的使用及其作用。 6. **数组和结构体**: 可以组织数据并操作,流程图可能会展示数据的存储和传递过程。 7. **输入/输出**: C标准库提供了一系列函数处理标准输入输出,如printf(), scanf()等。 创建流程图的步骤: 1. 确定程序的主要功能和执行流程。 2. 使用流程图符号(如矩形表示函数,箭头表示控制流)出每个模块或函数。 3. 添加注释,解释关键步骤和决策点。 4. 显示数据流动,包括输入参数、局部变量、全局变量和返回值。 5. 根据控制结构调整箭头方向,展示条件分支和循环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值