C语言期末综合编程实验

C语言期末综合编程实验,第1张

#include <stdio.h>

#include 滑空<string.h>

#define ARRAY_LEN 30

/*联系人结构体*/

/*注:本程序忽略重名现象。若重名则查找时以最后输入的联系人为准。*/

typedef struct{

char name[10]

int age

char sex[10]

char mp[13]

char tel[13]

} friend_list

/*打印所有联系人信息*/

void printAll (friend_list friList[], int *friNum) {

int 信乱瞎i

if (*friNum) {

printf ("姓名\t\t年龄\t\t性别\t\t手机\t\t家庭\n")

for (i=0 i<*friNum i++)

printf ("%s\t\t%d\t\t%s\t\t%s\t\t%s\n",friList[i].name,friList[i].age,friList[i].sex,friList[i].mp,friList[i].tel)

printf ("\n")

}

else {

printf ("无任何联系人信息!\n")

printf ("\n")

}

}

/*打印联系人信息*/

void printFri (friend_list friList[], int index) {

if (index==-1) {

printf ("查无此人!\n")

printf ("\n")

}

else {

printf ("姓名\t\t年龄\t\t性别\t\t手机\t\t家庭\n")

printf ("%s\t\t%d\t\t%s\t\t%s\t\t%s\n",friList[index].name,friList[index].age,friList[index].sex,friList[index].mp,friList[index].tel)

printf ("\n")

}

}

/*按姓名定位联系人所在数组位置*/

int findIndex (friend_list friList[], int *friNum, char *tarName) {

int i,index

index =-1

for (i=0 i<*friNum i++)

if (strcmp(tarName, friList[i].name) == 0) /*两字符串相等strcmp函数返回0*/

index = i /*定位联系人在结构体数组中的下标*/

return 陪裂index

}

/*录入联系人信息*/

void addFri (friend_list friList[], int *friNum) {

int i = *friNum

printf ("请输入联系人信息:\n")

printf ("姓名:")

scanf ("%s",&friList[i].name) 

printf ("年龄:")

scanf ("%d",&friList[i].age)

printf ("性别:")

scanf ("%s",&friList[i].sex)

printf ("手机:")

scanf ("%s",&friList[i].mp)

printf ("家庭:")

scanf ("%s",&friList[i].tel)

*friNum +=1 /*联系人数加1*/

printf ("\n")

}

/*按姓名查找联系人信息*/

void findFri (friend_list friList[], int *friNum) {

int i,index

char tarName[10]

printf ("请输入欲查找的联系人姓名:")

scanf ("%s",&tarName)

printf ("\n")

index = findIndex (friList, friNum, tarName)

printFri (friList, index) /*打印联系人信息*/

}

/*删除联系人信息*/

void delFri (friend_list friList[], int *friNum) {

int i,index

char tarName[10]

printf ("请输入欲删除的联系人姓名:")

scanf ("%s",&tarName)

printf ("\n")

index = findIndex (friList, friNum, tarName)

if (index == -1) {

printf ("查无此人!\n")

printf ("\n")

}

else {

for (i=index i<*friNum i++)

friList[i] = friList[i+1] 

*friNum-=1

printf ("联系人%s已删除!\n",tarName)

printf ("\n")

}

}

/*修改联系人信息*/

void altFri (friend_list friList[], int *friNum) {

int index

char tarName[10]

printf ("请输入欲修改的联系人姓名:")

scanf ("%s",&tarName)

printf ("\n")

index = findIndex (friList, friNum, tarName)

if (index == -1) {

printf ("查无此人!\n")

printf ("\n")

}

else {

printf ("请重新输入联系人信息:\n")

printf ("姓名:%s\n",friList[index].name)

printf ("年龄:")

scanf ("%d",&friList[index].age)

printf ("性别:")

scanf ("%s",&friList[index].sex)

printf ("手机:")

scanf ("%s",&friList[index].mp)

printf ("家庭:")

scanf ("%s",&friList[index].tel)

printf ("联系人%s信息已修改!\n",tarName)

printf ("\n")

}

}

/*打印菜单*/

void printMenu (void) {

printf ("======================================================\n\n")

printf ("序号\t功能详情\n")

     printf ("1\t新增联系人\n")

     printf ("2\t按姓名查找联系人\n")

     printf ("3\t按姓名删除联系人\n")

     printf ("4\t按姓名修改联系人\n")

     printf ("5\t列出所有联系人信息\n")

     printf ("6\t退出\n")

     printf ("\n")

printf ("======================================================\n\n")

}

/*输入命令*/

int instructions (void) {

int key

printf ("请输入功能序号以开启 *** 作:")

scanf ("%d",&key)

printf ("\n")

printf ("======================================================\n\n")

return key

}

int main(void) {

int key

int friNum = 0 /*联系人数量*/

friend_list friList[ARRAY_LEN] /*联系人结构体数组*/

do {

printMenu ()

key = instructions ()

     switch (key){

         case 1: addFri (friList, &friNum) break

         case 2: findFri (friList, &friNum) break

         case 3: delFri (friList, &friNum) break

         case 4: altFri (friList, &friNum) break

         case 5: printAll (friList, &friNum) break

         case 6: printf("程序结束!\n\n") break

         default: printf("输入错误,请重新输入!\n\n")break

     }

     if (key!=6) {

     printf("按回车键继续\n")getchar ()getchar ()

    }

} while(key!=6)

return 0

}

运行结果

主界面

新增联系人

查找联系人

删除联系人

修改联系人

列出所有联系人

#include<stdio.h>

int main()

{ int n,i,s=0,x

printf("考了几粗判门功课?\n"知销)

scanf("%d",&n)

printf("请输入%d门功课的成绩: \n")

for(i=0i<岩猛改ni++)

{ scanf("%d",&x)

s+=x

}

printf("总分是:%d\n",s)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12236864.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存