本文目錄一覽:
- 1、同學錄管理系統,急急急!用vc編譯250行代碼!
- 2、用C語言編寫錄入學生信息(學號、性別、年齡、院系 )
- 3、學生成績管理系統 C語言 用的是dev c++
- 4、C語言編程:找出數學成績最差的同學! 求大神幫忙期末考試
- 5、1. 添加學生信息:學號(整型),姓名(字符數組),高數,英語,數據結構(double) 2. 輸出所有同學信息
- 6、C語言編寫程序:同學通信錄管理系統
同學錄管理系統,急急急!用vc編譯250行代碼!
這是C語言還是C++,需要用到文本的讀寫操作吧。我可以幫你做。
用C語言編寫錄入學生信息(學號、性別、年齡、院系 )
//自己再添上性別 什麼的就行
#include string.h
#include stdio.h
#include stdlib.h
#define _COURSES 3//定義科目數
#define _LEN sizeof(student)//定義結構體大小
//枚舉返回值情況
enum status
{
OVERFLOW = -1, //內存(溢出)問題
DONE = 0, //成功
NOFOUND = 1, //不存在
OPENFAIL = 2, //打開(文件)失敗
BACK = 3 //返回
};
//end
//定義學生信息結構體
typedef struct StudentInfo
{
//數據域
unsigned int num;//學號
char name[11];//姓名
float scores[_COURSES];//各科成績
//指針域
struct StudentInfo *next;//存放下一節點的地址
}student;
//end
student *head=NULL;//聲明鏈表頭結點
student *curr=NULL;//聲明指向當前節點的指針
int total = 0;//聲明當前節點個數
int init();//初始化鏈表
int add_stu();//添加新節點
int show_all();//顯示所有學生信息
int find_stu();//查找指定信息節點
int modify_stu();//修改指定信息節點
int remove_stu();//刪除指定信息節點
int sort_list();//對鏈表排序
int save_to_file();//將所有信息保存至文件
int read_from_file();//從文件中讀取信息
void about();//關於
int quit();//釋放所有節點空間
int entering(student *input);//錄入學生信息
void show_stu(student *show, int serial);//顯示指定學生信息
void start();//程序開始界面
void change(student *former, student *latter, student *temp);//交換兩個節點的數據域
void main()
{
int choice=0;
init();
while(1)
{
system(“cls”);
start();
printf(“請選擇:”);
scanf(“%d”,choice);
fflush(stdin);//清空緩衝區
switch (choice)
{
case 1:
{
add_stu();
break;
}
case 2:
{ show_all();
break;
}
case 3:
{
find_stu();
break;
}
case 4:
{
modify_stu();
break;
}
case 5:
{
remove_stu();
break;
}
case 6:
{
sort_list();
break;
}
case 7:
{
save_to_file();
break;
}
case 8:
{
read_from_file();
break;
}
case 9:
{
about();
break;
}
case 0:
{
quit();
exit(0);
break;
}
default:{break;}
}
system(“pause”);
}
}
/*******************************************************/
/*功能: 初始化帶頭結點的鏈表,頭結點指針域置空 */
/* */
/*返回: */
/*******************************************************/
int init()
{
head = (student *)malloc(_LEN);//為頭結點申請空間
if (!head)
{//如果申請空間失敗,返回
return OVERFLOW;
}
head-next = NULL;//指向下一節點(空)
curr = head-next;//當前節點指針指向第一個結點
total = 0;//當前節點個數初始化為0(頭結點不計算在內)
return DONE;
}
/*******************************************************/
/*功能:頭插法添加新節點,並刷新學生人數 */
/* */
/*返回: */
/*******************************************************/
int add_stu()
{
student *add = (student *)malloc(_LEN);
curr = head-next;//當前節點指針指向第一個節點
printf(“\t====當前已存入 %d 個同學\n”,total);
printf(“請輸入第 %d 個學生的信息\n”,total+1);
if (BACK == entering(add))
{
free(add);
return BACK;
}
head-next = add;//頭結點指針域指向新建的節點
add-next = curr;//新建節點指針域指向第一個節點
curr = add; //當前節點指向新建的節點
total += 1; //更新學生總人數
return DONE;
}
/*******************************************************/
/*功能:顯示所有學生信息 */
/* */
/*返回: */
/*******************************************************/
int show_all()
{
if ( 0 == total )
{
printf(“\t====沒有可供顯示的學生信息!\n”);
return NOFOUND;
}
curr = head-next;//當前節點指針指向第一個節點
printf(“\t%4s%12s%12s”,”序號”,”學號”,”姓名”);
for (int m=0; m_COURSES; m++)
{
printf(“%7s”,”科目”);
}
printf(“\n”);
printf(“\t————————————————————-\n”);
for (int i=1; i=total; i++)
{
show_stu(curr,i);
curr = curr-next;//當前節點指針後移
}
printf(“\t————————————————————-\n”);
return DONE;
}
/*******************************************************/
/*功能:查找指定學生信息 */
/* */
/*返回: */
/*******************************************************/
int find_stu()
{
char stu_name[11];
int flag=1;
printf(“請輸入要查找的學生姓名:”);
scanf(“%s”,stu_name);
curr = head-next;//指向第一個節點
while (curr != NULL)
{
if (strcmp(stu_name,curr-name) == 0)
{
printf(“\t%4s%12s%12s”,”序號”,”學號”,”姓名”);
for (int m=0; m_COURSES; m++)
{
printf(“%7s”,”科目”);
}
printf(“\n”);
printf(“\t————————————————————-\n”);
show_stu(curr,flag);
return DONE;
}
curr = curr-next;
++flag;
}
printf(“\t====沒有找到 %s !請仔細核對姓名再查找\n”,stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:修改指定學生的所有信息 */
/* */
/*返回: */
/*******************************************************/
int modify_stu()
{
char stu_name[11];
int flag=1;
curr = head-next;//指向第一個節點
printf(“請輸入要修改的學生的姓名:”);
scanf(“%s”,stu_name);
while (curr != NULL)
{
if (strcmp(stu_name,curr-name) == 0)
{
printf(“\t%4s%12s%12s”,”序號”,”學號”,”姓名”);
for (int m=0; m_COURSES; m++)
{
printf(“%7s”,”科目”);
}
printf(“\n”);
printf(“\t————————————————————-\n”);
show_stu(curr,flag);
entering(curr);
printf(“\t====成功修改了 %s 的所有信息!\n”,stu_name);
return DONE;
}
curr = curr-next;
++flag;
}
printf(“\t====沒有找到 %s !請仔細核對姓名\n”,stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:刪除指定學生 */
/* */
/*返回: */
/*******************************************************/
int remove_stu()
{
student *pre=head;
char stu_name[11];
curr = head-next;//指向第一個節點
printf(“請輸入要刪除的學生的姓名:”);
scanf(“%s”,stu_name);
while (curr != NULL)
{
if (strcmp(stu_name,curr-name) == 0)
{
pre-next = curr-next; //
free(curr); //
–total; //
printf(“\t====已成功刪除\”%s\”\n”,stu_name);
return DONE;
}
pre = pre-next;
curr = curr-next;
}
printf(“\t====沒有找到 %s !請仔細核對姓名\n”,stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:對所有學生排序 */
/* */
/*返回: */
/*******************************************************/
int sort_list()
{
student *temp = (student *)malloc(_LEN);
student *curr_i = head-next;
student *curr_j = NULL;
char choice=’0′;
printf(“\t \t1—-按學號排序 .\t2—-按姓名排序 . \n”);
printf(“\t \t3—-按科目排序 .\t0—-退 出 排 序. \n”);
printf(“請選擇:”);
scanf(“%c”,choice);
fflush(stdin);
switch (choice)
{
case ‘1’:
{
while(curr_i-next != NULL)
{
curr_j = curr_i-next;
while (curr_j != NULL)
{
if (curr_i-num curr_j-num)
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-next;
}
curr_i = curr_i-next;
}
printf(“\t====排序成功!\n”);
break;
}
case ‘2’:
{
while(curr_i-next != NULL)
{
curr_j = curr_i-next;
while (curr_j != NULL)
{
if (strcmp(curr_i-name , curr_j-name) 0)
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-next;
}
curr_i = curr_i-next;
}
printf(“\t====排序成功!\n”);
break;
}
case ‘3’:
{
while(curr_i-next != NULL)
{
curr_j = curr_i-next;
while (curr_j != NULL)
{
if (curr_i-scores[0] curr_j-scores[0])
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-next;
}
curr_i = curr_i-next;
}
printf(“\t====排序成功!\n”);
break;
}
case ‘0’:
{
free(temp);
return BACK;
}
default:
{printf(“\t====輸入有誤!\n”);break;}
}
free(temp);
return DONE;
}
/*******************************************************/
/*功能:保存數據到文件 */
/* */
/*返回: */
/*******************************************************/
int save_to_file()
{
curr=head-next;
if (total == 0)
{
printf(“\t====目前還沒有任何信息,不用保存!\n”);
return BACK;
}
FILE *fp;
if((fp=fopen(“record.dat”,”wb”))==NULL)
{
printf(“\t====文件打開失敗!\n”);
return OPENFAIL;
}
while (curr != NULL)
{
//將數據成塊寫入文件
fwrite((char *)curr, _LEN, 1, fp);
curr=curr-next;
}
fclose(fp);
printf(“\t====信息已成功保存至文件\”record.dat\”文件中\n”);
return DONE;
}
/*******************************************************/
/*功能:從文件中讀取數據 */
/* */
/*返回: */
/*******************************************************/
int read_from_file()
{
char judge=’y’;
FILE *fp;
if((fp=fopen(“record.dat”,”r”))==NULL)
{
printf(“文件不存在或者打開失敗!\n”);
return OPENFAIL;
}
printf(“\t====讀取文件會覆蓋當前信息!是否確定載入文件?(y/n):”);
scanf(“%c”,judge);
if (judge==’n’ || judge==’N’)
{
return BACK;
}
quit();//釋放以前所有信息的空間
init();//重新初始化鏈表
curr = head;//當前節點指針指向頭結點
student *add=(student *)malloc(_LEN);//申請空間存放讀取的信息
while (fread((char *)add, _LEN, 1, fp))
{//由於存儲的信息是最新的信息在前,所以讀取的時候將其添加在鏈表尾
add-next=curr-next;
curr-next=add;
curr=add;
add=(student *)malloc(_LEN);
++total;
}
fclose(fp);
printf(“\t====文件載入成功!當前已有%d個學生。\n”,total);
return DONE;
}
/*******************************************************/
/*功能: */
/* */
/*返回: */
/*******************************************************/
void about()
{
printf(“\t#############################################################\n”);
printf(“\n\t \t歡迎各位用戶反饋Bug或提出寶貴的意見和建議 \n”);
printf(“\t \t聯繫方式 \n”);
printf(“\t \t手 機:13667102098 \n”);
printf(“\t \tE-mail:Never_S@126.com \n”);
printf(“\n\t \t\tC語言學生成績管理系統1.0版\n\n”);
printf(“\t#############################################################\n”);
}
/*******************************************************/
/*功能:釋放內存 */
/* */
/*返回: */
/*******************************************************/
int quit()
{
curr =head-next;
student *temp=curr;
while(curr != NULL)
{
temp=curr-next;
free(curr);
curr=temp;
}
curr=NULL;
temp=NULL;
free(head);//釋放頭節點
return DONE;
}
//////////////////////////////////////////////////////////////////////////
/*******************************************************/
/*功能:錄入一個學生的全部信息 */
/* */
/*返回: */
/*******************************************************/
int entering(student *input)
{
printf(“\n請輸入學生的學號(輸入0退出添加):”);
scanf(“%d”,input-num);
if (0 == input-num)
{
return BACK;
}
printf(“請輸入學生的姓名(五個漢字以內):”);
scanf(“%s”,input-name);
printf(“請輸入%d門科目的成績(用空格隔開):”, _COURSES);
for (int i=0; i_COURSES; i++)
{
scanf(“%f”,input-scores[i]);
}
return DONE;
}
/*******************************************************/
/*功能:顯示指定學生的所有信息 */
/* */
/*返回: */
/*******************************************************/
void show_stu(student *show, int serial)
{
printf(“\t%4d%12d%12s”,serial,show-num,show-name);
for (int i=0; i_COURSES; i++)
{
printf(“%7.1f”,show-scores[i]);
}
printf(“\n”);
}
/*******************************************************/
/*功能:根據權限進入不同的界面 */
/* */
/*返回: */
/*******************************************************/
void start()
{
printf(“\n”);
printf(“\t\t\t歡迎使用學生成績管理系統\n”);
printf(“\t*************************************************************\n”);
printf(“\t|\t1—-添 加 學 生.\t2—-顯 示 信 息. |\n”);
printf(“\t|\t3—-查 找 學 生.\t4—-修 改 信 息. |\n”);
printf(“\t|\t5—-刪 除 學 生.\t6—-學 生 排 序. |\n”);
printf(“\t|\t7—-信 息 存 檔.\t8—-讀 取 存 檔. |\n”);
printf(“\t|\t9—-關 於.\t0—-退 出. |\n”);
printf(“\t*************************************************************\n”);
}
/*******************************************************/
/*功能: */
/* */
/*返回: */
/*******************************************************/
void change(student *former, student *latter,student *temp)
{
*temp = *former;
strcpy(former-name , latter-name);
strcpy(latter-name , temp-name);
former-num = latter-num;
latter-num = temp-num;
for (int i=0; i_COURSES; i++)
{
former-scores[i] = latter-scores[i];
latter-scores[i] = temp-scores[i];
}
}
學生成績管理系統 C語言 用的是dev c++
#include stdio.h
#include stdlib.h
#define SIZE 10
struct student
{
int num;
char name[10];
int c;
float s[3];
float aver;
}stu[SIZE],temp;
void save()//錄入同學成績們的函數
{
int i;
FILE *fp;
if((fp=fopen(“stu.dat”,”wb”))==NULL){
printf(“cannot open file\n”);
return;
}
for(i=0;iSIZE;i++)
if (fwrite(stu[i],sizeof(struct student),1,fp)!=1)
printf (“file write error\n”);
fclose(fp);}
void write()//錄入成績
{
int i;
printf(“Please enter data of students including number,name,class,scores of three subjects:\n”);
for(i=0;iSIZE;i++)
{scanf(“%d%s%d%f%f%f”,stu[i].num,stu[i].name,stu[i].c,stu[i].s[0],stu[i].s[1],stu[i].s[2]);
stu[i].aver=(stu[i].s[1]+stu[i].s[2]+stu[i].s[0])/3.0;}
save();
}
void read(int i)//瀏覽同學們的成績 i的取值範圍是0-9 ,輸出
{
FILE *fp;
if ((fp=fopen(“stu.dat”,”rb”))==NULL){
printf(“cannot open file\n”);
return;
}
fread(stu[i],sizeof(struct student),1,fp);
printf(“瀏覽成績:%-10s同學:\n”,stu[i].name) ;
printf(“學號:%4d 班級:%4d 數分:%.1f 幾代:%.1f C語言:%.1f 平均:%.1f\n”,stu[i].num,stu[i].c,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].aver);
fclose (fp);
}
void paixu()//按學號排序瀏覽成績
{ int i,j,k;
FILE *fp;
if ((fp=fopen(“stu.dat”,”rb”))==NULL)
{printf(“cannot open file\n”);
return;}
printf(“按學號排序查看全體同學的成績如下:\n”) ;
for(i=0;iSIZE;i++)
fread(stu[i],sizeof(struct student),1,fp);
for(i=0;iSIZE-1;i++){
k=i;
for(j=i+1;jSIZE;j++){
if(stu[j].numstu[k].num)k=j;
temp=stu[k];
stu[k]=stu[i];stu[i]=temp;
}
}
for(i=0;iSIZE;i++){
printf(“學號:%4d 姓名%-10s班級:%d 數分:%.1f 幾代:%.1f C語言:%.1f 平均:%.1f\n”,stu[i].num,stu[i].name,stu[i].c,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].aver);
}
fclose (fp);
}
void del()//刪除某個學生的某項資料
{}
void cha()//輸入學號查成績
{
int a,i;
FILE *fp;
printf(“請輸入你的學號:”);
scanf(“%d”,a);getchar();
for(i=0;iSIZE;i++){
fread(stu[i],sizeof(struct student),1,fp);
if(a==stu[i].num){
//輸出輸出該同學相關信息
}
break;
}
fclose (fp);
}
int main()
{
cha();
return 0;
}
C語言編程:找出數學成績最差的同學! 求大神幫忙期末考試
一個簡單的學生成績管理系統。其中每個學生信息包括學號、姓名、數學成績、英語成績、計算機成績。編寫一個菜單程序分別完成以下功能:
每個學生的信息使用結構體變量存儲。
編寫函數fun1(),檢查錄入時的學號衝突情況,具體功能為:在錄入時如果已有學號相同的學生信息,需提示用戶,並允許用戶重新輸入信息(即用新的數據覆蓋原來數據)或不重新輸入的選擇。
對於需要重新輸入信息的結點,通過函數fun2()實現,其功能為:當出現學號相同的結點時,以新的數據代替原來的數據,實現數據的更新。
4)通過函數fun3()實現輸出平均成績最高的學生數據(包括學號、姓名、3門課程成績、平均分數)。
5)通過函數fun4()實現按某門課程(如計算機)成績排序;
6)通過函數fun5()實現根據學號查詢某學生三門課程的成績。
7)編寫打印輸出函數fun6(),將信息從頭到尾打印出來。
要求:1)使用結構體數組,每個記錄包括num、name、score[3]、average。
2)各功能分別通過函數調用實現。
3)排序採用冒泡法或選擇法。
4)查詢採用順序查找方法。
菜單:
1輸入學生資料2刪除學生資料
3查詢學生資料4修改學生資料
5顯示學生資料6統計學生成績
7排序學生成績8保存學生資料
9獲取幫助信息10退出系統
1. 添加學生信息:學號(整型),姓名(字符數組),高數,英語,數據結構(double) 2. 輸出所有同學信息
#includestdio.h
#includestdlib.h
#define LEN sizeof(struct Student)
struct Student
{
long num;
char name[10];
float Math,English;
struct Student*next;
};
int n;
struct Student*creat(void)
{
struct Student*p1,*p2,*head;
n=0;
p2=p1=(struct Student*)malloc(LEN);
printf(“輸入學生的學號 姓名 高數成績 英語成績(學號以0結束輸入):\n”);
scanf(“%ld%s%f%f”,p1-num,p1-name,p1-Math,p1-English);
head=NULL;
while(p1-num!=0)
{n=n+1;
if(n==1)head=p1;
else
p2-next=p1;
p2=p1;
p1=(struct Student*)malloc(LEN);
scanf(“%ld%s%f%f”,p1-num,p1-name,p1-Math,p1-English);
}
p2-next=NULL;
return head;
}
void print(struct Student*p)
{
int i;
printf(“學號 姓名 高數成績 英語成績:\n”);
for(i=1;i=n;i++)
{
printf(“%ld%s%5.1f%5.1f\n”,p-num,p-name,p-Math,p-English);
p=p-next;
}
}
main()
{
struct Student*p;
p=creat();
print(p);
}
如果要結束輸入就鍵入0 0 0 0
C語言編寫程序:同學通信錄管理系統
望採納
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct
{
char score; /*編號*/
char name[10]; /*姓名*/
char num[15]; /*號碼*/
char email[20]; /*郵箱*/
char age[8]; /*年齡*/
char adds[20]; /*住址*/
}Person;
Person pe[80];
//登陸函數
logon()
{printf(“\n\n\n\t\t\t 通訊錄管理系統\n\n”);
printf(“\t\t\t 版本號:1.0\n\n”);
printf(“\n\n\n\n\n\t\t\t 2011年4月29日\n\n”);
printf(“\t\t\t 程序設計第三組\n”);
system(“pause”);
}
int menu_select()
{ char c;
logon();
do{
system(“cls”);
printf(“\t\t *****通訊錄***** \n”);
printf(“\t\t┌───────┐\n”);
printf(“\t\t│ 1. 添加記錄 │\n”);
printf(“\t\t│ 2. 顯示記錄 │\n”);
printf(“\t\t│ 3. 刪除記錄 │\n”);
printf(“\t\t│ 4. 查詢記錄 │\n”);
printf(“\t\t│ 5. 修改記錄 │\n”);
printf(“\t\t│ 6. 保存記錄 │\n”);
printf(“\t\t│ 0. 退出程序 │\n”);
printf(“\t\t└───────┘\n”);
printf(“\t\t請您選擇(0-6):”);
c=getchar();
}while(c’0’||c’6′);
return(c-‘0’);
}
int Input(Person per[],int n)
{
int i=0;
char sign,x[10];
while(sign!=’n’sign!=’N’)
{
printf(“\t編號:”);
scanf(“\t%d”,per[n+i].score);
printf(“\t姓名:”);
scanf(“\t%s”,per[n+i].name);
printf(“\t年齡:”);
scanf(“\t%s”,per[n+i].age);
printf(“\t電話號碼:”);
scanf(“\t%s”,per[n+i].num);
printf(“\t通訊住址:”);
scanf(“\t%s”,per[n+i].adds);
printf(“\t電子郵箱:”);
scanf(“\t%s”,per[n+i].email);
gets(x);
printf(“\n\t是否繼續添加?(Y/N)”);
scanf(“\t%c”,sign);
i++;
}
return(n+i);
}
void Display(Person per[],int n)
{
int i;
printf(“———————————————————————-\n”); /*格式*/
printf(“編號 姓名 年齡 電話號碼 通訊地址 電子郵箱\n”);
printf(“———————————————————————-\n”);
for(i=1;in+1;i++)
{
printf(“%-5d%-8s%-6s%-13s%-15s%-15s\n”,per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);
if(i1i%10==0)
{
printf(“\t———————————–\n”);
printf(“\t”);
system(“pause”);
printf(“\t———————————–\n”);
}
}
printf(“———————————————————————-\n”);
system(“pause”);
}
int Delete_a_record(Person per[],int n)
{
char s[20];
int i=0,j;
printf(“\t請輸入想刪除記錄中的名字:”);
scanf(“%s”,s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf(“\t通訊錄中沒有此人!\n”);
return(n);
}
for(j=i;jn-1;j++)
{
strcpy(per[j].num,per[j+1].num);
strcpy(per[j].name,per[j+1].name);
strcpy(per[j].age,per[j+1].age);
strcpy(per[j].adds,per[j+1].adds);
strcpy(per[j].email,per[j+1].email);
per[j].score=per[j+1].score;
}
printf(“\t\t\t已經成功刪除!\n”);
return(n-1);
}
void Query_a_record(Person per[],int n)
{
int m;
printf(“\t\n請選擇查詢方式:\n”);
printf(“\t┌──────┐\n”);
printf(“\t│1——姓名 │\n”);
printf(“\t│2——電話 │\n”);
printf(“\t│3——地址 │\n”);
printf(“\t│4——返回 │\n”);
printf(“\t└──────┘\n”);
printf(“請選擇:”);
scanf(“%d”,m);
while(m!=1m!=2m!=3m!=4)
{
printf(“輸入錯誤,請重新選擇:”);
scanf(“%d”,m);
}
if(m==1)
{
char s[20];
int i=0;
printf(“\t請輸入想查詢的姓名:”);
scanf(“\t%s”,s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf(“\t通訊錄中沒有此人!\n”);
return;
}
printf(“\t此人編號: %d\n”,per[i].score);
printf(“\t此人年齡: %s\n”,per[i].age);
printf(“\t電話號碼: %s\n”,per[i].num);
printf(“\t通訊地址: %s\n”,per[i].adds);
printf(“\t電子郵箱: %s\n”,per[i].email);
} ;
if(m==2)
{
char s[20];
int i=0;
printf(“\t請輸入想查詢的電話:”);
scanf(“\t%s”,s);
while(strcmp(per[i].num,s)!=0in) i++;
if(i==n)
{
printf(“\t通訊錄中沒有此人!\n”);
return;
}
printf(“\t此人編號: %d\n”,per[i].score);
printf(“\t此人姓名: %s\n”,per[i].name);
printf(“\t此人年齡: %s\n”,per[i].age);
printf(“\t通訊地址: %s\n”,per[i].adds);
printf(“\t電子郵箱: %s\n”,per[i].email);
} ;
if(m==3)
{
char s[20];
int i=0;
printf(“\t請輸入想查詢的地址:”);
scanf(“\t%s”,s);
while(strcmp(per[i].adds,s)!=0in) i++;
if(i==n)
{
printf(“\t通訊錄中沒有此人!\n”);
return;
}
printf(“\t此人編號: %d\n”,per[i].score);
printf(“\t此人姓名: %s\n”,per[i].name);
printf(“\t此人年齡: %s\n”,per[i].age);
printf(“\t電話號碼: %s\n”,per[i].num);
printf(“\t電子郵箱: %s\n”,per[i].email);
} ;
}
void Change(Person per[],int n)
{
char s[20];
int i=0;
printf(“\t請輸入想修改的記錄中的名字:”);
scanf(“%s”,s);
while(strcmp(per[i].name,s)!=0in) i++;
if(i==n)
{
printf(“\t通訊錄中沒有此人!\n”);
return;
}
printf(“\t編號:”);
scanf(“\t%d”,per[i].score);
printf(“\t姓名:”);
scanf(“\t%s”,per[i].name);
printf(“\t年齡:”);
scanf(“\t%s”,per[i].age);
printf(“\t電話號碼:”);
scanf(“\t%s”,per[i].num);
printf(“\t通訊住址:”);
scanf(“\t%s”,per[i].adds);
printf(“\t電子郵箱:”);
scanf(“\t%s”,per[i].email);
printf(“\t修改成功!”);
}
void WritetoText(Person per[],int n)
{
int i=0;
FILE *fp; /*定義文件指針*/
char filename[20]; /*定義文件名*/
printf(“\t保存到文件\n”); /*輸入文件名*/
printf(“\t請輸入所保存的文件名:”);
scanf(“\t%s”,filename);
if((fp=fopen(filename,”w”))==NULL)
{
printf(“\t無法打開文件\n”);
system(“pause”);
return;
}
fprintf(fp,”******************************************通訊錄******************************************\n”);
fprintf(fp,”編號 姓名 年齡 電話號碼 通訊地址 電子郵箱\n”);
fprintf(fp,”——————————————————————————————\n”);
while(in)
{
fprintf(fp,”%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n”,per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);
i++;
}
fprintf(fp,”——————————————————————————————\n”);
fprintf(fp,”***************************************共有%d條記錄****************************************\n”,n);
fclose(fp); /*關閉文件*/
printf(“保存成功!\n”);
}
void main()
{
int n=0;
for(;;)
{
switch(menu_select())
{
case 1:
printf(“\n\t添加記錄到通訊錄\n”); n=Input(pe,n);
break;
case 2:
printf(“\n\t\t\t 通訊錄記錄表\n”);
Display(pe,n);
break;
case 3:
printf(“\n\t從通訊錄中刪除記錄\n”);
n=Delete_a_record(pe,n);
printf(“\t”);
system(“pause”);
break;
case 4:
printf(“\n\t在通訊錄中查找記錄\n”);
Query_a_record(pe,n);
printf(“\t”);
system(“pause”);
break;
case 5:
printf(“\n\t修改通訊錄中的記錄\n”);
Change(pe,n);
printf(“\t”);
system(“pause”);
break;
case 6:
printf(“\n\t保存功能\n”);
WritetoText(pe,n);
printf(“\t”);
system(“pause”);
break;
case 0:
printf(“\n\t\t謝謝使用,再見!\n”);
printf(“\n\t\t”);
system(“pause”);
exit(0);
}
}
}
原創文章,作者:YHUB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/135669.html