C语言电话薄速求???
编写一个菜单驱动的电话薄管理系统程序。要求如下:能输入并显示n个学生的电话号码。
能任意添加某人的电话号码。
任意输入一个姓名,能显示其电话号码,也可将其删除。
利用结构体数组或结构体指针实现。
补充:希望高手讲解下
追问:运行过还不错就是有点不理解
补充:希望高手讲解下
追问:运行过还不错就是有点不理解
答案:#include "stdio.h" /*标准输入输出函数库*/
#include "stdlib.h" /*标准函数库*/
#include "string.h" /*字符串函数库*/
#include "conio.h" /*屏幕操作函数库*/
#define HEADER1 " ---------------------------TELEPHONE BOOK---------------------------\n"
#define HEADER2 " | num | name | phonenumber | address | \n"
#define HEADER3 " |--------------|------------|-----------------|---------------------| \n"
#define FORMAT " | %-10s| %-10s| %-15s |%-20s | \n"
#define DATA p->num,p->name,p->phonenum,p->address
#define END " ---------------------------------------------------------------------\n"
#define N 100
int saveflag=0; /*是否需要存盘的标志变量*/
/*定义与电话簿有关的数据结构*/
typedef struct telebook /*标记为telebook*/
{
char num[4]; /*编号*/
char name[10]; /*姓名*/
char phonenum[15]; /*电话号码*/
char address[20]; /*地址*/
}TELEBOOK;
void menu() /*主菜单*/
{
system("cls"); /*调用DOS命令,清屏.与clrscr()功能相同*/
textcolor(13); /*在文本模式中选择新的字符颜色*/
gotoxy(10,5); /*在文本窗口中设置光标*/
cprintf(" The telephone-book Management System \n");
gotoxy(10,8);
if(ch=='y'||ch=='Y')
{
printf("\n=====>can not open file!\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&tele[count],sizeof(TELEBOOK),1,fp)==1) /*一次从文件中读取一条电话簿记录*/
count++;
}
fclose(fp); /*关闭文件*/
printf("\n==>open file sucess,the total records number is : %d.\n",count);
getchar();
menu();
while(1)
{
system("cls");
menu();
printf("\n Please Enter your choice(0~8):"); /*显示提示信息*/
scanf("%d",&select);
if(select==0)
{
if(saveflag==1) /*若对数组的数据有修改且未进行存盘操作,则此标志为1*/
{ getchar();
printf("\n==>Whether save the modified record to file?(y/n):");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(tele,count);
}
printf("\n===>thank you for useness!");
getchar();
break;
}
switch(select)
{
case 1:count=Add(tele,count);break; /*增加电话簿记录*/
case 2:system("cls");Disp(tele,count);break; /*显示电话簿记录*/
case 3:count=Del(tele,count);break; /*删除电话簿记录*/
case 4:Qur(tele,count);break; /*查询电话簿记录*/
case 5:Modify(tele,count);break; /*修改电话簿记录*/
case 6:count=Insert(tele,count);break; /*插入电话簿记录*/
case 7:SelectSort(tele,count);break; /*排序电话簿记录*/
case 8:Save(tele,count);break; /*保存电话簿记录*/
default: Wrong();getchar();break; /*按键有误,必须为数值0-9*/}}}谢谢多加点分
上一个:c语言推荐买什么书
下一个:这个C语言编程在哪里下载