回复 4楼 吹水佬
就两个调用函数,错误我标注了,麻烦您了
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#define LEN sizeof(struct student)
#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf%-15d%-3d\n"
#define DATA stu[i].num,stu[i].name,stu[i].phone,stu[i].age,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
int flag;//标记是否登陆
void show();
void menu();
void show_one();//显示一个人的
void printf_n(); /*浏览时输出所有学生的信息*/
int load(); /*打开文件,读取里面的数据*/
void save(); /*保存学生信息*/
void face();
/*欢迎页面*/
void login();//登陆
void menu();//菜单
void menu2();//这是用户模式的菜单
void deleter();//删除
void search();//查找
int modify_data(); //修改信息函数
void modify();//修改学生信息
void help();//帮助
void help2();//用户模式帮助
void exit1() ;//退出
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct student
{ int num;//学号
char name[15];//姓名
char phone[15];//电话号码
int age;
//年龄
double elec;//选修课
double expe;//实验课
double requ;//必修课
double sum;//总分
};
struct student stu[50];
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
main()
{
face();
login();
menu();
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void in()/*录入*/
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void show()/*显示*/
{ .......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int load() /*打开文件,读取里面的数据*/
{
.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void save(int n) /*保存学生信息*/
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void face()
/*欢迎页面*/
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void login()//登陆
{
.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void menu()//菜单
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void menu2()//这是用户模式的菜单
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void deleter()//删除
{
.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void search()//查找
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int modify_data(int i) //修改信息函数 ======= 这里显示error C2143: syntax error : missing ';' before 'type'
{int c,w1;
do
{
puts("\n请选择要修改的选项:\n\n1.学号 2.姓名
3.电话号码
4.年龄 5.选修课成绩 6.实验课成绩 7.必修课成绩 8.总分 9.取消并返回");
printf("请选择?: [
]\b\b\b");
scanf("%d",&c);
======这里显示error C2065: 'c' : undeclared identifier
if(c>9||c<1)
{
puts("\n选择错误!请重新选择!");
getchar();
}
}while(c>9||c<1);
do
{
switch(c)
{
case 1: printf("学号:");
scanf("%d",stu[i].num); break;
case 2: printf("姓名:");
scanf("%s",stu[i].name); break;
case 3: printf("电话:");
scanf("%d",stu[i].phone);break;
case 4: printf("年龄:");
scanf("%d",&stu[i].age);break;
case 5: printf("选修课:");
scanf("%lf",stu[i].elec);break;
case 6: printf("实验课:");
scanf("%lf",stu[i].expe);break;
case 7: printf("必修课:");
scanf("%lf",stu[i].requ);break;
case 8: printf("总分:");
scanf("%lf",stu[i].sum);break;
case 9: menu();break;
/*返回主菜单*/
}
puts("\nNow:\n");
show_one(i); /*输出 修改后 的这个学生的信息*/
printf("\n确定?\n\n\t1).是
2).不,重新修改
3).返回不保存 [ ]\b\b");
scanf("%d",&w1);
}while(w1==2);
return(w1); /*修改成功并选择1后返回1*/
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void modify() //修改学生信息
{
struct student s;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
do
{
printf("\n请输入您想要修改的学生的姓名!\nName:");
scanf("%s",s.name);
for(i=0;i<n;i++)
if(strcmp(s.name,stu[i].name)==0) /*与其中一个学生匹配*/
{
k=i;
s=stu[i];
}
if(k==-1) //没有找到输入的学生
{
int o;
printf("\n\n没有这个学生的信息!\n");
printf("What do you want to do?\n\t1.继续
2.返回菜单
[ ]\b\b");
scanf("%d",&o);
if(o==1)
{
system("cls");
modify(); //继续修改
}
else
{
system("cls");
menu();
}
}
}while(k==-1);
system("cls");
show_one(k); //输出这个学生的信息
w1=modify_data(k);
if(w1==1) //判断是否修改成功修改
{
printf("\n\t^_^.修改成功 ^_^.\n\n是否继续?\n\n\t1).是 2).返回\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{
w0=0;
if(w2==0)
stu[k]=s;
}
if((w0!=1)&&(w2==1)) //修改成功保存
save(n);
}while(w0==1);
system("cls");
menu();//不再修改返回主菜单
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void help()//帮助
{
.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void help2()//用户模式帮助
{.......
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void exit1() //退出
{
exit(0);
}