#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])
不给分我会揍你的。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)