#include<string.h>
#include<Windows.h>
#define N 20
#define M 100
struct Information
{
char bianhao[N];
char mingcheng[N];
int zongxueshi;
float xuefen;
int kaikexueqi;
}lesson[M];
int n;
FILE *fp;
void add() /*定義錄入功能函數*/
{
int i;
printf("\n請輸入錄入課程信息的總數:");
scanf("%d",&n);
fp=fopen("e:\\111.txt","wb+");
for (i=1;i<=n;i++)
{
printf("\n\t請輸入第%d個課程的編號(10s):",i);
scanf("%s",lesson[i-1].bianhao);
printf("\n\t請輸入第%d個課程的名稱(10s):",i);
scanf("%10s",lesson[i-1].mingcheng);
printf("\n\t請輸入第%d個課程的總學時(d):",i);
scanf("%5d",&lesson[i-1].zongxueshi);
printf("\n\t請輸入第%d個課程的學分(f):",i);
scanf("%f",&lesson[i-1].xuefen);
printf("\n\t請輸入第%d個課程的開課學期(d):",i);
scanf("%d",&lesson[i-1].kaikexueqi);
printf("\n\t提示:您已成功錄入第%d條信息\n",i);
fwrite(&lesson[i-1],sizeof(struct Information),1,fp);
}
}
void scan() /*定義瀏覽功能函數*/
{
int i;
printf("\n\t 顯示所有瀏覽設備信息:");
printf("\n編號\t名稱\t總學時\t學分\t開課學期");
fp=fopen("e:\\111.txt","rb");
for (i=0;i<n;i++)
{
fread(&lesson[i],sizeof(struct Information),1,fp);
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
rewind(fp);
fclose(fp);
printf("\n");
}
void search() /*定義查詢功能函數*/
{
int i,b,c;
do
{
float search;
char find[20];
fp=fopen("e:\\111.txt","rb");
printf("\n\t請選擇查詢方式:1.根據學分;2.根據課程編號;3.根據課程名稱");
scanf("%d",&b);
switch (b)
{
case 1:
printf("\n**請輸入課程的學分:");
scanf("%f",&search);
printf("\n編號\t名稱\t總學時\t學分\t開課學期");
for(i=0;i<n;i++)
{
if (lesson[i].xuefen==search)
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
case 2:
printf("\n**請輸入課程的編號:");
scanf("%s",find);
printf("\n編號\t名稱\t總學時\t學分\t開課學期");
for(i=0;i<n;i++)
{
if (!strcmp(lesson[i].bianhao,find))
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
case 3:
printf("\n**請輸入課程的名稱:");
scanf("%s",find);
printf("\n編號\t名稱\t總學時\t學分\t開課學期");
for(i=0;i<n;i++)
{
if (!strcmp(lesson[i].mingcheng,find))
{
printf("\n%s,%8s,%5d,\t%.2f,%8d",lesson[i].bianhao,
lesson[i].mingcheng,lesson[i].zongxueshi,lesson[i].xuefen,lesson[i].kaikexueqi);
}
}goto B;
default:printf("輸入錯誤,請重新輸入:\n");
}
B:fclose(fp);
printf("\n\t**1.繼續\n\t**0.返回主菜單");
printf("\n\t 請輸入您的選擇:");
scanf("%d",&c);
}while (c);
}
void correct() /*定義修改功能函數*/
{
int i;
char find[20];
printf("\n**請輸入您修改課程的名稱:");
scanf("%s",find);
for(i=0;i<n;i++)
if (strcmp(lesson[i].mingcheng,find)==0)
{
char news[20];
printf("\n**請輸入您要修改的課程信息:\n");
printf("\n\t請重新輸入第%d個課程編號(10s):",i+1);
scanf("%s",news);strcpy(lesson[i].bianhao,news);
printf("\n\t請重新輸入第%d個課程名稱(10s):",i+1);
scanf("%s",news);strcpy(lesson[i].mingcheng,news);
printf("\n\t請重新輸入第%d個課程總學時(d):",i+1);
scanf("%d",&lesson[i].zongxueshi);
printf("\n\t請重新輸入第%d個課程學分(f):",i+1);
scanf("%f",&lesson[i].xuefen);
printf("\n\t請重新輸入第%d個課程開課學期(d):",i+1);
scanf("%d",&lesson[i].kaikexueqi);
printf("\n\t提示:您已成功修改信息\n");
fp=fopen("e:\\steven.txt","a+");
rewind(fp);
fwrite(&lesson[i-1],sizeof(struct Information),1,fp);
}
}
void del() /*定義刪除功能函數*/
{
char find[20];
int i;
printf("\n**請輸入您刪除課程的名稱:");
scanf("%s",find);
for(i=0;i<n;i++)
if (strcmp(lesson[i].mingcheng,find)==0)
{
strcpy(lesson[i].bianhao,lesson[i+1].bianhao);
strcpy(lesson[i].mingcheng,lesson[i+1].mingcheng);
lesson[i].zongxueshi=lesson[i+1].zongxueshi;
lesson[i].xuefen=lesson[i+1].xuefen;
lesson[i].kaikexueqi=lesson[i+1].kaikexueqi;
}
printf("\n***提示:您已成功刪除該設備信息!");
n=n-1;
}
void menu() /*定義主菜單功能*/
{
printf("\n\t\t *********歡迎進入課程管理系統!*******");
printf("\n\t\t***1.錄入功能");
printf("\t\t\t2.瀏覽功能");
printf("\n\t\t***3.查詢功能");
printf("\t\t\t4.修改功能");
printf("\n\t\t***5.刪除功能");
printf("\t\t\t0.*-EXIT-*");
printf("\n\n\t 請輸入您的選擇:");
}
void main()
{
int a;
C:menu();
scanf("%d",&a);
switch(a)
{
case 0:printf("***正在退出**謝謝使用本系統,再見");break;
case 1:add();goto C; /*錄入功能*/
case 2:scan();goto C; /*瀏覽功能*/
case 3:search();goto C; /*查詢功能*/
case 4:correct();goto C; /*修改功能*/
case 5:del();goto C; /*刪除功能*/
}
}