C语言实训程序题

C语言实训程序题,第1张

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

typedef struct _HK

{

char num[20]

char name[10]

char card[20]

char hb[20]

int jb

char date[11]

char tt[10]

float pay

struct _HK *next

}*HK

HK head = NULL

void AddMsg()

{

HK t

t = (HK)malloc(sizeof(*t))

printf("输入票号:")

scanf(" %s", t->num)

printf("输入姓名:")

scanf(" %s", t->name)

printf("身份z号:")

scanf(" %s", t->card)

printf("航班号:")

scanf(" %s", t->hb)

printf("座舱号:")

scanf(" %d", &t->jb)

printf("日期(xxxx-xx-xx):")

scanf(" %s", t->date)

printf("时间(xx:xx:xx):")

scanf(" %s", t->tt)

printf("钱数:")

scanf(" %f", &t->pay)

t->next = head

head = t

printf("***********添加成功[%s][%s][%s][%s][%d][%s][%s][%.2f]***********\n", t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

}

void DelMsg()

{

char szMsg[20] = {0}

HK s,t

printf("输入要删除的票号:")

scanf(" %s", szMsg)

for (s = t = headts = t, t = t->next)

{

if (!memcmp(szMsg, t->num, strlen(szMsg)))

{

if (s == t)

head = head->next

else

s->next = t->next

t->next = NULL

free(t)

printf("***********删除成功[%s][%s][%s][%s][%d][%s][%s][%.2f]***********\n", t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

return

}

}

}

void ChangeMsg()

{

HK t

char szMsg[20] = {0}

printf("输入要修改的票号:")

scanf(" %s", szMsg)

for (t = headtt=t->next)

{

if (!memcmp(szMsg, t->num, strlen(szMsg)))

{

printf("输入票号:")

scanf(" %s", t->num)

printf("输入姓名:")

scanf(" %s", t->name)

printf("身份z号:")

scanf(" %s", t->card)

printf("航班号:")

scanf(" %s", t->hb)

printf("座舱号:")

scanf(" %d", &t->jb)

printf("日期(xxxx-xx-xx):")

scanf(" %s", t->date)

printf("时间(xx:xx:xx):")

scanf(" %s", t->tt)

printf("钱数:")

scanf(" %f", &t->pay)

printf("***********修改成功[%s][%s][%s][%s][%d][%s][%s][%.2f]***********\n", t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

return

}

}

}

void FindMsg()

{

int n

char szMsg[20]

HK t

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

printf("***********************************************************\n")

printf("* *\n")

printf("***********************1.票号查询信息**********************\n")

printf("* *\n")

printf("***********************2.姓名查询信息**********************\n")

printf("* *\n")

printf("***********************************************************\n")

scanf(" %d", &n)

printf("输入查询信息:")

scanf(" %s", szMsg)

for (t = headtt=t->next)

{

if (1 == n)

{

if (!memcmp(szMsg, t->num, strlen(szMsg)))

printf("***********查询成功[%s][%s][%s][%s][%d][%s][%s][%.2f]***********\n", t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

}

else if (2 == n)

{

if (!memcmp(szMsg, t->name, strlen(szMsg)))

printf("***********查询成功[%s][%s][%s][%s][%d][%s][%s][%.2f]***********\n", t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

}

}

return

}

void MsgToFile()

{

FILE *fp

char szFile[32] = {0}

HK t

printf("文件路径:")

scanf(" %s", szFile)

fp = fopen(szFile, "w")

for (t = headtt=t->next)

{

fprintf(fp, "票号:%s|姓名:%s|身份z:%s|航班号:%s|座舱等级:%d|出发日期:%s|时间:%s|价格:%.2f\n",

t->num, t->name, t->card, t->hb, t->jb, t->date, t->tt, t->pay)

}

fclose(fp)

}

int main(void)

{

int n

while(1)

{

printf("***********************************************************\n")

printf("* *\n")

printf("************************1.添加信息*************************\n")

printf("* *\n")

printf("************************2.删除信息*************************\n")

printf("* *\n")

printf("************************3.修改信息*************************\n")

printf("* *\n")

printf("************************4.查询信息*************************\n")

printf("* *\n")

printf("************************5.信息保存*************************\n")

printf("* *\n")

printf("************************6.退出*************************\n")

printf("* *\n")

printf("***********************************************************\n")

scanf(" %d", &n)

switch(n)

{

case 1:

AddMsg()

break

case 2:

DelMsg()

break

case 3:

ChangeMsg()

break

case 4:

FindMsg()

break

case 5:

MsgToFile()

break

case 6:

return 0

default:

break

}

}

return 0

}

小写字母转换到大写字母其实就是加上32,

#include<stdio.h>

void main()

{

char c1,c2 // 定义两个字符c1,c2

c1=getchar() //从键盘输入一个大写字母,放在c1

printf("%c,%d\n",c1,c1)//输出 你输入的那个大写字母 以及他的ASCII

c2=c1+32 //将大写的转换成小写的

printf("%c,%d\n",c2,c2)输入小写字母

}

第二题的话,用输入的年份除以4,余数为0就是闰年,反之就不是闰年

但是通过控制台收到的护具为字符,所以需要将其转换为整数:

int my_atoi(const char *str){

//argument check first!

assert(NULL != str)

int ret=0,sign=1

//skip tab and space

for(*str==' '||*str=='\t'str++)

if(*str == '-')sign = -1

if(*str == '-' || *str == '+')str++

while(isdigit(*str)){

ret = ret*10 + *str - '0'

str++

}

return sign*ret

}

这个函数可以将一段字符转换为整数

比如:

char c[] =getchar()

int i = my_atoi(&c)

if(i%4==0)

{

//输出是闰年

printf("%d---是闰年.\n",i)

}

else

{

//输出不是闰年

printf("%d---不是闰年.\n",i)

}

第三题也很简单,其实就是排序:

比如(int a[]"数组的值为1,2,3")

int a[10] = { 10,2,3}

int i,j,t

for(j=0j<3j++)

for(i=0i<3-1-ji++)

if(a[i]<a[i+1]) //由大到小,由小到大时改为>

{

t=a[i]

a[i]=a[i+1]

a[i+1]=t

}

for(i=0i<3i++)

printf("%d \n",a[i])

不给分我会揍你的。。。


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

原文地址: http://outofmemory.cn/yw/12070420.html

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

发表评论

登录后才能评论

评论列表(0条)

保存