用C編寫 設計學生類,該類能夠記錄學生姓名 班級和學號資訊,並能夠修改和輸出這些資訊

時間 2021-05-02 22:10:09

1樓:匿名使用者

我有乙個自己寫的工資管理系統,和你要求的很相似,你只要自己把一些功能刪除和一些字修改一下!(編譯環境 vc6.0)

#include

#include

/*******************定義結構體***********************/

typedef struct

pay;

file *fp;

pay *p1=null,*p2=null,*p3=null,*p4=null,*p5=null,*head=null;

/*******************宣告函式************************/

void zhuti(); //主題顯示

pay *chushihua(); //初始化

void baocun(pay *head); //儲存檔案

pay *open(); //讀取檔案

pay *jiaru(); //加入記錄

pay *xianshi(); //顯示記錄

pay *gonghaopaixu(); //工號排序

pay *xingmingpaixu(); //姓名排序

pay *shanchu(); //刪除記錄

pay *xingmingshanchu(); //姓名刪除

pay *gonghaoshanchu(); //工號刪除

pay *xiugai(); //修改記錄

pay *xingmingxiugai(); //姓名修改

pay *gonghaoxiugai(); //工號修改

pay *zxgai(pay *p1); //執行修改

void chaxun(); //查詢模組

//////////////////////// 主 函 數 /////////////////////

main()

system("cls");

switch(i)

//退出系統

if(j==0) break; //初始化失敗退出

default: break;}}

while(i!=0);

void zhuti()

pay *chushihua()

}if(head!=0) printf("\n\t\t\t\t 初始化成功!");

if(head==0) printf("\n\t\t\t\t 初始化失敗!\n");

sleep(2000);return head;

}/********************儲存模組***********************/

void baocun(pay *head)

if(head==0);head=&a;}

p1=head;

while(p1!=null)

p1=p1->next;

}fclose(fp);

printf("\t\t\t\t 資訊儲存成功!\n");

sleep(1000);

pay *open()

if((p1=p2=(pay*)malloc(sizeof (pay)))==null)

read=fread(p1,sizeof(pay),1,fp);

if(!read)

if(p1->next==null)head=p1;

else

read=fread(p1,sizeof(pay),1,fp);

if(!read)

}while(p1->next!=null);

p2->next=p1;

}return head;

fclose(fp);

pay *jiaru()

if(head->next==0)

zhuti();

printf("\t\t\t\t第%d位職工資訊\n\n\t\t\t請輸入職工號(輸入0退出!):\n\t\t\t \t\t",n++);

scanf("%d",&p1->gh);

if(p1->gh==0)

getchar();

printf("\t\t\t\t姓名:\n\t\t\t\t\t");

gets(&p1->name);

printf("\t\t\t\t所屬部門:\n\t\t\t\t\t");

gets(&p1->bm);

printf("\t\t\t基本工資 獎勵工資 補貼金額 扣款金額:\n\t\t\t\t");

scanf("%f %f %f %f",&p1->jb,&p1->jl,&p1->bt,&p1->kk);

printf("\n\t\t\t\t加入? 1.是 0.否

if(!i)return head;

p1->next=null;head->next=p1;

baocun(head);

}p3=head;

while(p3->next!=0)p3=p3->next;

while(1)

zhuti();

printf("\t\t\t\t第%d位職工資訊\n\n\t\t\t請輸入職工號(輸入0退出!):\n\t\t\t\t\t",n++);

scanf("%d",&p1->gh);

if(p1->gh==0)

getchar();

printf("\t\t\t\t姓名:\n\t\t\t\t\t");

gets(&p1->name);

printf("\t\t\t\t所屬部門:\n\t\t\t\t\t");

gets(&p1->bm);

printf("\t\t\t基本工資 獎勵工資 補貼金額 扣款金額:\n\t\t\t\t");

scanf("%f %f %f %f",&p1->jb,&p1->jl,&p1->bt,&p1->kk);

printf("\n\t\t\t\t加入? 1.是 0.否

if(i!=1)jiaru();

p1->next=0;p3->next=p1;p3=p1;

baocun(head);}}

pay *xianshi()

printf("\t\t\t\t所有工資記錄\n");

printf(" 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(p1->next!=0)

if(n==1)printf("\n\n\t\t\t\t 0.返回主選單\n\t\t\t\t\t");

if(n>1)printf("\n\n\t\t\t1.按職工號排序 2.按姓名排序 0.返回主選單\n\t\t\t\t\t");

if(!n) printf("\n\n\t\t\t\t 無記錄!\n\n\t\t\t\t 0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)head=gonghaopaixu();if(i==2)head=xingmingpaixu();

if(head!=0&&n>1)

}return head;

pay *gonghaopaixu()

if(p3->next==0)break;

}p1=head;

while(p1->next!=0)

printf("\n\n\t\t\t1.按姓名排序 0.返回主選單\n\t\t\t\t\t");

scanf("%d",&j);

if(j==1)head=xingmingpaixu();

return head;

pay *xingmingpaixu()

if(p3->next==0)break;

}p1=head;

while(p1->next!=0)

printf("\n\n\t\t\t1.按工號排序 0.返回主選單\n\t\t\t\t\t");

scanf("%d",&j);

if(j==1)head=gonghaopaixu();

return head;

pay *shanchu()

return head;

pay *xingmingshanchu()

getchar();

printf("\t\t\t\t請輸入姓名:\n\t\t\t\t\t");

gets(a);

printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(1)

if(!n)

else

while(1)

printf("\t\t\t\t刪除?1.是 0.否

if(j==1)

}printf("\n\t\t\t1.按姓名刪除 2.按職工號刪除\n");

printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)head=xingmingshanchu();

if(i==2)head=gonghaoshanchu();

return head;

pay *gonghaoshanchu()

printf("\t\t\t\t請輸入職工號:\n\t\t\t\t\t");

scanf("%d",&a);

printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(1)

if(!n)

else

while(1)

printf("\t\t\t\t刪除?1.是 0.否

if(j==1)

}printf("\n\t\t\t1.按姓名刪除 2.按職工號刪除\n");

printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)head=gonghaoshanchu();

if(i==2)head=xingmingshanchu();

return head;

pay *xiugai()

return head;

pay *xingmingxiugai()

getchar();

printf("\t\t\t\t請輸入姓名:\n\t\t\t\t\t");

gets(a);

printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(1)

if(!n)

else

while(1)

printf("\t\t\t\t修改?1.是 0.否

if(j==1)

}printf("\n\t\t\t1.按姓名修改 2.按職工號修改\n");

printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)head=xingmingxiugai();

if(i==2)head=gonghaoxiugai();

return head;

pay *gonghaoxiugai()

printf("\t\t\t\t請輸入職工號:\n\t\t\t\t\t");

scanf("%d",&a);

printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(1)

if(!n)

else

while(1)

printf("\t\t\t\t修改?1.是 0.否

if(j==1)

}printf("\n\t\t\t1.按職工號修改 2.按姓名修改\n");

printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)head=gonghaoxiugai();

if(i==2)head=xingmingxiugai();

return head;

pay *zxgai(pay *p1)

void chaxun()

printf("\n\n\n\t\t\t\t *工資查詢*\n\n\n");

printf("\t\t\t\t 1.基 本工 資\n");

printf("\t\t\t\t 2.獎 勵工 資\n");

printf("\t\t\t\t 3.補 貼金 額\n");

printf("\t\t\t\t 4.扣 款金 額\n");

printf("\t\t\t\t 0.返回主選單\n\n\n\n");

printf("\t\t\t\t 選擇:");

scanf("%d",&i);

if(i==1||i==2||i==3||i==4)

printf("\n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");

while(1)

if(p1->next==0)break;

}if(!n)printf("\n\n\n\t\t\t\t 無記錄!\n\n\n");

printf("\n\t\t\t 1.繼續查詢 0.返回主選單\n\t\t\t\t\t");

scanf("%d",&i);

if(i==1)chaxun();}}

用C語言編寫“背單詞程式”,用C語言編寫如下程式?

董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...

用C 語言編寫程式,遞迴函式,用c 編寫程式用遞迴法計算一個整數的所有數字之和

1 在數學上,關於遞迴函式的定義如下 對於某一函式f x 其定義域是集合a,那麼若對於a集合中的某一個值x0,其函式值f x0 由f f x0 決定,那麼就稱f x 為遞迴函式。在程式語言中,把直接或間接地呼叫自身的函式稱為遞迴函式。函式的構建通常需要一個函式或者一個過程來完成。2 遞迴函式 是建立...

用C語言編寫2023年曆(急求,用C語言編寫2023年曆(急求!!!)

mfc 和 delphi嗎?你知道這樣沒有意義又很麻煩嗎 沒價值 自己動手修改乙個函式就好了 include include define days 366 struct calendar void createcal struct calendar year 建立2008年日曆 int findw...