
純C語言 代碼 :
#include <stdio.h>
#include <string.h>
#define N 108
typedef struct telephone
{
char name[25];
char num[25];
char tel[25];
}TEL;
void DisplayMenu(); //顯示主選單
void save(TEL a[],int n);
void CreateList(TEL a[],int n); //1.創建通訊錄
void DisplayList(TEL a[],int n); //2.顯示通訊錄
void InquireListName(TEL a[],int n); ////3.按姓名查詢通訊錄
void InquireListNum(TEL a[],int n); //4.按學號查詢通訊錄
void ChangeListName(TEL a[],int n); //5.按姓名修改通訊錄
void ChangeListNum(TEL a[],int n); //6.按學號修改通訊錄
int DelListName(TEL a[],int n); //7.按姓名洗掉通訊錄
int DelListNum(TEL a[],int n); //8.按學號洗掉通訊錄
void UpSortListName(TEL a[],int n); //9.姓名升序排序通訊錄
void DownSortListNum(TEL a[],int n); //10.學號逆序排序通訊錄
int AddList(TEL a[],int n); //11.添加學生資訊
int main()
{
struct telephone a[N];
int i,n;
FILE *fp;
if( (fp = fopen("stu.dat","r")) != NULL ) //如果檔案stu.dat已存在
{ //則把資料從檔案加載到陣列a(讀入記錄個數n和n個姓名、學號、電話號碼)
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
fscanf(fp,"%s%s%s",a.name,a[i].num,a[i].tel);
}
else
{
printf("第一次使用該系統,請輸入n和n個姓名、學號、電話號碼:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s%s%s",a[i].name,a[i].num,a[i].tel);
save(a,n);
}
DisplayMenu(); //顯示主選單
while(1)
{
char select;
char name[25];
scanf(" %c",&select);
if( select<'a' || select>'l' )
{
printf("輸入錯誤!\n");
continue;
}
//if( select=='l' )
// break;
switch(select)
{
case 'a':
DisplayMenu(); //顯示主選單
break;
case 'b':
DisplayList(a,n); //2.顯示通訊錄
break;
case 'c':
InquireListName(a,n); //3.按姓名查詢通訊錄
break;
case 'd':
InquireListNum(a,n); //4.按學號查詢通訊錄
break;
case 'e':
ChangeListName(a,n); //5.按姓名修改通訊錄
break;
case 'f':
ChangeListNum(a,n); //6.按學號修改通訊錄
break;
case 'g':
if( DelListName(a,n) )//7.按姓名洗掉通訊錄
n--;
break;
case 'h':
if( DelListNum(a,n) ) //8.按學號洗掉通訊錄
n--;
break;
case 'i':
UpSortListName(a,n); //9.姓名升序排序通訊錄
break;
case 'j':
DownSortListNum(a,n); //10.學號逆序排序通訊錄
break;
case 'k':
if( AddList(a,n) ) //11.添加學生資訊
n++;
save(a,n);
break;
case 'l':
exit(0); //12.退出系統
break;
}
}
return 0;
}
void save(TEL a[],int n)
{
int i;
FILE *fp;
fp = fopen("stu.dat","w");
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
}
void DisplayMenu() //1.顯示主選單
{
printf(" 學生通訊錄管理系統\n\n");
printf("*************************系統功能選單**************************\n");
printf(" -------------------------------------------------------------\n");
printf(" a.顯示主選單 b.顯示通訊錄\n");
printf("************************************************************\n");
printf(" c.按姓名查詢通訊錄 d.按學號查詢通訊錄\n");
printf("************************************************************\n");
printf(" e.按姓名修改通訊錄 f.按學號修改通訊錄\n");
printf("************************************************************\n");
printf(" g.按姓名洗掉通訊錄 h.按學號洗掉通訊錄\n");
printf("************************************************************\n");
printf(" i.姓名升序排序通訊錄 j.學號逆序排序通訊錄\n");
printf("************************************************************\n");
printf(" k.添加學生資訊 l.退出系統\n");
printf(" -------------------------------------------------------------\n");
printf("***************************************************************\n\n");
printf("請選擇您需要的操作:\n");
}
void DisplayList(TEL a[],int n) //2.顯示通訊錄
{
int i;
printf("顯示通訊錄:\n");
for(i=0;i<n;i++)
printf("%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
printf("\n");
}
void InquireListName(TEL a[],int n) //3.按姓名查詢通訊錄
{
int i,flag;
char SearchName[25];
printf("按姓名查詢通訊錄:\n");
scanf("%s",SearchName);
for(i=0,flag=0;i<n;i++)
{
if( strcmp(SearchName,a[i].name)==0 )
{
printf("%s\t",a[i].name);
printf("%s\t",a[i].num);
printf("%s\n",a[i].tel);
flag=1;
break;
}
}
if(flag==0)
{
printf("未查詢到該姓名資訊!\n");
}
printf("\n");
}
void InquireListNum(TEL a[],int n) //4.按學號查詢通訊錄
{
int i,flag;
char SearchID[25];
printf("按學號查詢通訊錄:\n");
scanf("%s",SearchID);
for(i=0,flag=0;i<n;i++)
{
if( strcmp(SearchID,a[i].num)==0 )
{
printf("%s\t",a[i].name);
printf("%s\t",a[i].num);
printf("%s\n",a[i].tel);
flag=1;
break;
}
}
if(flag==0)
{
printf("未查詢到該學號資訊!\n");
}
printf("\n");
}
void ChangeListName(TEL a[],int n) //5.按姓名修改通訊錄
{
int i,flag;
char SearchName[25];
printf("按姓名修改通訊錄:\n");
scanf("%s",SearchName);
for(i=0,flag=0;i<n;i++)
{
if( strcmp(SearchName,a[i].name)==0 )
{
strcpy(a[i].name,SearchName);
printf("請輸入要修改的學號:");
scanf("%s",a[i].num);
printf("請輸入要修改的電話號碼:");
scanf("%s",a[i].tel);
//strcpy(p[i].name,ChangeName);
//strcpy(p[i].name,ChangeTel);
save(a,n);
printf("資訊修改完畢!\n");
printf("%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
flag=1;
break;
}
}
if(flag==0)
printf("未找到該姓名資訊!");
printf("\n");
}
void ChangeListNum(TEL a[],int n) //6.按學號修改通訊錄
{
int i,flag;
char SearchNum[25];
printf("按學號修改通訊錄:\n");
scanf("%s",SearchNum);
for(i=0,flag=0;i<n;i++)
{
if( strcmp(SearchNum,a[i].num)==0 )
{
strcpy(a[i].num,SearchNum);
printf("請輸入要修改的名字:");
scanf("%s",a[i].name);
printf("請輸入要修改的電話號碼:");
scanf("%s",a[i].tel);
//strcpy(p[i].name,ChangeName);
//strcpy(p[i].name,ChangeTel);
save(a,n);
printf("資訊修改完畢!\n");
printf("%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
flag=1;
break;
}
}
if(flag==0)
printf("未找到該學號資訊!");
printf("\n");
}
int DelListName(TEL a[],int n) //7.按姓名洗掉通訊錄
{
int i,j;
char SearchName[25];
printf("按姓名洗掉通訊錄:\n");
scanf("%s",SearchName);
for(i=0;i<n;i++)
{
if( strcmp(a[i].name,SearchName)==0 )
break;
}
if(i>=n)
{
printf("未查詢到該姓名資訊!按姓名洗掉通訊錄失敗!\n");
return 0;
}
else
{
for(j=i;j<n-1;j++)
a[j]=a[j+1];
save(a,n);
printf("按姓名洗掉通訊錄成功!\n");
return 1;
}
}
int DelListNum(TEL a[],int n) //8.按學號洗掉通訊錄
{
int i,j,flag;
char SearchNum[25];
printf("按學號洗掉通訊錄:\n");
scanf("%s",SearchNum);
for(i=0;i<n;i++)
{
if( strcmp(a[i].num,SearchNum)==0 )
break;
}
if(i>=n)
{
printf("未查詢到該學號資訊!按學號洗掉通訊錄失敗!\n");
return 0;
}
else
{
for(j=i;j<n-1;j++)
a[j]=a[j+1];
printf("按學號洗掉通訊錄成功!\n");
save(a,n);
return 1;
}
printf("\n");
}
void UpSortListName(TEL a[],int n) //9.姓名升序排序通訊錄
{
int i,j;
TEL temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if( strcmp(a[i].name,a[j].name)>0 )
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("姓名升序排序通訊錄:\n");
for(i=0;i<n;i++)
printf("%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
printf("\n");
}
void DownSortListNum(TEL a[],int n) //10.學號逆序排序通訊錄
{
int i,j;
TEL temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if( strcmp(a[i].num,a[j].num)>0 )
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("學號逆序排序通訊錄:\n");
for(i=n-1;i>=0;i--)
printf("%s\t%s\t%s\n",a[i].name,a[i].num,a[i].tel);
printf("\n");
}
int AddList(TEL a[],int n) //11.添加學生資訊
{
int i,flag;
char AddNum[25];
printf("添加通訊錄:\n");
printf("請輸入要添加的學號:");
scanf("%s",AddNum);
for(i=0,flag=0;i<n;i++)
{
if( strcmp(AddNum,a[i].num)==0 )
{
flag=1;
printf("學號重復!\n");
return 0;
}
}
if(flag==0)
{
//n++;
printf("學號不重復!請添加資訊:\n");
printf("請輸入要添加的名字:");
scanf("%s",a[n].name);
strcpy( a[n].num,AddNum );
printf("請輸入要添加的電話號碼:");
scanf("%s",a[n].tel);
//save(a,n);
printf("添加資訊成功!\n");
return 1;
//printf("%d",n);
}
printf("\n");
}
[i]在C++環境下 ,編譯運行,需要 添加 頭檔案 #include <cstdlib>
C++ 中error: ‘exit’ was not declared in this scope 的解決方法:添加頭檔案#include <cstdlib>

uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
是展示作品嗎uj5u.com熱心網友回復:
以前的作業。


隨便發的,hh~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/94415.html
標籤:C++ 語言
