❶ c语言学生信息管理系统代码
代码如下:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef 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;
int
main( void )
{
List L = NULL; //定义头结点指针
position p = NULL; //定义表工作指针
L = make_empty( L ); //创建空表
printf(" ★★考生报名管理程序★★
----------------------------------------
");
menu(L);
return 0;
}
//创建一个带头结点的空表
List
make_empty( List L)
{
L = ( List ) malloc (sizeof( Node ));
if(NULL == L)
{
printf("内存分配失败");
exit( 1 );
}
L->next = NULL;
//printf("空表创建成功。
");
return L;
}
//创建结点并输入考生信息
position
make_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;
}
//前插法;
void
link_to_tail( List L, position p)
{
p->next = L->next;
L->next = p;
}
//查找第一个姓名为xx的元素并返回位置
position
find( 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;
}
//测试链表是否是空表
int
is_empty( List L )
{
return L->next == NULL;
}
//测试当前位置是否是表尾
int
is_last( position p, List L )
{
return p->next == NULL;
}
//输出姓名为xx的考生信息
void
put_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("没有您要找的学生。
");
}
}
//循环创建考生信息
int
ciculation_make()
{
int n = 2;
do
{
printf("是否继续创建考生信息?是请输入“1”,不是请输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}
//是否输出考生信息
void
put_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;
}
//输出所有考生信息
void
put_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();
}
//询问是否删除考生数据
int
judge_delete_val()
{
int n = 2;
do
{
printf("是否要删除某个考生数据?是请输入“1”,不是输入“0”:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}
//查找第一个姓名为xx的元素并返回其直接前驱的位置
position
find_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;
}
else
return p;
}
//删除指定考生信息并输出其信息
int
delete_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;
}
}
//输出该地址考试信息
int
put_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;
}
}
//菜单函数
void
menu(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 < 'a' || n > 'g')
{
printf("错误的字母序号。
");
}
}
while( n < 'a' || 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();
}
(1)学生信息管理系统c语言源代码扩展阅读:
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语言
❷ 数据结构,设计一个学生信息管理系统,链式存储结构。C语言代码。要源代码。
摘要 #include
❸ 用c语言编写学生信息管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 200
int input(struct Student stu[N]);
void save(struct Student stu[N],int n);
int load(struct Student stu[N]);
void output(struct Student stu[N],int n);
int insert(struct Student stu_save[],int n);
void sort(struct Student stu_save[],int n);
void find(struct Student stu_save[],int n);
int delete_stu(struct Student stu_save[],int n);
typedef struct Student
{
char num[20];
char name[20];
char sex;
int age;
float score[3];
float tolscore;
float ave;
}STU;
int main()
{
int total=0,a;
STU stu[N];
printf("☆☆☆☆☆学籍管理系统☆☆☆☆☆\n\n");
do{
printf("\n**********************************\n");
printf("1-导入学生信息\n2-加载学生信息\n3-保存学生信息\n4-按学号插入学生\n5-给学生排序\n6-查找学生\n7-删除学生\n8-输出当前学生数据\n9-退出\n");
printf("**********************************\n");
printf("请按键选择:");
scanf("%d",&a);
switch(a)
{
case 1:
total=input(stu);
break;
case 2: total=load(stu);break;
case 3:save(stu,total);break;
case 4: total+=insert(stu,total);break;
case 5:sort(stu,total);break;
case 6:find(stu,total);break;
case 7:total-=delete_stu(stu,total);break;
case 8:output(stu,total);break;
case 9:exit(0);break;
default:printf("输入错误,请重新输入!\n");break;
}
//system("cls");
}while(1);
}
int input(struct Student stu[])
{
int i,j,n;
float sum;
printf("请输入要导入的学生人数\n");
scanf("%d",&n);
printf("请输入学生的学号、姓名、性别、年龄及三门课成绩\n");
for(i=0;i<n;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
scanf(" %c",&stu[i].sex); //%c前的空格用于接收上一个字符串后的空格、回车、制表符,etc
scanf("%d",&stu[i].age);
sum=0;
for(j=0;j<3;j++)
{
scanf("%f",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].tolscore=sum;
stu[i].ave=sum/3.0f;
}
return (n);
}
void save(struct Student stu[],int n)
{
FILE *fp;
int i;
char filename[20];
printf("请输入文件名:");
scanf("%s",filename);
if(strchr(filename,'.')==NULL)
strcat(filename,".dat");
if((fp=fopen(filename,"wb"))==NULL)
{
printf("Cannot open this file\n");
system("pause");
return;
}
fwrite(&n,sizeof(int),1,fp);
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct Student),1,fp);
fclose(fp);
printf("保存成功!");
system("pause");
return;
}
int load(struct Student stu_save[])
{
FILE *fp;
int i,n;
char filename[20];
printf("请输入要加载的文件名: ");
//getchar();
scanf("%s",filename);
// gets(filename);
if(strchr(filename,'.')==NULL)
strcat(filename,".dat");
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Cannot open this file\n");
system("pause");
return 0;
}
fread(&n,sizeof(int),1,fp);
for(i=0;i<n;i++)
fread(&stu_save[i],sizeof(struct Student),1,fp);
fclose(fp);
system("cls");
printf("文件加载成功!数据如下");
output(stu_save,n);
return n;
}
void output(struct Student stu_save[],int n)
{
int i,j;
// system("cls");
printf("\n学号\t姓名\t性别\t年龄\t成绩一\t成绩二\t成绩三\t总分\t平均分\n");
for(i=0;i<n;i++)
{
printf("%s\t",stu_save[i].num);
printf("%s\t",stu_save[i].name);
printf("%c\t",stu_save[i].sex);
printf("%d\t",stu_save[i].age);
for(j=0;j<3;j++)
printf("%g\t",stu_save[i].score[j]);
printf("%g\t",stu_save[i].tolscore);
printf("%.2f",stu_save[i].ave);
putchar(10);
}
system("pause");
return;
}
int insert(struct Student stu_save[],int n)
{
int i,j,num=0;
float sum=0;
struct Student s;
char flag;
if(n>200)
{
printf("空间已满,无法插入!\n");
return 0;
}
// load(stu_save,n-1);
do{
printf("\n请依次输入学号、姓名、性别、年龄及三门课成绩\n");
scanf("%s",s.num);
scanf("%s",s.name);
scanf(" %c",&s.sex); //%c前的空格用于接收上一个字符串后的空格、回车、制表符,etc
scanf("%d",&s.age);
for(j=0;j<3;j++)
scanf("%f",&s.score[j]);
sum=0;
for(j=0;j<3;j++)
sum+=s.score[j];
s.tolscore=sum;
s.ave=sum/3;
num++;
for(i=n+num-1;strcmp(stu_save[i-1].num,s.num)>0&&i>0;i--)
stu_save[i]=stu_save[i-1];
stu_save[i]=s;
printf("插入成功!");
fflush(stdin);
do
{
printf("继续插入?(y/n)");
flag=getch();
}while(flag!='y'&&flag!='n');
}while(flag=='y');
system("pause");
//save(stu_save,n);
return num;
}
void sort(struct Student stu_save[],int n)
{
int a,i,j;
struct Student t;
system("cls");
printf("\n1-按序号排序\n2-按成绩排序\n请选择:");
scanf("%d",&a);
while(a!=1&&a!=2)
{
printf("输入有误,请重新输入!\n");
scanf("%d",&a);
}
//load(stu_save,n);
if(a==1)
{
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(strcmp(stu_save[j].num,stu_save[j+1].num)>0)
{
t=stu_save[j];
stu_save[j]=stu_save[j+1];
stu_save[j+1]=t;
}
}
}
else
{
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(stu_save[j].ave<stu_save[j+1].ave)
{
t=stu_save[j];
stu_save[j]=stu_save[j+1];
stu_save[j+1]=t;
}
}
}
// save(stu_save,n);
printf("排序成功!\n");
output(stu_save,n);
return;
}
void find(struct Student stu_save[],int n)
{
char ch;
do{
int i,j,w=1;
char search[20];
//load(stu_save,n);
printf("请输入学生的学号或姓名");
scanf("%s",search);
for(i=0;i<n;i++)
{
if(strcmp(stu_save[i].num,search)==0||strcmp(stu_save[i].name,search)==0)
{
printf("查找成功,该学生的信息为:\n");
printf("%s\t",stu_save[i].num);
printf("%s\t",stu_save[i].name);
printf("%c\t",stu_save[i].sex);
printf("%d\t",stu_save[i].age);
for(j=0;j<3;j++)
printf("%g\t",stu_save[i].score[j]);
printf("%g\t",stu_save[i].tolscore);
printf("%.2f",stu_save[i].ave);
putchar(10);
w=0;
break;
}
}
if(w)
printf("查找失败\n");
do
{
printf("\n按Y继续查找,按N返回上级菜单\n");
ch=getch();
}while(ch!='y'&&ch!='n');
if(ch=='n')
return;
}while(ch=='y');
}
int delete_stu(struct Student stu_save[],int n)
{
int i,w=1;
char search[20];
// load(stu_save,n);
printf("\n请输入要删除学生的姓名或学号\n");
scanf("%s",search);
for(i=0;i<n;i++)
if(strcmp(stu_save[i].num,search)==0||strcmp(stu_save[i].name,search)==0)
{
w=0;
break;
}
if(w)
{
printf("无此学生!\n");
return 0;
}
for(;i<n-1;i++)
stu_save[i]=stu_save[i+1];
printf("删除成功!\n");
// save(stu_save,n-1);
return 1;
}
之前随便写的 忘了有没有调试 有问题再私信找我 采纳哦~~
❹ 学生学籍管理系统c语言代码(急需,致谢!)
这是一个职工管理系统,自己把名称改一改就行了
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
typedef struct ZHIGONG
{
char gongNumber[10];/*职工号*/
char gongName[20];/*职工姓名*/
char gongsex[4]; /*职工性别*/
char gongage[10]; /*出生年月*/
char gonge[10];/*学历*/
char gongposition[30]; /*职务*/
char gongwage[1000]; /*工资*/
struct ZHIGONG *next;
}ZHIGONG;
ZHIGONG *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
ZHIGONG *MallocNode(void);
void GetInformation(ZHIGONG *t);
void InsertOneNode(ZHIGONG *t);
void DesplayInfoBygongwage(void);
void DesplayInfoByegonge(void);
void DesplayOneNode(ZHIGONG *t);
void DeleteNodeBygongNumber(void);
void OutputInformation(void);
void ChangeMarkBygongName(void);
void CompositorByTotalgongwage(void);
void CompositorByTotalgonge(void);
void SaveLinkToFile(void);
int choose;/*用于接受用户的选择*/
/*主函数*/
void main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
SaveLinkToFile();
}
/************************************
函数功能:从文件中读职工信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
ZHIGONG *p;
fp=fopen("gong.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%s%s%s%s",p->gongNumber,p->gongName,p->gongsex,
p->gongage,p->gonge,p->gongposition,p->gongwage))
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
ZHIGONG *p;
printf("-------请选择相应功能------------\n\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\n");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
p=MallocNode();/*先申请一个新结点*/
GetInformation(p);/*要求用户输入信息到新结点中*/
InsertOneNode(p);/*将新结点加到链表中*/
break;
case 2:
OutputInformation();/*显示所有职工的信息*/
break;
case 3:
DesplayInfoBygongwage();/*根据用户输入的职工工资显示该职工的信息*/
break;
case 4:
DesplayInfoByegonge(); /*根据用户输入的职工学历显示该职工的信息*/
break;
case 5:
CompositorByTotalgongwage();/* 按工资排序*/
break;
case 6:
CompositorByTotalgonge();/* 按学历排序*/
break;
case 7:
DeleteNodeBygongNumber();/*根据用户输入的职工号删除该职工信息*/
break;
case 8:
ChangeMarkBygongName();/*根据用户输入的职工姓名修改该职工信息*/
break;
case 9:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
ZHIGONG *p;
p=(ZHIGONG*)malloc(sizeof(ZHIGONG));
headLink=p;
p->next=NULL;
}
/****************************************
函数功能:申请一个新结点,并将其初始化
*****************************************/
ZHIGONG *MallocNode(void)
{
ZHIGONG *p;
int i;
p=(ZHIGONG*)malloc(sizeof(ZHIGONG));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->gongNumber[i]='\0';
for(i=0;i<20;i++)
p->gongName[i]='\0';
for(i=0;i<4;i++)
p->gongsex[i]='\0';
for(i=0;i<10;i++)
p->gongage[i]='\0';
for(i=0;i<10;i++)
p->gonge[i]='\0';
for(i=0;i<30;i++)
p->gongposition[i]='\0';
for(i=0;i<1000;i++)
p->gongwage[i]='\0';
p->next=NULL;
return p;
}
/************************************
函数功能:取得用户输入的职工信息
************************************/
void GetInformation(ZHIGONG *t)
{
printf("请输入职工号:\n");
scanf("%s",t->gongNumber);
printf("请输入职工姓名:\n");
scanf("%s",t->gongName);
printf("请输入职工性别:\n");
scanf("%s",t->gongsex);
printf("请输入职工出生年月:\n");
scanf("%s",t->gongage);
printf("请输入职工学历:\n");
scanf("%s",t->gonge);
printf("请输入职工职位:\n");
scanf("%s",t->gongposition);
printf("请输入职工工资:\n");
scanf("%s",t->gongwage);
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(ZHIGONG *t)
{
ZHIGONG *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/*************************************************
函数功能:根据用户输入的职工工资显示该职工的信息
**************************************************/
void DesplayInfoBygongwage(void)
{
ZHIGONG *p;
char gongwage[1000];
char flag=0;
p=headLink->next;
printf("请输入职工的工资:\n");
scanf("%s",gongwage);
while(p)
{
if(strcmp(p->gongwage,gongwage)==0)
{
printf("职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在工资为%s的职工\n",gongwage);
}
/************************************************
函数功能:根据用户输入的职工学历显示该职工的信息
*************************************************/
void DesplayInfoByegonge(void)
{
ZHIGONG *p;
char gonge[10];
char flag=0;
p=headLink->next;
printf("请输入职工学历:\n");
scanf("%s",gonge);
while(p)
{
if(strcmp(p->gonge,gonge)==0)
{
printf("职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学历为 %s 的职工\n",gonge);
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(ZHIGONG *t)
{
printf("%s\t",t->gongNumber);
printf("%s\t",t->gongName);
printf("%s\t",t->gongsex);
printf("%s\t",t->gongage);
printf("%s\t",t->gonge);
printf("%s\t",t->gongposition);
printf("%s\t\n",t->gongwage);
}
/*************************************************
函数功能:根据用户输入的职工号删除该职工的信息
**************************************************/
void DeleteNodeBygongNumber(void)
{
char gongNumber[10];
ZHIGONG *p,*q;
char flag=0;
printf("请输入要删除的职工的职工号:");
scanf("%s",gongNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->gongNumber,gongNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("不存在该职工号的职工\n");
return;
}
printf("成功删除\n");
}
/************************************
函数功能:显示所有职工的信息
************************************/
void OutputInformation(void)
{
ZHIGONG *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有职工信息,请先输入职工信息\n\n");
return;
}
printf("职工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\n\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/*********************************************
函数功能:根据输入的职工姓名修改员工的信息
**********************************************/
void ChangeMarkBygongName(void)
{
ZHIGONG *p;
char gongName[10];
char flag=0;
char gonge,gongwage,gongage,gongNumber,gongsex,gongposition;
p=headLink->next;
printf("请输入职工姓名:\n");
scanf("%s",gongName);
while(p)
{
if(strcmp(p->gongName,gongName)==0)
{
printf("请输入新的职工号:\n");
scanf("%s",&gongNumber);
printf("请输入新的学历:\n");
scanf("%s",&gonge);
printf("请输入新的工资:\n");
scanf("%s",&gongwage);
printf("请输入新的出生年月:\n");
scanf("%s",&gongage);
printf("请输入新的性别:\n");
scanf("%s",&gongsex);
printf("请输入新的职位:\n");
scanf("%s",&gongposition);
strcpy(p->gongposition,&gongposition);
strcpy(p->gongsex,&gongsex);
strcpy(p->gongNumber,&gongNumber);
strcpy(p->gonge,&gonge);
strcpy(p->gongwage,&gongwage);
strcpy(p->gongage,&gongage);
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的职工\n",gongName);
}
/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
ZHIGONG *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有职工信息,请先输入职工信息\n\n");
return;
}
fp=fopen("gong.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s%s%s%s%s%s%s",p->gongNumber,p->gongName,p->gongsex,
p->gongage,p->gonge,p->gongposition,p->gongwage);
p=p->next;
}
fclose(fp);
}
/************************************
函数功能:按职工工资排序
************************************/
void CompositorByTotalgongwage(void)
{
ZHIGONG exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没职工信息,请先输入职工信息\n");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((p->gongwage)>(p->gongwage))
{
strcpy(exchange.gongNumber,q->gongNumber);/*先复制q结点信息到exchange*/
strcpy(exchange.gongName,q->gongName);
strcpy(exchange.gongsex,q->gongsex);
strcpy(exchange.gongage,q->gongage);
strcpy(exchange.gonge,q->gonge);
strcpy(exchange.gongposition,q->gongposition);
strcpy(exchange.gongwage,q->gongwage);
strcpy(q->gongNumber,p->gongNumber);/*再复制p结点信息到q*/
strcpy(q->gongName,p->gongName);
strcpy(q->gongsex,p->gongsex);
strcpy(q->gongage,p->gongage);
strcpy(q->gonge,p->gonge);
strcpy(q->gongposition,p->gongposition);
strcpy(q->gongwage,p->gongwage);
strcpy(p->gongNumber,exchange.gongNumber);/*最后复制exchange结点信息到p*/
strcpy(p->gongName,exchange.gongName);
strcpy(p->gongsex,exchange.gongsex);
strcpy(p->gongage,exchange.gongage);
strcpy(p->gonge,exchange.gonge);
strcpy(p->gongposition,exchange.gongposition);
strcpy(p->gongwage,exchange.gongwage);
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
/************************************
函数功能:按职工学历排序
************************************/
void CompositorByTotalgonge(void)
{
ZHIGONG exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没职工信息,请先输入职工信息\n");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->gonge)>(p->gonge))
{
strcpy(exchange.gongNumber,q->gongNumber);/*先复制q结点信息到exchange*/
strcpy(exchange.gongName,q->gongName);
strcpy(exchange.gongsex,q->gongsex);
strcpy(exchange.gongage,q->gongage);
strcpy(exchange.gonge,q->gonge);
strcpy(exchange.gongposition,q->gongposition);
strcpy(exchange.gongwage,q->gongwage);
strcpy(q->gongNumber,p->gongNumber);/*再复制p结点信息到q*/
strcpy(q->gongName,p->gongName);
strcpy(q->gongsex,p->gongsex);
strcpy(q->gongage,p->gongage);
strcpy(q->gonge,p->gonge);
strcpy(q->gongposition,p->gongposition);
strcpy(q->gongwage,p->gongwage);
strcpy(p->gongNumber,exchange.gongNumber);/*最后复制exchange结点信息到p*/
strcpy(p->gongName,exchange.gongName);
strcpy(p->gongsex,exchange.gongsex);
strcpy(p->gongage,exchange.gongage);
strcpy(p->gonge,exchange.gonge);
strcpy(p->gongposition,exchange.gongposition);
strcpy(p->gongwage,exchange.gongwage);
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
❺ 学生信息管理系统C语言源代码
刚帮另一个人写了个类似的程序,楼主自己看看再修改修改吧 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h>#include <conio.h> //±ê×· //ר void ReadData(); // void SaveData(); //± void InsertPerson(); //í void SortPerson(); //ò void DeletePerson(); // void DeletePersonByname(); //° void DeletePersonAll(); // void ShowPerson(); //ù void GetchWait(); //á void FindPerson();//é void FindPersonByPhone();//°§é void FindPersonByName();//°é void ModifyStuByID(); //¨§ struct Person //á { char id[15];//§ char name[20]; // char xingbie[13]; //± char nianling[13]; //ê char address[30];//· struct Person *next; //á }; struct Person *ptr, *head, *current, *prev; int main() //÷ { char choose=0; system("cls"); ReadData(); while(1) // { system("cls"); printf("\t***************\t§úí\t*************\n\n"); printf("\t************\t1: í§ú\t*************\n\n"); printf("\t************\t2: §ú\t*************\n\n"); printf("\t************\t3: §ú\t*************\n\n"); printf("\t************\t4: é§ú\t*************\n\n"); printf("\t************\t5: ±§ú\t*************\n\n"); printf("\t************\t6: \t*************\n\n"); printf("\t****************************************************\n\n"); printf("\t :"); scanf("%c",&choose);// switch(choose) { case '1': InsertPerson(); //í break; case '2': DeletePerson(); // break; case '3': ShowPerson(); // break; case '4': FindPerson();//é break; case '5': SaveData();//± break; case '6': DeletePersonAll();//· exit(0);// } } return 0; } 不好意思,发上去的有些是乱发,代码太长了,楼主还是留下邮箱地址,用邮件发给你吧
❻ 如何用C语言编写学生信息管理系统
参考如下学生信息管理系统的C源代码吧。
#include<stdio.h>
#include<string.h>
/*定义学生结构体*/
structStudent
{
charID[20];
charName[20];
floatMark1;
floatMark2;
floatMark3;
floatAverage;
};
/*声明学生数组及学生数量*/
structStudentstudents[1000];
intnum=0;
/*求平均值*/
floatAvg(structStudentstu)
{
return(stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
intStudent_SearchByIndex(charid[])
{
inti;
for(i=0;i<num;i++)
{
if(strcmp(students[i].ID,id)==0)
{
returni;
}
}
return-1;
}
/*通过姓名返回数组下标*/
intStudent_SearchByName(charname[])
{
inti;
for(i=0;i<num;i++)
{
if(strcmp(students[i].Name,name)==0)
{
returni;
}
}
return-1;
}
/*显示单条学生记录*/
voidStudent_DisplaySingle(intindex)
{
printf("%10s%10s%8s%8s%8s%10s ","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("------------------------------------------------------------- ");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}
/*插入学生信息*/
voidStudent_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark3);
getchar();
students[num].Average=Avg(students[num]);
num++;
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*修改学生信息*/
voidStudent_Modify()
{
//floatmark1,mark2,mark3;
while(1)
{
charid[20];
intindex;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要修改的学生信息为: ");
Student_DisplaySingle(index);
printf("--请输入新值-- ");
printf("请输入学号:");
scanf("%s",&students[index].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark3);
getchar();
students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*删除学生信息*/
voidStudent_Delete()
{
inti;
while(1)
{
charid[20];
intindex;
printf("请输入要删除的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要删除的学生信息为: ");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if(getchar()=='y')
{
for(i=index;i<num-1;i++)
{
students[i]=students[i+1];//把后边的对象都向前移动
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*按姓名查询*/
voidStudent_Select()
{
while(1)
{
charname[20];
intindex;
printf("请输入要查询的学生的姓名:");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要查询的学生信息为: ");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*按平均值排序*/
voidStudent_SortByAverage()
{
inti,j;
structStudenttmp;
for(i=0;i<num;i++)
{
for(j=1;j<num-i;j++)
{
if(students[j-1].Average<students[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}
}
/*显示学生信息*/
voidStudent_Display()
{
inti;
printf("%10s%10s%8s%8s%8s%10s ","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("------------------------------------------------------------- ");
for(i=0;i<num;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
}
}
/*将学生信息从文件读出*/
voidIO_ReadInfo()
{
FILE*fp;
inti;
if((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件! ");
return;
}
if(fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i<num;i++)
{
fread(&students[i],sizeof(structStudent),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
voidIO_WriteInfo()
{
FILE*fp;
inti;
if((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件! ");
return;
}
if(fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("写入文件错误! ");
}
for(i=0;i<num;i++)
{
if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1)
{
printf("写入文件错误! ");
}
}
fclose(fp);
}
/*主程序*/
voidmain()
{
intchoice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf(" ------学生成绩管理系统------ ");
printf("1.增加学生记录 ");
printf("2.修改学生记录 ");
printf("3.删除学生记录 ");
printf("4.按姓名查询学生记录 ");
printf("5.按平均成绩排序 ");
printf("6.退出 ");
printf("请选择(1-6):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case1:
Student_Insert();
break;
case2:
Student_Modify();
break;
case3:
Student_Delete();
break;
case4:
Student_Select();
break;
case5:
Student_SortByAverage();
Student_Display();
break;
case6:
exit(0);
break;
}
IO_WriteInfo();
}
}
❼ c语言课程设计 学生信息管理系统源代码及实验报告
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 8
char name[N][N*2];
char sex[N/4];
int number[N];
int jugment(char *dest,int size)
{
fgets(dest,size,stdin);
while(dest[0]=='#')
return 1;
return 0;
}
int menu()
{
char ch[N];
puts("1) insert_data!");
puts("2) search_data!");
puts("3) list!");
puts("#) exit!");
fgets(ch,N/2,stdin);
return ch[0];
}
int insert_data()
{
int i;
char ch[N*2];
for(i=0;i<N;i++)
{
//**********************************************input name
printf("the num %d student:\n",i+1);
puts("name:");
while(jugment(ch,N*2))
return 0;
ch[strlen(ch)]==0;
strcpy(name[i],ch);
//**********************************************input sex
do
{
puts("sex <w/m>:");
if(jugment(ch,N))
return 0;
sex[i]=ch[0];
}
while((sex[i]!='w')&&(sex[i]!='m'));
//**********************************************input id
do
{
puts("number:");
if(jugment(ch,N*2))
return 0;
}while(!(number[i]=atoi(ch)));
}
}
int search_data(void)
{
int i,tmp;
char ch[N*2];
while(1)
{
puts("input your number:");
if(jugment(ch,N*2))
return -1;
if(!(tmp=atoi(ch)))
continue;
for(i=0;i<N;i++)
{
if(number[i]==tmp)
return i;
}
if(i>=N)
puts("not have this student!");
return -1;
}
}
int print_data(int num)
{
if(num>=0)
{
puts("*********************************");
printf("name: %s",name[num]);
printf("sex: %c\n",sex[num]);
printf("number: %d\n",number[num]);
puts("*********************************");
}
return 0;
}
int list()
{
int i=0;
while(*name[i]&&i<N)
{
print_data(i);
i++;
}
return 0;
}
int main()
{
char tmp;
while(1)
{
tmp=menu();
switch(tmp)
{
case '1':
insert_data();
break;
case '2':
print_data(search_data());
break;
case '3':
list();
case '#':
return 0;
default:
puts("you input wrong command!");
break;
}
}
}
这个是简易版的 可供参考!
❽ c语言程序学生成绩管理系统源代码
VC++6.0编译通过,利用结构体,结构体指针,单链表,文件操作,命令窗口下简单菜单设计,可从文件读入数据,自动保存数据,有错误自动判断修复,能添加,删除,查询,显示,排序记录,通过本人2小时升级修改,已经适合多数初学者期末C语言作业设计要求!如果要增加科目,只要修改源代码中的Class_N的值就可以了,科目的名称在程序第一次运行时输入,会自动保存到student.ini文件,程序运行时自动生成的student.ini文件为系统信息文件(二进制文件),student.db为数据存储文件(二进制文件),Student.txt为操作记录文件(文本文件),可以修改Student.txt的打开方式,那样就能保存以前的操作记录了。代码下载:请点击下载链接:网页链接
❾ 学生信息管理系统c语言程序
我给你做的是20个人的,至于科目数,你加一下就够了
#include<stdio.h>
#include<string.h>
#define
N
20//定义学生的个数
struct
student//学生的结构体
{
int
num;
char
name[8];
int
yuwen;
int
shuxue;
int
yingyu;
int
wuli;
}st[N];
void
main()
{
struct
student
t;
//用于后面做冒泡排序时的中间变量
printf("输入%d名学生的相关信息:\n",N);
//N是你在前面用宏定义的
//你要输入几个学生的信息改变N值就可以了
printf("**************************************************\n");
printf("学号
姓名
语文
数学
英语
物理\n");
for(int
i=0;i<N;i++)
scanf("%d%s%d%d%d%d",&st[i].num,st[i].name,&st[i].yuwen,&st[i].shuxue,&st[i].yingyu,&st[i].wuli);
printf("**************************************************\n");
printf("学号
姓名
平均分\n");
double
avr[N];
for(i=0;i<N;i++)
{
avr[i]=(st[i].yuwen+st[i].shuxue+st[i].yingyu+st[i].wuli)/4.0;
printf("%d\t\t%s\t%.2lf",st[i].num,st[i].name,avr[i]);
//注意这里的.2lf是说保留两位小数的格式描述符.2的意思是几位小数位
printf("\n");
}
printf("输入你要查询学生的序号,是第几个学生\n");
scanf("%d",&i);
printf("学号
姓名
语文
数学
英语
物理\n");
printf("%d\t\t%s
%d
%d
%d
%d\n",st[i-1].num,st[i-1].name,st[i-1].yuwen,st[i-1].shuxue,st[i-1].yingyu,st[i-1].wuli);
//这是用来选择你要排序的种类的,注意是中文的输入
printf("按照语文成绩进行排序:\n");
printf("**************************************************\n");
//下面是冒泡排序
//例如按照语文成绩排序
for(i=0;i<N-1;i++)
for(int
j=0;j<N-i-1;j++)
if(st[j].yuwen<=st[j+1].yuwen)
{
t=st[j];
st[j]=st[j+1];
st[j+1]=t;
}
printf("学号
姓名
语文
数学
英语
物理\n");
for(i=0;i<N;i++)
printf("%d\t\t%s
%d
%d
%d
%d\n",st[i].num,st[i].name,st[i].yuwen,st[i].shuxue,st[i].yingyu,st[i].wuli);
//不及格的人
printf("**************************************************\n");
//这里必须要在算品均成绩,应为交换之后,顺序变了
for(i=0;i<N;i++)
avr[i]=(st[i].yuwen+st[i].shuxue+st[i].yingyu+st[i].wuli)/4.0;
printf("不及格人名单如下:\n");
printf("学号
姓名
语文
数学
英语
物理\n");
for(i=0;i<N;i++)
if(avr[i]<60.0)
printf("%d\t\t%s
%d
%d
%d
%d\n",st[i].num,st[i].name,st[i].yuwen,st[i].shuxue,st[i].yingyu,st[i].wuli);
}
❿ c语言学生成绩管理系统1000行源代码
/*首次使用,新建score.in文件,在里面打入0
可用程序
#include<stdio.h>
FILE *fin
main()
{
fin=fopen("score.in","r");
fprintf(fin,"0");
return 0;
}
完成
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
#define n 999
FILE *fin;
main()
{
int a[n]={0},ori=0,i=0,b=0,add[n]={0},con=0,orix[n]={0},t=0,te[n]={0},TRUEt,ixi,fx,abc=0,sum,TURE,xx;
long long f[n]={0},tex[n]={0};
printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t学生成绩管理系统\n\t\t\t\t\t\t Please wait...");
Sleep(2000);system("cls");
int xp,xi;
fin=fopen("score.in","r+");
fscanf(fin,"%d",&xp);
i=xp;
for(xi=1;xi<=xp;xi++)
{fscanf(fin,"%d%d%d",&f[xi],&a[xi],&te[xi]);te[xi]--;
printf("Id:%lld score:%d ranking:%d\n",f[xi],a[xi],te[xi]+1);
add[xi]=xi;orix[xi]=a[xi];
}
fclose(fin);
int TRUE1;
pe:
while(1)
{ TRUE1=1;i++;
printf("Id(输入-1:删除,输入-2:修改成绩,输入-3:删除所有内容,输入-4:保存到score.in并退出):");
scanf("%lld",&f[i]);
for(sum=1;sum<i;sum++)
if(f[sum]==f[i])
{system("cls");for(con=1;con<=i;con++) {if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}TRUE1=0;i--;printf("Error with two same id.\n");continue;}
if(TRUE1==0)
continue;
if(f[i]==-3)
{int r;
for(r=0;r<n;r++)
{
a[r]=0;ori=0;i=0;b=0;add[r]=0;con=0;orix[r]=0;t=0;te[r]=0;abc=0;
f[r]=0;tex[r]=0;
}
system("cls");
goto pe;
}
if(f[i]==-2)
{TURE=0;i--;
system("cls");
for(con=1;con<=i;con++)
{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("修改学号_____________号的分数.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",f[con],a[con],te[con]+1);
scanf("%d",&xx);
for(sum=1;sum<=i;sum++)
if(f[sum]==xx)
{
TURE=1;
printf("\n修改为___________.\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%d",&a[sum]);
printf("\n修改成功!将在下一次输入后更新名次。\n\n");
continue;
}
if(TURE==0)
printf("No id is %d\n",xx);
continue;
}
if(f[i]==-4)
{
i--;
fin=fopen("score.in","r+");
fprintf(fin,"%d\n",i);
for(xi=1;xi<=i;xi++)fprintf(fin,"%d %d %d\n",f[xi],a[xi],te[xi]+1);
for(xi=i+1;xi<=xp;xi++)fprintf(fin," \n");
fclose(fin);
return 0;
}
if(f[i]==-1)
{TRUEt=0;
system("cls");
i--;
for(con=1;con<=i;con++){if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("删除学号_____________号.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%lld",&fx);
for(con=1;con<=i;con++)
if(f[con]==fx)
{TRUEt=1;abc++;
f[con]=0;
a[con]=0;
tex[abc]=te[con];
for(ixi=1;ixi<=i;ixi++)
if(te[ixi]>te[con])
te[ixi]--;
te[con]=0;
break;}
system("cls");
for(con=1;con<=i;con++){
if(a[con]==0)continue;
printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
if(TRUE==0)
printf("No Id is %lld\n",fx);
continue;
}
system("cls");
for(con=1;con<i;con++)
{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("Id:%lld score:",f[i]);
scanf("%d",&ori);system("cls");
a[i]=ori;add[i]=i;orix[i]=a[i];
system("cls");
for(b=1;b<=i;b++)
for(con=i;con>=b;con--)
if(orix[con]>orix[con-1])
{t=orix[con];orix[con]=orix[con-1];orix[con-1]=t;
t=add[con];add[con]=add[con-1];add[con-1]=t;}
for(con=1;con<=i;con++) te[add[con]]=con;
for(con=1;con<=abc;con++)
for(ixi=1;ixi<=i;ixi++)
if(te[ixi]>tex[con])
te[ixi]--;
if(te[i]==te[i-1])te[i]=0;
for(con=1;con<=i;con++)
{if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
}
return 0;
}
//求采纳