- 需求分析:
- 设计题目:
高校新生报到系统应满足对新生信息采集的所有功能要求,以及个别需要转专业的新生信息记录
- 系统功能需求分析:
经过对程中设计题目的分析可知,整个程的设计实现大致分为个模块,斯中个模块对应一个函数,他们的功能分别是:录入数据信息函数( inpt ),新生报到函数( xsbd ,查询未报到的学生函数(chaxummot ),转专业函数( zhn ),按学号显示学生信息函数( chaxm studentnuber )1、录入数据信息函数:主要实现程最初运行时新生数据信息的录入2、新生报道道函数:报道新生录入新生数据信息3、查询未报到的学生函数:在文件中读学生信息,把没有报到的学生输出.4、学生转专业函数:对报道削的学生信息数据进行倏改,输入学学号和学生的新专业5、按学号显示学生信息函数:"实现的是按学号显示学生记录信息。除上面介绍图的的功能之外程节还有退出能。可以在程序的一次运行当中俯环执行所有的能并根需要终止程字的执行。
二、概要设计:
系统总体设计框架
- 函数流程图
(1)主函数流程图
录入函数流程图
查询学生信息函数
- 详细设计:
主要阐述功能模块的算法设计思路
本程序主要由五个自定义函数和一个主函数组成,其中主函数以薬单的形式调用其他函数来实现要求的所有功能。在这些函数当中,录入数据信息函数,新生报到函数,查询未报到的学生函数,转专业函数,按学号显示学生信息函数是程序中较为核心的部分
- 调试分析过程描述:包括测试数据,测试分析结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)
在写代码的时候总是敲错
- 测试结果:列出所有功能的运行界面,并作文字说明
- 输入学生信息截图
学生转专业截图
程序代码
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
struct student
{
char xuehao[50];
char xingming[50];
char shengfen[50];
char zhuanye[50];
int fenshu;
int baodao;
}
void input
{
int i,test=1;
struct student ss;
FILE*fp
if(fp=fopen("d:\\student.txt","w+“))==NULL)
{
printf("\n 文件不能打开")
retmrn;
}
while (test==1)
{
printf ("\n 请输入学生学号:");
scanf ("%s",ss. xuehao);
fprintf (fp,"%s\t", ss. xuehao );
printf("\n请输入学生姓名:");
scanf ("%s",ss.xingming);
fprintf(fp,"%s\t",ss.xingming)
printf("\n请输入学生专业:");
scanf ("%s",ss.zhuanye);
fprintf(fp,"%s\t",ss.zhuanye);
printf("\n请输入学生高考分数:");
scanf("%d",&ss.fenshu);
fprintf (fp,"%d\t",ss.fenshu);
ss.baodao =1;
fprintf (fp,"%d\n",ss.baodao);
printf ("\n继续录入学生信息请输入1,退出请输入其它数字");
scanf ("%d",&test);
}
fclose(fp);
}
void xsbd()
FILE*fp;
int i,sum,baodno;
char number[10];
struct stdent ss[20];
if((fp=fopen("d:\\student.txt","t"))==NULL)
}
printf("不能打开文件");
return;
}
printfr("\n请输入报到学生学号:");
scanf("%s",number);
i=0;
baodao=0;
while(!feof(fp))
{
fscanf(fp,"%s\t%s\t%s\t%s\t%d\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i]she
ngfen,ss[i].zhuanye,&ss[i].fenshu,&ss[i].baodao);
if(strcmp(ss[i].xuehao,number)==0)
{baodao++;
ss[i].baodao=2;
}
i++;
}
sum=i;
fclose(fp);
fp=fopen("d:\\student.txt","w+");
/*转专业*/
void zhuan()
{
FILE*fp
int i,sum,baodao;
char number[10];
struct student ss[20];
printf("\n 不能打开文件");
return;
}
i=0;
baodao=0;
while(!feof(fp))
{
fsanf(fp,"%s\t%s\t%s\t%s\t%d\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i]she
ngfen,ss[i].zhuanye,&ss[i].fenshu,&ss[i].baodao);
if(strcmp(ss[i].xuehao,number)==0)
{
printf("\n请输入新专业:");
scanf("%s",ss[i].zhuanye);
baodao++;
}
i++;
}
sum=i
if(baodao==0)
{
printf("\n 文件中没有这个学生");
}
fclose(fp);
fp=fopen("d:\\student."txt"."w+");
for(i=0,i<sum;i++)
{
fprintf(fp,"%s\t%s\t%s\t%s\t%d\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i]she
ngfen,ss[i].zhuanye,&ss[i].fenshu,&ss[i].baodao);
}
fclose(fp);
}
/*按学号显示学生信息*/
void chaxun_student_number()
{
FILE*fp
int i,sum,baodao;
char number[10];
struct student ss[20];
if((fp=fopen("d:\\student.txt","r+"))==NULL)
{
printf("\n 不能打开文件")'
return;
}
i=0;
while(!feof(fp))
{
fsanf(fp,"%s\t%s\t%s\t%s\t%d\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i]she
ngfen,ss[i].zhuanye,&ss[i].fenshu,&ss[i].baodao);
printf("%s\t%s\t%s\t%s\t%d\t%d\n",ss[i].xuehao,ss[i].xingming,ss[i]shen
gfen,ss[i].zhuanye,&ss[i].fenshu,&ss[i].baodao);
i++;
}
fclose(fp);
}
void main()
{int i;
while(1)
{
printf("\n********************************高校新生报到系统
********************************);
printf("\n1-------数据信息录入");
printf("\n2-------新生报到");
printf("\n3-------查询未报到的学生");
printf("\n4-------学生转专业");
printf("\n5------按学号显示学生信息");
printf("\n6-------退出系统");
printf("\n 输入选择:");
scanf("%d",&i);
/*多分枝选择结构*/
switch(i)
{
case 1:input();break
case 2:xsbd(); break;
case 3:chaxun_not();break;
case 4:zhuan();break;
case 5:chaxun_student_number();break;
case 6:exit(0);break;
default:printf("\n输入错误,请从新输入 ");
}
}
}