C语言学生信息管理系统程序相映论文!!

作者&投稿:牛菁 (若有异议请与网页底部的电邮联系)
C语言学生信息管理系统程序相映论文!!~

#ifndef H_STUDENT_HH #define H_STUDENT_HH #include "stdio.h" #include "string.h" #include "malloc.h" #define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/ #define numsubs 5 /*学科数目*/ typedef struct message_student /*结构体定义*/ { char number[6]; char name[20]; char sex[4]; float subject[numsubs]; float score; float average; int index; }student; extern int numstus; /*学生数目*/ extern student *pointer; /*指向结构体数组*/ extern int lens; int menu_select(); /*函数声明*/ int openfile(student stu[]); int findrecord(student stud[]); int writetotext(student stud[]); void welcome(); void display1(); void showtable(); void sort(student stu[]); void deleterecord(student stu[],int i); void addrecord(student stud[]); void display(student stud[],int n1,int n2); void amendrecord(student stud[]); void count(student stud[]); void sortnum(student stud[]); void sortnum2(student stud[]); void sortname(student stud[]); void sortname2(student stud[]); void sortcount(student stud[]); void sortcount2(student stud[]); void statistic(student stud[]); void display1(); #endif //#include "head.h" int menu_select() { char c; printf("

"); printf(" | 1. 增加学生记录 5.统计信息 |
"); printf(" | 2. 查询学生记录 6.打开文件 |
"); printf(" | 3. 修改学生记录 7.保存文件 |
"); printf(" | 4. 学生纪录排序 8.显示记录 |
"); printf(" | 0.退出系统 |
"); printf("

"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } //#include "head.h" int findrecord(student stud[]) /*查找信息*/ { char str[2]; int i,num; if(numstus==0) { printf("没有可被查找的记录
"); return -1; } else { printf("以何种方式查找?
1.学号2.姓名3.名次
"); gets(str); if(str[0]=='1') /*按学号查找*/ { printf("请输入学号:"); gets(str); for(i=0;i<=numstus;i++) if(strcmp(str,stud[i].number)==0) { display(stud,i,i); break;

#include
#include
#include
#define M 3
typedef struct node
{

char sno[20];
char name[20];
int score[M];
double avg;
struct node *next;
}linklist;
int listlength(linklist*head);
void output1(linklist*head);
void output2(linklist*head);
linklist *create()
{
linklist *head,*p,*t;
int n,i,j;
printf("请输入学生人数:");
scanf("%d",&n);
head=(linklist*)malloc(sizeof(linklist));
t=head;
for(i=0;i<n;i++)
{
p=(linklist*)malloc(sizeof(linklist));
printf("输入学号:");
scanf("%s",p->sno);
printf("输入姓名:");
scanf("%s",p->name);
printf("输入%d门功课成绩:",M);
for(j=0;j<M;j++)
scanf("%d",&p->score[j]);
printf("
");
t->next=p;
t=p;
}
p->next=NULL;
return head;
}

void insert(linklist*head)
{
linklist *p;
int i,n,j;
printf("输入你要插入的学生人数:");
scanf("%d",&n);
printf("你要插入的学生信息:
");
for(i=0;i<n;i++)
{p=(linklist*)malloc(sizeof(linklist));
p->next=head->next;
head->next=p;
printf("输入学号:");
scanf("%s",p->sno);
printf("输入姓名:");
scanf("%s",p->name);
printf("输入%d门功课成绩:",M);
for(j=0;j<M;j++)
scanf("%d",&p->score[j]);
}


}
void del(linklist*head)
{
linklist *p,*q;
char s[20];
printf("输入要删除学生的姓名:");
scanf("%s",s);
q=head;
p=head->next;
while(strcmp(p->name,s)!=0&&p)
{ q=p;
p=p->next;}
if(p==NULL)
printf("无此人
");
else
{q->next=p->next;
free(p);}

}

void change(linklist*head)
{
linklist*p;//修改学生信息模块!
int i,a[M];//M=3
char s[20];//存放学生姓名的数组!
printf("输入你要修改数据的学生姓名:");
scanf("%s",s);
p=head->next;
while(strcmp(p->name,s)!=0&&p)//遍历链表
p=p->next;
if(p==NULL)
printf("无此人
");
else
{ printf("%s%s",p->sno,p->name);
printf("请重新输入学生的%d门成绩:",M);
for(i=0;i<M;i++)
{scanf("%d",&a[i]);
p->score[i]=a[i];}

}

}


void sort(linklist*head)
{ double sum;//用学生的平均分进行排序!
linklist *p,*q,*t;
int i,j;
double temp;
int m=listlength(head);//求出链表长度的函数!(因为链表长度有变化所以写了这个函数)
q=p=head->next;
for(i=0;i<m;i++)
{
sum=0;
for(j=0;j<M;j++)//求出学生M门功课的成绩平均分
sum+=q->score[j];
p->avg=sum/M;
p=p->next;
q=p;
}
output2(head);
p=head->next;
printf("有不及格科目的学生:
");

for(i=0;i<m;i++)
{ for(j=0;j<M;j++)
if(p->score[j]<60)
{ printf("%s%s",p->sno,p->name);
for(j=0;j<M;j++)
printf("%d ",p->score[j]);
printf("
");
}
p=p->next;
}
printf("
");
printf("学生成绩排序:
");
t=NULL;
while(t!=head->next)
{
p=head;
q=p->next;
while(q->next!=t)
{
if(p->next->avgnext->avg)
{
p->next=q->next;
q->next=q->next->next;
p->next->next=q;
}
p=p->next;
q=p->next;
}
t=q;

}
}


int listlength(linklist*head)
{
int n=0;
linklist*p;
p=head->next;
while(p)
{n++;
p=p->next;
}
return n;
}

int menu()
{
int m,i;

printf("============================================================
");
printf("||1:录入学生数据 2:增加学生数据 ||
");
printf("||3:删除学生数据 4:改正学生数据 ||
");
printf("||5:排序 6:退出。 ||
");
printf("||=========================================================
");
printf("输入你要选择的功能:");
i=scanf("%d",&m);
system("cls");
fflush(stdin);
return m;

}
void output1(linklist*head)
{
linklist*p;
int i;
p=head->next;
while(p)
{
printf("%s%s",p->sno,p->name);
for(i=0;i<M;i++)
printf("%d ",p->score[i]);
p=p->next;
printf("
");
}
}

void output2(linklist*head)
{
linklist*p;
int i;
p=head->next;
while(p)
{
printf("%s%s",p->sno,p->name);
for(i=0;i<M;i++)
printf("%d ",p->score[i]);
printf("%lf",p->avg);
p=p->next;
printf("
");
}
}

int main(void)
{
linklist*p;
int k=0;

do
{
k=menu();
switch(k)
{
case 1:
p=create();
output1(p);break;
case 2:insert(p);
output1(p);break;
case 3:del(p);
output1(p);break;
case 4:change(p);
output1(p);break;
case 5:sort(p);
output2(p);break;
case 6:exit(0);
}
}while(k>=1&&k<=6);

return 0;

}


功能有点不同!但可以用!

#ifndef H_STUDENT_HH
#define H_STUDENT_HH

#include "stdio.h"
#include "string.h"
#include "malloc.h"

#define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/
#define numsubs 5 /*学科数目*/
typedef struct message_student /*结构体定义*/
{
char number[6];
char name[20];
char sex[4];
float subject[numsubs];
float score;
float average;
int index;
}student;

extern int numstus; /*学生数目*/
extern student *pointer; /*指向结构体数组*/
extern int lens;

int menu_select(); /*函数声明*/
int openfile(student stu[]);
int findrecord(student stud[]);
int writetotext(student stud[]);
void welcome();
void display1();
void showtable();
void sort(student stu[]);
void deleterecord(student stu[],int i);
void addrecord(student stud[]);
void display(student stud[],int n1,int n2);
void amendrecord(student stud[]);
void count(student stud[]);
void sortnum(student stud[]);
void sortnum2(student stud[]);
void sortname(student stud[]);
void sortname2(student stud[]);
void sortcount(student stud[]);
void sortcount2(student stud[]);
void statistic(student stud[]);
void display1();

#endif

//#include "head.h"
int menu_select()
{
char c;
printf("\n\n");
printf(" | 1. 增加学生记录 5.统计信息 |\n");
printf(" | 2. 查询学生记录 6.打开文件 |\n");
printf(" | 3. 修改学生记录 7.保存文件 |\n");
printf(" | 4. 学生纪录排序 8.显示记录 |\n");
printf(" | 0.退出系统 |\n");
printf("\n\n");
printf("请选择(0-8):");
c=getchar();
getchar();
return (c-'0');
}

//#include "head.h"
int findrecord(student stud[]) /*查找信息*/
{
char str[2];
int i,num;
if(numstus==0)
{
printf("没有可被查找的记录\n");
return -1;
}
else
{
printf("以何种方式查找?\n1.学号\t2.姓名\t3.名次\n");
gets(str);
if(str[0]=='1') /*按学号查找*/
{
printf("请输入学号:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].number)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='2') /*按姓名查找*/
{
printf("请输入姓名:");
gets(str);
for(i=0;i<=numstus;i++)
if(strcmp(str,stud[i].name)==0)
{
display(stud,i,i);
break;
}
else continue;
}
else if(str[0]=='3') /*按名次查找*/
{
printf("请输入名次:");
scanf("%d",&num);
getchar();
for(i=0;i<=numstus;i++)
if(num==stud[i].index)
{
display(stud,i,i);
break;
}
else continue;
}
if(i>numstus)
{
printf("没有查找所要的信息。\n");
return -1;
}
return i;
}
}

//#include"head.h"
int openfile(student stu[])
{
int i=0,j;
FILE *fp;
char filename[20],str[2];
if(numstus!=0)
{
printf("已经有记录存在,是否保存?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(stu);
}
printf("请输入文件名:");
gets(filename);
numstus=0;
if((fp=fopen(filename,"rb+"))==NULL)
{
printf("无法打开该文件\n");
return(-1);
}
fscanf(fp,"%d",&numstus);
fgetc(fp);
while(i<numstus)
{
fscanf(fp,"%s",stu[i].number);
fscanf(fp,"%s",stu[i].name);
fscanf(fp,"%s",stu[i].sex);
for(j=0;j<numsubs;j++)
fscanf(fp,"%f",&stu[i].subject[j]);
fscanf(fp,"%f",&stu[i].score);
fscanf(fp,"%f",&stu[i].average);
fscanf(fp,"%d",&stu[i].index);
i++;
}
fclose(fp);
printf("文件读取成功\n");
printf("是否显示纪录?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
display(stu,0,numstus-1);
return(0);
}
//#include "head.h"
void sort(student stud[])
{
int i,j=0;
char str[5];
student *p;
p=stud;
if(numstus==0)
{
printf("没有可供查询的记录!");
}
while(1)
{
for(i=0;;i++)
{
printf(" 请输入查询方式:");
printf("(直接输入回车则结束查询操作)\n");
printf("1.按照学号\t");
printf("2.按照姓名\t");
printf("3.按照名次\n");
gets(str);
if(strlen(str)==0) break;
if(str[0]=='1')
{
printf("请输入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortnum2(p);
else
sortnum(p);
display(stud,0,numstus-1);
}
else if(str[0]=='2')
{
printf("请输入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortname2(p);
else
sortname(p);
display(stud,0,numstus-1);
}
else if(str[0]=='3')
{
printf("请输入排序次序:\n");
printf("1.升序排列\t");
printf("2.降序排列\n");
gets(str);
if(str[0]=='1')
sortcount2(p);
else
sortcount(p);
display(stud,0,numstus-1);
}
else printf("请输入1~3");
printf("是否退出排序?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') break;
}
return;
}
}
void sortnum(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].number,stud[j].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortnum2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].number,stud[j+1].number)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j+1].name,stud[j].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortname2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(strcmp(stud[j].name,stud[j+1].name)>0)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j+1].index>stud[j].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
void sortcount2(student stud[])
{
int i,j;
student temp;
student *p;
p=stud;
for(i=0;i<numstus;i++)
for(j=0;j<numstus-i-1;j++)
{
if(stud[j].index>stud[j+1].index)
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
//#include"head.h"
void statistic(student stud[]) /*新增功能,输出统计信息*/
{
int i,j=0,k=0;
char c1,str[2];
float average[numsubs],sum=0;
if(numstus==0)
printf("没有可被查找的记录\n");
else
{
while(1)
{
printf("下面将统计考试成绩\n");
printf("请选择你要统计哪科的成绩 1.A\t2.B\t3.C\t4.D\t5.E\n");
c1=getchar();
printf("\t一共有个%d记录\n",numstus); /*总共记录数*/
switch(c1)
{
case '1':
for(i=0;i<numstus;i++) /*循环输入判断*/
{
sum+=stud[i].subject[0];
if(stud[k].subject[0]>stud[i].subject[0]) k=i;
if(stud[j].subject[0]<stud[i].subject[0]) j=i;
}
average[0]=sum/numstus;
printf("\t科目A的最高分:\n"); /*最高分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[0]);
printf("\t科目A的最低分是:\n"); /*最低分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[0]);
printf("\t科目A的平均分是 %5.2f\n",average[0]); /*平均分*/
break;
case '2':
for(i=0;i<numstus;i++) /*循环输入判断*/
{
sum+=stud[i].subject[1];
if(stud[k].subject[1]>stud[i].subject[1]) k=i;
if(stud[j].subject[1]<stud[i].subject[1]) j=i;
}
average[1]=sum/numstus;
printf("\t科目B的最高分:\n"); /*最高分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[1]);
printf("\t科目B的最低分是:\n"); /*最低分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[1]);
printf("\t科目B的平均分是 %5.2f\n",average[1]); /*平均分*/
break;
case '3':
for(i=0;i<numstus;i++) /*循环输入判断*/
{
sum+=stud[i].subject[2];
if(stud[k].subject[2]>stud[i].subject[2]) k=i;
if(stud[j].subject[2]<stud[i].subject[2]) j=i;
}
average[2]=sum/numstus;
printf("\t科目C的最高分:\n"); /*最高分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[2]);
printf("\t科目C的最低分是:\n"); /*最低分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[2]);
printf("\t科目C的平均分是 %5.2f\n",average[2]); /*平均分*/
break;
case '4':
for(i=0;i<numstus;i++) /*循环输入判断*/
{
sum+=stud[i].subject[3];
if(stud[k].subject[3]>stud[i].subject[3]) k=i;
if(stud[j].subject[3]<stud[i].subject[3]) j=i;
}
average[3]=sum/numstus;
printf("\t科目D的最高分:\n"); /*最高分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[3]);
printf("\t科目D的最低分是:\n"); /*最低分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[3]);
printf("\t科目D的平均分是 %5.2f\n",average[3]); /*平均分*/
break;
case '5':
for(i=0;i<numstus;i++) /*循环输入判断*/
{
sum+=stud[i].subject[4];
if(stud[k].subject[4]>stud[i].subject[4]) k=i;
if(stud[j].subject[4]<stud[i].subject[4]) j=i;
}
average[4]=sum/numstus;
printf("\t科目E的最高分:\n"); /*最高分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[j].number,stud[j].name,stud[j].subject[4]);
printf("\t科目E的最低分是:\n"); /*最低分*/
printf("\t\t学号:%s 姓名:%s 分数:%.2f\n",stud[k].number,stud[k].name,stud[k].subject[4]);
printf("\t科目E的平均分是 %5.2f\n",average[4]); /*平均分*/
break;
default:printf("输入错误!请输入1~5之间的数\n");
}
sum=0;
getchar();
printf("是否继续进行统计?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y') ;
else break;
}
}
}

int writetotext(student stud[]) /*将所有记录写入文件*/
{
int i=0,j;
FILE *fp;
char filename[20];
printf("输入文件名称:");
gets(filename);
fp=fopen(filename,"w");
fprintf(fp,"%d\n",numstus);
while(i<numstus)
{
fprintf(fp,"%s %s %s ",stud[i].number,stud[i].name,stud[i].sex);
for(j=0;j<numsubs;j++)
fprintf(fp,"%f ",stud[i].subject[j]);
fprintf(fp,"%f %f %d ",stud[i].score,stud[i].average,stud[i].index);
i++;
}
fclose(fp);
printf("已成功存储!\n");
display(stud,0,numstus-1);
numstus=0;
return 0;
}

void welcome()
{
printf("\t*************************************************************\n");
printf("\t\t\t\t这是一个学生成绩管理系统\n\t\t\t\t 倾情奉献 欢迎使用!\n");
printf("\t*************************************************************\n");

}

void showtable()
{
printf("---------------------------------------------------------------------------------------\n");
printf("学号\t姓名\t性别\tA\tB\tC\tD\tE\t总分\t平均分\t名次\n");
printf("---------------------------------------------------------------------------------------\n");
}

void display(student stud[],int n1,int n2)
{
int i;
showtable(); /*显示表头*/
for(i=n1;i<=n2;i++)
printf("%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,stud[i].index);
/*通过循环输出数据*/

}
void display1()
{
printf("\t\t本系统由计应精英一组亲情制作\n\n");
printf("\t\t制作人员列表: (按比划)\n");
printf("\t\t王庆斌\t\t\t张威\n\t\t李智\t\t\t周在峰\n\t\t杨凯\t\t\t胡杨\n");
printf("\n\n");
getchar();
}

#include<string.h>
void amendrecord(student stud[])
{
char str[5]; /*供用户输入*/
int i=-1,j;

if(numstus==0) /*没有记录返回*/
printf("没有可供修改的记录!");
while(i<0)
{
i=findrecord(stud);
if(i>=0)
{
printf("要删除这个学生的信息吗?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{
deleterecord(stud,i);
count(stud);
}
else
{
printf("确定要修改这个学生的信息吗?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
{

printf("下面请重新输入学生的信息:\n");
printf("请输入学号:");
gets(stud[i].number);
printf("请输入姓名:");
gets(stud[i].name);
printf("请输入性别(男/女 1/0):");
gets(str);
if(str[0]=='0')
strcpy(stud[i].sex,"女");
else
strcpy(stud[i].sex,"男");
stud[i].score=0;
printf("请按顺序输入成绩:");
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]);
stud[i].score+=stud[i].subject[j];
}
getchar();
stud[i].average=stud[i].score/numsubs;
}
count(stud);
}
display(stud,0,numstus-1);
}
printf("是否继续进行其他修改?(y/n)\n");
gets(str);
if(str[0]=='y'||str[0]=='Y')
i=-1;
else i=1;
}
}

void deleterecord(student stu[],int i) /*删除信息*/
{
int j;

while(i>=0)
{
for(j=i;j<numstus;j++)
stu[j]=stu[j+1];
numstus--;
printf("删除成功!\n");

}
}

void count(student stud[])
{
int i,j;
for(i=0;i<numstus;i++)
{
stud[i].index=1;
for(j=0;j<numstus;j++)
if(stud[j].score>stud[i].score)
stud[i].index++;
}
}

void addrecord(student stud[])
{
int i=0,j,num;
char str[5];
if(numstus!=0)
{
printf("已有记录存在是否覆盖?(y/n)\n");
gets(str);
if(str[0]=='Y'||str[0]=='y')
i=0;
else i=numstus;
}

printf("请输入增加的学生信息条目数:");
scanf("%d",&num);
if(i==0)
numstus=num;
else numstus+=num;
if(numstus>lens)
{
lens+=50;
pointer=(student *)realloc(pointer,lens*LEN);
}
printf("请输入学生信息:\n");
for(;i<numstus;i++)
{
getchar();
printf("请输入学号:");
gets(pointer[i].number);
printf("请输入姓名:");
gets(pointer[i].name);
printf("请输入性别(男/女 1/0):");
gets(pointer[i].sex);
if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女");
else strcpy(pointer[i].sex,"男");
printf("请输入各科成绩:(按ABCDE的顺序):");
stud[i].score=0;
for(j=0;j<numsubs;j++)
{
scanf("%f",&stud[i].subject[j]); /*计算总分*/
stud[i].score+=stud[i].subject[j];
}
stud[i].average=stud[i].score/numsubs; /*计算平均分*/
}
count(stud); /*附名次*/
display(stud,0,numstus-1);
getchar();
}
int numstus;
int lens;
student *pointer;
void main()
{
int i=1;
char str[2];
lens=100;
pointer=(student *)malloc(lens*LEN); /*分配内存*/
numstus=0;
welcome(); /*欢迎界面*/
while(i>0)
{
i=menu_select(); /*控制菜单*/
switch(i)
{
case 1:addrecord(pointer);break; /*增加学生信息*/
case 2:findrecord(pointer);break; /*查询学生信息*/
case 3:amendrecord(pointer);break; /*修改学生信息*/
case 4:sort(pointer);break; /*学生信息排序*/
case 5:statistic(pointer);break; /*统计信息*/
case 6:openfile(pointer);break; /*打开文件*/
case 7:writetotext(pointer);break; /*保存文件*/
case 8:display(pointer,0,numstus-1);break; /*显示记录*/
case 0:
if(numstus!=0) printf("是否保存当前记录?(y/n)");
gets(str);
if(str[0]=='y'||str[0]=='Y')
writetotext(pointer);
i=-1;break; /*退出系统*/
default:printf("请输入数字0~8:\n");i=1; /*输入错误*/
}
}
printf("\t\t欢迎再次使用本系统。\n\n");
display1();
}

. C语言学生信息管理系统程序相映论文

系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。1.1 系统及需求分析 1.1.1 系统需求 通过调查,要求系统需要有以下功能: ⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; ⑵ 由于该系统的使用对象多,要求有较好的权限管理; ⑶ 原始数据修改简单方便,支持多条件修改⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;⑹ 数据计算自动完成,尽量减少人工干预;1.1.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows 98中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:Visual Basic语言Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础


学生信息管理系统c语言
2018-01-12 学生信息管理系统用C语言实现, 2014-05-22 c语言学生信息管理系统代码 422 2010-05-18 C语言简单的学生信息管理系统 28 2010-09-18 学生信息管理系统C语言编程 2009-07-31 用c语言编写学生信息管理系统 1 2016-12-26 如何用C语言编写学生信息管理系统 19 更多类似问题 > 为你推荐: 特...

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

如何用c语言制作一个学生信息管理系统,要求以文件形式保存
printf("欢迎进入信息管理版块!\\n\\n");printf("\\025 1、添加学生\\n");printf("\\025 2、删除学生\\n");printf("\\025 3、修改学生信息\\n");printf("\\025 4、返回\\n");printf("请输入您的选择编号:\\n");scanf("%d",&j);getchar();if ( 1 == j) head = AddStu(head);else...

学生信息管理系统C语言编程
(1)学生信息包括:学生基本信息文件(student.txt)(注: 该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: (2)学生成绩基本信息文件(score.dat)及其内容如下:((注: 该文件内容需要编程录入数据,具体做法见下面的要求)学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分(3)...

学生信息管理系统C语言编程
printf(" ---学生成绩管理系统---\\n\\n");printf(" 1--创建学生成绩表 2--插入学生成绩\\n\\n");printf(" 3--删除学生成绩 4--按学号查找\\n\\n");printf(" 5--显示学生成绩表 0--退出\\n\\n");printf(" ---\\n");printf("请输入0-5:");scanf("%d",&...

学生信息管理系统 C语言
printf("\\n是否继续输入另外一个学生信息?(y\/n)");fflush(stdin);a=getchar();i++;}while(a=='y' && i<=50);} void xianshi(){ int j;printf("学号\\t姓名\\t年龄\\t性别\\t生日\\t\\t电话\\t籍贯\\tE_mail\\n");for(j=0;j<i;j++)printf("%d\\t%s\\t%d\\t%s\\t%s\\t%d\\t%s\\t...

学生信息管理系统C语言编程
一、学生信息管理系统1设计内容1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5、同学信息的显示6、最终的同学信息写入到文件7、退出数据要求:同学信息包括:学号... 一、学生信息管理系统1 设计内容 1、用户界面2、同学信息的插入3、同学信息的删除4、同学信息的查询5、同学信息的显示6、最终的...

用c语言设计一个学生信息管理系统,急啊.谢谢
nbsp;Input?nbsp;(nbsp;y\/nnbsp;)nbsp;:nbsp;777“);nbsp;nbsp;f=getchar();f=getchar();nbsp;nbsp;if(f!=‘y‘)nbsp;nbsp;nbsp;nbsp;return;nbsp;nbsp;fp=fopen(“fstu“,“wb“);nbsp;nbsp;for(i=0;iamp;lt;SIZE;i++)nbsp;nbsp;nbsp;nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp...

学生信息管理系统c语言程序
学生信息管理系统c语言程序 1,用口令(密码)形式验证管理员身份(可输入3次),合法者可进入,否则程序结束。2,有关功能说明A.建立学生成绩表;建立新的学生成绩文件;输入若干学生纪录,包括姓名、学好、班... 1, 用口令(密码)形式验证管理员身份(可输入3次),合法者可进入,否则程序结束。2, 有关功能说明A.建立...

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

库伦旗13468965784: 用C语言编写一个学生信息管理系统
万贾因力: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" jiemian();struct student { char name[50]; char sex[5]; int age; char num[50]; float score1; float score2; float score3; float sum; float ave;}stu[50],del; void gn1() {int...

库伦旗13468965784: 用C语言编写一个学生管理系统
万贾因力: 我有源程序,你能给多少分? 题目: 1、用C语言实现基于Dos操作系统的“学生成绩管理系统”. 2、系统启动进入后,弹出“学生成绩管理系统”的用户界面,用户通过界面选择成绩管理系统的各种功能,包括“退出”功能.(5分) 3、用户...

库伦旗13468965784: 利用C语言,研制和开发一个“学生管理”系统.本系统具有以下功能: -
万贾因力: /*Design By Shocksea(09110530,Softwave College)*/ #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib.h> #include <windows.h> struct student//学生结构体 { char name[10]; char sex[2]; char date[10]; char num[10]; char ...

库伦旗13468965784: 学生成绩管理系统(C语言)的设计方法论述 -
万贾因力: 程序设计的基本目标是用算法对问题的原始数据进行处理,从而获得所期望的效果.但这仅仅是程序设计的基本要求.要全面提高程序的质量,提高编程效率,使程序具有良好的可读...

库伦旗13468965784: 用C语言设计学生档案管理 -
万贾因力: /*用C语言设计学生档案管理 1. 题目描述编写一个程序来管理学生档案,系统能实现以下功能:输入信息:学生信息的输入;修改信息:对学生信息进行添加、删除与修改;查询:能够根据学号...

库伦旗13468965784: C语言编写学员信息管理系统
万贾因力: #include <stdio.h> #include <stdlib.h> #include <conio.h> struct student { int no; char name[20]; float score[2]; float avg; }; struct student input(); //单个学员信息录入 void display(struct student [],int); //显示所有学员信息 void sort(struct student [],int...

库伦旗13468965784: 如何用C语言编写学生信息管理系统 -
万贾因力: 参考如下学生信息管理系统的C源代码吧.#include <stdio.h>#include <string.h>/*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average; };/*声明学生数组及学生数量*/ struct Student ...

库伦旗13468965784: 用c语言做一个学生管理系统 -
万贾因力: struct stu {char a[10]; int i; int j; int k; int m; int n; int x; }; int sum(struct stu p) {int sum=p.i+p.j+p.k+p.m+p.n; return sum;} main() {struct stu p[6],ac; int l,a[6],b; for(l=0;l{scanf("%s%d%d%d%d%d",p[l].a,&p[l].i,&p[l].j,&p[l].k,&p[l].m,&p[l].n); p[l].x=sum(p[l])...

库伦旗13468965784: 学生信息管理系统C语言编程 -
万贾因力: 原发布者:xuekunlun666 用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作.在主函数里能实现以下功能.运行后出现一个选择提示.可选择的功能有1)创建新的学生信息...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网