急求设计一个学生成绩管理系统 c语言 急!!!!
要求设计一个学生成绩管理系统,按照功能进行划分模块,并给出相应程序源代码。要求:1.能建立新数据文件,存放学生档案信息及考试成绩;2.能追加新纪录;3.能修改已有记录;4...
要求设计一个学生成绩管理系统,按照功能进行划分模块,并给出相应程序源代码。
要求:1.能建立新数据文件,存放学生档案信息及考试成绩;
2.能追加新纪录;
3.能修改已有记录;
4.能删除指定记录;
5.能查询部分记录;
6.能排序记录;
7.能用菜单方法操作。 展开
要求:1.能建立新数据文件,存放学生档案信息及考试成绩;
2.能追加新纪录;
3.能修改已有记录;
4.能删除指定记录;
5.能查询部分记录;
6.能排序记录;
7.能用菜单方法操作。 展开
2个回答
展开全部
这个是最纯最纯的C了,正好我有,希望能给分,谢谢,通过编译
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student
{
char name[10];
int number;
int score;
student* next;
}stu;
stu* create(char f[20])
{
stu* head=NULL;
stu* tail=NULL;
stu* pnewelement=NULL;
char t_name[10];
int t_number,t_score;
char instruction[5];
FILE* fp0=NULL;
head=(stu*)malloc(sizeof(stu));
if(head==NULL)
{
printf("\n申请内存失败,sorry");
return NULL;
}
head->next=NULL;
tail=head;
while(1)
{
pnewelement=(stu*)malloc(sizeof(stu));
if(pnewelement==NULL)
{
printf("\n申请内存失败");
return NULL;
}
printf("\n请输入该同学的姓名:");
fflush(stdin);
gets(t_name);
printf("\n请输入该同学的学号:");
scanf("%d",&t_number);
printf("\n请输入该同学的成绩:");
scanf("%d",&t_score);
strcpy(pnewelement->name,t_name);
pnewelement->number=t_number;
pnewelement->score=t_score;
pnewelement->next=NULL;
tail->next=pnewelement;
tail=pnewelement;
fp0=fopen(f,"at");
if(fp0==NULL)
{
printf("\n出现错误");
exit(0);
}
if(fprintf(fp0,"姓名:%s 学号:%d 成绩:%d\n",pnewelement->name,pnewelement->number,pnewelement->score)==EOF)
{
printf("\n写入失败");
exit(0);
}
fclose(fp0);
printf("\n是否还还要再次输入?(Yes or No)");
fflush(stdin);
gets(instruction);
strupr(instruction);
if(strcmp(instruction,"YES")==0)
{
continue;
}
else if(strcmp(instruction,"NO")==0)
{
break;
}
}
pnewelement=head;
head=head->next;
free(pnewelement);
return head;
}
void disp()
{
char c_read[20];
char name[20];
int number,score;
FILE* f_read=NULL;
printf("\n请输入要读取文件的路径:");
fflush(stdin);
gets(c_read);
f_read=fopen(c_read,"rt");
if(f_read==NULL)
{
printf("\n找不到文件");
return;
}
do
{
fscanf(f_read,"姓名:%s 学号:%d 成绩:%d\n",name,&number,&score);
printf("姓名:%s 学号:%d 成绩:%d\n",name,number,score);
}while(!feof(f_read));
fclose(f_read);
}
void main(void)
{
stu* head=NULL;
char file[20];
char c;
while(1)
{
printf("***************\n");
printf("1.增加学生信息\n");
printf("2.查询学生信息\n");
printf("3.删除学生信息\n");
printf("4.退出\n");
printf("***************");
printf("\n请选择操作类型:");
scanf("%c",&c);
switch(c)
{
case('1'):
printf("\n请输入保存的路径名:");
fflush(stdin);
gets(file);
head=create(file);
break;
case('2'):
disp();
fflush(stdin);
getch();
break;
case('4'):
return;
}
fflush(stdin);
}
}
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student
{
char name[10];
int number;
int score;
student* next;
}stu;
stu* create(char f[20])
{
stu* head=NULL;
stu* tail=NULL;
stu* pnewelement=NULL;
char t_name[10];
int t_number,t_score;
char instruction[5];
FILE* fp0=NULL;
head=(stu*)malloc(sizeof(stu));
if(head==NULL)
{
printf("\n申请内存失败,sorry");
return NULL;
}
head->next=NULL;
tail=head;
while(1)
{
pnewelement=(stu*)malloc(sizeof(stu));
if(pnewelement==NULL)
{
printf("\n申请内存失败");
return NULL;
}
printf("\n请输入该同学的姓名:");
fflush(stdin);
gets(t_name);
printf("\n请输入该同学的学号:");
scanf("%d",&t_number);
printf("\n请输入该同学的成绩:");
scanf("%d",&t_score);
strcpy(pnewelement->name,t_name);
pnewelement->number=t_number;
pnewelement->score=t_score;
pnewelement->next=NULL;
tail->next=pnewelement;
tail=pnewelement;
fp0=fopen(f,"at");
if(fp0==NULL)
{
printf("\n出现错误");
exit(0);
}
if(fprintf(fp0,"姓名:%s 学号:%d 成绩:%d\n",pnewelement->name,pnewelement->number,pnewelement->score)==EOF)
{
printf("\n写入失败");
exit(0);
}
fclose(fp0);
printf("\n是否还还要再次输入?(Yes or No)");
fflush(stdin);
gets(instruction);
strupr(instruction);
if(strcmp(instruction,"YES")==0)
{
continue;
}
else if(strcmp(instruction,"NO")==0)
{
break;
}
}
pnewelement=head;
head=head->next;
free(pnewelement);
return head;
}
void disp()
{
char c_read[20];
char name[20];
int number,score;
FILE* f_read=NULL;
printf("\n请输入要读取文件的路径:");
fflush(stdin);
gets(c_read);
f_read=fopen(c_read,"rt");
if(f_read==NULL)
{
printf("\n找不到文件");
return;
}
do
{
fscanf(f_read,"姓名:%s 学号:%d 成绩:%d\n",name,&number,&score);
printf("姓名:%s 学号:%d 成绩:%d\n",name,number,score);
}while(!feof(f_read));
fclose(f_read);
}
void main(void)
{
stu* head=NULL;
char file[20];
char c;
while(1)
{
printf("***************\n");
printf("1.增加学生信息\n");
printf("2.查询学生信息\n");
printf("3.删除学生信息\n");
printf("4.退出\n");
printf("***************");
printf("\n请选择操作类型:");
scanf("%c",&c);
switch(c)
{
case('1'):
printf("\n请输入保存的路径名:");
fflush(stdin);
gets(file);
head=create(file);
break;
case('2'):
disp();
fflush(stdin);
getch();
break;
case('4'):
return;
}
fflush(stdin);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询