c++的程序设计问题 选修课程根本不会啊

2024-12-05 13:50:13
推荐回答(5个)
回答1:

#include
#include
#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 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 {
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 {
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 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 {
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 {
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 {
if(strcmp(s[i].XingMing,name)==0)
for(i=i;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;
}
}

回答2:

每个功能都会对应有一个函数,在MAIN函数中,选择某项功能时,就调用该功能函数。
另外,站长团上有产品团购,便宜有保证

回答3:

看看谭浩强的书,他的书比较容易懂

回答4:

可以凭借百度Hi提示我们
有机会可以解决你的问题
更进一步的要求也可以提示我们
c++面向对象编程:学生选课**(学生模块)
ES:\\3772EA5B9FD4BD602FFF440F00F146C3

回答5:

才8 0分啊……