小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【干貨】學(xué)生管理系統(tǒng)源碼分享

 客天 2017-04-03

大家好

我就是如假包換的...陳玲

自從運營了C語言程序設(shè)計微信公眾號

很多粉絲都給我備注

...奇葩

實在是不敢當(dāng)

也被人開始叫玲玲姐

我知道

很多人都想看我出境

我本人也有 1 年多的舞臺演講訓(xùn)練

實話告訴大家 —— 我喜歡出境


不過,既然我們做編程語言公眾號的,就要去掉其他因素,我們挖掘文字本身所蘊含的力量。所以,這次分享的表達方式就是 —— 純文字。


今天的分享,只有一個目的

就是上代碼

那么,準(zhǔn)備好了

#include 

#include 

//結(jié)構(gòu)體可以存放的學(xué)生信息最大個數(shù),不可變變量

 int const MAX_LENGTH=100; 

 //學(xué)生信息結(jié)構(gòu)體數(shù)組,最多可以存放100個學(xué)生信息 

 struct student{

int id; //學(xué)號 

char *name; //姓名 

int age; //年齡

float c_score; //C語言成績 

float english_score; //英語成績 

float database_score; //數(shù)據(jù)庫成績

float total_score; //總分 

 }student_array[MAX_LENGTH]; 

 

 //學(xué)生信息數(shù)量 

 int student_count=0; 


 //函數(shù)聲明 

 void print_all_students();

 void input_info(); 

 void query_info();

 void modify_info();

 void delete_info(); 

 void compute_total_score();

 void sort_info(); 

 int search_one_student(); 

 void print_one_student(struct student one);

 void delete_one_student(int student_index);

 char * get_item_name(int item_index);

 void modify_one_student(int student_index);

 void sort_by_id();

 void sort_by_c_score(); 

 void sort_by_english_score(); 

 void sort_by_database_score();


 //主函數(shù) 

 int main()

 {

while(1)

printf('請選擇要使用的功能:\n');

printf('錄入信息,請輸入1,然后回車!\n');

printf('查詢信息,請輸入2,然后回車!\n'); 

printf('修改信息,請輸入3,然后回車!\n'); 

printf('刪除信息,請輸入4,然后回車!\n'); 

printf('計算總分,請輸入5,然后回車!\n'); 

printf('排序信息,請輸入6,然后回車!\n'); 

printf('輸出全部,請輸入0,然后回車!\n');

printf('退出程序,請輸入-1,然后回車!\n'); 

//函數(shù)選擇變量 

int function=0;

//輸入選擇的函數(shù)編號值 

scanf('%d',&function); 

//根據(jù)輸入的函數(shù)編號,執(zhí)行對應(yīng)的功能

switch(function){

case -1: 

exit(1);

case 0: 

print_all_students(); 

break;

case 1: 

input_info();

break;

case 2:

query_info();

break; 

case 3: 

modify_info();

break; 

case 4: 

delete_info();

break; 

case 5: 

compute_total_score(); 

break; 

case 6:

sort_info(); 

break; 

default: 

printf('請輸入正確的功能編號?。。n\n');

break;

return 0; 

 } 

 

 //錄入信息函數(shù)

void input_info()

 {

printf('當(dāng)前功能————錄入信息!\n'); 

//判斷是否還有空間 

if(student_count

{

//聲明一些臨時變量

int id=0; char *name=(char *)malloc(100);

int age=0; float c_score=0; 

float english_score=0;

float database_score=0; 

printf('請輸入學(xué)生信息,格式為:學(xué)號,姓名,年齡,C語言成績,英語成績,數(shù)據(jù)庫成績\n');

scanf('%d %s %d %f %f %f',&id,name,&age,&c_score,&english_score,&database_score);

printf('學(xué)生信息校對:學(xué)號:%d,姓名:%s,年齡:%d,C語言成績:%f,英語成績:%f,數(shù)據(jù)庫成績:%f\n',id,name,age,c_score,english_score,database_score); 

//學(xué)生信息加入結(jié)構(gòu)體數(shù)組 

student_array[student_count].id=id;

student_array[student_count].name=name;

student_array[student_count].age=age;

student_array[student_count].c_score=c_score; 

student_array[student_count].english_score=english_score; 

student_array[student_count].database_score=database_score; 

student_count++; 

//是否繼續(xù)錄入信息

printf('是否繼續(xù)錄入信息?繼續(xù)請輸入y,返回主菜單輸入n\n');

char go_on; 

scanf('%s',&go_on); 

if(go_on=='y')

input_info();

}

else

printf('學(xué)生結(jié)構(gòu)體數(shù)據(jù)已滿,可以刪除一部分學(xué)生信息!\n');

}

 } 



 //查詢信息函數(shù) 

void query_info()

 {

printf('當(dāng)前功能————查詢信息!\n');

printf('請輸入學(xué)生的學(xué)號\n'); 

int id=0; 

scanf('%d',&id);

//查找輸入id學(xué)生的序號

int student_index=search_one_student(id);

if(student_index!=-1)

{

print_one_student(student_array[student_index]); 

}

else

printf('沒有該學(xué)號的學(xué)生!\n');

//是否繼續(xù)查詢信息 

printf('是否繼續(xù)查詢信息?繼續(xù)請輸入y,返回主菜單輸入n\n');

char go_on; 

scanf('%s',&go_on);

if(go_on=='y') 

query_info();

 } 

 

 

 //修改信息函數(shù)

void modify_info()

 { 

printf('當(dāng)前功能————修改信息!\n');

printf('請輸入學(xué)生的學(xué)號\n');

int id=0; 

scanf('%d',&id);

//查找輸入id學(xué)生的序號

int student_index=search_one_student(id);

if(student_index!=-1)

modify_one_student(student_index); 

}

else

printf('沒有該學(xué)號的學(xué)生!\n');

 

 

 //刪除信息函數(shù) 

void delete_info()

 { 

printf('當(dāng)前功能————刪除信息!\n');

printf('請輸入學(xué)生的學(xué)號\n'); 

int id=0;

scanf('%d',&id);

//查找輸入id學(xué)生的序號

int student_index=search_one_student(id);

if(student_index!=-1)

//防止student_index被改變,傳入temp_index計算

int temp_index=student_index;

print_one_student(student_array[temp_index]);

//刪除前進行確認(rèn)

printf('確定刪除學(xué)號 %d 同學(xué)的信息?繼續(xù)請輸入y\n',id);

char be_true; 

scanf('%s',&be_true);

if(be_true=='y')

printf('%d\n', student_index); 

//執(zhí)行刪除動作 

delete_one_student(student_index); 

}

else

printf('沒有該學(xué)號的學(xué)生!\n'); 

//是否繼續(xù)刪除信息

printf('是否繼續(xù)刪除信息?繼續(xù)請輸入y,返回主菜單輸入n\n');

char go_on; 

scanf('%s',&go_on);

if(go_on=='y') 

delete_info();

 } 

 

 

 //計算總分函數(shù) 

void compute_total_score()

 { 

printf('當(dāng)前功能————計算總分!\n'); 

for (int i = 0; i < student_count; ++i)

student_array[i].total_score=student_array[i].c_score+student_array[i].english_score+student_array[i].database_score; 

print_one_student(student_array[i]);

printf('總成績:%f\n', student_array[i].total_score);

printf('總分計算完成?。?!\n');

 } 

 

 

 //成績排序函數(shù)

void sort_info()

 {

printf('當(dāng)前功能————成績排序!\n'); 

printf('排序前所有學(xué)生信息如下:\n');

print_all_students();

int sort_type;

while(1)

printf('請輸入排序字段,學(xué)號:1,C語言成績:2,英語成績:3,數(shù)據(jù)庫成績:4\n');

scanf('%d',&sort_type);

if(sort_type>=1&&sort_type<=4)

break; 

}

switch(sort_type)

case 1: 

sort_by_id(); 

break; 

case 2:

sort_by_c_score();

break;

case 3: 

sort_by_english_score(); 

break; 

case 4: 

sort_by_database_score(); 

break;

printf('排序后所有學(xué)生信息如下:\n');

print_all_students(); 

//是否繼續(xù)刪除信息 

printf('是否繼續(xù)排序信息?繼續(xù)請輸入y,返回主菜單輸入n\n'); 

char go_on;

scanf('%s',&go_on);

if(go_on=='y')

sort_info();

 } 



//根據(jù)輸入的學(xué)號,遍歷結(jié)構(gòu)體數(shù)組,若存在該學(xué)生,返回數(shù)組下標(biāo),不存在返回-1

int search_one_student(int id)

 {

for (int i = 0; i < student_count; ++i)

if(student_array[i].id==id)

return i;

}

return -1; 

 } 



//輸出某個學(xué)生的信息 

void print_one_student(struct student one)

{

printf('學(xué)生信息:學(xué)號:%d,姓名:%s,年齡:%d,C語言成績:%f,英語成績:%f,數(shù)據(jù)庫成績:%f\n',one.id,one.name,one.age,one.c_score,one.english_score,one.database_score);



//輸出所有學(xué)生的信息

void print_all_students()

if(student_count==0)

{

printf('暫無學(xué)生信息\n\n\n');

}

for (int i = 0; i < student_count; ++i)

print_one_student(student_array[i]);



void modify_one_student(int student_index)

//修改前,輸出學(xué)生信息 

print_one_student(student_array[student_index]); 

//字段序號初始值 

int item_index=0; 

//不允許修改學(xué)號字段 

while(1)

printf('請輸入要修改的字段序號,姓名:1,年齡:2,C語言成績:3,英語成績:4,數(shù)據(jù)庫成績:5\n'); 

scanf('%d',&item_index); 

if(item_index>=1&&item_index<=5)

break; 

switch(item_index)

case 1: 

printf('請輸入 %s 字段的新值\n', get_item_name(item_index)); 

char* item_value_1=(char *)malloc(100);

scanf('%s',item_value_1);

student_array[student_index].name=item_value_1;

break;

case 2:

printf('請輸入 %s 字段的新值\n', get_item_name(item_index));

int item_value_2; 

scanf('%d',&item_value_2);

student_array[student_index].age=item_value_2;

break;

case 3: 

printf('請輸入 %s 字段的新值\n', get_item_name(item_index));

float item_value_3;

scanf('%f',&item_value_3); 

student_array[student_index].c_score=item_value_3;

break; 

case 4:

printf('請輸入 %s 字段的新值\n', get_item_name(item_index));

float item_value_4;

scanf('%f',&item_value_4); 

student_array[student_index].english_score=item_value_4;

break; 

case 5:

printf('請輸入 %s 字段的新值\n', get_item_name(item_index)); 

float item_value_5;

scanf('%f',&item_value_5); 

student_array[student_index].database_score=item_value_5;

break; 

}

printf('修改成功!新的學(xué)生信息如下:\n');

//修改后輸出學(xué)生信息 

print_one_student(student_array[student_index]);

//是否繼續(xù)刪除信息 

printf('是否繼續(xù)修改該學(xué)生信息?繼續(xù)請輸入y,返回主菜單輸入n\n');

char go_on; 

scanf('%s',&go_on);

if(go_on=='y') 

modify_one_student(student_index);



//刪除數(shù)組對應(yīng)序號的學(xué)生信息,把i位置后面的數(shù)據(jù)組元素向前移動覆蓋i,student_count計數(shù)器減1 

void delete_one_student(int student_index)

{

for (int i = student_index; i < student_count-1; ++i) 

student_array[i]=student_array[i+1]; 

student_count--;

printf('刪除完成\n\n\n'); 



//根據(jù)輸入的字段序號,返回字段名稱

char * get_item_name(int item_index)

switch(item_index)

{  

case 0:

return '學(xué)號';

case 1: 

return '姓名'; 

case 2:

return '年齡';

case 3:

return 'C語言成績'; 

case 4:

return '英語成績';

case 5: 

return '數(shù)據(jù)庫成績';

default: 

return '';



//按照id排序,使用最簡單的冒泡排序法

void sort_by_id()

for (int i = 0; i < student_count; ++i)

{

for (int j = i; j < student_count; ++j) 

if(student_array[i].id>student_array[j].id)

{  

struct student temp=student_array[i]; 

student_array[i]=student_array[j];

student_array[j]=temp;

printf('按照 學(xué)號 排序完成\n');



//按照C語言成績排序,使用最簡單的冒泡排序法

void sort_by_c_score()

for (int i = 0; i < student_count; ++i)

for (int j = i; j < student_count; ++j)

{

if(student_array[i].c_score>student_array[j].c_score)

struct student temp=student_array[i];

student_array[i]=student_array[j]; 

student_array[j]=temp;

}

printf('按照 C語言成績 排序完成\n');



//按照英語成績排序,使用最簡單的冒泡排序法 

void sort_by_english_score()

for (int i = 0; i < student_count; ++i)

for (int j = i; j < student_count; ++j)

if(student_array[i].english_score>student_array[j].english_score)

struct student temp=student_array[i]; 

student_array[i]=student_array[j]; 

student_array[j]=temp;

}

}

}

printf('按照 英語成績 排序完成\n'); 



//按照數(shù)據(jù)庫成績排序,使用最簡單的冒泡排序法 

void sort_by_database_score()

for (int i = 0; i < student_count; ++i)

for (int j = i; j < student_count; ++j)

{

if(student_array[i].database_score>student_array[j].database_score)

struct student temp=student_array[i]; 

student_array[i]=student_array[j]; 

student_array[j]=temp;

}

printf('按照 數(shù)據(jù)庫成績 排序完成\n');

}



------------------------------------------------華麗的分割線-------------------------------------------


每天還是堅持著上下班,即使上班什么事情也沒做

每天還是跟往常一樣,在上班時間做著與工作無關(guān)的事情,并幻想著10年、20年、30年以后...

剛好,差不多一年的時間?;嫉没际?,開始在意家人的期望,在意朋友的眼光。

哎,看來是做不了高冷的女子了

青春、 都會有很多不羈的想法,很多天馬行空的夢幻

我的理想就是不上班,還有數(shù)不盡的錢!

總覺得以后會有花不完的錢,我也不知道自己這是哪來的勇氣寫這個日志,對此、我就服我自己

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約