7-4 简单通讯录 (100 分)

程序输入整数N,再输入N个学生的姓名和电话号码。最后以表格形式输出。

输入格式:

第一行,整数N(N<100),接下来N行,是N个学生的姓名(无空格不超过20个字符)和电话(无空格不超过20个字符)。

输出格式:

见样例,严格按样例格式输出。

输入样例:

3
AAAAABBBBBCCCCCDDDDD       13000001234
Yulong                     13666667777
Gaoyuhang                  18601105886

输出样例:

+---------------------------------------------+
| name                 | phone                |
+----------------------+----------------------+
| AAAAABBBBBCCCCCDDDDD | 13000001234          |
+----------------------+----------------------+
| Yulong               | 13666667777          |
+----------------------+----------------------+
| Gaoyuhang            | 18601105886          |
+---------------------------------------------+
#include<stdio.h>

typedef struct
{
    char name[25];
    char tel[13];
} STU;

STU stu[101];

int main()
{
    char name[25];
    char tel[13];
    int n,i;
    char str[2][10]= {"name","phone"};
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%s%s",stu[i].name,stu[i].tel);
    }
    printf("+---------------------------------------------+\n");
    printf("| %-21s| %-21s|\n",str[0],str[1]);
    printf("+----------------------+----------------------+\n");
    for(i=0; i<n-1; i++)
    {
        printf("| %-21s| %-21s|\n",stu[i].name,stu[i].tel);
        printf("+----------------------+----------------------+\n");
    }
    printf("| %-21s| %-21s|\n",stu[n-1].name,stu[n-1].tel);
    printf("+---------------------------------------------+\n");
    return 0;
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本人刷了无数版本,这个版本是用的最好的,没有之一,由于60M限制,成2个包,加起来收5,算是挑选ROM刷机的辛苦。 固件需要线刷。自带傻瓜线刷工具(商务通线刷工具,内含ADB和FastBoot,但没有驱动,驱动请用91等工具辅助下载)。ROM在Flash文件夹内。 本固件本人试用1年余,刷过不下5个版本,不跳电,这一点超赞。精简,没多余东西,没恶心的自带软件。可以用Google Play。 1.本固件基于it168明大2.37,目前认为最稳定的固件修改制作而成。 2.集成智能拨号,通讯录顺序排列,短信气泡(可添加联系人,会话界面样式可调)+完美桌面弹框显示,归属地显示。 3.电量图标精确1%。 4.精简一些不常用的软件,如邮箱等。 5.本次固件只集成3个常用的软件,如圆图标的re管理器,移动ap(来自藕粉网汉化版,这个很多人在找),miui播放器。 a.由于自带音乐播放器会搜索sd卡目录,导航包里声音文件,所以更换播放器为miui,可以筛选声音文件大小(默认800kb)。 b.其他的一些输入法什么的,由于此类软件经常有更新,所以未集成,给大家较高的自由度去安装吧。 6.修改开机第一屏图片(貌似蛮好看的,嘻嘻)。开机动画替换比较简单,本次固件没做修改,大家可自行修改。 7.此次固件暂未集成定时开关机,关机闹钟。硬解同明大237,pptv类软件可正常使用。 8.自带root。测键亮屏,下滑锁屏,gps加速,蓝牙等补丁均已打上。 9.锁屏特效:电视机关闭动画。 10.精简部系统铃声,缩小rom大小,并添加leos经典好听的默认短信提示音09 11.本固件精心制作,经本人w100使用多日,流畅,稳定,省电,无影响常规使用bug。
通讯录管理系统可以使用 C 语言来实现。以下是一个简单的实现思路: 1. 定义一个结构体来存储通讯录中的联系人信息,包括姓名、电话、地址等信息。 2. 定义一个数组来存储多个联系人的信息。 3. 实现菜单功能,包括添加联系人、删除联系人、修改联系人、查找联系人和显示所有联系人等选项。 4. 实现具体功能,比如添加联系人,需要输入联系人信息,然后将其存储到数组中。 5. 实现文件读写功能,可以将联系人信息存储到文件中或从文件中读取联系人信息。 以下是一个简单通讯录管理系统的 C 语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_CONTACTS 100 struct Contact { char name[50]; char phone[20]; char address[100]; }; struct Contact contacts[MAX_CONTACTS]; int numContacts = 0; void addContact() { if (numContacts >= MAX_CONTACTS) { printf("通讯录已满,无法添加联系人\n"); return; } struct Contact c; printf("请输入联系人姓名:"); scanf("%s", c.name); printf("请输入联系人电话:"); scanf("%s", c.phone); printf("请输入联系人地址:"); scanf("%s", c.address); contacts[numContacts++] = c; printf("联系人添加成功\n"); } void deleteContact() { char name[50]; printf("请输入要删除的联系人姓名:"); scanf("%s", name); int index = -1; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, name) == 0) { index = i; break; } } if (index == -1) { printf("未找到该联系人\n"); return; } for (int i = index; i < numContacts - 1; i++) { contacts[i] = contacts[i + 1]; } numContacts--; printf("联系人删除成功\n"); } void editContact() { char name[50]; printf("请输入要修改的联系人姓名:"); scanf("%s", name); int index = -1; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, name) == 0) { index = i; break; } } if (index == -1) { printf("未找到该联系人\n"); return; } printf("请输入联系人电话:"); scanf("%s", contacts[index].phone); printf("请输入联系人地址:"); scanf("%s", contacts[index].address); printf("联系人修改成功\n"); } void searchContact() { char name[50]; printf("请输入要查找的联系人姓名:"); scanf("%s", name); int index = -1; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, name) == 0) { index = i; break; } } if (index == -1) { printf("未找到该联系人\n"); return; } printf("姓名:%s\n电话:%s\n地址:%s\n", contacts[index].name, contacts[index].phone, contacts[index].address); } void displayContacts() { if (numContacts == 0) { printf("通讯录为空\n"); return; } printf("姓名\t电话\t地址\n"); for (int i = 0; i < numContacts; i++) { printf("%s\t%s\t%s\n", contacts[i].name, contacts[i].phone, contacts[i].address); } } void saveContacts() { FILE *fp = fopen("contacts.txt", "w"); if (fp == NULL) { printf("文件打开失败\n"); return; } fprintf(fp, "%d\n", numContacts); for (int i = 0; i < numContacts; i++) { fprintf(fp, "%s %s %s\n", contacts[i].name, contacts[i].phone, contacts[i].address); } fclose(fp); printf("通讯录保存成功\n"); } void loadContacts() { FILE *fp = fopen("contacts.txt", "r"); if (fp == NULL) { printf("文件打开失败\n"); return; } fscanf(fp, "%d", &numContacts); for (int i = 0; i < numContacts; i++) { fscanf(fp, "%s %s %s", contacts[i].name, contacts[i].phone, contacts[i].address); } fclose(fp); printf("通讯录读取成功\n"); } int main() { int choice; do { printf("请选择操作:\n"); printf("1. 添加联系人\n"); printf("2. 删除联系人\n"); printf("3. 修改联系人\n"); printf("4. 查找联系人\n"); printf("5. 显示所有联系人\n"); printf("6. 保存通讯录\n"); printf("7. 读取通讯录\n"); printf("0. 退出\n"); scanf("%d", &choice); switch (choice) { case 1: addContact(); break; case 2: deleteContact(); break; case 3: editContact(); break; case 4: searchContact(); break; case 5: displayContacts(); break; case 6: saveContacts(); break; case 7: loadContacts(); break; case 0: printf("程序已退出\n"); break; default: printf("无效的选项\n"); } } while (choice != 0); return 0; } ``` 注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值