當前位置:首頁 » 編程語言 » 學生信息管理系統c語言源代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

學生信息管理系統c語言源代碼

發布時間: 2022-04-21 17:59:34

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;
}
//求採納