c语言学生学籍管理系统

作者&投稿:欧阳秋 (若有异议请与网页底部的电邮联系)
c语言学生信息管理系统代码~

代码如下:
#include#include#include#include#includetypedef struct examinee //考生信息结构{ char examno[20]; //准考证号char name[10]; //姓名char sex[4]; //性别short age; //年龄char examtype[10]; //报考科目}ElemType;
typedef struct Node //定义链表结点{ElemType data; //数据域struct Node *next; //指针域 }Node,*List,*position;
List make_empty( List L ); //创建一个带头结点的空表int is_empty( List L ); //测试链表是否是空表int is_last( position p, List L ); //测试当前位置是否是表尾position make_node( position p,int n ); //创建结点并输入考生信息void put_information( position p ); //是否输出该考生信息 void put_name_information( List L ); //输出姓名为xx的考生信息int put_pos_information( position p ); //输出该地址考生信息 void link_to_tail( List L, position p ); //将结点连接到表尾 int ciculation_make(); //循环创建考生信息 int judge_put_all(); //是否输出所有考生信息void put_all(List L); //输出所有考生信息。position find( List L ); //查找第一个姓名为xx的元素并返回位置position find_previous( List L ); //查找第一个姓名为xx的元素并返回该元素直接前驱的位置//int judge_delete_val(); //询问是否删除考生数据int delete_val( List L ); //删除指定考生信息并输出其信息void menu(List L); //菜单函数 List L;//position p;
intmain( void ) {List L = NULL; //定义头结点指针position p = NULL; //定义表工作指针L = make_empty( L ); //创建空表printf("★★考生报名管理程序★★
----------------------------------------
");menu(L);return 0;}
//创建一个带头结点的空表Listmake_empty( List L){L = ( List ) malloc (sizeof( Node ));if(NULL == L){printf("内存分配失败");exit( 1 );}L->next = NULL;//printf("空表创建成功。
");return L;}
//创建结点并输入考生信息positionmake_node( position p ,int n){if(n) //n为1是创建结点并输入,n为0是修改{p = ( position ) malloc ( sizeof ( Node ));p->next = NULL ;}printf("请输入考生准考证号:");gets(p->data.examno);printf("请输入考生姓名:");gets(p->data.name);do{printf("请输入考生性别,只能输入“男”或者“女”:");gets(p->data.sex);}while( 0 != strcmp( p->data.sex, "男" ) && 0 != strcmp( p->data.sex, "女" )); //判断性别是否有误printf("请输入考生年龄:");scanf("%hd",&p->data.age);getchar(); //如果把这句删掉,就“无法执行”下面的报考类别/*下面的do while用来判断报考类别是否输入有误*/do{printf("请输入报考类别,只能输入“数学”或“英语”或者“数据结构”:");gets(p->data.examtype);}while( 0 != strcmp( "英语", p->data.examtype ) && 0 != strcmp( "数学", p->data.examtype ) && 0 != strcmp( "数据结构", p->data.examtype ));if(n){printf("报名成功
");}else{printf("修改成功
");}return p;}
//前插法; voidlink_to_tail( List L, position p){p->next = L->next;L->next = p;}
//查找第一个姓名为xx的元素并返回位置positionfind( List L ){position p = L->next;char name[10];printf("请输入你要查找的考生姓名:");gets(name);while( p != NULL && 0 != strcmp( p->data.name , name)){p=p->next;}return p;}//测试链表是否是空表intis_empty( List L ){return L->next == NULL;}//测试当前位置是否是表尾intis_last( position p, List L ){return p->next == NULL;}//输出姓名为xx的考生信息voidput_name_information( List L ){position p = find(L);if(p!=NULL){printf("您要查找的考生信息:
");printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s

",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);}else{printf("没有您要找的学生。
");}}//循环创建考生信息 intciculation_make(){int n = 2;do{printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:");scanf("%d",&n);getchar();}while( n != 0 && n != 1);return n;}
//是否输出考生信息 voidput_information( position p ){int n=2;do{printf("是否输出该考生信息?是请输入“1”,不是请输入“0”:");scanf("%d",&n);getchar();}while( n != 0 && n != 1);if(n){printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);}}
//是否输出所有考生信息 int judge_put_all(){int n = 2;do{printf("是否输出所有考生信息?是请输入“1”,不是请输入“0”:");scanf("%d",&n);getchar();}while( n != 0 && n != 1);return n;}
//输出所有考生信息voidput_all(List L){if(L->next == NULL){printf("现无考生报名!
");}else{position p=L->next;while( p != NULL ){printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);p=p->next;}}//getchar();}
//询问是否删除考生数据intjudge_delete_val(){int n = 2;
do{printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:");scanf("%d",&n);getchar();}while( n != 0 && n != 1);return n;}
//查找第一个姓名为xx的元素并返回其直接前驱的位置positionfind_previous( List L ){position q = L;position p = L->next;char name[10];printf("请输入你要查找的考生姓名:");gets(name);while( p != NULL && 0 != strcmp( p->data.name , name)){q=p;p=p->next;}if( p != NULL ){return q;}elsereturn p;}
//删除指定考生信息并输出其信息intdelete_val(List L){int n=2;position q=NULL;position p=find_previous( L ); //返回考生信息地址if( NULL == p ){printf("你要删除的考生不存在
");return 0;}else{q = p->next;p->next = q->next;printf("删除成功。
删除的考生信息为:
");printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s
",q->data.examno,q->data.name,q->data.sex,q->data.age,q->data.examtype);free(q);return 1;}
}
//输出该地址考试信息 intput_pos_information( position p ){if(p != NULL ){printf("准考证号:%s姓名:%s性别:%s年龄:%hd报考科目:%s

",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);return 1;}else{printf("没有您要查找的学生。");return 0;}} //菜单函数voidmenu(List L){printf(" a. 考生报名入口
");printf(" b. 查询考生信息
");printf(" c. 修改考生信息
");printf(" d. 删除考生信息
");printf(" e. 全部考生信息
");printf(" f. 程序作者信息
");printf(" g. 退出程序
");char n='h';while(n != 'g'){do //确定正确输入{printf("请通过字母序号选择功能:");n = getchar();getchar();putchar('
');if( n 'g'){printf("错误的字母序号。
");}}while( n 'g' );switch (n){case 'a':{printf("请输入报名考生信息:
");position p = make_node( p, 1 ); //创建新结点link_to_tail( L, p ); //将新结点连接到表上put_information( p ); //是否输出该考生信息putchar('
');}break;
case 'b':{put_name_information( L );putchar('
');}break;
case 'c':{int n=0;position p = NULL;printf("您正在进行修改操作。
");p = find(L);n = put_pos_information( p );if(n){make_node( p , 0 );put_information( p ); //是否输出该考生信息}putchar('
');}break;
case 'd':{printf("您正在进行删除操作。
");delete_val( L );putchar('
');}break;
case 'e':{put_all( L );putchar('
');}break;
case 'f':{printf(" 修改日期 版本号 修改人 修改内容
");printf(" --------------------------------------------------------
");printf(" 2018.6.19 v2.0 陈百川 增加主菜单
");printf(" 2018.6.23 v3.0 陈百川 增加生成文件功能

");printf(" 该版本号为v2.0
");putchar('
');}break;
default:break;}}printf(" 感谢本次使用,祝您生活愉快。");getch(); }

扩展资料:C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:百度百科——C语言

#include
#include
#include
#include
#include #define N 100
struct student
{char XUEHAO[20];
char XINGMING[10];
char XINGBIE[4];
char SHENGRI[10];
char JIGUAN[10];
char ZHUANYE[10];
char BANJI[6];
char XUEYUAN[20];
}student;void CAIDAN();
void ZHUCE();
void XIUGAI();
void SHANCHU();
void del_XUEHAO(FILE *fp);
void del_XINGMING(FILE *fp);
void CHAZHAO();
void sch_XUEHAO(FILE *fp);
void sch_XINGMING(FILE *fp);
void TONGJI();
void XIANSHI();
void TIANJIA();
void save( struct student student[]);main()
{ char choose,yes_no;
do
{ CAIDAN();
printf("
请输入序号: (1~8) ");
choose=getch();
system("cls");
switch(choose)
{
case'1': printf(" %c",choose);ZHUCE();break;
case'2': printf(" %c",choose);XIUGAI();break;
case'3': printf(" %c",choose);SHANCHU();break;
case'4': printf(" %c",choose);TIANJIA();break;
case'5': printf(" %c",choose);CHAZHAO();break;
case'6': printf(" %c",choose);TONGJI();break;
case'7': printf(" %c",choose);XIANSHI();break;
case'8': break;
default:printf("
%c 序号不对!
",choose);
}
if(choose=='8')break;
printf("
要继续选择吗 ? (Y/N)
");
do
{ yes_no=getch(); printf(" %c",yes_no);}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'||yes_no=='y');
}
void CAIDAN()
{
system("cls");
printf(" ****************************************
");
printf(" * ——请选择相应的功能—— *
");
printf(" * 1-----注册 *
");
printf(" * 2-----修改学生信息 *
");
printf(" * 3-----删除学生信息 *
");
printf(" * 4-----添加学生信息 *
");
printf(" * 5-----查找学生信息 *
");
printf(" * 6-----统计学生信息 *
");
printf(" * 7-----显示学生信息 *
");
printf(" * 8-----退出系统 *
");
printf(" ****************************************
");
}/*定义学生信息注册的函数*/
void ZHUCE()
{ int i=1;
struct student temp;
FILE *fp;
fp=fopen("G://123.txt","w");
if(fp==NULL){ printf("
打开文件失败!
");return; }
printf("
请输入第1个学生信息:
");
printf(" 学号(用#结束输入): ");
do
{ gets(temp.XUEHAO);}
while(strcmp(temp.XUEHAO," ")==0);
printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);
printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);
printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);
printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);
printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);
printf(" 班级(用#结束输入): ");gets(temp.BANJI);
printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);
while(temp.XUEHAO[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBIE[0]!='#'&&temp.SHENGRI[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.ZHUANYE[0]!='#'&&temp.BANJI[0]!='#'&&temp.XUEYUAN[0]!='#')
{ fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s
",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN,temp);
i++;
printf("
请输入第 %d 个学生信息:
",i);
printf(" 学号(用#结束输入): ");
do
{ gets(temp.XUEHAO);}
while(strcmp(temp.XUEHAO," ")==0);
printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);
printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);
printf(" 生日(用#结束输入): ");gets(temp.SHENGRI);
printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);
printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);
printf(" 班级(用#结束输入): ");gets(temp.BANJI);
printf(" 学院(用#结束输入): ");gets(temp.XUEYUAN);
}
student=temp;
save(&temp);
fclose(fp);
}/*定义保存函数*/
void save( struct student student[])
{
FILE *fp=NULL;
fp=fopen("G://123.txt","ab+");
fwrite(student,sizeof(struct student),1,fp);
fclose(fp);
}
/*定义查找学生信息的函数*/
void CHAZHAO()
{ char c;
FILE *fp;
fp=fopen("G://123.txt","r");
if(fp==NULL)
{ printf("
打开文件失败!
");return; }
printf("
按学号查找( 1 ),还是按姓名查找( 2 )? ");
c=getch();
putch(c);
if(c=='1') sch_XUEHAO(fp);
else if(c=='2') sch_XINGMING(fp);
else printf("
非法字符!
");
fclose(fp);
}
/*定义按学号查找学生信息的函数*/
void sch_XUEHAO(FILE *fp)
{ int flag=0,n=0;
char tempXUEHAO[20];
struct student temp;
printf("
请输入要查找学生信息的学号: ");
gets(tempXUEHAO);
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s
",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);
if(strcmp(tempXUEHAO,temp.XUEHAO)==0)
{ if(flag==0)
printf(" 学号 姓名 性别 生日 籍贯 专业 班级 学院
");
printf("%5s%10s%10s%10s%10s%10s%10s%10s
",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);
flag=1;
}
n++;
}
if(n==0) printf("
文件中无此信息!
");
else if(flag==0) printf("
文件中无此人!
");
}
/*定义按姓名查找学生信息的函数*/
void sch_XINGMING(FILE *fp)
{ int flag=0,n=0;
char tempXINGMING[10];
struct student temp;
printf("
请输入要查找学生信息的姓名: ");
gets(tempXINGMING);
while(feof(fp)==0)
{ fscanf(fp, "%5s%10s%10s%10s%10s%10s%10s%10s
",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.SHENGRI,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XUEYUAN);
if(strcmp(tempXINGMING,temp.XINGMING)==0)
{ if(flag==0) printf(" 学号 姓名 性别 生日 籍贯 专业 班级 学院
");
printf("%5s%10s%10s%10s%10s%10s%10s%10s
",temp.XUEHAO,temp.XINGMING,temp.XINGBIE,temp.SHENGRI,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XUEYUAN);
flag=1;
}
n++;
}
if(n==0) printf("
文件中无此信息!
");
else if(flag==0) printf("
文件中无此人!
");
}
/*定义删除学生信息的函数*/
void SHANCHU()
{ char c;
FILE *fp;
fp=fopen("G://123.txt","r");
if(fp==NULL)
{ printf("
文件打开失败!
");return; }
printf("
按学号删除( 1 ),还是按姓名删除( 2 )? ");
c=getch();
putch(c);
if(c=='1') del_XUEHAO(fp);
else if(c=='2') del_XINGMING(fp);
else printf("
非法字符!
");

}/*定义按学号删除学生信息的函数*/
void del_XUEHAO(FILE *fp)
{ char tempXUEHAO[20];
int n=0,i=0,k;
struct student stu[N];
while(feof(fp)==0)
{ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s
",stu[i].XUEHAO,stu[i]. XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);i++;n++;}
fclose(fp);
printf("
请输入要删除的学生信息的学号:");
scanf("%s",tempXUEHAO);
printf(" 删除成功! ");
for(i=0;i<n;i++)
if(strcmp(tempXUEHAO,stu[i].XUEHAO)==0)break;
if(i<n)
for(k=i;k<n;k++)
stu[k]=stu[k+1];
else printf("
无此人!
");
fp=fopen("G://123.txt","w");
if(fp==NULL)
{ printf("
文件打开失败!
");return; }
for(i=0;i<n-1;i++)
fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s
",stu[i].XUEHAO,stu[i].XINGMING,stu[i].XINGBIE,stu[i].SHENGRI,stu[i].JIGUAN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XUEYUAN);
}

#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>//用getch();
using namespace std;
/*程序中一般用i表示学生序号,j表示科目序号
*其他循环变量用k,m,n表示
*最多统计10科50人的成绩信息
*temname用于临时储存姓名
*temsub用于临时储存科目名称
*data.txt用于储存成绩; data1.txt用于储存学科名称、学时、学分; data2.txt用于储存学生信息
*/
char name[51][20] ; //姓名
int Id[51] ; //学号
int sex[51] ; //性别
int tel[51] ; //联系方式
char subject[11][20] ; //学科
int score[11][51] ; //成绩 格式为score[j][i] j i 以1为初始值
int shi[11] ; //学时
int fen[11] ; //学分
/*添加科目*/
void subadd () //添加科目
{
int j;
char subjectname[20];
cout<<"输入添加科目名称:\t";
cin>>subjectname;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0)
{
strcpy(subject[j],subjectname);
break;
}
}
cout<<endl<<"输入该科目学时:\t\t";
cin>>shi[j];
cout<<endl<<"输入该科目学分:\t\t";
cin>>fen [j];
cout<<endl<<"输入任意字符退出"<<endl;
getch();
}
/*删除科目*/
void subdel () //删除科目
{
int i,j,k;
char temsub[20];
cout<<"输入科目:"<<endl;
cin>>temsub;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
break;
}
for (k=j;k<=9;k++)
{
strcpy(subject[k],subject[k+1]); //删除科目j,将科目j后的数据移动
shi[k]=shi[k+1];
fen[k]=fen[k+1];
for (i=1;i<=50;i++) //删除科目j的成绩
{
score[k][i]=score[k+1][i];
}
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*判断成绩等级*/
void dengji(int af) //判断成绩等级
{
if (af>=90) cout<<"A";
else if (af>=80) cout<<"B";
else if (af>=70) cout<<"C";
else if (af>=60) cout<<"D";
else cout<<"E";
}
/*添加学生*/
void stuadd () //添加学生
{
int i,j;
char bijiao[20]="\0";
for (i=1;i<=50;i++)
{
if (strcmp(name[i],"KONG")==0)
break;
if ((strcmp(name[i],"KONG")!=0)&&(i==50))
{
cout<<"数据已满!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
}
cout<<"输入学生姓名:\t\t";
cin>>name[i];
cout<<endl<<"输入学生性别(男1/女2):";
cin>>sex[i];
cout<<endl<<"输入学生学号:\t\t";
cin>>Id[i];
cout<<endl<<"输入学生联系方式:\t";
cin>>tel[i];
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<"输入"<<subject[j]<<"成绩:\t\t";
cin>>score[j][i];
cout<<endl;
}
cout<<"姓名\t\t"<<name[i]<<endl<<"性别\t\t"<<sex[i]<<endl<<"学号\t\t"<<Id[i]<<endl<<"联系方式\t"<<tel[i]<<endl;
cout<<"科目\t\t分数\t\t等级\t\t"<<endl;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<subject[j]<<"\t\t"<<score[j][i]<<"\t\t";
dengji(score[j][i]);
cout<<endl;
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*删除学生*/
void studel () //删除学生
{
int i,j,k;
char temname[20];
cout<<"输入学生姓名:"<<endl;
cin>>temname;
for (i=1;i<=50;i++)
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
break;
}
for (k=i;k<=49;k++)
{
strcpy(name[k],name[k+1]);
Id[k]=Id[k+1];
sex[k]=sex[k+1];
tel[k]=tel[k+1];

}
for (k=i;k<=49;k++)
{
for (j=1;j<=10;j++)
score[j][k]=score[j][k+1];
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*查询成绩*/
void chengji () //查询成绩
{
char temname[20];
int i,j=1,ji=0,zongfen=0; //学分积,总学分 ji为学分积,zongfen为总学分
cout<<"输入学生姓名:"<<endl;
cin>>temname;
cout<<endl;
for (i=1;i<=50;i++) //查找学生
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
break;
}
cout<<"姓名\t\t"<<name[i]<<endl<<"性别\t\t"<<sex[i]<<endl<<"学号\t\t"<<Id[i]<<endl<<"联系方式\t"<<tel[i]<<endl;
if (strcmp(subject[j],"KONG")!=0) cout<<"科目\t\t"<<"成绩\t\t"<<"等级\t\t"<<endl;
for (j=1;j<=10;j++)
{
if (strcmp(subject[j],"KONG")==0) break;
cout<<subject[j]<<"\t\t"<<score[j][i]<<"\t\t";
dengji(score[j][i]);
cout<<endl;
}
for (j=1;j<=10;j++) //计算学分积
{
if (strcmp(subject[j],"KONG")==0) break;
ji=ji+score[j][i]*fen[j];
zongfen=zongfen+fen[j];
}
ji=ji/zongfen;
cout<<"学分积\t\t"<<ji<<endl;
cout<<"输入任意字符退出"<<endl;
getch();
}
/*成绩统计*/
void tongji () //成绩统计
{
char temsub[20],na[51][20],tempna[20];
int sc[51],tempsc;
int j,k,m;
cout<<"输入科目名称:"<<endl;
cin>>temsub;
cout<<endl;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
break;
}
for (k=1;k<=50;k++) //成绩排序采用冒泡排序法
{
strcpy(na[k],name[k]);
sc[k]=score[j][k];
}
for (k=1;k<=50;k++)
{
for (m=1;m<51-k;m++)
{
if (sc[m]>sc[m+1])
{
tempsc=sc[m];strcpy(tempna,na[m]);
sc[m]=sc[m+1];strcpy(na[m],na[m+1]);
sc[m+1]=tempsc;strcpy(na[m+1],tempna);
}
}
}
cout<<"名次\t\t"<<"姓名\t\t"<<"成绩\t\t"<<"等级\t\t"<<endl;
for (k=50;k>=1;k--)
{
if (strcmp(na[k],"KONG")==0) break;
cout<<51-k<<"\t\t"<<na[k]<<"\t\t"<<sc[k]<<"\t\t";
dengji(sc[k]);
cout<<endl;
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*修改成绩*/
void xiugai() //修改成绩
{
int i,j;
char temname[20],temsub[20];
cout<<"要修改的学生姓名:\t";
cin>>temname;
cout<<endl;
for (i=1;i<=50;i++) //查找学生
{
if ((strcmp(name[i],temname)!=0)&&(i==50))
{
cout<<"无此学生!"<<endl<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(name[i],temname)==0)
{
cout<<"输入科目名称:\t\t";
cin>>temsub;
cout<<endl;
for (j=1;j<=10;j++) //查找科目j
{
if ((strcmp(subject[j],temsub)!=0)&&(j==10))
{
cout<<"无此科目!"<<"输入任意字符退出"<<endl;
getch();
return;
}
if (strcmp(subject[j],temsub)==0)
{
cout<<"输入新的成绩:\t\t";
cin>>score[j][i];
cout<<endl;
break;
}
}
break;
}
}
cout<<"输入任意字符退出"<<endl;
getch();
}
/*主界面*/
void ShowMenu() //主界面
{
cout<<endl<<endl;
cout<<" 学 生 成 绩 管 理 系 统 "<<endl<<endl;
cout<<"***************************** 9.初始化程序 **************************"<<endl<<endl;
cout<<"----------------------------- 1.添加科目 --------------------------"<<endl;
cout<<"----------------------------- 2.删除科目 --------------------------"<<endl;
cout<<"----------------------------- 3.添加学生 --------------------------"<<endl;
cout<<"----------------------------- 4.删除学生 --------------------------"<<endl;
cout<<"----------------------------- 5.查询成绩 --------------------------"<<endl; //含学分积
cout<<"----------------------------- 6.各科排名 --------------------------"<<endl;
cout<<"----------------------------- 7.修改成绩 --------------------------"<<endl;
cout<<"----------------------------- 0.退出系统 --------------------------"<<endl;
cout<<"初始化同时会清空已输入的数据!!"<<endl<<"初次使用程序请初始化!!"<<endl;
cout<<"\n\t\t\n\t\t请选择:";
}
void readtxt() //读取信息
{
int i,j;
ifstream file("data.txt");
for (i=1;i<=50;i++)
{
for (j=1;j<=10;j++)
{
file>>score[j][i];
}
}
file.close();
}
void readtxt1()
{
int j;
ifstream file("data1.txt");
for (j=1;j<=10;j++)
{
file>>subject[j];
file>>shi[j];
file>>fen[j];
}
file.close();
}
void readtxt2()
{
int i;
ifstream file("data2.txt");
for (i=1;i<=50;i++)
{
file>>name[i];
file>>Id[i];
file>>sex[i];
file>>tel[i];
}
file.close();
}
/*存入成绩*/
void savetxt()
{
int i,j;
FILE *fp,*fp1,*fp2;
if ((fp=fopen("data.txt","w+"))==NULL) //存入成绩
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (i=1;i<=50;i++)
{
for (j=1;j<=10;j++)
{
fprintf(fp,"%d ",score[j][i]);
}
}
fclose(fp);

if ((fp1=fopen("data1.txt","w+"))==NULL) //存入学科名称、学时、学分
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (j=1;j<=10;j++)
{
fprintf(fp1,"%s %d %d ",subject[j],shi[j],fen[j]);
}
fclose(fp1);

if ((fp2=fopen("data2.txt","w+"))==NULL) //存入学生信息
{
cout<<"文件不能打开"<<endl;
exit(0);
}
for (i=1;i<=50;i++)
{
fprintf(fp2,"%s %d %d %d ",name[i],Id[i],sex[i],tel[i]);
}
fclose(fp2);
}
void chu() //初始化程序,将所有数据赋值"KONG"或0
{
int i,j;
for (j=0;j<=10;j++) //"KONG"用于表示空值,无数据
{
shi[j]=0;
fen[j]=0;
strcpy(subject[j],"KONG");
for (i=1;i<=50;i++)
{
score[j][i]=0;
}
}
for (i=0;i<=50;i++)
{
Id[i]=0;
sex[i]=0;
tel[i]=0;
strcpy(name[i],"KONG");
}
savetxt();
}
int main ()
{
system("color 30");//背景湖蓝色,字符黑色
int x,j,i=0;

readtxt ();
readtxt1();
readtxt2();
bool quit=false;
cout<<"\t\t -------------------------------------------------"<<endl; //欢迎界面开始
for(i=0;i<2;i++)
cout<<"\t\t|\t\t\t\t\t\t |"<<endl;
cout<<"\t\t|★★★★【 欢迎进入学生成绩管理系统 】★★★★ |"<<endl;
for(i=0;i<2;i++)
cout<<"\t\t|\t\t\t\t\t\t |"<<endl;
cout<<"\t\t -------------------------------------------------\n"<<endl; //欢迎界面结束
cout<<endl<<"\t\t按任意键开始";
getch();
while(!quit)
{
system("cls");
ShowMenu(); //显示主界面
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:subadd();break;
case 2:subdel();break;
case 3:stuadd();break;
case 4:studel();break;
case 5:chengji();break;
case 6:tongji();break;
case 7:xiugai();break;
case 9:chu();break;
}
}
savetxt(); //程序退出前将数据存入记事本
return 0;
}


C语言 学生管理系统
这是一段代码,给你参考一下吧.希望对你有所帮助.include "stdio.h" \/*I\/O函数*\/ include "stdlib.h" \/*其它说明*\/ include "string.h" \/*字符串函数*\/ include "conio.h" \/*屏幕操作函数*\/ include "mem.h" \/*内存操作函数*\/ include "ctype.h" \/*字符操作函数*\/ include "alloc....

学生学籍信息管理系统C语言的报告总结
首先做一下自我介绍,本人呢从事了3年的酒店管理软件开发职业经理人 在08年末自己创业了。就你说道的实训报告书面内容如何书写我有以下几点内容建议供你参考:从以下几个问题出发:■第1:如何让你自己的作品在众多同学中脱颖而出?(中心思想-做到同而不同(同样的作品不同的感觉))■第2:如何开场...

学籍的管理系统
学籍信息管理系统摘要:随着网络技术与计算机的广泛普及,绝大部分的机构都对计算机管理系统进行了合理的运用,本设计通过Java面向对象语言完成对学生信息管理系统进行编写,基于B\/S模式,所用开发工具为Eclipse以及AndroidStudio,然后基于Mysql的数据库基础上,通过Adobe Photoshop CS6的图像处理软件美化界面,在系统开发过程中用到...

C语言学生信息管理系统程序相映论文!!
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 ...

用SQL编写学生学籍管理信息系统
在需求分析、概念结构设计的基础上得到数据库的逻辑结构后,就可以在具体的数据库系统中实现该逻辑结构。目前的数据库系统ORACLE,SYBASE,INFORMIX,DB2等,各有千秋,根据“学生学籍管理系统”对数据量的要求,本系统采用了SQL Server 200数据库管理系统。学生学籍管理系统中各表的逻辑结构如下所示:表1 ...

求一个用C++语言写的学生信息管理系统源代码
include<fstream> include<conio.h> include<windows.h> using namespace std;\/\/\/ \/\/ 抽象基类 \/\/ \/\/\/ class Base { protected:int id;\/\/本科生,研究生识别 int num;char name[20];char sex[5];double ch,en,ma;\/\/成绩 int borth;public:Base();virtual int getid()=0;\/\/本科...

学生学籍管理系统 用C++编写
附录1学生学籍管理系统的功能要求要求完成以下功能:1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2)能够将指定的信息从文件中删除。3)能够按编号、姓名对学生的信息进... 附录1 学生学籍管理系统的功能要求要求完成以下功能:1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2)能够将...

学籍管理系统用什么数据结构
学籍管理系统用核心数据结构。学籍数据库是学生信息管理系统的核心数据库,由主管单位信息表、学校信息表、班级信息 表、学生信息表四部分构成。设计目的:理解树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。本系统主要是学生学籍信息管理, 通过编写主函数, 主菜单函数, 子菜单函数, ...

学生学籍管理程序
用C语言做0分使用下面的数据,用C设计一个简单的学籍管理系统,实现出最基本的功能。学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成学号姓... 用C语言做 0分 使用下面的数据,用C设计一个简单的学籍管理系统,实现出最基本的功能。 学生基本信息文件(A.TXT)及其内容:A....

学籍管理系统C语言编写
然后建立数据库,就是在管理器里面建立表然后设置主键,话说这个数据库还是比较复杂的,自己去找资料吧,设置好了就开始写代码,首先划分模块什么登陆,客户端什么的,为每个模块完成功能什么查询,删除,修改,增加之类的,就完成了,当然现在这种系统都是网络化的,一般是用JAVA,C#之类的语言写成的,C语言...

相山区13024245486: 用C语言设计一个学生的学籍管理系统 -
国飞九味: #include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num[10];/* 学号 */ char name[20]; char sex[4]; char yuan; int ban; char neartime[10];/* 最近更新时间 */ }; typedef struct node { struct ...

相山区13024245486: 用C语言编写控制台下简单的学籍管理程序
国飞九味: #include <stdio.h> #include <string.h> struct student {char name[20]; float score[5]; float ave; }student[100]; void writedata(struct student *student,FILE *fp) {int i,j,n=5; printf("%-20s%-5s%-5s%-5s%-5s%-5s%-5s\n","Name","1th","2th","3...

相山区13024245486: c语言学生学籍管理系统 -
国飞九味: #include <iostream> #include <fstream> #include <string> #include <conio.h>//用getch(); using namespace std; /*程序中一般用i表示学生序号,j表示科目序号 *其他循环变量用k,m,n表示 *最多统计10科50人的成绩信息 *temname用于临时储存姓...

相山区13024245486: 求作:C语言程序设计 —— 学籍管理系统 -
国飞九味: #include<stdio.h>//定义结构体 struct student { int number; char name[20]; float score1; float score2; float score3; float ave; };//单个学员录入函数 void input(struct student *st) { printf("\n学号: "); scanf("%d",&st->number); printf("姓名: ...

相山区13024245486: c语言程序设计——学籍管理 -
国飞九味: "学生学籍管理"的C程序#include#include#include struct list{ int num; char name[256]; int china; int english;...

相山区13024245486: c语言 学籍管理系统 -
国飞九味: /*学生信息管理系统*/ #include #include #include struct stud { char name[30]; /*姓名*/ long num; /*学号*/ double score; /*成绩*/ }; typedef struct stucode /****定义结构体*****/ { struct stud student ; struct stucode *next; }L; void cd(); /*菜单*/ ...

相山区13024245486: 学籍管理系统源代码C语言希望大家可以给我一个学籍管理系统?学籍管
国飞九味: #include #include #include #include #define N 100 struct student {char XUEHAO[20]; ... printf(" * 7-----显示学生信息 * \n "); printf(" * 8-----退出系统 * \n "); printf(" ********...

相山区13024245486: c语言程序设计——学籍管理 -
国飞九味: "学生学籍管理"的C程序#include<stdlib.h>#include<stdio.h>#include<malloc.h> struct list{int num;char name[256];int china;int english;int math;struct list *next; }; typedef struct list node; typedef node *link; void printf_list(link head) { link ...

相山区13024245486: 关于小型学籍管理系统的c语言程序设计 -
国飞九味: #include#include typedef struct student { int num; char name[8]; int data[3]; struct student* next; } student,* linklist; linklist CreateList(void); int ListFind(linklist head); int ListAdd(linklist head); int DeleteList(linklist head); int ModifyList(linklist head); int ...

相山区13024245486: C语言课程设计:学生学籍管理系统.有谁有代码给我做个参考吗?谢谢了,C语言和C++的都可以. -
国飞九味: #include typedef struct stud //学生信息结构 { long num; char name[20]; float score; }Stud; typedef struct node { Stud student; struct node *next; }Node; Node *head=NULL; void read(void); void inser(long b); void print(); void find(long b); void ...

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