明天就要收課題了,自己改了老半天也沒改出來,實在沒時間自己再扣,老師和助教都去上課了,求助大佬幫助,最好是能講一下,萬分感謝!!!隨時在線隨時聯系
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 2
typedef struct totalnode
{
/*學生資訊*/
char stuNum[N];//學生學號
char stuName[N];//學生名字
char stuSex[N];//學生性別
char stuAge[N];//學生年紀
char stuPho[N];//學生手機號
char stuSys[N];//學生所在的系
char stuClass[N];//學生所在班級
char stuCou[N];//學生選修的課程
char stuScore[N];//學生學分
}TOTALNODE;
typedef struct classnode
{
char couNum[N];//課程編號
char couName[N];//課程名稱
char couTeacher[N];//任課老師
char couCha[N];//課程性質
char couTime[N];//課程總學時
char couSor[N];//課程學分
char couTerm[N];//課程開課學期
char couMost[N];//課程最選修人數
char couPeo[N];//選修人數
}CLASSNODE;
void TeacherSystem(TOTALNODE tot[],CLASSNODE cla[]);//老師選擇系統
void StudentSystem(TOTALNODE tot[],CLASSNODE cla[]);//學生選擇系統
void Addition(TOTALNODE tot[],CLASSNODE cla[],int i);//老師添加功能
void Search(TOTALNODE tot[],CLASSNODE cla[]);//老師查找功能
void Output(TOTALNODE tot[],CLASSNODE cla[]);//老師顯示功能
void Edit(TOTALNODE tot[],CLASSNODE cla[]);//老師編輯功能
void Delete(TOTALNODE tot[],CLASSNODE cla[]);//老師洗掉功能
void Statistic(TOTALNODE tot[],CLASSNODE cla[]);//老師統計功能
void Inquiry(TOTALNODE tot[],CLASSNODE cla[]);//學生查詢課程功能
void Select(TOTALNODE tot[],CLASSNODE cla[]);//學生選修課程功能
void Cutoff(TOTALNODE tot[],CLASSNODE cla[]);//學生洗掉選修課功能
void Score(TOTALNODE tot[],CLASSNODE cla[]);//學生總學分統計
void Print1(CLASSNODE cla[],int i);//輸出課程資訊
void Print2(TOTALNODE tot[],int i);//輸出學生資訊
void Memset(TOTALNODE tot[],CLASSNODE cla[],int i);//結構體初始化
int main()
{
TOTALNODE tot[N];
CLASSNODE cla[N];
char character[N];
printf("++++++++++++++++++++++++++++++++++++++\n");
printf("+-------歡迎使用選修課管理系統-------+\n");
printf("++++++++++++++++++++++++++++++++++++++\n");
printf("請輸入您的身份:老師/學生:");
scanf("%s",character);
if(strcmp(character,"老師") == 0)
{
TeacherSystem(tot,cla);
}
else if(strcmp(character,"學生") == 0)
{
StudentSystem(tot,cla);
}
return 0;
}
void TeacherSystem(TOTALNODE tot[],CLASSNODE cla[])
{
int n;
int i;
do
{
printf("----------\n");
printf("1.初始化\n");
printf("2.添加功能\n");
printf("3.查詢功能\n");
printf("4.顯示功能\n");
printf("5.編輯功能\n");
printf("6.洗掉功能\n");
printf("7.統計功能\n");
printf("0.結束程式\n");
printf("----------\n");
printf("請輸入您想要執行的操作:\n");
scanf("%d",&n);
switch (n)
{
case 1:
Memset(tot,cla,i);
break;
case 2:
{
FILE *fp;
if((fp = fopen("D:\\學生選課系統\\i.txt","r+")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
fscanf(fp,"%d",&i);
Addition(tot,cla,i);
i++;
fprintf(fp,"%d",i);
fclose(fp);
break;
}
case 3:
Search(tot,cla);
break;
case 4:
Output(tot,cla);
break;
case 5:
Edit(tot,cla);
break;
case 6:
Delete(tot,cla);
break;
case 7:
Statistic(tot,cla);
break;
}
}while(n!=0);
printf("感謝使用!\n");
}
void StudentSystem(TOTALNODE tot[],CLASSNODE cla[])
{
int n;
do
{
printf("--------------\n");
printf("1.查詢課程\n");
printf("2.選修課程\n");
printf("3.洗掉選修課程\n");
printf("4.統計學分\n");
printf("0.退出程式\n");
printf("--------------\n");
printf("請輸入您想要執行的操作:\n");
scanf("%d",&n);
switch (n)
{
case 1:
Inquiry(tot,cla);
break;
case 2:
Select(tot,cla);
break;
case 3:
Cutoff(tot,cla);
break;
case 4:
Score(tot,cla);
break;
}
}while(n!=0);
printf("感謝使用!\n");
}
void Memset(TOTALNODE tot[],CLASSNODE cla[],int i)
{
int a,b;
FILE *fp;
FILE *fq;
FILE *fr;
if((fp = fopen("D:\\學生選課系統\\classnode.txt","w")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
if((fq = fopen("D:\\學生選課系統\\totalnode.txt","w")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
if((fr = fopen("D:\\學生選課系統\\i.txt","w")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
memset(cla,'\0',sizeof(struct classnode)*N);
memset(tot,'\0',sizeof(struct totalnode)*N);
i = 0;
for(a=0;a<N;a++)
{
fprintf(fp,"%8s",cla[a].couNum);
fprintf(fp,"%8s",cla[a].couName);
fprintf(fp,"%8s",cla[a].couTeacher);
fprintf(fp,"%8s",cla[a].couCha);
fprintf(fp,"%8s",cla[a].couTime);
fprintf(fp,"%8s",cla[a].couSor);
fprintf(fp,"%8s",cla[a].couTerm);
fprintf(fp,"%8s",cla[a].couMost);
fprintf(fp,"%8s",cla[a].couPeo);
}
for(b=0;b<N;b++)
{
fprintf(fq,"%8s",tot[b].stuNum);
fprintf(fq,"%8s",tot[b].stuName);
fprintf(fq,"%8s",tot[b].stuSex);
fprintf(fq,"%8s",tot[b].stuAge);
fprintf(fq,"%8s",tot[b].stuPho);
fprintf(fq,"%8s",tot[b].stuSys);
fprintf(fq,"%8s",tot[b].stuClass);
fprintf(fq,"%8s",tot[b].stuCou);
fprintf(fq,"%8s",tot[b].stuScore);
}
fprintf(fr,"%d",i);
fclose(fp);
fclose(fq);
fclose(fr);
}
void Addition(TOTALNODE tot[],CLASSNODE cla[],int i)
{
int n,j;
FILE *fp;
if((fp = fopen("D:\\學生選課系統\\classnode.txt","a+")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
FILE *fq;
if((fq = fopen("D:\\學生選課系統\\totalnode.txt","a+")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
printf("++++++++++\n");
printf("1.添加課程\n");
printf("2.添加學生\n");
printf("++++++++++\n");
puts("請選擇您想進行的操作:");
scanf("%d",&n);
if(n == 1)
{
printf("請輸入課程編號:");
scanf("%s",cla[i].couNum);
printf("請輸入課程名稱:");
scanf("%s",cla[i].couName);
printf("請輸入任課老師:");
scanf("%s",cla[i].couTeacher);
printf("請輸入課程性質:");
scanf("%s",cla[i].couCha);
printf("請輸入課程總學時:");
scanf("%s",cla[i].couTime);
printf("請輸入課程學分:");
scanf("%s",cla[i].couSor);
printf("請輸入課程開課學期:");
scanf("%s",cla[i].couTerm);
printf("請輸入課程最大選修人數:");
scanf("%s",cla[i].couMost);
printf("請輸入課程選修人數:");
scanf("%s",cla[i].couPeo);
for(j=0;j<N;j++)
{
fprintf(fp,"%8s",cla[j].couNum);
fprintf(fp,"%8s",cla[j].couName);
fprintf(fp,"%8s",cla[j].couTeacher);
fprintf(fp,"%8s",cla[j].couCha);
fprintf(fp,"%8s",cla[j].couTime);
fprintf(fp,"%8s",cla[j].couSor);
fprintf(fp,"%8s",cla[j].couTerm);
fprintf(fp,"%8s",cla[j].couMost);
fprintf(fp,"%8s",cla[j].couPeo);
}
}
else if(n == 2)
{
printf("請輸入學生學號:");
scanf("%s",tot[i].stuNum);
printf("請輸入學生姓名:");
scanf("%s",tot[i].stuName);
printf("請輸入學生性別:");
scanf("%s",tot[i].stuSex);
printf("請輸入學生年紀:");
scanf("%s",tot[i].stuAge);
printf("請輸入學生手機號:");
scanf("%s",tot[i].stuPho);
printf("請輸入學生所在的系:");
scanf("%s",tot[i].stuSys);
printf("請輸入學生所在班級:");
scanf("%s",tot[i].stuClass);
printf("請輸入學生所選課程:");
scanf("%s",tot[i].stuCou);
printf("請輸入學生總學分:");
scanf("%s",tot[i].stuScore);
for(j=0;j<N;j++)
{
fprintf(fq,"%8s",tot[j].stuNum);
fprintf(fq,"%8s",tot[j].stuName);
fprintf(fq,"%8s",tot[j].stuSex);
fprintf(fq,"%8s",tot[j].stuAge);
fprintf(fq,"%8s",tot[j].stuPho);
fprintf(fq,"%8s",tot[j].stuSys);
fprintf(fq,"%8s",tot[j].stuClass);
fprintf(fq,"%8s",tot[j].stuCou);
fprintf(fq,"%8s",tot[j].stuScore);
}
}
fclose(fp);
fclose(fq);
}
void Search(TOTALNODE tot[],CLASSNODE cla[])
{
int i,n,j;
int flag = 0;
char character[N];
char name[N];
FILE *fp;
if((fp = fopen("D:\\學生選課系統\\classnode.txt","r")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
FILE *fq;
if((fq = fopen("D:\\學生選課系統\\totalnode.txt","r")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
for(i=0;i<N;i++)
{
fscanf(fp,"%8s",&cla[i].couNum);
fscanf(fp,"%8s",&cla[i].couName);
fscanf(fp,"%8s",&cla[i].couTeacher);
fscanf(fp,"%8s",&cla[i].couCha);
fscanf(fp,"%8s",&cla[i].couTime);
fscanf(fp,"%8s",&cla[i].couSor);
fscanf(fp,"%8s",&cla[i].couTerm);
fscanf(fp,"%8s",&cla[i].couMost);
fscanf(fp,"%8s",&cla[i].couPeo);
}
for(j=0;j<N;j++)
{
fscanf(fq,"%8s",&tot[j].stuNum);
fscanf(fq,"%8s",&tot[j].stuName);
fscanf(fq,"%8s",&tot[j].stuSex);
fscanf(fq,"%8s",&tot[j].stuAge);
fscanf(fq,"%8s",&tot[j].stuPho);
fscanf(fq,"%8s",&tot[j].stuSys);
fscanf(fq,"%8s",&tot[j].stuClass);
fscanf(fq,"%8s",&tot[j].stuCou);
fscanf(fq,"%8s",&tot[j].stuScore);
}
printf("請輸入查詢物件(學生/課程)");
scanf("%s",character);
if(strcmp(character,"學生") == 0)
{
printf("++++++++++++\n");
printf("1.按姓名查詢\n");
printf("2.按編號查詢\n");
printf("++++++++++++\n");
printf("請選擇查詢方式(1/2):");
scanf("%d",&n);
if(n == 1)
{
printf("請輸入學生姓名:");
scanf("%s",name);
for(i=0;i<N;i++)
{
if(strcmp(tot[i].stuName,name) == 0)
{
flag = 1;
Print2(tot,i);
}
}
if(flag == 0)
{
printf("未查找到此人!\n");
}
}
else if(n == 2)
{
printf("請輸入學生學號:");
scanf("%s",name);
for(i=0;i<N;i++)
{
if(strcmp(tot[i].stuNum,name) == 0)
{
flag = 1;
Print2(tot,i);
}
}
if(flag == 0)
{
printf("未查找到此人!\n");
}
}
}
else if(strcmp(character,"課程") == 0)
{
printf("++++++++++++\n");
printf("1.按名稱查詢\n");
printf("2.按編號查詢\n");
printf("++++++++++++\n");
printf("請選擇查詢方式(1/2):");
scanf("%d",&n);
if(n == 1)
{
printf("請輸入課程名稱:");
scanf("%s",name);
for(i=0;i<N;i++)
{
if(strcmp(cla[i].couName,name) == 0)
{
flag = 1;
Print1(cla,i);
}
}
if(flag == 0)
{
printf("未查找到此課程!\n");
}
}
else if(n == 2)
{
printf("請輸入課程編號:");
scanf("%s",name);
for(i=0;i<N;i++)
{
if(strcmp(cla[i].couNum,name) == 0)
{
flag = 1;
Print1(cla,i);
}
}
if(flag == 0)
{
printf("未查找到課程!\n");
}
}
}
fclose(fp);
fclose(fq);
}
void Output(TOTALNODE tot[],CLASSNODE cla[])
{
int i,j;
char name[N];
FILE *fp;
if((fp = fopen("D:\\學生選課系統\\classnode.txt","r")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
FILE *fq;
if((fq = fopen("D:\\學生選課系統\\totalnode.txt","r")) == NULL)
{
printf("檔案打開失敗。\n");
exit(0);
}
for(i=0;i<N;i++)
{
fscanf(fp,"%8s",&cla[i].couNum);
fscanf(fp,"%8s",&cla[i].couName);
fscanf(fp,"%8s",&cla[i].couTeacher);
fscanf(fp,"%8s",&cla[i].couCha);
fscanf(fp,"%8s",&cla[i].couTime);
fscanf(fp,"%8s",&cla[i].couSor);
fscanf(fp,"%8s",&cla[i].couTerm);
fscanf(fp,"%8s",&cla[i].couMost);
fscanf(fp,"%8s",&cla[i].couPeo);
}
for(j=0;j<N;j++)
{
fscanf(fq,"%8s",&tot[j].stuNum);
fscanf(fq,"%8s",&tot[j].stuName);
fscanf(fq,"%8s",&tot[j].stuSex);
fscanf(fq,"%8s",&tot[j].stuAge);
fscanf(fq,"%8s",&tot[j].stuPho);
fscanf(fq,"%
uj5u.com熱心網友回復:
貼全代碼吧,代碼不全呢uj5u.com熱心網友回復:
抱歉啊uj5u.com熱心網友回復:
現在還在修改,有點眉目,改不出來我再發,多謝回復轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143550.html
標籤:C語言
下一篇:hdu+1201
