抓鬼行动大队第二季:C语言课程设计

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 02:17:56
学生成绩管理系统.要求可以输入.查询学生信息和各科成绩,修改学生信息,修改学生成绩。求总分.平均分.成绩排序等功能。有类似的就可以

这好像是数据库课程设计阿 用vb或c++编写的可能多一些。c的还真不知道。帮不上忙,不好意思

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
#include "mem.h"
#include "ctype.h"
#include "alloc.h"

struct score
{int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}
data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{if((fp=fopen("s_score.txt","ab+"))==NULL)
{printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
data.score[3]=data.score[0]+data.score[1]+data.score[2];
data.score[4]=data.score[3]/3;
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
}
fclose(fp);
}

void xianshi()
{float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu zhongfen pingjunfen\n");
for(j=0,k=1;j<i;j++,k++)
{info[j].mingci=k;
printf("%6s %6s %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4]);
}
getch();
fclose(fp);
}

void tongji()
{int n;
if((fp=fopen("s_score.txt","r"))==NULL)
{printf("Can not open the file.");
exit(0);
}
printf("\nfile's_score.txt':");
for(i=0;fread(&info[i],sizeof(struct score),1,fp)!=0;i++)
{printf("\n%6s%6s",info[i].xuehao,info[i].mingzi);
for(j=0;j<3;j++)
printf("%3.1f",info[i].score[j]);
printf("%3.1f",info[i].score[4]);
}
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(info[i].score[4]<info[j].score[4])
{data=info[i];
info[i]=info[j];
info[j]=data;
}
printf("\nnow:");
fp=fopen("a_score.txt","w");
for(i=0;i<n;i++)
{fwrite(&info[i],sizeof(struct score),1,fp);
printf("\n%6s%6s",info[i].xuehao,info[i].mingzi);
for(j=0;j<3;j++)
printf("%3.1f",info[i].score[j]);
printf("%3.1f",info[i].score[4]);
}
fclose(fp);
}

void charu()
{int t,n;
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("\nplease shuru mingzi:");
gets(data.mingzi);
printf("\nplease shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("\nplease shuru xueshu score:");
gets(temp);data.score[1]=atof(temp);
printf("\nplease shuru yingyu score:");
gets(temp);data.score[2]=atof(temp);
data.score[3]=data.score[0]+data.score[1]+data.score[2];
data.score[4]=data.score[3]/3;
if((fp=fopen("s_score.txt","r"))==NULL)
{printf("can not open file.");
exit(0);
}
printf("original data:\n");
for(i=0;fread(&info[i],sizeof(struct score),1,fp)!=0;i++)
{printf("\n%6s%6s",info[i].xuehao,info[i].mingzi);
for(j=0;j<3;j++)
printf("%3.1f",info[i].score[j]);
printf("%3.1f",info[i].score[4]);
}
n=i;
for(t=0;info[t].score[4]>data.score[4]&&t<n;t++);
printf("\nnow:\n");
fp1=fopen("a-score.txt","w");
for(i=0;i<t;i++)
{fwrite(&info[i],sizeof(struct score),1,fp1);
printf("\n%6s%6s",info[i].xuehao,info[i].mingzi);
for(j=0;j<3;j++)
printf("%3.1f",info[i].score[j]);
printf("%3.1f",info[i].score[4]);
}
fwrite(&data,sizeof(struct score),1,fp1);
printf("\n%6s%6s%3.1f%3.1f%3.1f%3.1f",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[4]);
for(i=t;i<n;i++)
{fwrite(&info[i],sizeof(struct score),1,fp1);
printf("\n%6s%6s",info[i].xuehao,info[i].mingzi);
for(j=0;j<3;j++)
printf("%3.1f",info[i].score[j]);
printf("%3.1f",info[i].score[4]);
}
fclose(fp);
fclose(fp1);
}

void xiugai()
{if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{j=atoi(data.xuehao);
if(j==i)
{printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
data.score[3]=data.score[0]+data.score[1]+data.score[2];
data.score[4]=data.score[3]/3;
}
fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input xuehao which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr();
gotoxy(1,1);
textcolor(YELLOW);
textbackground(BLUE);
window(1,1,99,99);
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>tongji * \n");
printf("* 7>charu 8>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-8):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':tongji(); break;
case '7':charu(); break;
case '8':exit(0);
default: continue;
}
}
}