小型学生成绩管理
❶ 大作业:设计一个实用的小型学生成绩管理程序,要求具备建立、增加、删除、修改学生信息,
可以给我发一份吗?[email protected]
❷ 用C语言制作一个“学生成绩管理”的小型软件系统。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; /* */
struct student
{
char num[10];/* 学号 */
char name[20];
char sex[4];
int cgrade;
int mgrade;
int egrade;
int totle;
int ave;
char neartime[10];/* 最近更新时间 */
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
void menu()
{
printf("********************************************************************************");
printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n");
printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n");
printf("\t5保存学生资料\t\t\t\t\t0退出系统\n");
printf("********************************************************************************\n");
}
void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}
void Nofind()
{
printf("\n=====>提示:没有找到该学生!\n");
}
void printc() /* 本函数用于输出中文 */
{
printf(" 学号\t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分\n");
}
void printe(Node *p)/* 本函数用于输出英文 */
{
printf("%-12s%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);
}
Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}
void Add(Link l) /* 增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; /* 将指针置于最末尾 */
while(1)
{
printf("请你输入学号(以'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node));
strcpy(p->data.num,num);
printf("请你输入姓名:");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:");
scanf("%s",p->data.sex);
getchar();
printf("请你输入c语言成绩:");
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入数学成绩:");
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入英语成绩:");
scanf("%d",&p->data.egrade);
getchar();
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle / 3;
/* 信息输入已经完成 */
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;
}
}
void Qur(Link l) /* 查询学生 */
{
int sel;
char findmess[20];
Node *p;
if(!l->next)
{
printf("\n=====>提示:没有资料可以查询!\n");
return;
}
printf("\n=====>1按学号查找\n=====>2按姓名查找\n");
scanf("%d",&sel);
if(sel==1)/* 学号 */
{
printf("请你输入要查找的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) /* 姓名 */
{
printf("请你输入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();
}
void Del(Link l) /* 删除 */
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以删除!\n");
return;
}
printf("\n=====>1按学号删除\n=====>2按姓名删除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要删除的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("请你输入要删除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}
void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以修改!\n");
return;
}
printf("请你输入要修改的学生学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("请你输入新学号(原来是%s):",p->data.num);
scanf("%s",p->data.num);
printf("请你输入新姓名(原来是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("请你输入新性别(原来是%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade);
scanf("%d",&p->data.cgrade);
getchar();
printf("请你输入新的数学成绩(原来是%d分):",p->data.mgrade);
scanf("%d",&p->data.mgrade);
getchar();
printf("请你输入新的英语成绩(原来是%d分):",p->data.egrade);
scanf("%d",&p->data.egrade);
p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;
p->data.ave=p->data.totle/3;
printf("\n=====>提示:资料修改成功!\n");
shoudsave=1;
}
else
Nofind();
}
void Disp(Link l)
{
int count=0;
Node *p;
p=l->next;
if(!p)
{
printf("\n=====>提示:没有资料可以显示!\n");
return;
}
printf("\t\t\t\t显示结果\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}
void Tongji(Link l)
{
Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点 */
Node *r=l->next;
if(!r)
{
printf("\n=====>提示:没有资料可以统计!\n");
return ;
}
pm=pe=pc=pt=pa=r;
while(r!=NULL)
{
if(r->data.cgrade>=pc->data.cgrade)
pc=r;
if(r->data.mgrade>=pm->data.mgrade)
pm=r;
if(r->data.egrade>=pe->data.egrade)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;
r=r->next;
}
printf("------------------------------统计结果--------------------------------\n");
printf("总分最高者:\t%s %d分\n",pt->data.name,pt->data.totle);
printf("平均分最高者:\t%s %d分\n",pa->data.name,pa->data.ave);
printf("英语最高者:\t%s %d分\n",pe->data.name,pe->data.egrade);
printf("数学最高者:\t%s %d分\n",pm->data.name,pm->data.mgrade);
printf("c语言最高者:\t%s %d分\n",pc->data.name,pc->data.cgrade);
printstart();
}
void Sort(Link l)
{
Link ll;
Node *p,*rr,*s;
ll=(Link)malloc(sizeof(Node)); /* 用于做新的连表 */
ll->next=NULL;
if(l->next==NULL)
{
printf("\n=====>提示:没有资料可以排序!\n");
return ;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息 */
s->data=p->data;
s->next=NULL;
rr=ll;
while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>提示:排序已经完成!\n");
}
void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}
void main()
{
Link l;/* 连表 */
FILE *fp; /* 文件指针 */
int sel;
char ch;
char jian;
int count=0;
Node *p,*r;
printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------福建农业职业学院计应0501 黄欢(32号)\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;
fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>提示:文件已经打开,正在导入记录......\n");
while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}
fclose(fp); /* 关闭文件 */
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);
while(1)
{
menu();
printf("请你选择操作:");
scanf("%d",&sel);
if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>提示:你已经退出系统,再见!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; /* 增加学生 */
case 2:Del(l);break;/* 删除学生 */
case 3:Qur(l);break;/* 查询学生 */
case 4:Modify(l);break;/* 修改学生 */
case 5:Save(l);break;/* 保存学生 */
case 9:printf("\t\t\t==========帮助信息==========\n");break;
default: Wrong();getchar();break;
}
}
}
❸ 用C语言编写一个小型的学生成绩管理程序,具体要求如下:
学习计算机,怎么可以这么学哩。这个东西自己写写,有那么难死人??
❹ C语言的小型学生成绩管理系统
建议自己去改改
仅作为参考
#include<stdio.h>
#include<string.h>
typedef struct{
char name[20];
int number;
int grade;
int class;
float mark[10];
float average;
}T;
void show(T *student,int *tp,int n) /* 把成绩显示在屏幕上 */
{
int i,j;
char a[3]=" ";
printf("***********************************************************\n");
printf(" name number grade class average order\n");
for(i=0;i<n;i++)
{
printf("-----------------------------------------------------------\n");
printf("%d:\n",i+1);
printf(" %s %d %d %d %f %d\n",student[tp[i]].name,student[tp[i]].number,student[tp[i]].grade,student[tp[i]].class,student[tp[i]].average,tp[i]+1);
printf("mark:");
for(j=0;j<2;j++)
printf("%s%d:%f",a,j+1,student[tp[i]].mark[j]);
printf("\n");
}
printf("***********************************************************\n");
printf("\n\n\n");
}
void writefile(T *student,int n) /* 把成绩存在磁盘上 */
{
FILE *fp;
int i,j;
if((fp=fopen("d:\\kanwei.txt","w+"))==NULL)
{
printf("can't open file");
exit(0);
}
for(i=0;i<=n;i++)
{
fprintf(fp,"%s %d %d %d ",student[i].name,student[i].number,student[i].grade,student[i].class);
for(j=0;j<2;j++)
fprintf(fp,"%f ",student[i].mark[j]);
fprintf(fp,"%f\n",student[i].average);
}
fclose(fp);
}
void students(T *student,T *temp,int m,int n,int k) /* 实现两个结构体的拷贝 */
{
int i;
if(k==0)
{
strcpy(student[n].name,temp[m].name);
student[n].number=temp[m].number;
student[n].grade=temp[m].grade;
student[n].class=temp[m].class;
for(i=0;i<2;i++)
student[n].mark[i]=temp[m].mark[i];
student[n].average=temp[m].average;
}
else if(k==1)
{
strcpy(temp[m].name,student[n].name);
temp[m].number=student[n].number;
temp[m].grade=student[n].grade;
temp[m].class=student[n].class;
for(i=0;i<2;i++)
temp[m].mark[i]=student[n].mark[i];
temp[m].average=student[n].average;
}
}
void addfile(T *student,int n) /* 加入新学生到文件 */
{
T temp[2];
int i,j=1;
float ave=0.0;
printf("Please input the student:\n");
printf(" name number grade class mark1 mark2\n");
printf("****************************************************\n");
scanf("%s",temp[0].name);
scanf("%d",&temp[0].number);
scanf("%d",&temp[0].grade);
scanf("%d",&temp[0].class);
for(i=0;i<2;i++)
{
scanf("%f",&temp[0].mark[i]);
ave=ave+temp[0].mark[i];
}
temp[0].average=ave=ave/2;
i=0;
while(ave<=student[i].average&&i<n)
i++;
students(student,temp,j%2,i,1); /* temp[j/2]=student[i]; */
students(student,temp,(j+1)%2,i,0); /* student[i]=stu; */
for(;i<n;i++)
{
j++;
students(student,temp,j%2,i+1,1); /* temp[(i+2)/2]=student[i+1]; */
students(student,temp,(j+1)%2,i+1,0); /* student[i+1]=temp[(i+1)/2]; */
}
writefile(student,i);
}
void showall(T *student,int n) /* 显示文件中所有的学生 */
{
int i;
int a[30];
for(i=0;i<n;i++)
a[i]=i;
show(student,a,n);
}
int find(T *student,int n,int *tp) /* 在文件中查询学生可以多行查询 */
{
int k,im=0,i,m,num,gra,clas;
char na[20];
float ord;
printf("*******************************\n");
printf(" name n&g&c ave order\n");
printf(" 1 2 3 4 \n");
printf("*******************************\n");
scanf("%d",&k);
switch(k)
{
case 1:
scanf("%s",&na);
for(i=0;i<n;i++)
{
if(strcmp(student[i].name,na)==0)
{
tp[im++]=i;
}
}
break;
case 2:
scanf("%d%d%d",&num,&gra,&clas);
for(i=0;i<n;i++)
{
if(student[i].number==num&&student[i].grade==gra&&student[i].class==clas)
{
tp[im++]=i;
}
}
break;
case 3:
scanf("%f",&ord);
for(i=0;i<n;i++)
{
if(ord==student[i].average)
{
tp[im++]=i;
}
}
break;
case 4:
scanf("%d",&m);
if(m<=n)
{
tp[im++]=m-1;
}
break;
case 5:
break;
default:
printf("error operate!\n");
exit(0);
}
if(im>=1)
show(student,tp,im);
if(im==0&&k<5&&k>=1)
printf("cant find!\n");
return(im);
}
dele(T *student,int n,int *tp) /* 对某个学生进行删除 */
{
int j;
printf("choose the student:\n");
j=find(student,n,tp);
if(j>=1)
{
if(j>1)
{
printf("Which one do you want to choose?\n");
scanf("%d",&j);
j=tp[j-1];
}
else
j=tp[0];
for(;j<n-1;j++)
students(student,student,j+1,j,0);
writefile(student,j-1);
}
}
void modify(T *student,int n,int *tp) /* 对某个学生进行修改 */
{
dele(student,n,tp);
addfile(student,n-1);
}
void readfile(int m) /* 读取文件中的数据,程序的基础 */
{
FILE *fp;
T student[30];
float mark[10],ave;
int i=0,j,tp[20];
if((fp=fopen("d:\\kanwei.txt","a+t"))==NULL)
{
printf("can't open file");
exit(0);
}
while(fscanf(fp,"%s%d%d%d",student[i].name,&student[i].number,&student[i].grade,&student[i].class)!=EOF)
{
for(j=0;j<2;j++)
{
fscanf(fp,"%f",&mark[j]);
student[i].mark[j]=mark[j];
}
fscanf(fp,"%f",&ave);
student[i].average=ave;
i++;
}
fclose(fp);
switch(m)
{
case 1:
find(student,i,tp);
break;
case 2:
addfile(student,i);
break;
case 3:
dele(student,i,tp);
break;
case 4:
modify(student,i,tp);
break;
case 5:
showall(student,i);
break;
default:
exit(0);
}
}
main() /* 主程序 */
{
int i=1;
while(i)
{
printf(" Choose the operate:\n");
printf("******************************************************\n");
printf(" find add delete modify showall exit\n");
printf(" 1 2 3 4 5 0\n");
printf("******************************************************\n");
scanf("%d",&i);
readfile(i);
}
}
❺ .编写一个小型学生成绩管理系统。
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define len (sizeof(struct Student))
#define isdigest(c) ((c)>='0'&&(c)<='9')
typedef struct Student
{
int num;
int number;
char name[80];
int chinese;
int English;
int Math;
int term;
int score;
char grade_class[20];
struct Student *next;
}Stud;
//Stud *create_list();
int insert_list(Stud *head,int term,char *grade_class,int number,char *name,int chinese,int English,int Math,int n);
int del_list(Stud *head,int number);
del_list_class(Stud *head,char *grade_class);
Stud *find_list(Stud *head,int number);
Stud *find_list1(Stud *head,char *name);
Stud *find_list2(Stud *head,int term);
void brow_list(Stud *head);
int change_number(Stud *p);
int choice;
int mark1;
int number;
int term;
char name[80];
char grade_class[20];
char choice_char[1];
int fan_list(Stud *head);
int chinese_list(Stud *head);
int English_list(Stud *head);
int Math_list(Stud *head);
int grade_class_list(Stud *head);
int term_list(Stud *head);
void paixu_list(Stud *head,int mark_sub);
void main_menu();
void son_menu(Stud *head);
void view_menu(Stud *head);
void view_menu_view();
void save_list(Stud *head);
Stud *open_list();
void main()///////////////////////////////////////////////////////////////////////////主函数
{
Stud * head;
char *yes_no;
int chinese;
int English;
int Math;
head=NULL;
yes_no=(char*)malloc(sizeof(char)*10);
main_menu();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0]))
{
printf("输入错误!\07\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
head=open_list();
// head=create_list();
}
else
{
printf("库已存在连接!\07\n");
// printf("\n\n\t\t按任意键返回....");
// getch();
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
while(1)
{
printf("请输入班级:");
scanf("%s",grade_class);
fflush(stdin);
if(strcmp(grade_class,"0")==0)
{
break;
}
lable1: printf("请输入学号(输入0结束!):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
printf("请录入学期:");
scanf("%d",&term);
printf("姓名:");
scanf("%s",name);
printf("请录入语文成绩:");
scanf("%d",&chinese);
printf("请录入英语成绩:");
scanf("%d",&English);
printf("请录入数学成绩:");
scanf("%d",&Math);
insert_list(head,term,grade_class,number,name,chinese,English,Math,-1);
printf("是否为同一班级?(Y)or(N):");
fflush(stdin);
gets(yes_no);
fflush(stdin);
if(yes_no[0]=='Y'||yes_no[0]=='y')
{
goto lable1;
}
else
{
}
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
son_menu(head);
// printf("输入姓名:");
// scanf("%s",name);
// find_list(head,name);
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
brow_list(head);
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
fan_list(head);
break;
case '6':
main_menu();
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
view_menu(head);
}
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '9':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
head=NULL;
printf("已经断开连接!\n");
printf("\n\n\t\t按任意键返回....");
getch();
}
break;
default:
return;
}
}while(1);
}
void main_menu()///////////////////////////////////////////////////////////////主菜单
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (学生成绩管理系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、建立虚拟数据库连接并载入数据. *\n");
printf("* 2、插入新学生数据. *\n");
printf("* 3、查询、删除与修改学生信息窗口. *\n");
printf("* 4、数据浏览. *\n");
printf("* 5、逆序排列学生. *\n");
printf("* 6、查看菜单内容. *\n");
printf("* 7、高级排列查询窗口. *\n");
printf("* 8、保存数据. *\n");
printf("* 9、断开连接. *\n");
printf("* 0、退出程序. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (高级排列查询系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、排列学生信息(按语文成绩). *\n");
printf("* 2、排列学生信息(按英语成绩). *\n");
printf("* 3、排列学生信息(按数学成绩). *\n");
printf("* 4、排列学生信息(按班级). *\n");
printf("* 5、排列学生信息(按学期). *\n");
printf("* 6、排列学生信息(按总分). *\n");
printf("* 7、保存信息. *\n");
printf("* 8、查看菜单内容. *\n");
printf("* 9、浏览数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void son_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (学生成绩查询系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、查找学生信息(按学号). *\n");
printf("* 2、查找学生信息(按姓名). *\n");
printf("* 3、查找学生信息(按班级). *\n");
printf("* 4、删除学生资料(按学号). *\n");
printf("* 5、删除学生资料(按班级). *\n");
printf("* 6、查看菜单内容. *\n");
printf("* 7、浏览数据. *\n");
printf("* 8、保存数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu(Stud *head)/////////////////////////////////////排列子菜单
{
view_menu_view();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'9')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
chinese_list(head);
printf("排列成功!\n");
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
English_list(head);
printf("排列成功!\n");
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
Math_list(head);
printf("排列成功!\n");
}
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
grade_class_list(head);
printf("排列成功!\n");
}
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
term_list(head);
printf("排列成功!\n");
}
break;
case '6':
printf("对不起,此功能靠你自己实现了\07\n");
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '8':
view_menu_view();
break;
case '9':
if(head==NULL)
{
printf("库未建立连接!\07\n");
break;
}
brow_list(head);
break;
default:
main_menu();
return;
}
}while(1);
}
void son_menu(Stud *head)////////////////////////////////////////////////查询子菜单
{
son_menu_view();
do
{
printf("\n请选则操作(输入0~8):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'8')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
do{
printf("\n请输入学号(按0结束):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
find_list(head,number);
}while(1);
break;
case '2':
do{
printf("\n请输入姓名(按0结束):");
scanf("%s",&name);
fflush(stdin);
if(strcmp(name,"0")==0)
{
break;
}
find_list1(head,name);
}while(1);
break;
case '3':
do{
printf("\n请输入学期(按0结束):");
scanf("%d",&term);
fflush(stdin);
if(term==0)
{
break;
}
find_list2(head,term);
}while(1);
break;
case '4':
if(head==NULL)
{
printf("库未建立连接!\007\n");
break;
}
printf("输入学号:");
scanf("%d",&number);
fflush(stdin);
del_list(head,number);
break;
case '5':
if(head==NULL)
{
printf("库未建立连接!\07\n");
}
printf("输入班级:");
scanf("%s",&grade_class);
fflush(stdin);
del_list_class(head,grade_class);
break;
case '6':
son_menu_view();
break;
case '7':
if(head==NULL)
{
printf("库未建立!\07\n");
break;
}
brow_list(head);
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
default:
main_menu();
return;
}
}while(1);
}
Stud *open_list()//////////////////////////////////////////载入数据
{
Stud *head;
char temp_char[8
❻ 求助做一个小型数据库管理系统如学生成绩管理系统
用在线的办公产品,表单大师,可以做小型的数据库查询系统从本地把学生数据导入到表单中,设置一个公开查询,通过一个链接就可以查到i自己的数据了
❼ 设计一个实用的小型学生成绩管理程序,要求具备建立增加删除
你要买啊,还是要自己做,想帮你做一个设计?
❽ 我急需一个用C语言编写的小型学生成绩管理系统,希望大家帮我一下
这个,你确定,抄用c语言去做一个袭系统,感觉你真的想太多了,c语言最多写一个底层的代码,没办法做应用界面系统的,推荐你了解下java或者c++,如果你比较着急的话,可以去github上用开源的项目,然后稍微改一下就可以了。
❾ C编译的程序(小型学生成绩管理系统)遇到问题需要关闭
程序需要关闭,这么牛啊,呵呵 不过我也不知道问题出在哪里,不过推荐一下自己的程序,你可以按照自己想要的改一下啊,学生成绩管理系统:
#i nclude<iostream.h>
#i nclude<stdlib.h>
struct student
{
int num;
char name[20];
int foxscore;
int cscore;
int englishscore;
struct student *next;
};
void menu()
{
cout<<" welecome to my student grade management system"<<endl;
cout<<" please follow everyone step in the menu"<<endl;
cout<<" 1.input information"<<endl;
cout<<" 2.total scores"<<endl;
cout<<" 3.sort"<<endl;
cout<<" 4.query"<<endl;
cout<<" ***************************************************"<<endl;
}
struct student *creat(struct student *head) // 函数返回的是与节点相同类型的指针
{
struct student *p1,*p2;
p1=p2=(struct student*) malloc(sizeof(struct student)); // 申请新节点
cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore; // 输入节点的值
p1-> next = NULL; // 将新节点的指针置为空
for(int i=1;i<=4;i++)
{
if (head==NULL) head=p1; //空表,接入表头
else p2->next=p1; // 非空表,接到表尾
p2 = p1;
p1=(struct student *)malloc(sizeof(struct student)); //申请下一个新节点
if(i<=3)
{
cin>>p1->num>>p1->name>>p1->foxscore>>p1->cscore>>p1->englishscore;
}
//输入节点的值
}
return head; //返回链表的头指针
}
void count(struct student *head)
{
struct student *temp;
temp=head; //取得链表的头指针
for(int i=1;i<=4;i++)
{
int m;
m=temp->foxscore+temp->cscore+temp->englishscore;
cout<<m<<endl;//输出链表节点的值
temp=temp->next; //跟踪链表增长
}
}
void sort(struct student *head)
{
struct student *tp;
tp=head;
int a[4];//定义总分数组
int i,j,k;
a[1]=tp->foxscore+tp->cscore+tp->englishscore;
tp=tp->next;
a[2]=tp->foxscore+tp->cscore+tp->englishscore;
tp=tp->next;
a[3]=tp->foxscore+tp->cscore+tp->englishscore;
tp=tp->next;
a[4]=tp->foxscore+tp->cscore+tp->englishscore;
for(j=1;j<=3;j++)//冒泡法排序
for(k=1;k<=4-j;k++)
if(a[k]<a[k+1])
{
int t=a[k];a[k]=a[k+1];a[k+1]=t;
}
for(i=1;i<5;i++)
cout<<a[i]<<endl;
}
void query(struct student *head)
{
struct student *temper;
temper=head;
int number;
cin>>number;
for(int i=1;i<=4;i++)
{
if(number==temper->num)
{
cout<<" name is:"<<temper->name<<endl;
cout<<" fox score is:"<<temper->foxscore<<endl;
cout<<" c score is:"<<temper->cscore<<endl;
cout<<" English score is:"<<temper->englishscore<<endl;
cout<<" congratulation,syetem have found what you want to search"<<endl;
}
temper=temper->next;
}
}
void main()
{
menu();
cout<<" firstly,please input information:"<<endl;
struct student *head;
head=NULL; /* 建一个空表*/
head=creat(head); /* 创建单链表*/
cout<<" secondly,count the total score each student:"<<endl;
count(head);
cout<<" thirdly,sorting the total score:"<<endl;
sort(head);
cout<<" enter num that you can search each shtudent's information"<<endl;
query(head);
cout<<" thanks you for use my student grade management system"<<endl;
}