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

c語言管理系統

發布時間: 2022-02-21 11:35:58

c語言圖書管理系統

用戶名 yhk
密碼 1234

Ⅱ 急求一個C語言管理系統

------------------------------------------//Copyright(C)2009沈陽工程學院信息安全工作室//版權所有。////文件名:模擬停車場問題.cpp//文件功能描述:模擬停車場問題//////創建標識:20091214////修改標識:20091218//修改描述:完成編碼//----------------------------------------------------------------*///頭文件#include#include#include#include//常量定義#defineMAX_STOP4//定義停車場最大停車數#defineMAX_PLATE10//定義車牌號最大長度#defineTIME_COUNT"秒"//定義時間單位#defineTIME_MS_TO_CONUT1000//定義時間進制,意為由TIME_COUNT到毫秒的進制#defineUNIT_PRICE10//定義單位時間收費標准usingnamespacestd;//使用std命名空間//數據結構定義//定義存儲汽車信息的結構體typedefstruct{charlicense_plate[MAX_PLATE];//汽車牌照號碼,定義為一個字元指針類型charstate;//汽車當前狀態,字元p表示停放在停車位上,字元s表示停放在便道上,每輛車的初始狀態用字元i來進行表示inttime;//汽車停入停車場時的時間,用來計時收費}CAR;//定義模擬停車場的棧結構typedefstruct{CARSTOP[MAX_STOP];//汽車信息的存儲空間inttop;//用來指示棧頂位置的靜態指針}SeqStack;//定義模擬便道的隊列結構typedefstructnode{CARWAIT;//汽車信息的存儲空間structnode*next;//用來指示隊列位置的動態指針}QNode;//鏈隊列節點的類型//定義鏈隊列的收尾指針typedefstruct{QNode*front,*rear;}LQueue;//將頭尾指針封裝在一起的鏈隊//函數聲明intEmpty_LQueue(LQueue*q);//判隊空intLeaveCheck(SeqStackparking,char*license_plate);//檢查離開的車是否在停車場中intQueueLength(LQueue*q);//判隊長度intOut_LQueue(LQueue*&sidewalk,char*license_plate);//出隊操作intStackEmpty(SeqStackparking);//判斷棧是否為空intStackFull(SeqStackparking);//判斷棧是否為滿intStackPop(SeqStack&parking);//出棧操作intStackTop(SeqStackparking,char*license_plate,int&time);//取棧頂元素voidCar_come(SeqStack&parking,LQueue*&sidewalk);//有車到來時的操作voidCar_leave(SeqStack&parking,LQueue*&sidewalk);//有車離開的操作voidDisplay(SeqStackparking);//顯示停車場內的所有信息調試時用voidInitStack(SeqStack&parking);//初始化棧voidInitList(LQueue*&sidewalk);//初始化隊列voidIn_LQueue(LQueue*&sidewalk,char*license_plate);//進隊操作voidInput_Check(char*license_plate);////檢驗輸入的車牌是否合法voidStackPush(SeqStack&parking,char*license_plate,intstop_time);//進棧操作voidmain(){//定義變數SeqStackparking;LQueue*sidewalk=NULL;char*choice=newchar;intflag=1;//定義一個變數判斷是否退出//初始化一個為空的停車場InitStack(parking);//初始化一個為空的便道InitList(sidewalk);//運行界面及功能選擇while(flag){coutrear=NULL;}//入隊voidIn_LQueue(LQueue*&sidewalk,char*license_plate){QNode*car_on_sidewalk;car_on_sidewalk=(QNode*)malloc(sizeof(QNode));//為新節點開辟新空間strcpy(car_on_sidewalk->WAIT.license_plate,license_plate);//將數據寫入節點car_on_sidewalk->WAIT.state='s';//寫入停車信息car_on_sidewalk->WAIT.time=GetTickCount();//寫入停車時間car_on_sidewalk->next=NULL;if(Empty_LQueue(sidewalk))//隊空則創建第一個節點sidewalk->front=sidewalk->rear=car_on_sidewalk;else{//隊非空插入隊尾sidewalk->rear->next=car_on_sidewalk;sidewalk->rear=car_on_sidewalk;}}//判隊空intEmpty_LQueue(LQueue*q){if(q->front==NULL)return1;elsereturn0;}//判隊長度返回隊長intQueueLength(LQueue*q){QNode*p=q->front;inti=0;while(p!=NULL){i++;p=p->next;}returni;}//出隊成功返回1隊空返回0intOut_LQueue(LQueue*&sidewalk,char*license_plate){QNode*car_on_sidewalk;if(Empty_LQueue(sidewalk))//如果隊空返回0return0;car_on_sidewalk=sidewalk->front;strcpy(license_plate,car_on_sidewalk->WAIT.license_plate);//取出隊頭元素if(sidewalk->front==sidewalk->rear)//隊中只有一個元素sidewalk->front=sidewalk->rear=NULL;//刪除元素elsesidewalk->front=sidewalk->front->next;//隊頭指針後移free(car_on_sidewalk);//釋放指針return1;}//檢查離開的車是否在停車場中返回車在停車場中位置不在則返回0intLeaveCheck(SeqStackparking,char*license_plate){intflag=parking.top+1;//定義變數記錄當前車在停車場中位置if(StackEmpty(parking))return0;else{//查找離開車所在位置while(parking.top!=-1&&strcmp(parking.STOP[parking.top].license_plate,license_plate)!=0){flag--;parking.top--;}returnflag;}}//檢驗輸入的車牌是否合法voidInput_Check(char*license_plate){intflag=1;inti;stringtmpstr;while(flag){cin>>tmpstr;getchar();if(tmpstr.length()

Ⅲ c語言(我的藏書管理系統)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>//定義字元數組

#include<conio.h>
static int number=0;
struct Book_type{//書名、ISBN、出版時間、現在狀態。

char Bname[10];

int isbn;

char data[10];

char now[10];

};
struct Book_type book[100];
void init_book(){
strcpy(book[number].Bname,"數字信號處理");
strcpy(book[number].data,"2018-10-20");
book[number].isbn=1;
strcpy(book[number++].now,"out");
strcpy(book[number].Bname,"電路分析");
strcpy(book[number].data,"2014-06-02");
strcpy(book[number].now,"in");
book[number++].isbn=2;
}
void cangshu(){
int i=0;
while(i<number){
printf("書名:%s\n",book[i].Bname);
printf("ISBN:%d\n",book[i].isbn);
printf("出版時間:%s\n",book[i].data);
printf("現在狀態:%s\n",book[i].now);
i++;
}
}
void tianshu(int n){
int total=number+n;
for (;number <total; number++)
{
printf("請輸入第%d個書的信息以空格區分(1、書名 2、ISBN 3、出版時間 4、現在狀態):\n", number+1);
scanf("%s %d %s %s", &book[number].Bname, &book[number].isbn, &book[number].data, &book[number].now);/*%c前面要加空格, 不然輸入時會將空格賦給%c*/
}
}
void xiugai(int c){
printf("請輸入第%d個書的信息以空格區分(1、書名 2、ISBN 3、出版時間 4、現在狀態):\n", c-1);
scanf("%s %d %s %s", &book[c-1].Bname, &book[c-1].isbn, &book[c-1].data, &book[c-1].now);
printf("修改成功\n");
}
void chaxun(int n){
if(n>number){
printf("查無此書\n");
return;
}
printf("書名:%s\n",book[n-1].Bname);
printf("ISBN:%d\n",book[n-1].isbn);
printf("出版時間:%s\n",book[n-1].data);
printf("現在狀態:%s\n",book[n-1].now);
}
void jm() //顯示頁面

{
system ("cls");

printf("******************************************************\n");

printf("* *\n");

printf("* 1、顯示我的藏書 *\n");

printf("* 2、添加新書 *\n");

printf("* 3、修改 *\n");

printf("* 4、查詢 *\n");

printf("* 5、結束 *\n");

printf("* *\n");

printf("*******************************************************\n");

return ;

}

void mima()

{

char password[10]={0}; //界面格式

char pass[10]="1234";

printf("********************************\n");

printf("* *\n");

printf("* 請輸入密碼: *\n");

printf("* *\n");

printf("********************************\n");

printf("請輸入密碼:\n");

scanf("%s",password);

while(strcmp(pass,password)!=0){
printf("密碼錯誤請重新輸入\n");
scanf("%s",password);
}

}

void main()//main函數

{
int newbook,flag=1,change=0;
int choose=0;
init_book();
mima();
jm();
while(flag){
printf("請選擇功能\n");
scanf("%d",&choose);
switch (choose)
{
case 1:
cangshu();
break;
case 2:
printf("請輸入需要新添加幾本書\n");
scanf("%d",&newbook);
tianshu(newbook);
break;
case 3:
printf("請輸入需要修改第幾本:\n");
scanf("%d",&change);
xiugai(change);
break;

case 4:
printf("請輸入需要查詢的序列號:\n");
scanf("%d",&change);
chaxun(change);
break;
case 5:
flag=0;
break;
default:
break;
}
}
system("pause");
}
大概就這樣,基本上完善了功能

Ⅳ c語言班級管理系統

在譚浩強C語言程序設計里有關於文件的介紹,如需寫出具體程序,追問一下。

Ⅳ C語言程序 如何編寫管理系統

C語言編程的規則
C語言源程序的編程語法歸納如下:
1,強制性規則
1,一個C語言源程序必須有且只有一個MAIN函數.
2,函數名後必須緊跟圓括弧對,函數體放在右圓括弧")"後的花括弧對"{}"中.
3,每個程序體(包括函數的函數體,含有多條語句的選擇結構和循環結構中的語句序列)必須用一對花括弧括起來.
4,文件包含預處理命令,#INCLUDE<*.H應置於源程序的開始位置.
5,語句未尾必須有分號,而預處理命令和函數首部的未尾及右花括弧之後不要分號.
6,同一字母大,小寫意義不同,關鍵字和標准庫函數名必須用小寫.
7,變數必須先定義,後使用
8,除已有明顯間隔符外,標識符,關鍵字之間必須有至少一個空格9,註解必須包含在"/* */符號之間

Ⅵ 學生管理系統C語言

#include<stdio.h>
#define N 30
int Input1(long xuehao[],int score[],int n);
int Sum(int score[],int n);
int No3(long xuehao[],int score[],int n);
int No4(long xuehao[],int score[],int n);
int No5(long xuehao[],int score[],int n);
int No6(int score[],int n);
int Input1(long xuehao[],int score[],int n){
int i;

printf("輸入學號和成績\n");
for(i=0;i<n;i++){
scanf("%ld %d",&xuehao[i],&score[i]);
}
// for(i=0;i<n;i++){
// printf("學號%ld 成績%d\n",xuehao[i],score[i]);
//}
}

int Sum(int score[],int n){
int sum;
float aver;
sum=0; aver=0;
int i;
for(i=0;i<n;i++){
sum=sum+score[i];
}
aver=(float)sum/n;
printf("總分為%d,平均分為%.2f",sum,aver);
}

int No3(long xuehao[],int score[],int n){
int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(score[j]>score[k]){ k=j; }

}
if(k!=i){
/*交換成績*/
temp1=score[k];score[k]=score[i];score[i]=temp1;
/*交換學號*/
temp2=xuehao[k];xuehao[k]=xuehao[i];xuehao[i]=temp2;
}
}
int a;
printf("按成績高低排序\n");
for(a=0;a<n;a++){
printf("學號%ld 成績%d\n",xuehao[a],score[a]);
}

}
int No4(long xuehao[],int score[],int n){

int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(xuehao[j]>xuehao[k]){ k=j; }

}

if(k!=i){
/*交換學號*/
temp1=xuehao[k];xuehao[k]=xuehao[i];xuehao[i]=temp1;
/*交換成績*/
temp2=score[k];score[k]=score[i];score[i]=temp2;
}
}
int a;
printf("按學號排序\n");
for(a=0;a<n;a++){
printf("學號%ld 成績%d\n",xuehao[n-1-a],score[n-1-a]);
}

}

int No5(long xuehao[],int score[],int n){
int i,a;
long x;
No3(xuehao,score,n);
printf("輸入學號\n");
scanf("%ld",&x);
for(i=0;i<n;i++){
if(xuehao[i]==x){
a=i;
break;
}
}
printf("學號%ld 成績%d 排名%d\n ",xuehao[a],score[a],a+1);
}

int No6(int score[],int n){
int i;
int a=0,b=0,c=0,d=0,e=0;
float a1,b1,c1,d1,e1;

for(i=0;i<n;i++){
if(score[i]>=90) {a++; }
else if(score[i]>=80){b++; }
else if(score[i]>=70) {c++; }
else if(score[i]>=60) {d++; }
else {e++; printf("e is%d",e);}
}
a1=(float)a/n*100;b1=(float)b/n*100;c1=(float)c/n*100;d1=(float)d/n*100;e1=(float)e/n*100;
printf("優秀%d %.1f%%\n良好%d %.1f%% \n中等%d %.1f%% \n及格%d %.1f%%\n不及格%d %.1f%%\n",a,a1,b,b1,c,c1,d,d1,e,e1);

// printf("%.2f %.2f %.2f %.2f %.2f\n",a1,b1,c1,d1,e1);

}

int No7(long xuehao[],int score[],int n){
int i;
for(i=0;i<n;i++){
printf("學號%ld 成績%d\n",xuehao[i],score[i]);
}
Sum(score,n);
}

main(){
int score[N];
long xuehao[N];
int n;
printf("1.Input record\n");
printf("2.caculate total and average score of course\n");
printf("3.sort in descending order by score\n");
printf("4.sort in ascending order by score\n");
printf("5.search by number \n");
printf("6.statistic analysis\n");
printf("7.list record\n");
printf("0.exit\n");
int num;
printf("人數(不許超過30!不許超過30!不許超過30)\n");

do{scanf("%d",&n);}while(n<1 || n>30);
if(n>30) printf("wrong!\n");
//printf("輸入選項\n");
//scanf("%d",&num);
int p=1; //控制結束
do{
printf("輸入選項\n");
scanf("%d",&num);
switch(num){
case 1:
Input1(xuehao,score,n);
break;
case 2: Sum(score,n);
break;
case 3: No3(xuehao,score,n);

break;
case 4: No4(xuehao,score,n);
break;
case 5: No5(xuehao,score,n);
break;
case 6: No6(score,n);
break;
case 7: No7(xuehao,score,n);
break;
case 0: p=-1;
break;
}
}while(p!=-1);
return 0;
}

Ⅶ c語言--學生信息管理系統

人才,給5分想拿這么大的一個程序。

Ⅷ C語言編程一個管理系統

C語言寫這么一個很難,建議用java,c#或是c++之類的,會比較容易

Ⅸ 用C語言編寫一個學生管理系統。

概述

  • 單純只用多個數組管理學生成績信息,不使用結構體,該程序最主要的難點是依據學號或總成績對學生信息進行排序,藉助了臨時數組來標記排好序的下標。

  • 運行結果如下:

輸入數據:

貼上代碼(有點多)

#include <stdio.h>

#include <stdlib.h> //exit函數頭文件

#include <string.h> //字元串相關操作頭文件

#define MAX_STUDENT 30 //最大學生數

//函數聲明,本程序共10個子函數,每個函數對應一個操作

void student_scanf(int n);

void student_printf(int n);

int student_find_name(int n);

int student_find_num(int n);

void student_sort_num(int n);

void student_sort_sum(int n);

int student_alter_num(int n);

int student_alter_name(int n);

int student_delete_num(int n);

int student_delete_name(int n);

//全局數組變數,用於存儲學生信息

char names[MAX_STUDENT][50];

int math[MAX_STUDENT];

int english[MAX_STUDENT];

int computer[MAX_STUDENT];

int sum[MAX_STUDENT];

int num[MAX_STUDENT];

//以下變數用於學生信息數組排序,作為臨時數組

int temp_num[MAX_STUDENT];

char temp_names[MAX_STUDENT][50];

int temp_math[MAX_STUDENT];

int temp_english[MAX_STUDENT];

int temp_computer[MAX_STUDENT];

int temp_sum[MAX_STUDENT];

//sort數組存儲排好序的學號或姓名下標

int sort[MAX_STUDENT];

//循環全局變數

int i, j;

//main主函數

int main(void)

{

int choice,n;

while (1)

{

printf("************************************* ");

printf("歡迎使用學生成績管理系統 ");

printf("[1] 輸入所有學生信息 ");

printf("[2] 輸出所有學生成績 ");

printf("[3] 按學號查找某個學生信息 ");

printf("[4] 按姓名查找某個學生信息 ");

printf("[5] 按學號對學生排序 ");

printf("[6] 按總成績對學生排序 ");

printf("[7] 按學號修改某個學生信息 ");

printf("[8] 按姓名修改某個學生信息 ");

printf("[9] 按學號刪除某個學生信息 ");

printf("[10] 按姓名刪除某個學生信息 ");

printf("[0] 退出程序 ");

printf("請輸入您的選擇(0 - 9):");

scanf("%d",&choice);

printf("**************************************) ");

switch (choice)

{

case 1://錄入;

printf("請輸入錄入的學生信息數: ");

scanf("%d",&n);

student_scanf(n);

break;

case 2://輸出;

student_printf(n);

break;

case 3://根據學號查找

student_find_num(n);

break;

case 4://根據姓名查找

student_find_name(n);

break;

case 5://按學號排序

student_sort_num(n);

break;

case 6://按姓名排序

student_sort_sum(n);

break;

case 7://按學號修改

student_alter_num(n);

break;

case 8://按姓名修改

student_alter_name(n);

break;

case 9://按學號刪除

student_delete_num(n);

n--;

break;

case 10://按姓名刪除

student_delete_name(n);

n--;

break;

case 0://退出程序

printf("退出程序 ");

printf("程序結束,謝謝使用! ");

exit(0);

default:

printf("您輸入的菜單有誤。請重新輸入! ");

}

}

return 0;

}

//1.輸入信息

void student_scanf(int n)

{

for (i = 0; i<n; ++i)

{

printf(" 請輸入第%d個學生的信息: ", i + 1);

printf(" 學號:");

scanf("%d", &num[i]);

printf(" 姓名:");

scanf("%s", names[i]);

printf(" 數學成績:");

scanf("%d", &math[i]);

printf(" 英語成績:");

scanf("%d", &english[i]);

printf(" 計算機成績:");

scanf("%d", &computer[i]);

//計算總成績

sum[i] = math[i] + english[i] + computer[i];

}

}

//2.列印信息

void student_printf(int n)

{

printf(" 學號 姓名 數學成績 英語成績 計算機成績 總成績 ");

printf("---------------------------------------------------------- ");

for (i = 0; i<n; ++i)

{

printf("%d %s %d %d %d %d ", num[i], names[i], math[i], english[i], computer[i], sum[i]);

}

printf("------------------------------------------------------- ");

}

//3.按學號查找

int student_find_num(int n)

{

int nums;

int result;

printf("請輸入待查找的學生學號:");

scanf("%d",&nums);

result= -1;

for (i = 0; i<n; ++i)

{

if (nums == num[i])

{

result = i;

break;

}

}

//最後判斷q值

if (result == -1)

{

printf("沒有該學生信息! ");

return 0;

}

else

{

//先列印表頭

printf(" 學號 姓名 數學成績 英語成績 計算機成績 總成績 ");

//再列印數據

printf("%d %s %d %d %d %d ", num[result], names[result], math[result], english[result], computer[result], sum[result]);

printf("列印出查找結果! ");

}

return 1;

}

//4.用姓名查找成績

int student_find_name(int n)

{

char name[200];

int result;

printf("請輸入待查找的學生姓名:");

scanf("%s", name);

result = -1;

for (i = 0; i<n; ++i)

{

if (strcmp(name, names[i]) == 0)

{

result = i;

break;

}

}

if (result == -1)

{//未找到結果

printf("沒有該學生信息! ");

return 0;

}

else//找到結果

{

printf(" 學號 姓名 數學成績 英語成績 計算機成績 總成績 ");

printf("%d %s %d %d %d %d ", num[result], names[result], math[result], english[result], computer[result], sum[result]);

printf("已完成查找! ");

}

return 1;

}

//5.按學號排序

void student_sort_num(int n)

{

int min,max;

for(i=0; i<n; ++i) //復制臨時數組

{

temp_num[i] = num[i];

}

max = 0; //查找學號最大值,將其下標存至sort數組的最後一個值中

for(j=1; j<n; j++)

{

if(temp_num[max]<temp_num[j])

max = j;

}

sort[n-1] = max; //sort數組的最後一個數

for(i=0; i<n-1; ++i)

{

min = i; //查找學號最小值

for(j=0; j<n; ++j)

{

if(temp_num[min]>temp_num[j])

min = j;

}

//sort數組記錄排序的學生信息的下標

sort[i] = min;

temp_num[min] = temp_num[max]; //利用臨時數組將查找過的學生信息的學號設為最大值,排除查找干擾

}

for(i=0; i<n; ++i) //再復制一次臨時數組

{

temp_num[i] = num[i];

strcpy(temp_names[i],names[i]);

temp_math[i] = math[i];

temp_english[i] = english[i];

temp_computer[i] = computer[i];

temp_sum[i] = sum[i];

}

for(i=0; i<n; i++) //按照下標對原數組進行修改

{

num[i] = temp_num[sort[i]];

strcpy(names[i],temp_names[sort[i]]);

math[i] = temp_math[sort[i]];

english[i] = temp_english[sort[i]];

computer[i] = temp_computer[sort[i]];

sum[i] = temp_sum[sort[i]];

}

printf("排序完畢,請按菜單鍵2查看排序結果! ");

return ;

}

//6.按總成績排序

void student_sort_sum(int n)

{

int min,max;

for(i=0; i<n; ++i) //復制臨時數組

{

temp_sum[i] = sum[i];

}

max = 0; //查找總成績最大值,將其下標存至sort數組的最後一個值中

for(j=1; j<n; j++)

{

if(temp_sum[max]<temp_sum[j])

max = j;

}

sort[n-1] = max; //sort數組的最後一個數

for(i=0; i<n-1; ++i)

{

min = i; //查找總成績最小值

for(j=0; j<n; ++j)

{

if(temp_sum[min]>temp_sum[j])

min = j;

}

//sort數組記錄排序的學生信息的下標

sort[i] = min;

temp_sum[min] = temp_sum[max]; //利用臨時數組將查找過的學生信息的總成績設為最大值,排除查找干擾

}

for(i=0; i<n; ++i) //再復制一次臨時數組

{

temp_num[i] = num[i];

strcpy(temp_names[i],names[i]);

temp_math[i] = math[i];

temp_english[i] = english[i];

temp_computer[i] = computer[i];

temp_sum[i] = sum[i];

}

for(i=0; i<n; i++) //按照下標對原數組進行修改

{

num[i] = temp_num[sort[i]];

strcpy(names[i],temp_names[sort[i]]);

math[i] = temp_math[sort[i]];

english[i] = temp_english[sort[i]];

computer[i] = temp_computer[sort[i]];

sum[i] = temp_sum[sort[i]];

}

printf("排序完畢,請按菜單鍵2查看排序結果! ");

return ;

}

//7.按學號修改學生信息

int student_alter_num(int n)

{

int nums;

int result;

printf("請輸入待修改的學生學號:");

scanf("%d",&nums);

result= -1;

for (i = 0; i<n; ++i)

{

if (nums == num[i])

{

result = i;

break;

}

}

//最後判斷q值

if (result == -1)

{

printf("沒有該學生信息! ");

return 0;

}

else //修改信息值

{

printf("請重新輸入該學生信息: ");

printf("學號: ");

scanf("%d",&num[result]);

printf("姓名: ");

scanf("%s",names[result]);

printf("數學成績: ");

scanf("%d",&math[result]);

printf("英語成績: ");

scanf("%d",&english[result]);

printf("計算機成績: ");

scanf("%d",&computer[result]);

sum[result] = math[result] + english[result] + computer[result];

}

return 1;

}

//8.按姓名修改學生信息

int student_alter_name(int n)

{

char name[50];

int result;

printf("請輸入待修改的學生姓名:");

scanf("%s",name);

result= -1;

for (i = 0; i<n; ++i)

{

if (strcmp(name,names[i])==0)

{

result = i;

break;

}

}

//最後判斷q值

if (result == -1)

{

printf("沒有該學生信息! ");

return 0;

}

else //修改信息值

{

printf("請重新輸入該學生信息: ");

printf("學號: ");

scanf("%d",&num[result]);

printf("姓名: ");

scanf("%s",names[result]);

printf("數學成績: ");

scanf("%d",&math[result]);

printf("英語成績: ");

scanf("%d",&english[result]);

printf("計算機成績: ");

scanf("%d",&computer[result]);

sum[result] = math[result] + english[result] + computer[result];

}

return 1;

}

//9.按學號刪除學生信息

int student_delete_num(int n)

{

int nums;

int result;

printf("請輸入待刪除的學生學號:");

scanf("%d",&nums);

result= -1;

for (i = 0; i<n; ++i)

{

if (nums == num[i])

{

result = i;

break;

}

}

//最後判斷q值

if (result == -1)

{

printf("沒有該學生信息! ");

return 0;

}

else //刪除當前學生信息即為將數組從result的位置依次前挪一個位置

{

for(i=result; i<n-1; ++i) //最後在main函數中,要將n的值減1

{

num[i] = num[i+1];

strcpy(names[i],names[i+1]);

math[i] = math[i+1];

english[i] = english[i+1];

computer[i] = computer[i+1];

sum[i] = sum[i+1];

}

}

return 1;

}

//10.按姓名刪除學生信息

int student_delete_name(int n)

{

char name[50];

int result;

printf("請輸入待刪除的學生姓名:");

scanf("%s",name);

result= -1;

for (i = 0; i<n; ++i)

{

if (strcmp(name,names[i])==0)

{

result = i;

break;

}

}

//最後判斷q值

if (result == -1)

{

printf("沒有該學生信息! ");

return 0;

}

else //刪除當前學生信息即為將數組從result的位置依次前挪一個位置

{

for(i=result; i<n-1; ++i) //最後在main函數中,要將n的值減1

{

num[i] = num[i+1];

strcpy(names[i],names[i+1]);

math[i] = math[i+1];

english[i] = english[i+1];

computer[i] = computer[i+1];

sum[i] = sum[i+1];

}

}

return 1;

}

Ⅹ c語言學生管理系統

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000
/*定義學生成績信息結構*/
struct stu
{
char id[8];
char name[8];
double Chinese;
double Math;
double English;
double average;
double total;
};
/*學生結構數組,用於存儲學生成績信息*/
struct stu students[MAX];
/*當前學生人數*/
int current;
void input()
{
int i;

printf("請輸入學生人數:");
scanf("%d", & current);
for (i = 0; i < current; i++)
{
printf("\n請輸入學生學號,最多為7位數: ");
scanf("%s", students[i].id);
printf("請輸入學生姓名:");
scanf("%s", students[i].name);
printf("請輸入語文成績:");
scanf("%lf", &students[i].Chinese);
printf("請輸入數學成績:");
scanf("%lf", &students[i].Math);
printf("請輸入英語成績:");
scanf("%lf", &students[i].English);
students[i].total = students[i].Chinese + students[i].Math + students[i].English;
students[i].average = students[i].total / 3;
}
}
/*排名次,即對學生結構數組排序*/
void sort(struct stu array[], int n)
{
int i, j;
struct stu temp;

for (i = 0; i < n; i++)
{
for (j = i+1; j < n; j++)
{
if (array[i].average - array[j].average < 1e-16)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
/*統計平均成績,並輸出各分數段的人數*/
void print_score(struct stu array[], int n)
{
int i;
double ave = 0;
int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;

for (i = 0; i < n; i++)
{
ave += array[i].average;
switch ((int)(array[i].average / 10))
{
case 10:
case 9: sum1++; break;
case 8: sum2++; break;
case 7:
case 6: sum3++; break;
default: sum4++;
}
}
printf("全班的平均分為:%.1f\n", ave/n);
printf("平均分在90分以上的人數為:%d\n", sum1);
printf("平均分在80~89的人數為:%d\n", sum2);
printf("平均分在60~79的人數為:%d\n", sum3);
printf("平均分在60分以下的人數為:%d\n", sum4);
}
/*輸出不及格科目及學生名單*/
void print_unreach(struct stu array[], int n)
{
int i;

printf("科目\t學號\t名字\n");
for (i = 0; i < n; i++)
{
if (array[i].Chinese < 60)
{
printf("語文\t%s\t%s\n", array[i].id, array[i].name);
}
if (array[i].Math < 60)
{
printf("數學\t%s\t%s\n", array[i].id, array[i].name);
}
if (array[i].English < 60)
{
printf("英語\t%s\t%s\n", array[i].id, array[i].name);
}
}
}
/*列印優等生名單*/
void print_good(struct stu array[], int n)
{
int i;
char mark = 0;

if (n > 3)
{
n = 3;
}
printf("學號\t姓名\t語文\t數學\t英語\t平均分\t名次\n");
for (i = 0; i < n; i++)
{
if ((array[i].Chinese > 60) && (array[i].Math > 60) && (array[i].English > 60))
{
if (array[i].average > 90) mark = 1;
else if (array[i].average > 85)
{
if (array[i].Chinese == 100) mark = 1;
if (array[i].Math == 100) mark = 1;
if (array[i].English == 100) mark = 1;
if (array[i].Chinese > 95 && array[i].English > 95) mark = 1;
if (array[i].Chinese > 95 && array[i].Math > 95) mark = 1;
if (array[i].Math > 95 && array[i].English > 95) mark = 1;
}
if (mark == 1)
{
printf("%s\t%s\t", array[i].id, array[i].name);
printf("%.f\t%.f\t%.f\t%.1f\t", array[i].Chinese, array[i].Math, array[i].English, array[i].average);
printf("%d\n", i+1);
}
}
}
}
/*按學生姓名查詢成績*/
void search_name(struct stu array[], int n, char* name)
{
int i;
char mark = 1;

for (i = 0; i < n; i++)
{
if (strcmp(name, array[i].name) == 0)
{
printf("學生姓名:%s\n", name);
printf("學生學號:%s\n", array[i].id);
printf("語文:%.f\n", array[i].Chinese);
printf("數學:%.f\n", array[i].Math);
printf("英語:%.f\n", array[i].English);
printf("平均分:%.1f\n", array[i].average);
mark = 0;
}
}

if (mark == 1) puts("不存在該學生記錄");
}
/*按學生學號查詢成績*/
void search_id(struct stu array[], int n, char* id)
{
int i;
char mark = 1;

for (i = 0; i < n; i++)
{
if (strcmp(id, array[i].id) == 0)
{
printf("學生姓名:%s\n", array[i].name);
printf("學生學號:%s\n", array[i].id);
printf("語文:%.f\n", array[i].Chinese);
printf("數學:%.f\n", array[i].Math);
printf("英語:%.f\n", array[i].English);
printf("平均分:%.1f\n", array[i].average);
mark = 0;
break;
}
}
if (mark == 1) puts("不存在該學生記錄");
}
void print_menu()
{
system("cls");
printf("1.輸入學生信息\n");
puts("2.統計全班學生成績");
puts("3.按學號查詢學生成績");
puts("4.按姓名查詢學生成績");
puts("5.輸出不及格情況");
puts("6.輸出優等生名單");
puts("0.退出本程序");
printf("\n\n 請輸入你的選擇:");
}
int main(int argc, char **argv)
{
char ch = 0;
char id[8], name[8];

while (ch != '0')
{
print_menu();
ch = getchar();
switch (ch)
{
case '1':
{
system("cls");
input();
sort(students, current);
break;
}
case '2':
{
system("cls");
print_score(students, current);
break;
}
case '3':
{
system("cls");
printf("請輸入學號:");
scanf("%s", id);
search_id(students, current, id);
break;
}
case '4':
{
system("cls");
printf("請輸入姓名:");
scanf("%s", name);
search_name(students, current, name);
break;
}
case '5':
{
system("cls");
print_unreach(students, current);
break;
}
case '6':
{
system("cls");
print_good(students, current);
break;
}
case '0': exit(0);
}
printf("\n\n按任意鍵返回主菜單……");
getchar();
getchar();
}
return 0;
}