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

教務系統c語言設計

發布時間: 2022-04-21 03:30:07

1. 用c語言寫~~設計一個學生教務系統,該系統具有下列功能: 1、學生選課管理功能模塊(學生名單以本組

已經家樓主咯。

2. 用c語言或c++編程做教務處課程管理系統

可以用MFC做,我做過教師住房管理系統,就是用MFC做的。這個作業不難,練練手,以後找工作時比較有底氣。

3. 求C語言課程設計(教務信息管理系統)

/*-------------1-------------*/
#include<bios.h>
#include<dos.h> /*頭文件*/
#include<conio.h>
#include<ctype.h>
#include<process.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

#define NULL 0
#define ESC 0x001b /* 退出 */
#define F1 0x3b00 /* 查看幫助信息,調用HelpMassage()函數 */
#define F2 0x3c00 /*輸入學生成績*/
#define F3 0x3d00 /*按學號查找*/
#define F4 0x3e00 /*按姓名查找*/
#define F5 0x3f00 /*列出所有學生成績*/
#define F6 0x4000 /*統計*/

struct stuType /*定義結構體變數*/
{
char NO[11]; /*學號長度為10*/
char XM[10];
char AGE[2]; /*年齡長度為2*/
float CJ[4]; /*包含4門成績*/
};

/*-------------2-------------*/
int JY_NO(char *stu_num,FILE *fp) /*檢驗學號的正確性*/
{ struct stuType stud;
int NO;
char *p=stu_num;
if(strcmp(stu_num,"#")==0) return 1; /*若輸入"#"返回真值,不再循環輸入*/
while(*p!='\0') /*學號必須是數字,否則返回重新輸入*/
{ NO=(int)*p;
if(NO<48||NO>57)
{ puts("\t\tUndefined SN!Please input again!\n");/*非法學號!請重新輸入!*/
return 0;
}
else p++; /*指針加1*/
}
if(strlen(stu_num)!=10) /*若學號長度不為10,則返回重新輸入*/
{ puts("\t\tLength of SN Error!\n");/*學號長度不對*/
return 0;
}
if(getchar()!='\n') /*若學號後面的字元不是回車符,則學號長度大於10*/
{ printf("\t\tThe length of SN should more than 10!Please input again!\n");/*學號長度大於10個,請重新輸入*/
do{}while(getchar()!='\n'); /*用getchar接收多餘的字元*/
return 0;
}

else
{
rewind(fp); /*使文件指針指向頭*/
while(!feof(fp)) /*若文件指針未到結尾,就繼續執行下面的循環,feof遇到文件結束符返回非零值,否則返回0*/
{ fread(&stud,sizeof(struct stuType),1,fp); /*讀取一定長度的數據*/
if(strcmp(stu_num,stud.NO)==0) /*學號的唯一性*/
{ printf("\t\t Repeat SN,Please input again!\n");/*學號重復!請重新輸入*/
printf("\t\tThe Record of this student:\n");/*該學生成績如下*/
printf("\t\tChinese:%.1f\n",stud.CJ[0]);/*語文*/
printf("\t\tMath:%.1f\n",stud.CJ[1]);/*數學*/
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);/*英語*/
printf("\t\tTotal:%.1f\n",stud.CJ[3]);/*總評*/
return 0;
}
}
}
return 1;

}
/*-------------3-------------*/
int JY_NO2(char *stu_num) /*檢驗學號*/
{ int NO;
char *p=stu_num;
if(strcmp(stu_num,"#")==0)return 1; /*若輸入「#」,則返回真值結束*/
if(strlen(stu_num)!=10) /*學號長度不為10*/
{ puts("\t\tLength of SN Error!\n");/*學號長度不對*/
return 0;
}
while(*p!='\0') /*學號必須用數字,若包含有字母,或其它字元則返回假值重新輸入*/
{ NO=(int)*p;
if(NO<48||NO>57)
{ puts("\t\tUndefined SN!Please input again!\n");/*非法學號!請重新輸入*/
return 0;
}
else p++; /*指針加1*/
}
if(getchar()!='\n') /*檢驗學號長度是否大於10,並把多餘的字元去掉*/
{ printf("\t\tThe length of SN should more than 10!Please input again!\n");/*學號長度大於10個,請重新輸入*/
do{}while(getchar()!='\n');
return 0;
}
return 1;
}

/*-------------4-------------*/
int JY_XM(char *stu_XM) /*檢驗姓名*/
{ int PD;
char *p;
p=stu_XM;
while(*p!='\0') /*姓名只能用英文*/
{
PD=(int)*p;
if(PD<0)
{ puts("\t\tName should use English, Please input again!\n");/*姓名只能用英文請重新輸入*/
return 0;
}
else p++; /*使指針加1,指向下一漢字*/
}
if(getchar()!='\n') /*姓名長度不得大於5個*/
{ printf("\t\tThe length of Name is more than 5, Please input again!\n");/*姓名長度大於5個請重新輸入*/
do{}while(getchar()!='\n');
return 0;
}
return 1; /*字元串全為漢字返回真*/

}

/*-------------5-------------*/
int JY_AGE(float stu_AGE) /*年齡只能在0~100之間*/
{
if(stu_AGE<0||stu_AGE>100)
{ printf("\t\tInput Error! Record should between 0~100!\n");/*輸入錯誤,成績只能在0~100之間*/
return 0;
}
return 1;
}

/*-------------6-------------*/
int JY_CJ(float stu_CJ) /*學生成績只能在0~100之間*/
{
if(stu_CJ<0||stu_CJ>100)
{ printf("\t\tInput Error! Record should between 0~100!\n");/*輸入錯誤,成績只能在0~100之間*/
return 0;
}
return 1;
}

/*-------------7-------------*/
void CreatFile() /*輸入文件*/
{ FILE *fp;
struct stuType stu,stu0={"","",}; /*對stu0xianfu*/
fp=fopen("stu.dat","wb+"); /*打開或創建一個二進制文件,打開時將原來的內容刪除*/
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\t\tPress Anykey back...");/*文件打開失敗,按任意鍵返回*/
getch();
return;
}
else
{ while(1)
{ stu=stu0;
do{ printf("\n\t\tPlease input SN:"); /*輸入學號並檢驗其正確性*/
scanf("%10s",stu.NO);
}while(!JY_NO(stu.NO,fp));
if(strcmp(stu.NO,"#")==0)break;
do{ printf("\n\t\tPlease input Name:"); /*輸入姓名並檢驗其正確性*/
scanf("%10s",stu.XM);
}while(!JY_XM(stu.XM));
do{ printf("\n\t\tPlease input age:"); /*輸入年齡績並檢驗其正確性*/
scanf("%f",&stu.AGE);
}while(!JY_AGE(stu.AGE[0]));
do{ printf("\n\t\tPlease input record of Chinese:"); /*輸入成績並檢驗其正確性*/
scanf("%f",&stu.CJ[0]);
}while(!JY_CJ(stu.CJ[0]));
do{ printf("\n\t\tPlease input record of Math:"); /*同上*/
scanf("%f",&stu.CJ[1]);
}while(!JY_CJ(stu.CJ[1]));
do{ printf("\n\t\tPlease input record of English:");
scanf("%f",&stu.CJ[2]);
}while(!JY_CJ(stu.CJ[2]));
do{ printf("\n\t\tPlease input record of Total:");
scanf("%f",&stu.CJ[3]);
}while(!JY_CJ(stu.CJ[3]));
fwrite(&stu,sizeof(struct stuType),1,fp); /*寫文件*/
}

}
fclose(fp); /*關閉文件*/

}

/*-------------8-------------*/
void Search_Xuehao() /*按學號查詢*/
{ FILE *fp;
int flag;
struct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL) /*若文件打不開則輸出下面的信息*/
{ printf("\t\tFile opens Error!\n\t\t\tPress Anykey back...");
getch();
return;
}
else
{ do{ puts("\n\t\tPress\"#\" or search");
do{ printf("\t\tPlease input the SN what you want:");
scanf("%10s",stu.NO);
}while(!JY_NO2(stu.NO));
if(strcmp(stu.NO,"#")==0)break; /*若輸入「#」則結束循環*/
flag=0;
rewind(fp);
while(fread(&stud,sizeof(struct stuType),1,fp)) /*檢查文件指針結束*/
{ if(strcmp(stu.NO,stud.NO)==0) /*比較學號*/
{ puts("\t\tThe Record of this student:");
printf("\t\tSN:%s\n",stud.NO);
printf("\t\tName:%s\n",stud.XM);
printf("\t\tAGE:%.1f\n",stud.AGE[0]);
printf("\t\tChinese:%.1f\n",stud.CJ[0]);
printf("\t\tMath:%.1f\n",stud.CJ[1]);
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);
printf("\t\tTotal:%.1f\n",stud.CJ[3]);
flag=1; /*記錄學號是否查到*/
}
}
if(flag==0)puts("\t\tUndefined SN");
}while(strcmp(stu.NO,"#")!=0);

}
fclose(fp); /*關閉文件*/

}

/*-------------9-------------*/
void Search_Xingming() /*按姓名查找*/
{ FILE *fp;
int flag=0;
struct stuType stu,stud;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return;
}
else
{ do{
do{ printf("\t\tPlease input the Name of the Student what you want:");
scanf("%10s",stu.XM);
}while(!JY_XM(stu.XM));
rewind(fp); /*文件指針指向頭*/
while(fread(&stud,sizeof(struct stuType),1,fp))
{ if(strcmp(stu.XM,stud.XM)==0) /*比較姓名是否相同*/
{ puts("\t\tThe name of the Student is:");
printf("\t\tSN:%s\n",stud.NO);
printf("\t\tName:%s\n",stud.XM);
printf("\t\tAGE:%.1f\n",stud.AGE[0]);
printf("\t\tChinese:%.1f\n",stud.CJ[0]);
printf("\t\tMath:%.1f\n",stud.CJ[1]);
printf("\t\tEnglish:%.1f\n",stud.CJ[2]);
printf("\t\tTotal:%.1f\n",stud.CJ[3]);
flag=1; /*記錄姓名是否被查到*/
}
}
if(flag==0)puts("\n\t\tUndefined Name!");
puts("\t\tContinue?(y--yes,Else key back)?");
}while(getch()=='y');
}
fclose(fp);
/* puts("\t\tPress Anykey to continue...");*/
/* getch();*/

}

/*-------------10-------------*/
int ListFile(void) /*輸出文件,列出所有學生成績*/
{ FILE *fp;
int REC=0; /*記錄學生人數*/
struct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return 1;
}
else{ printf("\t\tRecords of the Students:\n");
printf("\t\tSN\t\tName\tChinese\tMath\tEnglish\tTotal\n");
rewind(fp);
while(fread(&stu,sizeof(struct stuType),1,fp))
{ /*每讀取一個長度的數據就輸出*/
printf("\t\t%s",stu.NO);
printf("\t%s",stu.XM);
printf("\t%.1f",stu.AGE);
printf("\t%.1f",stu.CJ[0]);
printf("\t%.1f",stu.CJ[1]);
printf("\t%.1f",stu.CJ[2]);
printf("\t%.1f",stu.CJ[3]);
printf("\n");
REC++;
if(REC%20==0) /*20個學生成績,停一下*/
{ printf("\t\tPress Anykey to continue...\n");
getch();
}
}
}
fclose(fp); /*關閉文件*/
printf("\t\tContinue...");
getch();

}

/*-------------11-------------*/
void Statistics() /*統計及格和優秀人數*/
{ FILE *fp;
int REC=0,unpass[4]={0},good[4]={0}; /*REC--記錄個數,即人數,unpass--重修人數,good--優秀人數*/
float highest[4]={0},score[4]={0}; /*highest--最高分,score--總分*/

struct stuType stu;
fp=fopen("stu.dat","rb");
if(fp==NULL)
{ printf("\t\tFile opens Error!\n\t\tPress Anykey back...");
getch();
return;
}
else { rewind(fp);
while(fread(&stu,sizeof(struct stuType),1,fp))
{ REC++;
score[0]=score[0]+stu.CJ[0]; /*語文*/
if(stu.CJ[0]<=60)unpass[0]++;
if(stu.CJ[0]>=80)good[0]++;
if(highest[0]<stu.CJ[0])highest[0]=stu.CJ[0];
score[1]=score[1]+stu.CJ[1]; /*數學*/
if(stu.CJ[1]<=60)unpass[1]++;
if(stu.CJ[1]>=80)good[1]++;
if(highest[1]<stu.CJ[1])highest[1]=stu.CJ[1];
score[2]=score[2]+stu.CJ[2]; /*英語*/
if(stu.CJ[2]<=60)unpass[2]++;
if(stu.CJ[2]>=80)good[2]++;
if(highest[2]<stu.CJ[2])highest[2]=stu.CJ[2];
score[3]=score[3]+stu.CJ[3]; /*總評*/
if(stu.CJ[3]<=60)unpass[3]++;
if(stu.CJ[3]<=80)good[3]++;
if(highest[3]<stu.CJ[3])highest[3]=stu.CJ[3];
}
if(REC==0) /*可以防止記錄為0是REC作除數而造成的錯誤*/
{ printf("\t\tYou did't input the Name!Press Anykey back...");
getch();
return;
}
else{
printf("\t Chinese\t Math\t English\tTotal\n"); /*輸出統計信息*/
printf("\tAverage: %.1f\t %.1f\t %.1f\t\t%.1f\n",score[0]/REC,score[1]/REC,score[2]/REC,score[3]/REC);
printf("\tTop record: %.1f\t %.1f\t %.1f\t\t%.1f\n",highest[0],highest[1],highest[2],highest[3]);
printf("\tNumber of good students: %d\t\t %d\t %d\t\t %d\n",good[0],good[1],good[2],good[3]);
printf("\tNumber of unpassed students:%d\t\t %d\t %d\t\t %d\n",unpass[0],unpass[1],unpass[2],unpass[3]);
}
}
fclose(fp);
printf("\n\t\t\tPress Anykey to continue...");
getch();

}

/*-------------12-------------*/
void HelpMessage()
{ clrscr();
printf("\n\n\n\n\n chi xi tong shi lao shi suo bu zuoye bian ercheng,gai xitong juyou cunchu xuesheng shuju,an xuehao,xingming chaxun,liechu xuesheng chengji he tongjigongneng.\n \n shiyongfangfa:xitong shulu shuju hou,jiangzai dangqian muluzhong jianli yige mingwei stu.dat wenjian,yongyubaocun shulu de shuju.xuehao shulu neng yong shuzi shulu qie xuehao neng shi10wei.xingming shulu fuhe zhongguoren de xingming,neng yong zhongwen pinying,qie zuichangwei5 ge han.\n chi chenxu zai Turbo C2.0xia yunxing tongguo \n\n ");
getch();
}

/*-------------13-------------*/
int GetKey(void) /*此函數返回一個按鍵的數值*/
{ int key;
key=bioskey(0); /*bioskey為調用BIOS鍵盤介面*/
if(key<<8) /*位移*/
{
key=key&0x00ff;

}
return key; /*返回按鍵*/
}

/*-------------14-------------*/
void main()
{ int key;
struct date d; /*定義時間結構體*/
getdate(&d); /*讀取系統日期並把它放到結構體d中*/
clrscr(); /*清除屏幕*/
printf("\n\n\n\n\n");
printf("\t ========================================================\n"); /*版本信息*/
printf("\n");
printf("\t\t The System of Students Records Management 1.0 \n");
printf("\n");
printf("\n");
printf("\t\t Builder: XG042-WZM YS HYF WQ \n");
printf("\t\t Teacher:Song Zheyuan\n");
printf("\t\t Time:2005\\7\\5 \n");
printf("\n");
printf("\t ========================================================\n");
printf("\t\t\tPress Anykey to continue...");
/*while(!kbhit());*/
getch(); /*從鍵盤讀取一個字元,但不顯示於屏幕*/
system("cls"); /*調用DOS的清屏函數,TC中可用clrscr代替*/
while(1) /*主菜單*/
{
printf("\n\n\n\n\n");
printf("\t **************************************************\n");
printf("\t **\t **\n");
printf("\t **\tF1 --Help **\n");
printf("\t **\t **\n");
printf("\t **\tF2 --Data Input & Save **\n");
printf("\t **\t **\n");
printf("\t **\tF3 --Search by SN **\n");
printf("\t **\t **\n");
printf("\t **\tF4 --Search by Name **\n");
printf("\t **\t **\n");
printf("\t **\tF5 --Contents Input **\n");
printf("\t **\t **\n");
printf("\t **\tF6 --Count Students Number(Passed&Good) **\n");
printf("\t **\t **\n");
printf("\t **\tESC--Quit the System **\n");
printf("\t **\t **\n");
printf("\t **************************************************\n");
printf("\n\t Please select...\t\t%d\\%d\\%d\n\n",d.da_year,d.da_mon,d.da_day); /*提示信息,並顯示當前系統日期*/
key=GetKey(); /*調用自定義函數,讀取一個鍵*/
switch(key)
{
case F1: HelpMessage(); break;
case F2: CreatFile(); break;

case F3: Search_Xuehao(); break;
case F4: Search_Xingming();break;
case F5: ListFile(); break;
case F6: Statistics(); break;
case ESC:exit(1); break;
/*default: puts("\t\t\tWrong SN input!");
printf("\t\t\tPress Anykey back...");
getch();*/
}
clrscr(); /*每執行完一項功能後,自動清屏*/
}

}

4. 怎樣用C語言編寫教務管理系統

我去年做的
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#define MAX 50
void input();
void sort();
void display();
void insert();
void del();
void average();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()//主函數
{
char as;
start: printf("\t\t\t歡迎使用學生成績管理系統\n\n");
//一下為功能選擇模塊
do{
printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員信息\n\t\t\t\t3.成績排序信息\n\t\t\t\t4.添加學員信息\n\t\t\t\t5.刪除學員信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t選擇功能選項:");
as=getch();
switch(as)
{
case '1':
system("cls");
input();
break;
case '2':
system("cls");
display();
break;
case '3':
system("cls");
sort();
break;
case '4':
system("cls");
insert();
break;
case '5':
system("cls");
del();
break;
case '6':
system("exit");
exit(0);
default:
system("cls");
goto start;
}
}while(1);
//至此功能選擇結束
}
void input()//原始數據錄入模塊
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.錄入學員信息\n輸入第%d個學員的信息\n",i+1);
printf("\n輸入學生編號:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[i].sex);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("%d",now_no);
printf("是否繼續輸入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
system("cls");
}
void sort()//排序數據函數
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}}}
}
void display()//顯示數據函數
{
int i;
char as;
float ave;
do
{
printf("\t\t班級學員信息列表\n");
printf("\t編號\t姓名\t性別\t成績\t成績\t成績\t平均值\n");
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意鍵返回主菜單.");
as=getch();
goto exit;
}
while(as!='n');
exit: system("cls");
}
void insert()//插入數據函數
{
char ch;
do
{
printf("\n\t\t輸入新插入學員隊信息\n");
printf("\n輸入學生編號:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n輸入學員成績:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否繼續輸入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
}
void del()//刪除數據函數
{
int inum,i,j;
printf("輸入要刪除學員的編號:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
for(j=i;j<now_no;j++)
{
stu[i]=stu[i+1];
}
now_no=now_no-1;
}
break;
}
system("cls");
}

5. C語言編寫一個教務管理系統 注:可以把這個程序也發我一下嗎

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#defineLENsizeof(structstudent)
#defineFORMAT"%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf "
#defineDATAstu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
structstudent/*定義學生成績結構體*/
{intnum;/*學號*/
charname[15];/*姓名*/
doubleelec;/*選修課*/
doubleexpe;/*實驗課*/
doublerequ;/*必修課*/
doublesum;/*總分*/
};
structstudentstu[50];/*定義結構體數組*/
voidin();/*錄入學生成績信息*/
voidshow();/*顯示學生信息*/
voidorder();/*按總分排序*/
voiddel();/*刪除學生成績信息*/
voidmodify();/*修改學生成績信息*/
voidmenu();/*主菜單*/
voidinsert();/*插入學生信息*/
voidtotal();/*計算總人數*/
voidsearch();/*查找學生信息*/
voidmain()/*主函數*/
{intn;
menu();
scanf("%d",&n);/*輸入選擇功能的編號*/
while(n)
{switch(n)
{case1:in();break;
case2:search();break;
case3:del();break;
case4:modify();break;
case5:insert();break;
case6:order();break;
case7:total();break;
case8:show();break;
default:break;
}
getch();
menu();/*執行完功能再次顯示菜單界面*/
scanf("%d",&n);
}
}

voidin()/*錄入學生信息*/
{inti,m=0;/*m是記錄的條數*/
charch[2];
FILE*fp;/*定義文件指針*/
if((fp=fopen("data.txt","a+"))==NULL)/*打開指定文件*/
{
printf("cannotopen ");
return;
}
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;/*統計當前記錄條數*/
}
fclose(fp);
if(m==0)
printf("Norecord! ");
else
{
system("cls");
show();/*調用show函數,顯示原有信息*/
}
if((fp=fopen("data.txt","wb"))==NULL)
{
printf("cannotopen ");
return;
}
for(i=0;i<m;i++)
fwrite(&stu[i],LEN,1,fp);/*向指定的磁碟文件寫入信息*/

printf("pleaseinput(y/n):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要錄入新信息*/
{
printf("number:");
scanf("%d",&stu[m].num);/*輸入學生學號*/
for(i=0;i<m;i++)
if(stu[i].num==stu[m].num)
{
printf("thenumberisexisting,pressanytocontinue!");
getch();
fclose(fp);
return;
}
printf("name:");
scanf("%s",stu[m].name);/*輸入學生姓名*/
printf("elective:");
scanf("%lf",&stu[m].elec);/*輸入選修課成績*/
printf("experiment:");
scanf("%lf",&stu[m].expe);/*輸入實驗課成績*/
printf("requiredcourse:");
scanf("%lf",&stu[m].requ);/*輸入必修課成績*/
stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*計算出總成績*/
if(fwrite(&stu[m],LEN,1,fp)!=1)/*將新錄入的信息寫入指定的磁碟文件*/
{
printf("cannotsave!");
getch();
}
else
{
printf("%ssaved! ",stu[m].name);
m++;
}
printf("continue?(y/n):");/*詢問是否繼續*/
scanf("%s",ch);
}
fclose(fp);
printf("OK! ");
}

voidshow()
{FILE*fp;
inti,m=0;
fp=fopen("data.txt","rb");
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf(" ");
for(i=0;i<m;i++)
{
printf(FORMAT,DATA);/*將信息按指定格式列印*/
}
}

voidmenu()/*自定義函數實現菜單功能*/
{
system("cls");
printf(" ");
printf(" |---------------------STUDENT-------------------| ");
printf(" | 0.exit| ");
printf(" | 1.inputrecord| ");
printf(" | 2.searchrecord| ");
printf(" | 3.deleterecord| ");
printf(" | 4.modifyrecord| ");
printf(" | 5.insertrecord| ");
printf(" | 6.order| ");
printf(" | 7.number| ");
printf(" | 8.show| ");
printf(" |-----------------------------------------------| ");
printf(" choose(0-8):");
}

voidorder()/*自定義排序函數*/
{FILE*fp;
structstudentt;
inti=0,j=0,m=0;
if((fp=fopen("data.txt","r+"))==NULL)
{
printf("cannotopen! ");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("norecord! ");
return;
}
if((fp=fopen("data.txt","wb"))==NULL)
{
printf("cannotopen ");
return;}
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)/*雙重循環實現成績比較並交換*/
if(stu[i].sum<stu[j].sum)
{t=stu[i];stu[i]=stu[j];stu[j]=t;}
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(i=0;i<m;i++)/*將重新排好序的內容重新寫入指定的磁碟文件中*/
if(fwrite(&stu[i],LEN,1,fp)!=1)
{
printf("%scannotsave! ");
getch();
}
fclose(fp);
printf("savesuccessfully ");
}
voiddel()/*自定義刪除函數*/
{FILE*fp;
intsnum,i,j,m=0;
charch[2];
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;
fclose(fp);
if(m==0)
{
printf("norecord! ");
return;
}
printf("pleaseinputthenumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)
break;
printf("findthestudent,delete?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判斷是否要進行刪除*/
for(j=i;j<m;j++)
stu[j]=stu[j+1];/*將後一個記錄移到前一個記錄的位置*/
m--;/*記錄的總個數減1*/
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(j=0;j<m;j++)/*將更改後的記錄重新寫入指定的磁碟文件中*/
if(fwrite(&stu[j],LEN,1,fp)!=1)
{printf("cannotsave! ");
getch();}
fclose(fp);
printf("deletesuccessfully! ");
}

voidsearch()/*自定義查找函數*/
{FILE*fp;
intsnum,i,m=0;
charch[2];
if((fp=fopen("data.txt","rb"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;
fclose(fp);
if(m==0){printf("norecord! ");return;}
printf("pleaseinputthenumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)/*查找輸入的學號是否在記錄中*/
{printf("findthestudent,show?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf(" ");
printf(FORMAT,DATA);/*將查找出的結果按指定格式輸出*/
break;
}
}
if(i==m)printf("cannotfindthestudent! ");/*未找到要查找的信息*/
}

voidmodify()/*自定義修改函數*/
{FILE*fp;
inti,j,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)m++;
if(m==0){printf("norecord! ");
fclose(fp);
return;
}
show();
printf("! ");
printf("modifynumber:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)/*檢索記錄中是否有要修改的信息*/
break;
printf("findthestudent!youcanmodify! ");

printf("name:");
scanf("%s",stu[i].name);/*輸入名字*/
printf("elective:");
scanf("%lf",&stu[i].elec);/*輸入選修課成績*/
printf("experiment:");
scanf("%lf",&stu[i].expe);/*輸入實驗課成績*/
printf("requiredcourse:");
scanf("%lf",&stu[i].requ);/*輸入必修課成績*/
printf("modifysuccessful!");
stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(j=0;j<m;j++)/*將新修改的信息寫入指定的磁碟文件中*/
if(fwrite(&stu[j],LEN,1,fp)!=1)
{printf("cannotsave!");getch();}
fclose(fp);
}

voidinsert()/*自定義插入函數*/
{FILE*fp;
inti,j,k,m=0,snum;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)m++;
if(m==0){printf("norecord! ");
fclose(fp);
return;
}
printf("!(inputthenumber) ");
scanf("%d",&snum);/*輸入要插入的位置*/
for(i=0;i<m;i++)
if(snum==stu[i].num)
break;
for(j=m-1;j>i;j--)
stu[j+1]=stu[j];/*從最後一條記錄開始均向後移一位*/
printf(". ");
printf("number:");
scanf("%d",&stu[i+1].num);
for(k=0;k<m;k++)
if(stu[k].num==stu[i+1].num)
{
printf("thenumberisexisting,pressanytocontinue!");
getch();
fclose(fp);
return;
}
printf("name:");
scanf("%s",stu[i+1].name);
printf("elective:");
scanf("%lf",&stu[i+1].elec);
printf("experiment:");
scanf("%lf",&stu[i+1].expe);
printf("requiredcourse:");
scanf("%lf",&stu[i+1].requ);
stu[i+1].sum=stu[i+1].elec+stu[i+1].expe+stu[i+1].requ;
if((fp=fopen("data.txt","wb"))==NULL)
{printf("cannotopen ");return;}
for(k=0;k<=m;k++)
if(fwrite(&stu[k],LEN,1,fp)!=1)/*將修改後的記錄寫入磁碟文件中*/
{printf("cannotsave!");getch();}
fclose(fp);
}

voidtotal()
{FILE*fp;
intm=0;
if((fp=fopen("data.txt","r+"))==NULL)
{printf("cannotopen ");return;}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;/*統計記錄個數即學生個數*/
if(m==0){printf("norecord! ");fclose(fp);return;}
printf("theclassare%dstudents! ",m);/*將統計的個數輸出*/
fclose(fp);
}


6. C語言編程--教務信息管理系統

你給這么點分,誰願意為你做題!大哥現在是經濟是帶什麼都講價值的,一般程序員每天至少三千多,一個小時都二三十,誰還願意花時間來要你這么點的分!

7. 跪求c語言教務管理系統源代碼

#include <stdio.h>
#include <string.h>
#include <windows.h>
struct student
{
long int num;
char name[20];
int age;
char sex[4];
char b[30];
char p[15];
};
int n=0;
struct student stu[100];
struct student *p;

void lr();
void ll();
void cx();
void xg();
void sc();

void main()
{
int z;
printf("+---------------------------+\n");
printf("| 歡迎使用學生信息管理系統 |\n");
printf("+---------------------------+\n");
printf("提示:為保證您的操作得到保存,請按正常順序退出系統^_^\n");
do
{
printf("\n\t\t\t--------------------------------\n");
printf("\t\t\t+ 主菜單 |\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ [1]----錄入學生信息 |\n");
printf("\t\t\t+ [2]----瀏覽學生信息 |\n");
printf("\t\t\t+ [3]----查詢學生信息 |\n");
printf("\t\t\t+ [4]----刪除學生信息 |\n");
printf("\t\t\t+ [5]----修改學生信息 |\n");
printf("\t\t\t+ [0]----退出系統 |\n");
printf("\t\t\t--------------------------------\n");
printf("請輸入您的選擇:");
scanf("%d", &z);
system("color 2f");
switch(z)
{
case 0 : break;
case 1 :lr();break;
case 2 :ll();break;
case 3 :cx();break;
case 4 :sc();break;
case 5 :xg();break;
default:printf("\n無效選項!");
}
}
while(z!= 0);
}

void lr()/*錄入函數*/
{
int y;
if(n==0)
p=stu;
do
{
printf("--------------------\n");
printf("請輸入學生的學號:");
scanf("%ld",&p->num);
printf("請輸入學生的姓名:");
scanf("%s",p->name);
printf("請輸入學生的年齡:");
scanf("%d",&p->age);
printf("請輸入學生的性別:");
scanf("%s",p->sex);
printf("請輸入學生的地址:");
scanf("%s",p->b);
printf("請輸入學生的電話:");
scanf("%s",p->p);
n++;
p++;
printf("\n1.繼續輸入.\n0.輸入完畢.\n");
printf("請選擇:");
scanf("%d",&y);
}
while(y==1);
printf("提示:輸入完畢!你一共輸入%d個\n",n);

}

void ll()/*瀏覽函數*/
{
int i,j;
if(n!=0)
{ printf("學生總數:%d\n", n);
printf("學號\t姓名\t年齡\t性別\t地址\t\t電話\n");
printf("-----------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
else printf("提示:無學生數據,請輸入數據!");
}

void cx()/*查詢函數*/
{
int c;
int w,i,j=0;
char name[20];
if(n!=0)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按學號查詢 請按 1 |\n");
printf("| 按姓名查詢 請按 2 |\n");
printf("| 取消 請按 0 |\n");
printf("+--------------------+\n");
printf("請輸入您的選擇:");
scanf("%d", &c);
switch(c)
{
case 0:break;
case 1:
printf("請輸入學生的學號;");
scanf("%ld", &w);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].num==w)
{
printf("\n學號\t姓名\t年齡\t性別\t地址\t\t電話\n");
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
j=1;
}
if(j==0)
printf("提示:沒有該學生記錄,請核對!");
break;
case 2:
printf("請輸入學生的姓名:");
scanf("%s", name);
printf("\n");
for(i=0;i<n;i++)
if(strcmp(name,stu[i].name)==0)
{
printf("\n學號\t姓名\t年齡\t性別\t地址\t\t電話\n");
j=1;
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
}
if(j==0)
printf("提示:沒有該學生記錄,請核對!");
break;
default:
printf("\n提示:無效選項!");
break;
}

}while(c!= 0);
}else printf("提示:無學生數據,請輸入數據!");
return;
}

void xg()/*修改函數*/
{
long int num;
int i,j,c;
if(n!=0)
{
printf("請輸入您要修改的學生的學號:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(stu[i].num==num)
j=i;
do{
printf("請選擇您要修改的學生的信息內容:\n");
printf("+----------------------+\n");
printf("| 姓名 請按 1 |\n");
printf("| 年齡 請按 2 |\n");
printf("| 性別 請按 3 |\n");
printf("| 學號 請按 4 |\n");
printf("| 地址 請按 5 |\n");
printf("| 電話 請按 6 |\n");
printf("| 取消 請按 0 |\n");
printf("+----------------------+\n");
printf("請輸入您的選擇:");
scanf("%d", &c);
printf("\n");
switch(c)
{
case 0:break;

case 1:printf("請輸入新姓名:");
scanf("%s",stu[j].name);
break;
case 2:printf("請輸入新年齡:");
scanf("%d",&stu[j].age);
break;
case 3:printf("請輸入新性別:");
scanf("%s",stu[j].sex);
break;
case 4:printf("請輸入新學號:");
scanf("%ld",&stu[j].num);
break;
case 5:printf("請輸入新地址:");
scanf("%s",stu[j].b);
break;
case 6:printf("請輸入新電話:");
scanf("%s",stu[j].p);
break;
default:
printf("\n無效選項!");
break;
}

}while(c!= 0);
}else printf("提示:無學生數據,請輸入數據!");
}

void sc()/*刪除函數*/
{
long int num;
int i,j,e;
if(n!=0)
{
printf("學號\t姓名\t年齡\t性別\t地址\t\t電話\n");
printf("-----------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p);
printf("請輸入您要刪除的學生的學號:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(num==stu[i].num)
j=i;
if(j!=(n-1))
{
for(e=i-1;e<n;e++,j++)
{
stu[j].num=stu[j+1].num;
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j].sex,stu[j+1].sex);
stu[j].age=stu[j+1].age;
strcpy(stu[j].b,stu[j+1].b);
strcpy(stu[j].p,stu[j+1].p);
n--;p--;
}
}else {n--;p--;}
printf("提示:刪除完畢!");
}else printf("提示:無學生數據,請輸入數據!");
}

8. 教務信息管理系統(C語言)

/* Note:Your choice is C IDE */
#include <stdio.h>

struct Student
{
int num;
char name[20];
float score[3];
float avg;
}stus[30];

void Add(float*);/*填加學員*/
void List();/*/學員詳細列表 */
void Asc();/*/顯示後三名學員 */
void Desc();/*/顯示前三名學員*/
void Display();

void main()
{
int s;
float xxx;

while(1)
{
printf("Students System:\n");
printf("1. Add Student\n");
printf("2. Student list\n");
printf("3. Display the before Three\n");
printf("4. Display the last three NUm\n");
printf("5. Display the average\n");
printf("6. Exit\n");
printf("Please input select:\t");
scanf("%d",&s);

switch(s)
{
case 1:
Add(&xxx);
break;
case 2:
List();
break;
case 3:
Desc();
Display();
break;
case 4:
Asc();
Display();
break;
case 5:
Display();
break;
case 6:
return;
break;
default:
printf("Select Wrong!\n");
break;
}
}
}

void Add(float* p)
{
int i,k;
float sum;
char c;

for(i=0;i<30;i++)
{
printf("Input the num %d student Information:\n",i+1);
printf("Num:");
scanf("%d",&stus[i].num);
printf("Name:");
fflush(stdin);
scanf("%s",stus[i].name);
printf("Please the before three chenji:\n");

sum=0;
for(k=0;k<3;k++)
{
printf("%d:",k+1);
scanf("%f",p);
stus[i].score[k]=*p;
sum+=stus[i].score[k];
}
stus[i].avg=sum/3;

printf("Is go on?");
fflush(stdin);
scanf("%c",&c);

if(c=='n' || c=='N')
return;
}

}

void List()
{
int i,j=0;
printf("Num\tName\tChenji1\tChenji2\tChenji3\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);

}
}

}

void Asc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg<stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Desc()
{
int i,j;
struct Student c;
for(i=0;i<30;i++)
{ for(j=0;j<29-i;j++)
if(stus[j].avg>stus[j+1].avg)
{
c=stus[j];
stus[j]=stus[j+1];
stus[j+1]=c;
}
}
}

void Display()
{
int i,d=0;
printf("Num\tName\tAverage\n");
for(i=0;i<30;i++)
{
if(stus[i].num!=0)
{
printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);
d++;
}
if(d==3)
break;
}

}
在樓上的這位基礎上稍候修改了一下,因為其在TC中不能正常編譯.......

9. 用c語言編教務管理系統

#include<iostream>
#include<string.h>
using namespace std;
struct student
{
char name[50];
int score;

};
void teacherC(student *stu)//老師錄入成績
{
int i,n;
cout<<"請輸入需要錄入的學生的個數\n";
cin>>n;
cout<<"請依次輸入學生的姓名和成績\n";
for(i=0;i<n;i++)
{
cin>>stu[i].name>>stu[i].score;
}
stu[i].score=-1;
}
void show(student *stu)
{
int i=0;

for(;i<100;i++)
{
if(stu[i].score==-1)
break;
cout<<stu[i].name<<" "<<stu[i].score<<endl;

}
}
int search(student *stu,char *name)
{
int i=0,k=-1;
for(;i<100;i++)
{
if(stu[i].score==-1)
break;
if(strcmp(stu[i].name,name)==0)
{
k=i;
break;

}
}
return k;
}
void edit(student *stu)
{
int i=0,j=0;
char name[30],an;
while(1)
{
cout<<"請輸入需要修改的學生名字\n";
cin>>name;
i=search(stu,name);
if(i>=0)
{
cout<<"該學生的信息為:\n";
cout<<stu[i].name<<" "<<stu[i].score<<endl;
cout<<"確定要修改該學生的信息是的輸入Y不是輸入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
cout<<"請輸入修改後的姓名成績:\n";
cin>>stu[i].name>>stu[i].score;
cout<<"修改成功\n";
}
cout<<"繼續修改請輸入1退出輸入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"沒有該學生的信息\n";

}
}
void dele(student *stu)
{

int i=0,j=0;
char name[30],an;
while(1)
{
cout<<"請輸入需要刪除的學生名字\n";
cin>>name;
i=search(stu,name);
if(i>0)
{
cout<<"該學生的信息為:\n";
cout<<stu[i].name<<" "<<stu[i].score<<endl;
cout<<"確定要刪除該學生的信息是的輸入Y不是輸入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
*stu[i].name=0;
cout<<"刪除成功\n";
}
cout<<"繼續刪除請輸入1退出輸入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"沒有該學生的信息\n";

}

}
int main()
{
int i,n;
char name[30];
student stu[100];//學生總數上限為100個
while(1)
{
cout<<"請做出以下的選擇:"<<endl;
cout<<"輸入 0 退出系統\n";
cout<<"輸入 1 教書錄入成績\n";
cout<<"輸入 2 學生查詢成績\n";
cout<<"輸入 3 修改學生成績\n";
cout<<"輸入 4 刪除學生成績\n";
cin>>i;
switch(i)
{
case 1: teacherC(stu);break;
case 2: cout<<"請輸入查詢的姓名\n";
cin>>name;n=search(stu,name);cout<<"該學生成績是:"<<stu[n].score<<endl;break;
case 3: edit(stu);break;
case 4: dele(stu);break;
default:if(i!=0)cout<<"請輸入有效數字\n";
}
if(i==0)
break;
}

return 0;
}

10. 用c語言怎樣編一個教務系統

請參考下面的網址
http://wenku..com/view/9f6ff01810a6f524ccbf8583.html