求用VC++6.0編程的源代碼,建立檔案的形式,和代碼的要求如下圖

uj5u.com熱心網友回復:
用c的話,打開檔案用fopen,讀用fread,寫用fwrite,如果用c++的話,檔案操作可以用fstream來操作檔案uj5u.com熱心網友回復:
閑來無事,寫了個,供參考
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1024
typedef struct Tongxulu
{
char name[20];
char addr[50];
char phone[15];
}TXL;
/* 選單 */
void Menu();
/* 保存 */
void SaveTXL(TXL *arr, int n);
/* 新建 */
void CreateTXL(TXL *arr);
/* 瀏覽 */
void PrintTXL();
/* 查詢 */
void FindTXL();
/* 修改 */
void ModifyTXL();
int len = 0;
int main()
{
int choice = -1;
TXL arr[N];
while (1)
{
system("cls");
Menu();
scanf("%d", &choice);
switch (choice)
{
case 1:
CreateTXL(arr);
break;
case 2:
ModifyTXL();
break;
case 3:
FindTXL();
break;
case 4:
PrintTXL();
break;
case 0:
exit(0);
break;
default:
printf("\n輸入0-4之間的整數:");
break;
}
}
getchar();
return 0;
}
/* 選單 */
void Menu()
{
printf("\n----------- 通訊錄 ----------\n");
printf(" 1. 新建 \n");
printf(" 2. 修改 \n");
printf(" 3. 查詢 \n");
printf(" 4. 瀏覽 \n");
printf(" 0. 退出 \n");
printf("-----------------------------\n\n");
printf("選擇選單項(0-4): ");
}
/* 新建 */
void CreateTXL(TXL *arr)
{
int i;
char ch;
printf("\n輸入班級人數:");
scanf("%d", &len);
getchar();
for (i=0; i<len; i++)
{
printf("\n輸入第%d個學生的姓名 家族住址 電話:\n", i+1);
scanf("%s%s%s", arr[i].name, arr[i].addr, arr[i].phone);
}
getchar();
printf("\n新建通訊錄完畢,要保存嗎(y/n): ");
scanf("%c", &ch);
if ('y' == ch || 'Y' == ch)
{
SaveTXL(arr, len);
}
else
{
printf("提示:通訊錄未保存!\n");
}
}
/* 保存 */
void SaveTXL(TXL *arr, int n)
{
int i;
FILE *fp;
if ((fp = fopen("./temp/txl.txt", "w")) == NULL)
{
printf("保存通訊錄失敗!\n");
exit(1);
}
for (i=0; i<n; i++)
{
fprintf(fp, "%s %s %s\n", arr[i].name, arr[i].addr, arr[i].phone);
}
printf("通訊錄保存完畢!\n");
fclose(fp);
}
/* 瀏覽 */
void PrintTXL()
{
int i = 0;
TXL stu;
FILE *fp;
fp = fopen("./temp/txl.txt","r");
if (!fp)
{
printf("檔案不存在!\n");
exit(1);
}
fscanf(fp, "%s%s%s", stu.name, stu.addr, stu.phone);
printf("\n--------------- 通訊錄 --------------\n\n");
printf("%s\t%s\t%s\n", "姓名", "家庭住址", "聯系方式");
printf("\n-------------------------------------\n\n");
while(!feof(fp))
{
printf("%s\t%s\t\t%s\n", stu.name, stu.addr, stu.phone);
fscanf(fp, "%s%s%s", stu.name, stu.addr, stu.phone);
}
fclose(fp);
getchar();
getchar();
}
/* 查詢 */
void FindTXL()
{
char fphone[15], fname[20];
int i = 0, choice = -1, j;
TXL s[N];
FILE *fp;
fp = fopen("./temp/txl.txt","r");
if (!fp)
{
printf("檔案不存在!\n");
exit(1);
}
while(!feof(fp))
{
fscanf(fp, "%s%s%s", s[i].name, s[i].addr, s[i].phone);
i++;
}
while (1)
{
system("cls");
printf("\n------------ 通訊錄-查詢 ------------\n");
printf(" 1. 按姓名查找\n");
printf(" 2. 按電話查找\n");
printf(" 0. 回傳\n\n");
printf("輸入選單選項:");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("\n輸入要查找的學生姓名:");
scanf("%s", fname);
for (j=0; j<i; j++)
{
if (strcmp(fname, s[j].name) == 0)
{
printf("\n------------ 通訊錄-查詢結果 ------------\n");
printf("%s\t%s\t%s\n", "姓名", "家族住址", "聯系方式");
printf("\n%s\t%s\t\t%s\n", s[j].name, s[j].addr, s[j].phone);
getchar();
break;
}
}
printf("姓名為%s的學生未找到!\n", fname);
getchar();
getchar();
break;
case 2:
printf("\n輸入要查找的學生電話:");
scanf("%s", fphone);
for (j=0; j<i; j++)
{
if (strcmp(fphone, s[j].phone) == 0)
{
printf("\n------------ 通訊錄-查詢結果 ------------\n");
printf("%s\t%s\t%s\n", "姓名", "家族住址", "聯系方式");
printf("\n%s\t%s\t\t%s\n", s[j].name, s[j].addr, s[j].phone);
getchar();
break;
}
}
printf("電話為%s的學生未找到!\n", fphone);
getchar();
getchar();
break;
case 0:
return;
break;
default:
printf("\n輸入0-2之間的整數:");
break;
}
}
fclose(fp);
}
/* 修改 */
void ModifyTXL()
{
char mphone[15], mname[20], maddr[50];
int i = 0, j;
TXL s[N];
FILE *fp;
fp = fopen("./temp/txl.txt","r");
if (!fp)
{
printf("檔案不存在!\n");
exit(1);
}
while(!feof(fp))
{
fscanf(fp, "%s%s%s", s[i].name, s[i].addr, s[i].phone);
i++;
}
printf("\n\n 學生人數 = %d\n\n", i-1);
printf("要修改第幾個學生的資訊?\n");
scanf("%d", &j);
if (j <= 0 || j > i)
{
printf("錯誤:超出范圍!\n");
getchar();
return;
}
else
{
printf("輸入要修改的資訊:姓名 住址 電話:\n");
scanf("%s%s%s", s[j-1].name, s[j-1].addr, s[j-1].phone);
getchar();
printf("修改完成,正在保存......\n");
getchar();
SaveTXL(s, i-1);
getchar();
return;
}
}
uj5u.com熱心網友回復:
不懂??,c語言白癡一枚
uj5u.com熱心網友回復:
厲害??,多謝兄弟uj5u.com熱心網友回復:
用不了哇。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/59090.html
標籤:C語言
上一篇:24盞心形流水燈
下一篇:c語言結構體
