1。把每个学生的的信息先组合成一个结构体
struct
Student
{
……},
然后就用它来定义学生,
struct
Student
stu[100](有能力的话建义用动态内存的链表结构,不明白当我没说)
2。“自顶向下,逐步求精”,把各个功能写成各个函数,如添加,删除,查询,退出……(看你自己了,这正是C语言的模块化思想
3。主函数就是打出这些选择,让USER
去选,然后调用相应的函数去执行,完了又回到主菜单,以此循环
如果能使用图形的界面,增加动画之类的会更好的(呵呵,不会当我没说~~~~)
输入十名顾客的信息到结构体数组中,最后统计这十名中购买商品总额最大的顾客,将他的信息打印输出。//并按照下列各式把信息存入到customer.txt中:
//0001 Kate 5 822.8
//0002 Jame 7 2761.9
//2011.1.11 11:37
#include<stdio.h>
#include<math.h>
#define CST_NUM 10//宏定义客户数目
struct customer
{
int num
char name[20]
int amount
float value
}cst[CST_NUM]//定义结构体customer,并声明结构体数组cst[CST_NUM].
void printline(void)
void sort_cst(struct customer[],int)
void print_cst(struct customer[],int)
void main(void)
{
FILE *f1//声明文件指针
int h=sin(0)//为编译器装载float类型
int i
for(i=0i<CST_NUMi++)//从键盘读取客户信息
{
printline()
printf("请输入第%d名顾客的编号",i+1)
scanf("%d",&cst[i].num)
putchar('\n')
fflush(stdin)//清流
printf("请输入第%d名顾客的姓名",i+1)
scanf("%s",cst[i].name)
putchar('\n')
fflush(stdin)//清流
printf("请输入第%d名顾客的商品数量",i+1)
scanf("%d",&cst[i].amount)
putchar('\n')
printf("请输入第%d名顾客的商品总额",i+1)
scanf("%f",&cst[i].value)
putchar('\n')
fflush(stdin)//清流
}
sort_cst(cst,CST_NUM)//客户信息排序
print_cst(cst,CST_NUM)//将客户信息输出至屏幕
f1=fopen("customer.txt","w")//打开文件
fprintf(f1,"客户编号 客户姓名 商品数量 商品总额\n")
for(i=0i<CST_NUMi++)
{
fprintf(f1,"%5d%12s%10d%10.1f\n",cst[i].num,cst[i].name,cst[i].amount,cst[i].value)//存入客户信息
}
fclose(f1)//关闭文件
getch()
}
void sort_cst(struct customer cst[],int cst_num)//自定义函数:客户信息排序
{
int i,j
struct customer temp
for(i=0i<cst_numi++)
{
for(j=0j<cst_numj++)
{
if(cst[i].value>cst[j].value)
{
temp=cst[i]
cst[i]=cst[j]
cst[j]=temp
}
} }
}
void print_cst(struct customer cst[],int cst_num)//自定义函数:客户信息显示
{
int i
printline()
printf("客户编号 客户姓名 商品数量 商品总额\n")
for(i=0i<cst_numi++)
{
printf("%5d",cst[i].num)
printf("%12s",cst[i].name)
printf("%10d",cst[i].amount)
printf("%10.1f\n",cst[i].value)
}
printline()
}
void printline(void)//自定义函数:画线
{
int i
printf("\n")
for(i=0i<50i++)
{
printf("_")
}
printf("\n")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)