帮忙写一份C语言设计的《学生信息管理系统》 请大神帮忙写一个C语言的学生信息管理系统的程序,要求用链表。

作者&投稿:坚肾 (若有异议请与网页底部的电邮联系)
/*
(1)编写主菜单,包括1输入、2插入、3排序、4查找、5删除、6输出、7退出等7个功能的菜单项,程序执行则首先显示这7个菜单项目,
当用户按下功能序号时可以执行相应的功能。
(2)每一个功能编写一个相应的空函数,名称为input、insert、sort、find、delete、output、quit,由主函数来调用。
(3)为了测试调用成功与否,每个空函数里加上语句显示当前被调用的函数的名称
(4)每执行完一次某个菜单功能后,还要返回主菜单,等待用户再选择菜单项。(可以使用循环控制。)
*/

/*(1)输入:函数input把20学生的学号、姓名、性别、年龄、四科成绩以及平均成绩和总成绩放在一个结构体数组中,学生的学号、姓名、四科成绩由键盘输入,
然后计算出平均成绩和总成绩放在结构体对应的域中,并把原始数据放入student.dat。(第8周周二 张琴)
(2)输出:函数output 输出全部学生的记录,从文件中读出学生的信息,并从屏幕上输出。(第8周周二 张琴)
(3)插入:insert 函数输入一个学生的记录,按学号的先后顺序插入该学生的全部内容。(第8周周三 殷玉法)
(4)删除:delete函数输入一个学生的学号或姓名,找到该学生并删除该学生的全部内容。(第8周周三 殷玉法)
(5)排序:sort函数对所有学生按要求排序(1.学号 2.总成绩 ),并输出。(第8周周四 张琴)
(6)查找:find函数输入一个学生的学号或姓名,找到该学生并输出该学生的全部内容。要求能查询多次。(第8周周四 张琴)
(7)综合调试,完成项目,检查并评定成绩(第8周周五 上午李环宇 下午殷玉法、张琴)
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
#define M 3
FILE *fp;
int n=0;

struct student
{
char name[20],sex[20];
int num,age,score[4],sum;
float ave;
}t,q,stu[N];

void input(); //输入函数
void calculate(); //计算各同学的总成绩与平均分
void insert(); //插入一同学的信息
void sort(); //对原有同学的信息根据要求排序
void find(); //查找特定同学的信息
void delet(); //删除特定同学的信息
void output(); //输出各同学的信息
void quit(); //退出菜单
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,主函数
void main()
{
int a;
char b[20];
for(;;)
{
printf("********************************菜单开始\n");
printf("\t1、输入学生信息\n");
printf("\t2、插入一学生信息\n");
printf("\t3、排序(从低到高)\n");
printf("\t4、查找指定学生信息\n");
printf("\t5、删除指定学生信息\n");
printf("\t6、输出学生信息\n");
printf("\t7、退出程序\n");
printf("********************************菜单结束\n");

printf("输入数a通过a执行菜单中的程序块:");
scanf("%s",b);
a=atoi(b);

switch(a)
{
case 1:input();break;
case 2: insert();break;
case 3:sort();break;
case 4:find();break;
case 5:delet();break;
case 6:output();break;
case 7:quit();break;
default:printf("输入错误请重新输入(1-7)的数!!!\n");
}
}
}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,输入函数
void input()
{
int i,j;
printf("输入%d个同学的信息\n",M);
for(i=0;i<M;i++)
{
printf("输入第%d个同学的num,name,sex,age:",i+1);
scanf("%d%s%s%d",&stu[i].num,stu[i].name,stu[i].sex,&stu[i].age);
printf("输入第%d个同学的四门课成绩:",i+1);
for(j=0;j<4;j++)
scanf("%d",&stu[i].score[j]);
}
calculate();
printf("输入结束!\n");
if((fp=fopen("student.dat","w"))==NULL)
{
printf("can't open file!\n");
return;
}
if(fwrite(stu,sizeof(struct student),N,fp)!=N)
printf("write error!\n");
fclose(fp);

}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,计算函数
void calculate()
{
for(int i=0;i<M+n;i++)
{
stu[i].sum=0;
for(int j=0;j<4;j++)
stu[i].sum+=stu[i].score[j];
stu[i].ave=stu[i].sum/4.0;
}
}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,插入函数
void insert()
{
FILE *fp;
student xue;
int i,j,m=1;
if((fp=fopen("student.dat","w"))==NULL)
{
printf("can't open file!\n");
return;
}
while(m)
{
for(i=0;i<M+n;i++)
for(j=0;j<M+n-j;j++)
if(stu[j].num>stu[j+1].num)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
xue=q;
printf("输入要插入学生的num,name,sex,age:");
n=n+1;
scanf("%d%s%s%d",&xue.num,xue.name,xue.sex,&xue.age);
printf("输入要插入学生的四门课成绩:");
for(j=0;j<4;j++)
scanf("%d",&xue.score[j]);
for(i=0;i<M+n;i++)
{
if(xue.num<stu[i].num)
{
for(j=M+n-1;j>i;j--)
stu[j]=stu[j-1];
stu[i]=xue;break;
}
}
printf("插入第%d个成功\n",n);
calculate();
printf("是否继续插入?是,输入任意数;否,输入0\n");
scanf("%d",&m);
}
if(fwrite(stu,sizeof(struct student),N,fp)!=N)
printf("write error!\n");
fclose(fp);
}

//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,排序函数
void sort()
{
int i,j,b;
if((fp=fopen("student.dat","w"))==NULL)
{
printf("can't open file!\n");
return;
}

printf("\t1、按学号排序\t2、按总成绩排序\n");
printf("请输入选择类型:");
scanf("%d",&b);

if(b==1)
{
for(i=0;i<M+n;i++)
for(j=0;j<M+n-j;j++)
if(stu[j].num>stu[j+1].num)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}

else if(b==2)
{
for(i=0;i<M+n-1;i++)
for(j=0;j<M+n-1-j;j++)
if(stu[j].sum>stu[j+1].sum)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}

else
{
printf("输入错误请重新输入!\n");
return;
}

printf("排序成功!!!\n");
fclose(fp);

}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,查找函数
void find()
{
int a,i,j,m,k;
char b[20];

printf("这是查找函数!!!\n");
if((fp=fopen("student.dat","r"))==NULL)
{
printf("can't open file!\n");
return;
}
m=1;
while(m)
{

printf("输入要查询学生的姓名或学号\n\t1、学号\t2、姓名\n");
scanf("%d",&a);
switch(a)
{
case 1:
{
printf("输入要查询学生的学号:\n");
scanf("%d",&k);
for(i=0;i<M+n;i++)
if(stu[i].num==k)
{
j=i;
printf("输出查找同学的信息:\n");
printf("num\tname\tsex\tage\tscore0\tscore1\tscore2\tscore3\tsum\tave\n");
printf("%d\t%s\t%s\t%d\t",stu[j].num,stu[j].name,stu[j].sex,stu[j].age);
for(i=0;i<4;i++)
printf("%d \t",stu[j].score[i]);
printf("%d\t%f\n",stu[j].sum,stu[j].ave);
}break;
printf("该学生不存在\n");break;
}
case 2:
{
printf("输入要查询学生的姓名:\n");
scanf("%s",b);
for(i=0;i<M+n;i++)
if(strcmp(stu[i].name,b)==0)
{
j=i;
printf("输出查找同学的信息:\n");
printf("num\tname\tsex\tage\tscore0\tscore1\tscore2\tscore3\tsum\tave\n");
printf("%d\t%s\t%s\t%d\t",stu[j].num,stu[j].name,stu[j].sex,stu[j].age);
for(i=0;i<M;i++)
printf("%d \t",stu[j].score[i]);
printf("%d\t%f\n",stu[j].sum,stu[j].ave);
}break;
printf("该学生不存在\n"); break;
}
default:printf("输入错误请重新输入(1-2)的数!!!\n");return;
}
printf("想要查找输入任意数,否则输入0\n");
scanf("%d",&m);

}

fclose(fp);
}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,删除函数
void delet()
{
int a,b,i,j;
char m[20];
printf("这是删除函数!!!\n");
if((fp=fopen("student.dat","w"))==NULL)
{
printf("can't open file!\n");
return;
}

printf("输入要删除学生的姓名或学号\n");
printf("\t1、学号\t2、姓名\n");
printf("输入选择类型\n");
scanf("%d",&a);
calculate();

if(a==1)
{
printf("输入要删除学生的学号:\n");

scanf("%d",&b);
for(i=0;i<M+n;i++)
if(stu[i].num==b)
{
//stu[i]=q;
for(j=i;j<M+n-1;j++)
stu[j]=stu[j+1];
printf("删除成功\n");
n--;
}return;
printf("该学生不存在\n");return;

}
else if(a==2)
{
printf("输入要删除学生的姓名:\n");
scanf("%s",m);
for(i=0;i<M+n;i++)
if(strcmp(stu[i].name,m)==0)
{
//stu[i]=q;
for(j=i;j<M+n-1;j++)
stu[j]=stu[j+1];
printf("删除成功\n");
n--;
}return;
printf("该学生不存在\n");return;
}
else printf("输入错误\n");
fclose(fp);
}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,输出函数
void output()
{
int i,j;
if((fp=fopen("student.dat","r"))==NULL)
{
printf("can't open file!\n");
return;

}
printf("输出文件中的信息为:\n");
printf("n=%d\n",n);
printf("num\tname\tsex\tage\tscore0\tscore1\tscore2\tscore3\tsum\tave\n");
for(i=0;i<M+n;i++)
{
printf("%d\t%s\t%s\t%d\t",stu[i].num,stu[i].name,stu[i].sex,stu[i].age);
for(j=0;j<4;j++)
printf("%d \t",stu[i].score[j]);
printf("%d\t%f\n",stu[i].sum,stu[i].ave);
}
fclose(fp);
}
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,退出函数
void quit()
{
printf("这是退出函数!!!\n");
exit(0);
}

#include <stdio.h>
#include <stdlib.h>
#define NULL 0
typedef struct student
{
char clas[20];
char name[20];
char number[20];
int math;
int english;
int computer;
float sum;
float ave;
struct student *next;
}XSSJ;
void freerecord(XSSJ *p)
{
XSSJ *q;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
}
XSSJ *addrecord(XSSJ *p)
{
XSSJ head,*q;
head.next=p;
p=&head;
while(p->next!=NULL)
p=p->next;
while(1)
{
char text[80];
q=(XSSJ *)malloc(sizeof(XSSJ));
if(q==NULL)
return(head.next);
q->next=NULL;
printf("\n请输入学生的班级、姓名、学号和数学、英语、计算机成绩:");
gets(text);
if(text[0]=='\0')
break;
sscanf(text,"%s%s%s%d%d%d",&q->clas,&q->name,&q->number,&q->math,&q->english,&q->computer);

p->next=q;
p=q;
}
return(head.next);
}
XSSJ *createrecord(XSSJ *p)
{
freerecord(p);
return(addrecord(NULL));
}
XSSJ *deleterecord(XSSJ *p)
{
char number[10];
XSSJ *q,head;
printf("\n请输入你要删除的学生学号:\n");
gets(number);
for(head.next=p,q=&head;p!=NULL;p=p->next)
{
if(strcmp(p->number,number)!=0)
q=p;
else
{
q->next=p->next;
free(p);
printf("\n学号为%s的学生成绩已经删除。\n",number);
return(head.next);
}
}
printf("\n没有学号为%s的学生成绩。\n",number);
return(head.next);
}
void searchrecord(XSSJ *p)
{
char number[10];
printf("\n请输入你要查询的学生学号\n");
gets(number);
for(;p!=NULL;p=p->next)
{
if(strcmp(p->number,number)==0)
{
printf("\n班级%s\t姓名%s\t学号%s\t数学%d\t英语%d\t计算机%d\n",p->clas,p->name,p->number,p->math,p->english,p->computer);

}
}
printf("\n没有你要查询的成绩\n");
}
void displayrecord(XSSJ *p)
{
printf("\n班级\t姓名\t学号\t数学\t英语\t计算机\t\n");
for(;p!=NULL;p=p->next)
printf("\n%s\t%s\t%s\t%d\t%d\t%d\n",p->clas,p->name,p->number,p->math,p->english,p->computer);
printf("\n");
}

void displaymenu() //显示菜单
{
printf("\n\n______________菜单___________________\n");
printf("1:创建新纪录\t");
printf("2:添加新纪录\n");
printf("3:删除纪录 \t");
printf("4:查询纪录 \n");
printf("5:显示纪录 \t");
printf("0:退出系统 \n");
printf("\n请选择:");
}

int choiceitem(void)
{
int choice;
char line[80];
do
{
displaymenu();
gets(line);
choice=atoi(line);
}
while(choice<0||choice>6);
return(choice);
}
void main()
{
XSSJ *head=NULL;
int choice;
do
{
choice=choiceitem();
switch(choice)
{
case 1: head=createrecord(head);
break;
case 2: head=addrecord(head);
break;
case 3: head=deleterecord(head);
break;
case 4: searchrecord(head);
break;
case 5: displayrecord(head);
break;
}
}
while(choice!=0);
printf("\n\nEND!");
freerecord(head);
}
hhxy 11tx 06(这个是我的标 不是程序)
这个是我做的 没有名次排序的功能 我没有做出来呢 我也刚学这个 希望对你有帮助

你太没诚意了,那玩意不是一天能写好的

帮忙设计一个C语言的学生信息管理系统~

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

struct subject{ //科目信息结构体
float Chinese; //语文
float Math; //数学
float English; //英语
};

struct student{
int no; //学号
char name[20]; //姓名
char sex; //性别
char address[20]; //地址
char telephone[20];//电话
subject score; //3门科目的成绩
float avg; //3门平均成绩
}stud[50]; //结构体数组

int count=0; //计数变量,记录学生人数

void add(){ //增加学生信息函数
student a; //临时结构体变量a
char x,j; //Yes or No输入字符变量

//循环输入学生信息
for(int i=0;i<50;i++){
system("cls"); //清屏函数
int t=0;
printf("请输入学生的学号:");
scanf("%d",&a.no);

//寻找学号是否已存在
for(int k=0;k<count;k++){
if(stud[k].no==a.no){
t=1;
}
}

//存在与否,分别输出
if(t==1)
printf("输入的学号已存在,请重新输入
");
else{
printf("请输入学生的姓名:");
scanf("%s",a.name);
printf("请输入学生的性别(m代表男,f代表女):");
scanf("%c",&a.sex);
scanf("%c",&a.sex);
printf("请输入学生的地址:");
scanf("%s",a.address);
printf("请输入学生的电话:");
scanf("%s",a.telephone);
printf("请输入学生的语文成绩:");
scanf("%f",&a.score.Chinese);
printf("请输入学生的数学成绩:");
scanf("%f",&a.score.Math);
printf("请输入学生的英语成绩:");
scanf("%f",&a.score.English);
a.avg=(a.score.Chinese+a.score.English+a.score.Math)/3;

//判定是否要增加该记录
printf("确定要增加该记录吗?(y/n)");
scanf("%c",&x);
scanf("%c",&x);
if(x=='y'){
stud[count]=a;
count++;
}
}

//判定是否要继续增加记录
printf("要继续增加记录吗?(y/n)");
scanf("%c",&j);
scanf("%c",&j);
if(j=='n')
break;
}
printf("
按任意键返回主菜单:");
getch(); //从键盘接收任意一个字符就返回
}

void show(){ //显示所有学生信息函数
system("cls");
//循环显示
for(int i=0;i<count;i++){
printf("学号:%-8d姓名:%-16s性别:%c
",stud[i].no,stud[i].name,stud[i].sex);
printf("地址:%s
电话:%s
",stud[i].address,stud[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[i].score.Chinese,
stud[i].score.Math,stud[i].score.English,stud[i].avg);
printf("---------------------------------------------------------------------
");
}
printf("
按任意键返回主菜单:");
getch();
}

void sort(){ //根据学生的学号由小到大进行排序
system("cls");
//冒泡排序法
for(int i=0;i<count-1;i++){
for(int j=0;j<count-1-i;j++){
if(stud[j].no>stud[j+1].no){
student t=stud[j];
stud[j]=stud[j+1];
stud[j+1]=t;
}
}
}
printf("排序已完成,按任意键返回主菜单:");
getch();
}

void query1(){ //根据学号查询并显示单个学生信息
int x; //输入学生学号整型变量
char k; //Yes or No输入字符变量
while(true){
system("cls");
int t=-1; //要查询的学生学号所对应的数组下标,-1代表在数组中没对应下标
printf("请输入要查询的学生学号:");
scanf("%d",&x);

//循环寻找结构体数组中符合变量x的数据,并把该数据所在的下标值赋给变量t
for(int i=0;i<count;i++){
if(stud[i].no==x)
t=i;
}

//判定信息是否存在,分别输出
if(t==-1)
printf("您所查询的学生信息不存在,");
else{
printf("学号:%-8d姓名:%-16s性别:%c
",stud[t].no,stud[t].name,stud[t].sex);
printf("地址:%s
电话:%s
",stud[t].address,stud[t].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[t].score.Chinese,
stud[t].score.Math,stud[t].score.English,stud[t].avg);
printf("---------------------------------------------------------------------
");
}

//判定是否要继续查询
printf("是否继续查询?(y/n)");
scanf("%c",&k);
scanf("%c",&k);
if(k=='n')
break;
}
printf("
按任意键返回主菜单:");
getch();
}

void query2(){ //根据姓名查询并显示单个学生信息
char x[20]; //输入学生姓名字符串变量
char k; //Yes or No输入字符变量
while(true){
system("cls");
student a[50]; //要查询的学生姓名所对应的数组下标,-1代表在数组中没对应下标
int t=0;
printf("请输入要查询的学生姓名:");
scanf("%s",x);

//循环寻找结构体数组中符合变量x的数据,并把该数据所在的下标值赋给变量t
for(int i=0;i<count;i++){
if(strcmp(stud[i].name,x)==0){
a[t]=stud[i];
t++;
}
}

//判定信息是否存在,分别输出
if(t==0)
printf("您所查询的学生信息不存在,");
else{
for(int i=0;i<t;i++){
printf("学号:%-8d姓名:%-16s性别:%c
",a[i].no,a[i].name,a[i].sex);
printf("地址:%s
电话:%s
",a[i].address,a[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",a[i].score.Chinese,
a[i].score.Math,a[i].score.English,a[i].avg);
printf("---------------------------------------------------------------------
");
}
}

//判定是否要继续查询
printf("是否继续查询?(y/n)");
scanf("%c",&k);
scanf("%c",&k);
if(k=='n')
break;
}
printf("
按任意键返回主菜单:");
getch();
}

void good(){ //显示平均成绩和单科成绩最高的学生资料
system("cls");

//寻找平均成绩中的最高值
float max1=stud[0].avg;
for(int i=1;i<count;i++)
if(stud[i].avg>max1)
max1=stud[i].avg;

//输出平均成绩中最高值的学生信息
for(int i=0;i<count;i++){
if(max1==stud[i].avg){
printf("平均成绩最高的学生信息:

");
printf("学号:%-8d姓名:%-16s性别:%c
",stud[i].no,stud[i].name,stud[i].sex);
printf("地址:%s
电话:%s
",stud[i].address,stud[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[i].score.Chinese,
stud[i].score.Math,stud[i].score.English,stud[i].avg);
printf("---------------------------------------------------------------------
");
}
}

//寻找语文成绩中的最高值
float max2=stud[0].score.Chinese;
for(int i=1;i<count;i++)
if(stud[i].score.Chinese>max2)
max2=stud[i].score.Chinese;

//输出语文成绩中最高值的学生信息
for(int i=0;i<count;i++){
if(max2==stud[i].score.Chinese){
printf("语文成绩最高的学生信息:

");
printf("学号:%-8d姓名:%-16s性别:%c
",stud[i].no,stud[i].name,stud[i].sex);
printf("地址:%s
电话:%s
",stud[i].address,stud[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[i].score.Chinese,
stud[i].score.Math,stud[i].score.English,stud[i].avg);
printf("---------------------------------------------------------------------
");
}
}

//寻找数学成绩中的最高值
float max3=stud[0].score.Math;
for(int i=1;i<count;i++)
if(stud[i].score.Math>max3)
max3=stud[i].score.Math;

//输出数学成绩中最高值的学生信息
for(int i=0;i<count;i++){
if(max3==stud[i].score.Math){
printf("数学成绩最高的学生信息:

");
printf("学号:%-8d姓名:%-16s性别:%c
",stud[i].no,stud[i].name,stud[i].sex);
printf("地址:%s
电话:%s
",stud[i].address,stud[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[i].score.Chinese,
stud[i].score.Math,stud[i].score.English,stud[i].avg);
printf("---------------------------------------------------------------------
");
}
}

//寻找英语成绩中的最高值
float max4=stud[0].score.English;
for(int i=1;i<count;i++)
if(stud[i].score.English>max4)
max4=stud[i].score.English;

//输出英语成绩中最高值的学生信息
for(int i=0;i<count;i++){
if(max4==stud[i].score.English){
printf("英语成绩最高的学生信息:

");
printf("学号:%-8d姓名:%-16s性别:%c
",stud[i].no,stud[i].name,stud[i].sex);
printf("地址:%s
电话:%s
",stud[i].address,stud[i].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[i].score.Chinese,
stud[i].score.Math,stud[i].score.English,stud[i].avg);
printf("---------------------------------------------------------------------
");
}
}
printf("
按任意键返回主菜单:");
getch();
}

void update(){
int x; //输入学生学号整型变量
student a; //临时结构体变量a
char k,j; //Yes or No输入字符变量

while(true){
system("cls");
int t=-1; //要查询的学生学号所对应的数组下标,-1代表在数组中没对应下标
printf("请输入要修改的学生学号:");
scanf("%d",&x);

//循环寻找结构体数组中符合变量x的数据,并把该数据所在的下标值赋给变量t
for(int i=0;i<count;i++){
if(stud[i].no==x)
t=i;
}

//判定信息是否存在,分别输出
if(t==-1)
printf("您所要修改的学生信息不存在,");
else{
//输出要修改学生的原信息
printf("学号:%-8d姓名:%-16s性别:%c
",stud[t].no,stud[t].name,stud[t].sex);
printf("地址:%s
电话:%s
",stud[t].address,stud[t].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[t].score.Chinese,
stud[t].score.Math,stud[t].score.English,stud[t].avg);
printf("---------------------------------------------------------------------
");

//判定是否要修改
printf("确定要修改该记录吗?(y/n)");
scanf("%c",&k);
scanf("%c",&k);

//确定要修改后,输入新信息
if(k=='y'){
printf("请输入新的学生的学号:");
scanf("%d",&a.no);
printf("请输入新的学生的姓名:");
scanf("%s",a.name);
printf("请输入新的学生的性别:");
scanf("%c",&a.sex);
scanf("%c",&a.sex);
printf("请输入新的学生的地址:");
scanf("%s",a.address);
printf("请输入新的学生的电话:");
scanf("%s",a.telephone);
printf("请输入新的学生的语文成绩:");
scanf("%f",&a.score.Chinese);
printf("请输入新的学生的数学成绩:");
scanf("%f",&a.score.Math);
printf("请输入新的学生的英语成绩:");
scanf("%f",&a.score.English);
a.avg=(a.score.Chinese+a.score.English+a.score.Math)/3;
stud[t]=a;
printf("修改成功,");
}
}

//判定是否继续
printf("是否继续修改?(y/n)");
scanf("%c",&j);
scanf("%c",&j);
if(j=='n')
break;
}
printf("
按任意键返回主菜单:");
getch();
}

void del(){
int x; //输入学生学号整型变量
char k,j; //Yes or No输入字符变量
while(true){
system("cls");
int t=-1; //要查询的学生学号所对应的数组下标,-1代表在数组中没对应下标
printf("请输入要删除的学生学号:");
scanf("%d",&x);

//循环寻找结构体数组中符合变量x的数据,并把该数据所在的下标值赋给变量t
for(int i=0;i<count;i++){
if(stud[i].no==x)
t=i;
}

//判定信息是否存在,分别输出
if(t==-1)
printf("您所要删除的学生信息不存在,");
else{
//输出要删除学生的原信息
printf("学号:%-8d姓名:%-16s性别:%c
",stud[t].no,stud[t].name,stud[t].sex);
printf("地址:%s
电话:%s
",stud[t].address,stud[t].telephone);
printf("语文成绩:%-8.1f数学成绩:%-8.1f英语成绩:%-8.1f平均成绩:%.1f
",stud[t].score.Chinese,
stud[t].score.Math,stud[t].score.English,stud[t].avg);
printf("---------------------------------------------------------------------
");

//判定是否删除
printf("确认要删除吗?(y/n)");
scanf("%c",&k);
scanf("%c",&k);

//确定要删除后,删除该信息
if(k=='y'){
for(int i=t;i<count-1;i++)
stud[i]=stud[i+1];
printf("删除成功,");
count--;
}
}

//判定是否继续
printf("是否继续删除?(y/n)");
scanf("%c",&j);
scanf("%c",&j);
if(j=='n')
break;
}
printf("
按任意键返回主菜单:");
getch();
}

void grt(){
system("cls");
printf("顾韧霆制作
2008年12月13日
");
printf("
按任意键返回主菜单:");
getch();
}

void grt1()
{
int choice=0; //保存用户输入的选择项
do{
system("cls"); //清屏函数
printf("----------------学生信息管理系统----------------

");
printf("在菜单中选择以下的操作类型
");
printf("1.增加记录
2.显示所有学生信息
3.信息排序
4.根据学号查询单个学生信息
5.根据姓名查询单个学生信息
");
printf("6.平均成绩和单科成绩最高的学生资料
7.修改记录
8.删除记录
9.退出程序
0.制作人
");
printf("请输入你的选择:");
scanf("%d",&choice);
switch(choice)
{
case 1:
add();
break;
case 2:
show();
break;
case 3:
sort();
break;
case 4:
query1();
break;
case 5:
query2();
break;
case 6:
good();
break;
case 7:
update();
break;
case 8:
del();
break;
case 0:
grt();
break;
}
}while(choice!=9);
}

void main()
{
char x[10];
printf("----------------学生信息管理系统----------------

");
for(int i=3;i>0;i--){
printf("请输入密码:");
scanf("%s",&x);
if(strcmp(x,"123456")==0){
grt1();
break;
}
else
printf("输入错误,你还有%d次机会
",i-1);
}

}

定义
学生信息管理系统是针对学校学生处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生学籍管理规范化、电子化、控制辍学和提高教育水平的重要举措。

产生背景
学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依*人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。

开发意义
系统针对学校学生信息的特点以及管理中实际需要而设计,能够有效地实现学生信息管理的信息化,减轻管理人员的工作负担,高效率、规范化地管理大量的学生信息,并避免人为操作的错误和不规范行为。

基本功能
奖学金管理:支持学生成绩绩点、任职分值、荣誉分值、综合分值等计算、统计和分析。实现自动排名、审计奖学金,公示奖学金评审结果等功能。 困难生认定管理:学生申请,教师审批,申请发放各项资助。有助于加强学校对困难生的服务和管理,简化困难生资助申请的繁琐过程,给困难生提供更加简洁、方便的服务渠道,确保资助准确、及时的发放。 勤工岗位申请管理:岗位设定、学生申请、教师审批。提高了勤工岗位服务和管理的效率性和科学性。  科技项目申报管理:科技项目发布、学生申请、教师审批。实现了对学生科技项目执行情况的监督、检查、项目验收鉴定和经费管理等工作流程化、规范化的管理。 就业信息管理:以“服务学生就业”理念为依托,构建一个针对性强,实时、方便的数据采集、分析和管理平台,逐步实现对学生就业信息的更好管理,提高信息化管理水平 , 为相关决策提供支持。 党员管理:支持以支部为核心的党员管理方式,加强和改进党员的管理,有助于党员能够及时参加党的组织生活,接受党组织的教育、管理和监督,更好的发挥先锋模范作用。 消息管理:意见反馈,处理。搭建师生沟通平台,保证各项事务公平、公正、公开处理。

求C语言高手编写学生信息管理系统
答:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息... 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:(1) 系统以菜单方式...

C语言程序设计 学生信息管理系统
答:【功能要求】(1)学生信息包括:学号,姓名,性别,出生(年,月,日),三门课成绩和总分(数学,英语,C语言,总分)。(2)数据格式:测试数据,以文件方式提供,studf.txt,数据文件自己建... 【功能要求】(1)学生信息包括:学号,姓名,性别,出生(年,月,日),三门课成绩和总分( 数学, 英语, C语言, 总分)。(2)数据格...

帮忙设计一个C语言的学生信息管理系统
答:具体要求如下:1、在主程序中,先显示如下菜单:简易学生信息管理系统***系统功能菜单***---1.录入学生信息2.按成绩排序3.增加学生信息4.按学号删... 具体要求如下:1、 在主程序中,先显示如下菜单: 简易学生信息管理系统 ***系统功能菜单*** --- 1. 录入学生信息 2. 按成绩排序 3. 增加学生信息 ...

用C语言编写录入学生信息(学号、性别、年龄、院系 )
答:int entering(student *input);//录入学生信息void show_stu(student *show, int serial);//显示指定学生信息void start();//程序开始界面void change(student *former, student *latter, student *temp);//交换两个节点的数据域void main(){ int choice=0; init(); while(1) { system("cls"); start(...

用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)
答:printf("请输入你要输入的学生电话\n");scanf("%d",&A[i].tel);i++;printf("退出请任意输入,继续请输入y\n");getchar();scanf("%c",&a);} else { printf("你的空间已满\n");break;} } } void output(){ for(int i=1;i<=M;i++)printf("学号:%d姓名:%s地址:%s电话:...

C语言编写学生信息录入 信息包括学号 姓名 性别 年龄 成绩 能实现学生...
答:include "iostream"include "String.h"using namespace std;struct List { char name[20];int NO;};template <class List> struct Node { List data;Node<List> *next;};template <class List> class Student { Node<List> *head;public:Student(int m);void Setdata(int n);void Print...

c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添...
答:代码如下:/*用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,学号,姓名,成绩(实现添加,删除,查询,排序,平均)*/ include <stdio.h> include <iostream> include <string.h> include <stdlib.h> using namespace std;const int n=5;/ nodeEntry : 节点数据类型 nodeADT...

用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别...
答:/ 用c语言链表编写一个学生信息系统程序,要求输出学生的学号,姓名,性别,还有三门课比如语,数,外的成绩 / //FileName: stuinfo.c include <stdio.h> include <stdlib.h> include <string.h> define SERIALLEN 20 define COURSENUM 3 typedef struct { char course[SERIALLEN];float score;}...

用C语言程序书写学生信息管理系统
答:2015-07-18 用C语言编程学生信息管理系统! 15 2015-04-11 学生成绩管理系统,使用c语言程序编写。 71 2010-07-13 c语言编写学生信息管理系统 174 2011-06-13 用C语言编写学生信息管理系统(带说明,每句说明) 14 2011-01-04 如何用C语言程序编写一个学生成绩管理系统,界面用菜单进行设计... 41 2009...

c语言设计,编程实现学生基本信息管理程序
答:1、编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。编程实现学生信息的添加,查询(至少提供按学号查询、班级和专业的综合查询两种方... 1、 编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。编程实现学生信息的添加,查询(...