当前位置: 代码迷 >> C语言 >> 一个简单的学生管理系统!我写了,但是不知道那里有错~
  详细解决方案

一个简单的学生管理系统!我写了,但是不知道那里有错~

热度:187   发布时间:2006-07-03 23:03:11.0
一个简单的学生管理系统!我写了,但是不知道那里有错~

设计内容:
以非图形界面的菜单式的形式对数组中的学生名字进行初始化、添加、删除和查询等基本功能。为了方便些,设输入的学生名字不能重名。

设计要求:
当运行程序后,显示主菜单如下:
1. 初始化数组。(注:把10个学生名字存到数组name中,同时把学生名写到文件stu.txt中)
2. 添加一个学生名字到数组name中。(注:stu.txt中的内容也相应的发生改变)
3. 从数组name中删除一个学生名字。(注:stu.txt中的内容也相应的发生改变)
4. 查找学生名是否存在。(注:如果存在就打印“found!”,否则打印“no found!”)
5. 退出。

#include "stdio.h"
#include "string.h"
menu()
{
int c;
printf("1.init\n");
printf("2.add\n");
printf("3.delect\n");
printf("4.find\n");
printf("5.quit\n\n");
do{
printf("please input a select 1-5:\n\n");
scanf("%d",&c);
}while(c<0||c>5);
return c;
}
main()
{ char a[100][100];
for(;;)
{
switch(menu())
{ case 1: init(a);break;
case 2: add(a);break;
case 3: delect(a);break;
case 4: find(a); break;
case 5:exit(0);
}
}
}
int init(char array[][100])
{
int i;
FILE *fp=fopen("f:\\tc20\\stu.txt","w+");
printf("input 10 name:\n");
for(i=0;i<10;i++)
scanf("%s",array[i]);
strcpy(array[i],"0");
for(i=0;;i++)
{
if(strcmp(array[i],"0")==0)break;
fprintf(fp,"%s ",array[i]);
}
fclose(fp);
}
int add(char array[][100])
{
int i;
FILE *fp=fopen("f:\\tc20\\stu.txt","r+");
printf("intput 0-9:\n");
scanf("%d",&i);
put(array[i]);
scanf("%s",array[i]);
fprintf(fp,"%s ",array[i]);
fclose(fp);

}
int delect(char array[][100])
{
int i;
FILE *fp=fopen("f:\\tc20\\stu.txt","r+");
printf("intput 0-9:\n");
scanf("%d",&i);
put(array[i]);
strcpy(array[i],"0");
fprintf(fp,"%s ",array[i]);
fclose(fp);

}
int find(char array[][100])
{
int i;
char name[20];
FILE *fp=fopen("f:\\tc20\\stu.txt","r");
printf("intput name:\n");
scanf("%s",name);
if(name[20]==array[0]&&name[20]==array[1])
{printf("found\n");break;
else
printf("no found\n");break;}
fprintf(fp,"%s ",array[i]);
fclose(fp);
}

有些地方写错不~~高手能帮看看吗???帮我修改一下!今天借了同学的号才能上网的!!希望高手帮看看!

搜索更多相关的解决方案: 系统  学生  管理  

----------------解决方案--------------------------------------------------------
晕哦!!没人来看看吗?????
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
帮看看啊~~高手进来看看!我运行的时候他说Undefined symbol _put in module i:\rider.c
我看了下应该是什么输出的问题吧!!但是找不到
----------------解决方案--------------------------------------------------------

//略改了一下,不对之处还请指出,

#include "stdio.h"
#include "string.h"

int init(char array[][100]);
int add(char array[][100]);
int delect(char array[][100]);
int find(char array[][100]);

menu()
{
int c;
printf("1.init\n");
printf("2.add\n");
printf("3.delect\n");
printf("4.find\n");
printf("5.quit\n\n");
do{
printf("please input a select 1-5:\n\n");
scanf("%d",&c);
}while(c<0||c>5);
return c;
}

main()
{
char a[100][100];
for(;;)
{
switch(menu())
{ case 1: init(a);break;
case 2: add(a);break;
case 3: delect(a);break;
case 4: find(a); break;
case 5: exit(0);
}
}
}

int init(char array[][100])
{
int i;
FILE *fp=fopen("stu.txt","w+");
printf("input 10 name:\n");
for(i=0;i<10;i++)
scanf("%s",array[i]);
strcpy(array[i],"0");
for(i=0;;i++)
{
if(strcmp(array[i],"0")==0)break;
fprintf(fp,"%s ",array[i]);
}
fclose(fp);
}

int add(char array[][100])
{
int i;
FILE *fp=fopen("stu.txt","r+");

printf("intput 0-9:\n");
scanf("%d",&i);

puts(array[i]);
scanf("%s",array[i]);
fprintf(fp,"%s ",array[i]);
fclose(fp);

}
int delect(char array[][100])
{
int i;
FILE *fp=fopen("f:stu.txt","r+");
printf("intput 0-9:\n");
scanf("%d",&i);
puts(array[i]);
strcpy(array[i],"0");
fprintf(fp,"%s ",array[i]);
fclose(fp);
}

int find(char array[][100])
{
int i;
char name[20];

FILE *fp=fopen("stu.txt","r");
printf("intput name:\n");
scanf("%s",name);


//以下查找还是有条件问题,是字符串的比较
/*if(strcmp(name[20],array[0]) && strcmp(name[20],array[1]))
{
printf("found\n");
break;
}
else
{
printf("no found\n");
break;
}
fprintf(fp,"%s ",array[i]);
fclose(fp); */
}


[此贴子已经被作者于2006-7-9 21:07:57编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案