学生证管理系统(C语言课程设计)(2)

2019-09-01 15:37

}while(right==1);

switch(chose) { case 1:add(); break; //添加模块 case 2:modify(); break; //修改模块 case 3:browse(); break; //浏览模块 case 4:quiry(); break; //查询模块 case 5:stastic(); break; //统计模块 case 6:Delete(); break; //删除模块 case 7:exit(0); }

}

5.3 添加模块

首先要判断文件StuInfo.txt是否存在,如果存在就以读写(r+)的方式打开,如果不存在,就以写(w)的方式创建文件StuInfo.txt。输入格式要求:性别为男或女,学号为11位且不能重复,年龄在0-100之间,班级号为6位,程序提供了完善的验证机制,输入错误时将提示重新输入直到正确为止。此外,如果以读写的方式打开,还要判断记录数num

//退出

- 6 -

void add() {

int num; //表示记录数

int i;

int age; //临时变量,用于验证输入的性别是否满足条件 char sno[20]; //临时变量,用于验证输入的学号是否满足条件 char sex[20]; //临时变量,用于验证输入的性别是否满足条件 char cno[20]; //临时变量,用于验证输入的班号是否满足条件 int right;

FILE*fp;

if((fp=fopen(\ //以读写方式打开 {

if((fp=fopen(\ //文件不存在就创建文件 { printf(\文件不存在且创建失败,返回!\\n\

menu();

} printf(\请按照提示输入学生信息:\\n\\n\ printf(\姓名:\

scanf(\

do

{

printf(\性别(男或女):\

scanf(\

if((strcmp(sex,\男\女\ {

printf(\输入错误,请输入男或女!\\n\ right=1; getchar();

}

else right=0; }while(right==1); strcpy(StuInfo[0].Sex,sex); do {

printf(\学号(11位):\ scanf(\

if(strlen(sno)!=11) { printf(\输入错误,学号长度应为11位数!\\n\

right=1;

getchar(); }

else right=0;

- 7 -

}while(right==1);

strcpy(StuInfo[0].Sno,sno); do {

printf(\年龄:\ scanf(\ if(age<=0||age>100)

{

printf(\年龄应在0-100之间,请重新输入年龄!\\n\

right=1; getchar(); }

else right=0; }while(right==1); StuInfo[0].Age=age; do

{

printf(\班号(6位):\ scanf(\ if(strlen(cno)!=6)

{

printf(\输入错误,班号长度应为6位数!\\n\ right=1; getchar(); }

else right=0; }while(right==1);

strcpy(StuInfo[0].CInfo.Cno,cno); printf(\班名:\

scanf(\

fprintf(fp,\Info[0].CInfo.Cno,StuInfo[0].CInfo.Cname);

fclose(fp);

printf(\保存成功!\\n\

printf(\请按enter键返回主菜单!\\n\ getchar(); getchar();

menu();

} //以上的输入是以写的方式输入,下面是以读写的方式输入数据 for(i=0;!feof(fp);i++) {

fscanf(fp,\nfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname); }

- 8 -

num=i; //记录数

if(num==N) {

printf(\保存记录数超出结构体数组数的大小,请先修改N的值!\\n\ printf(\请按enter键返回主菜单!\\n\ getchar();

getchar();

menu(); }

printf(\请按照提示输入学生信息:\\n\\n\ printf(\姓名:\

scanf(\ do {

printf(\性别(男或女):\

scanf(\

if((strcmp(sex,\男\女\ {

printf(\输入错误,请输入男或女!\\n\ right=1;

getchar();

}

else right=0; }while(right==1);

strcpy(StuInfo[num].Sex,sex); do {

printf(\学号(11位):\ scanf(\ if(strlen(sno)!=11) {

printf(\输入错误,学号长度应为11位数!\\n\ right=1;

getchar();

}

else right=0; for(i=0;i

{

if(strcmp(sno,StuInfo[i].Sno)==0) {

printf(\该学号已经存在,请重新输入!\\n\

right=1; getchar();

}

- 9 -

}

}while(right==1);

strcpy(StuInfo[num].Sno,sno); do {

printf(\年龄:\ scanf(\

if(age<=0||age>100) { printf(\年龄应在0-100之间,请重新输入年龄!\\n\

right=1; getchar();

}

else right=0;

}while(right==1);

StuInfo[num].Age=age;

do {

printf(\班号(6位):\ scanf(\ if(strlen(cno)!=6)

{

printf(\输入错误,班号长度应为6位数!\\n\

right=1; getchar();

}

else right=0;

}while(right==1);

strcpy(StuInfo[num].CInfo.Cno,cno); printf(\班名:\

scanf(\ //把该记录写到文件末尾

fprintf(fp,\m].Age,StuInfo[num].CInfo.Cno,StuInfo[num].CInfo.Cname); fclose(fp);

printf(\保存成功!\\n\

printf(\请按enter键返回主菜单!\\n\ getchar(); getchar(); menu(); }

- 10 -


学生证管理系统(C语言课程设计)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:绿地集团常年法律顾问及专项外聘律师管理暂行办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: