當前位置:編程學習大全網 - 編程語言 - c++的程序設計問題 選修課程根本不會啊

c++的程序設計問題 選修課程根本不會啊

#include<stdio.h>

#include<string.h>

#define P printf

#define MIMA "111"

#define PBT P("%-10s%-12s%-6s%-6s%-13s%-20s\n\n","學號","姓名","性別","年齡"," 手機","住址")

/* 記錄標題輸出 */

#define PJL P("%-10s%-12s%-6c%-6d%-13s%-20s\n\n",s[i].XueHao,s[i].XingMing,s[i].XingBie,s[i].NianLing,s[i].ShouJi,s[i].ZhuZhi)

/* 記錄輸出 */

#define N 20

typedef struct

{

char XueHao[12]; /* 學號 */

char XingMing[15]; /* 姓名 */

char XingBie; /*性別*/

int NianLing; /* 年齡 */

char ShouJi[12]; /* 手機 */

char ZhuZhi[30]; /* 住址 */

}NODE;

void ShuRu(NODE s[]);

void Chaxun(NODE s[]);

void Chaxun_QuanBu(NODE s[]);

void Chaxun_BianHao(NODE s[]);

void Chaxun_XueHao(NODE s[]);

void Chaxun_XingMing(NODE s[]);

void Chaxun_NianLing(NODE s[]);

void Chaxun_ShouJi(NODE s[]);

int daoru(NODE s[]);

void Cunchu(NODE s[]);

void Shanchu(NODE s[]);

void Mimashuru(char[],int);

char WenJian[10];

int t=0;

NODE s[N];

void main()

{

char c;

int i;

char MiMa[10];

for(i=1;i<=3;i++)

{

Mimashuru(MiMa,i);

if(strcmp(MiMa,MIMA)!=0)continue;

P("\n\n\t\t\t 密碼輸入正確,請輸入文件名 : ");

gets(WenJian);

t=daoru(s)-1;

clrscr();

P("\n\n\t\t\t 歡迎進入我的個性化通訊錄");

P("\n\n\t\t\t\t\t\t按任意鍵繼續。。 ");

getch();

for(;;)

{

clrscr();

P("\n\n\n\n\n");

P("\t\t\t ****************************\n");

P("\t\t\t * *\n");

P("\t\t\t * 我的個性化通信錄 *\n");

P("\t\t\t * *\n");

P("\t\t\t * 主菜單 *\n");

P("\t\t\t * *\n");

P("\t\t\t * 增加信息----1 *\n");

P("\t\t\t * 刪除信息----2 *\n");

P("\t\t\t * 查詢信息----3 *\n");

P("\t\t\t * 退出系統----0 *\n");

P("\t\t\t * 儲 存----9 *\n");

P("\t\t\t * *\n");

P("\t\t\t ****************************\n\n");

P("\t\t\t 請選擇妳想要的操作---- ? ");

c=getch();

if (c=='0') break;

switch(c)

{

case '1':ShuRu(s);break;

case '2':Shanchu(s);break;

case '3':Chaxun(s);break;

case '9':Cunchu(s);break;

}

}

i=4;

}

Cunchu(s);

}

void Mimashuru(char a[],int n) /*****密碼輸入*****/

{

int j;

clrscr();

switch(n)

{ case 1:P("\n\n\n\n\t\t\t 密碼(以“0”結束)=? ");

break;

case 2:P("\n\n\n\n\t 密碼錯誤,請重新輸入密碼(以“0”結束)=? ");

break;

case 3:P("\n\n\n\n\t 密碼錯誤,請最後壹次輸入密碼(以“0”結束)=? ");

}

for(j=0;;j++)

{ a[j]=getch();

if(a[j]=='0') { a[j]='\0';break;}

else putchar('*');

}

}

int daoru(NODE s[]) /**** 導入 ****/

{

int i;

FILE *fp;

if((fp=fopen(WenJian,"rb"))==NULL)return 0;

for(i=0;!feof(fp);i++)

fread(&s[i],sizeof(NODE),1,fp);

fclose(fp);

return i;

}

void Cunchu(NODE s[]) /***** 存盤 *****/

{

int i;

FILE *fp;

if((fp=fopen(WenJian,"wb"))==NULL){P("Save Error!!!");getch();exit(1);}

for(i=0;i<t;i++)

fwrite(&s[i],sizeof(NODE),1,fp);

fclose(fp);

}

void ShuRu(NODE s[]) /*****輸入****/

{

float x;

char c;

int i,n;

for(;;)

{

clrscr();

P("\n\n\n\n\n\n");

P("\t\t\t **********************\n");

P("\t\t\t * *\n");

P("\t\t\t * *\n");

P("\t\t\t * 輸入信息----1 *\n");

P("\t\t\t * 增加信息----2 *\n");

P("\t\t\t * 返 回----0 *\n");

P("\t\t\t * *\n");

P("\t\t\t **********************\n");

P("\n\t\t\t 請選擇妳想要的操作---- ? ");

c=getch();

if (c=='0') break;

if(c=='1')t=0;

clrscr();

for(i=t;;i++)

{

P("\n\n學號=? ");

scanf("%s",s[i].XueHao);

P(" 姓名=? "); scanf("%s",s[i].XingMing);

getchar();

P(" 性別=? "); scanf("%c",&s[i].XingBie);

P(" 年齡=? "); scanf("%d",&s[i].NianLing);

P(" 手機=? "); scanf("%s",s[i].ShouJi);

P(" 住址=? "); scanf("%s",s[i].ZhuZhi);

t++;

P("輸入1繼續,輸入0返回!");

scanf("%d",&n);

if(n==0) break;

}

}

}

void Chaxun(NODE s[]) /* 查詢 */

{

char c;

for(;;)

{

clrscr();

P("\n\n\n\n\n\n");

P("\t\t\t ***************************\n");

P("\t\t\t * *\n");

P("\t\t\t * *\n");

P("\t\t\t * 查詢菜單 *\n");

P("\t\t\t * *\n");

P("\t\t\t * *\n");

P("\t\t\t * 按編號查詢---------1 *\n");

P("\t\t\t * 按學號查詢---------2 *\n");

P("\t\t\t * 按姓名查詢---------3 *\n");

P("\t\t\t * 按年齡查詢---------4 *\n");

P("\t\t\t * 按手機查詢---------5 *\n");

P("\t\t\t * 信息全顯示---------9 *\n");

P("\t\t\t * 返 回---------0 *\n");

P("\t\t\t * *\n");

P("\t\t\t * *\n");

P("\t\t\t * *************************\n");

P("\n\t\t\t 請選擇妳想要的操作---- ? ");

c=getch();

if(c=='0')break;

switch(c)

{

case '1':Chaxun_BianHao(s);break;

case '2':Chaxun_XueHao(s);break;

case '3':Chaxun_XingMing(s);break;

case '4':Chaxun_NianLing(s);break;

case '5':Chaxun_ShouJi(s);break;

case '9':Chaxun_QuanBu(s);break;

}

}

}

void Chaxun_BianHao(NODE s[])

{

int i,n1,n2;

clrscr();

P("\n\n\n\t\t\t 請輸入起始記錄號: ");

scanf("%d",&n1);

P("\n\n\n\t\t\t 請輸入結束記錄號: ");

scanf("%d",&n2);

clrscr();

PBT;

for(i=0;i<=t;i++)

{

if((i+1)>=n1&&(i+1)<=n2) PJL;

else

P("未能找到符合條件的記錄");

}

P("\n\n 按任壹鍵繼續....");

getch();

}

void Chaxun_XueHao(NODE s[])

{

int i;

char nl1[20];

clrscr();

P("\n\n\n\n\t\t請輸入學號:");

gets(nl1);

clrscr();

PBT;

for(i=0;i<t;i++)

{

if(strcmp(s[i].XueHao,nl1)==0) PJL;

}

P("\n\n按任壹鍵繼續...");

getch();

}

void Chaxun_XingMing(NODE s[])

{

int i;

char nl1[20];

clrscr();

P("\n\n\n\n\t\t請輸入姓名:");

gets(nl1);

clrscr();

PBT;

for(i=0;i<t;i++)

{

if(strcmp(s[i].XingMing,nl1)==0) PJL;

}

P("\n\n按任壹鍵繼續...");

getch();

}

void Chaxun_NianLing(NODE s[])

{

int i;

int nl1,nl2;

clrscr();

P("\n\n\n\n\t\t 請輸入最低年齡:");

scanf("%d",&nl1);

P("\n\t\t 請輸入最高年齡:");

scanf("%d",&nl2);

clrscr();

PBT;

for(i=0;i<t;i++)

if(s[i].NianLing>=nl1&&s[i].NianLing<=nl2) PJL;

P("\n\n按任壹鍵繼續...");

getch();

}

void Chaxun_ShouJi(NODE s[])

{

int i;

char n1[15];

clrscr();

P("\n\n\n\n\t\t請輸入電話:");

scanf("%s",&n1);

clrscr();

PBT;

for(i=0;i<t;i++)

{

if(strcmp(s[i].ShouJi,n1)==0) PJL;

}

P("\n\n按任壹鍵繼續...");

getch();

}

void Chaxun_QuanBu(NODE s[])

{

int i;

clrscr();

PBT;

for(i=0;i<t;i++)

{

PJL;

}

P("\n\n按任壹鍵繼續...");

getch();

}

void Shanchu() /***刪除***/

{

int i;

char name[10],choice[2];

clrscr();

printf("\n");

printf("請正確輸入妳要刪除的姓名:\n");

scanf("%s",name);

printf("確定刪除?(Y/N)\n");

scanf("%s",choice);

if(strcmp(choice,"Y")==0 || strcmp(choice,"y")==0)

{

for(i=0;i<t;i++)

{

if(strcmp(s[i].XingMing,name)==0)

for(i=i;i<t;i++)

{

strcpy(s[i].XingMing,s[i+1].XingMing);

strcpy(s[i].XueHao,s[i+1].XueHao);

strcpy(s[i].ShouJi,s[i+1].ShouJi);

strcpy(s[i].ZhuZhi,s[i+1].ZhuZhi);

s[i].XingBie=s[i+1].XingBie;

s[i].NianLing=s[i+1].NianLing;

}

}

t=t-1;

}

else

{

printf("按任意鍵返回\n");

getch();

return;

}

}

  • 上一篇:win xp比2000多了些什麽?
  • 下一篇:妳能接受這款經典跑車的煥然新生嗎?全新斯巴魯BRZ預告圖曝光
  • copyright 2024編程學習大全網