
这个是我大一的时候写的,你参考一下自己修改修改就能用了:
#include<stdioh>
#include<conioh>
#include<stringh>
#include<stdlibh>
#define PF printf
#define SF scanf
#define NUM_sub 4
#define SIZE 80
#define LEN sizeof(struct cj_statistic)
static int n=0;
int i=0;
struct cj_statistic
{
int num;
char name[15];
int score[NUM_sub];
int sum;
int aver_stu;
int aver_cour;
int index;
struct cj_statistic next;
} stud[SIZE],temp;
void add();
void del();
void change();
void display();
void arrange();
void find();
void add()
{ FILE fp;
float s1=00; int i; clrscr();
if((fp=fopen("xxout","a"))==NULL)
{PF("磁盘已满!\n");
getchar();
return;}
SF("%d",&stud[n]num);
PF("\n请输入要添加的学生姓名:");
SF("%s",stud[n]name);
PF("\n请输入该学生的各科成绩:");
s1=0;
for(i=0;i<NUM_sub;i++)
{
do
{
PF("score%d:",i+1);
SF("%d",&stud[n]score[i]);
if(stud[n]score[i]>100||stud[n]score[i]<0)
PF("wrong data,repeat input\n");
}
while(stud[n]score[i]>100||stud[n]score[i]<0);
s1=s1+stud[n]score[i]; /算总分/
}
stud[n]sum=s1;
stud[n]aver_stu=(float)s1/NUM_sub;
stud[n]index=n+1;
getchar();
if(fwrite(&stud[n],LEN,1,fp)) n++;
fclose(fp);
}
void del()
{
int k, m;
FILE fp;
clrscr();
fp=fopen("xxout","r");
for(i=0;i<n;i++)
fread(&stud[i],LEN,1,fp);
fclose(fp);
PF("\n请输入要删除的学号:");
SF("%d",&m);
getchar();
for(i=0;i<n;i++)
if(m==stud[i]num){k=1;break;}/查找记录/
if(k==1)/删除记录/
{ for(k=i;k<n-1;k++)
{ strcpy(stud[k]name,stud[k+1]name);
stud[k]num=stud[k+1]num;
for(i=0;i<NUM_sub;i++)
stud[k]score[i]=stud[k+1]score[i];
stud[k]sum=stud[k+1]sum;
stud[k]aver_stu=stud[k+1]aver_stu;
stud[k]index=stud[k+1]index;
} n--;PF("删除成功!");
}
else
{
PF("找不到要删除的记录:\n");
PF("按回车键返回:");
getchar();
}
fp=fopen("xxout","a");/打开新文件/
for(i=0;i<n;i++)
fwrite(&stud[i],LEN,1,fp);/写入信息/
fclose(fp);
}
void change()
{ int k,m;
FILE fp;
clrscr();/清屏/
fp=fopen("xxout","r");
for(i=0;i<n;i++)
fread(&stud[i],LEN,1,fp);
fclose(fp);
PF("\n请输入要修改的学生学号:");
SF("%d",&m);
getchar();
for(i=0;i<n;i++)
if(m==stud[i]num)
{k=1;break;}/查找/
if(k==1)/开始修改/
{ PF("\n");
PF("\n请输入修改后的学生姓名:");
SF("%s",stud[i]name);
PF("\n请输入修改后的学生学号:");
SF("&d",&stud[i]num);
for(i=0;i<NUM_sub;i++)
{ PF("score%d:",i+1);
SF("%d",&stud[n]score[i]);}
}
else
{ PF("对不起,找不到要修改的记录!\n");
PF("按回车键返回:");
getchar();}
fp=fopen("xxout","w");
for(i=0;i<n;i++)
fwrite(&stud[i],LEN,1,fp);/写入数据/
fclose(fp);
}
void display() /浏览全部学生信息/
{ FILE fp;
clrscr();/清屏/
fp=fopen("xxout","r");
printf("\n\n\nSTUDENT\n");
printf("| 学号 | 姓名 | 英语 | 高数 | C语言 | 物理 | 总分 | 平均分 |名次|\n");
printf("|--------|-----------|------|------|-------|--------|-------| -------|----|\n");
for(i=0;i<n;i++)
{
fread(&stud[i],LEN,1,fp);/读一个输出一个/
PF("| %d | %s | %d | %d | %d | %d | %d | %d |\n",stud[i]num,
stud[i]name,stud[i]score[0],stud[i]score[1],stud[i]score[2],stud[i]score[3],stud[i]sum,stud[i]aver_stu,
stud[i]index);
}
PF("按任意键返回!");
fclose(fp);
getchar();
}
void arrange()
{
int k=0,j,sum1,sum2,sum3,sum4;
FILE fp;
clrscr();
if((fp=fopen("xxout","r"))==NULL)
{PF("磁盘已满!\n");
getchar();
return;}
for(i=0;i<n;i++)
{ for(j=0;j<n-i;j++)
if(stud[j]sum<stud[j+1]sum)
{temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;} }
fwrite(&stud[i],LEN,1,fp);/写入数据/
printf("\n\n\nSTUDENT\n");
printf("| 学号 | 姓名 | 英语 | 高数 | C语言 | 物理 | 总分 | 平均分 |名次|\n");
printf("|--------|-----------|------|------|-------|--------|-------|--------|----|\n");
for(i=0;i<n;i++)
{
fread(&stud[i],LEN,1,fp);/读一个输出一个/
PF("| %d | %s | %d | %d | %d | %d | %d | %d | %d |\n",stud[i]num,
stud[i]name,stud[i]score[0],stud[i]score[1],stud[i]score[2],stud[i]score[3],stud[i]sum,stud[i]aver_stu,
++k);}
for(sum1=0,sum2=0,sum3=0,sum4=0,i=0;i<n;i++)
{fread(&stud[i],LEN,1,fp);
sum1=sum1+stud[i]score[0]; sum2+=stud[i]score[1];
sum3+=stud[i]score[2];sum4+=stud[i]score[3];}
PF("各 科 成 绩 平均分:| %d | %d | %d | %d |",sum1/(n+1),sum2/(n+1),sum3/(n+1),sum4/(n+1));
PF("按任意键返回!");
fclose(fp);
getchar();
}
void find()
{ int k,m;
FILE fp;
clrscr();/清屏/
if((fp=fopen("xxout","r"))==NULL)
{PF("不能打开文件!\n");
PF("按回车键返回:");
getchar(); return;
}
for(i=0;i<n;i++)
fread(&stud[i],LEN,1,fp);
fclose(fp);
PF("\n请输入要查询的学生学号:");
SF("%d",&k);
getchar();
for(i=0;i<n;i++)
if(k==stud[i]num)/查找记录/
{m=1;break;}
if(m==1)
{PF("| 学号 | 姓名 | 英语 | 高数 | C语言 | 物理 | 总分 | 平均分 |名次|\n");
PF("|--------|-----------|------|------|-------|--------|-------|--------|----|\n");
PF("| %d | % s | %d | %d | %d | %d | %d | %d | %d |\n",stud[i]num,
stud[i]name,stud[i]score[0],stud[i]score[1],stud[i]score[2],stud[i]score[3],stud[i]sum,stud[i]aver_stu,
stud[i]index);}
else PF("无记录显示,或记录已被删除!");
PF("按回车键返回!");
fclose(fp);
getchar();
}
void main()
{ FILE fp;
char c;
int i; clrscr(); //
PF("\n\n\n\n\n\n\t\t\t 欢迎使用学生成绩统计系统");
PF("\n\n\n\t\t\t\t\t 制作人 董伟");
PF("\n\n\n\t\t\t\t\t 2008年6月");
PF("\n\n\n\n\n\t 按回车键进入主菜单:");//
getchar();
do
{ clrscr();
PF("\n");
PF("\t\t\t \n");
PF("\t\t\t 主菜单 \n");
PF("\t\t\t \n\n\n");
PF("\t 1添加一个学生信息 2删除一个学生信息\n\n");
PF("\t 3修改一个学生信息 4浏览全部学生信息\n\n");
PF("\t 5学生成绩排序 6查找一个学生信息\n\n");
PF("\t 7 退出系统\n\n\n\n");
PF("\t 请选择[1/2/3/4/5/6/7]:");
do
{ c=getchar();}
while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6'&&c!='7');
getchar();
switch(c)
{ case'1':add();break;
case'2':del();break;
case'3':change();break;
case'4':display();break;
case'5':arrange();break;
case'6':find();break;
case'7':exit(0);
}
PF(" 按任意键返回主菜单:\n");
getchar();
clrscr();
} while(1);
}
当然学习JS也是有门槛的,就是你的html和css至少还比较熟练,您不能连<body>这东东是干啥的都不知道就开始上JS了,学乘除前,学好加减法总是有益无害的。
再说几点忠告
1,不要着急看一些复杂网页效果的代码,这样除了打击你自信心,什么也学不到。没达到一定的武功水平,割了小JJ也学不会葵花宝典的。
2,别急着加技术交流QQ群,加牛人QQ。如果你找张三丰交流武功,你上去第一句问“丰哥,where is 丹田?”,你会被他一掌劈死的。
3,看网上什么多少天精通JS,啥啥啥从入门到精通,这种教程直接跳过吧,太多的事实证明,以一种浮躁的心态去做任何事都会以失败而告终。
4,千万别去弄啥电脑培训,花了钱和时间不说,关键是学不到东西。本来你买两本好书自学3个月能学会的,他们硬是能折腾你两年。
推荐几本好书
“超毛,你丫吹了半天牛B,还是没说怎么学啊”
呵呵,我也没啥特别的办法,只是推荐几本好书。推荐的书,得按先后顺序看。别第一本没看完,就急着上第二本,并不是每次“穿越”都能成功的
第一阶段:《JavaScript DOM编程艺术》
看这本书之前,请先确认您对Javascript有个基本的了解,应该知道if else之类的语法,如果不懂,先去看看我第二阶段推荐的《Javascript高级程序设计》的前三章,记住看三章就别往下看了,回到《JavaScript DOM编程艺术》这本书上来。
学习Javascript用《JavaScript DOM编程艺术》来入门最好不过了,老老实实看两遍,看完了你就会对JS有一个大概的了解,整本书都围绕着一个网页效果例子展开,你跟着老老实实敲一篇,敲完之后,你会发现这个效果不是常在网页中看到么,发现自己也能做出来网上的效果了,嘿嘿,小有成就感吧。
第二阶段:《JavaScript高级程序设计》
有的书是用来成为经典的,比如犀牛书;还有些书是用来超越经典的,显然这本书就是这种。书中章章经典,由浅入深,其中第6章,关于JS面向对象的解说,没有教程出其右。
如果有一场满分100分的JS考试,看了《JavaScript DOM编程艺术》能让你拿到20分,那么看完这本书,你就能拿到60分以上了。学完后,你会成就感倍增的,相信我(至少看两遍,推荐三篇,跟着书上的代码一行行的敲)。
这本书强烈推荐购买,写的太TMD牛逼了,给你带来的价值超过百倍千倍。
这本书最新的是第三版,貌似就是前些日子出来的,我看的是第二版,第三版相对第二版变动不大,添加了几章内容,价格目前相差10元左右。
接下来,恭喜你可以下山了,这个时候可以自己做一些事情了
你可以去Ferris这个教程看看他写的这些效果,看看源代码,怎么样,是不是觉得有一部分很简单了,尝试着跟着他写一写这些效果吧。
学技术闭门造车是行不通的,适当的加一两个QQ群交流(注重质量),常去论坛逛逛,你会经常有些小收获的。
再有就是看看前辈这些牛人前辈们分享的文章,它会让你的学习事半功倍的,这里是热心人收集的国内一些牛人的博客、个人网站,点这里。
第三阶段:《JavaScript语言精粹》和《高性能JavaScript》
接下来两本书《JavaScript语言精粹》和《高性能JavaScript》算是JS高级教程的补充,里面有一些内容和JS高级教程重复了,两本书可以同时看,都不厚,可以对前面所学的有一个很好的加强和巩固。
第四阶段:《JavaScript DOM高级程序设计》和《JavaScript设计模式》
在吃透了前面所说的书之后,接下来两本书的顺序已经无关紧要了,《JavaScript DOM高级程序设计》(注意和《JavaScript 高级程序设计》相区别)和《JavaScript设计模式》,这两本都是重量级的书,能让你的JS技术上一个新的台阶;这两本书前者主修炼外功,后者主修炼内功,有点想乾坤大挪移和九阳神功的关系。
《JavaScript DOM高级程序设计》 首先教你搭建一个类似JQuery的额工具函数库,然后通过讲解几个实际中经常遇到的几个应用例子,会让初学者受益匪浅。
《JavaScript设计模式》主要讲Javascript的设计模式,说实话,翻译的质量很一般,有些生硬,但已经基本不影响你的学习,看代码完全可以理解出自己的意思。
以上就是关于学生成绩管理C语言程序设计源代码全部的内容,包括:学生成绩管理C语言程序设计源代码、如何学习 JavaScript、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)