当前位置:编程学习 > C/C++ >>

急求设计一个学生成绩管理系统 c语言 急!!!!

要求设计一个学生成绩管理系统,按照功能进行划分模块,并给出相应程序源代码。
要求:1.能建立新数据文件,存放学生档案信息及考试成绩;
2.能追加新纪录;
3.能修改已有记录;
4.能删除指定记录;
5.能查询部分记录;
6.能排序记录;
7.能用菜单方法操作。
答案:这个是最纯最纯的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("\
申请内存失败,sorry");
return NULL;
}
head->next=NULL;
tail=head;
while(1)
{
pnewelement=(stu*)malloc(sizeof(stu));
if(pnewelement==NULL)
{
printf("\
申请内存失败");
return NULL;
}
printf("\
请输入该同学的姓名:");
fflush(stdin);
gets(t_name);
printf("\
请输入该同学的学号:");
scanf("%d",&t_number);
printf("\
请输入该同学的成绩:");
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("\
出现错误");
exit(0);
}
if(fprintf(fp0,"姓名:%s 学号:%d 成绩:%d\
",pnewelement->name,pnewelement->number,pnewelement->score)==EOF)
{
printf("\
写入失败");
exit(0);
}
fclose(fp0);
printf("\
是否还还要再次输入?(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("\
请输入要读取文件的路径:");
fflush(stdin);
gets(c_read);
f_read=fopen(c_read,"rt");
if(f_read==NULL)
{
printf("\
找不到文件");
return;
}
do
{
fscanf(f_read,"姓名:%s 学号:%d 成绩:%d\
",name,&number,&score);

printf("姓名:%s 学号:%d 成绩:%d\
",name,number,score);
}while(!feof(f_read));

fclose(f_read);
}


void main(void)
{
stu* head=NULL;
char file[20];
char c;
while(1)
{
printf("***************\
");
printf("1.增加学生信息\
");
printf("2.查询学生信息\
");
printf("3.删除学生信息\
");
printf("4.退出\
");
printf("***************");
printf("\
请选择操作类型:");
scanf("%c",&c);
switch(c)
{
case('1'):
printf("\
请输入保存的路径名:");
fflush(stdin);
gets(file);
head=create(file);
break;
case('2'):
disp();


fflush(stdin);
getch();
break;
case('4'):
return;
}
fflush(stdin);
}
}

上一个:怎样解决C语言程序'不能创建输出文件'
下一个:C语言写一个语句用的不太多的计算器,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,