C语言课程设计报告__个人消费管理系统(6)

2019-04-15 22:32

C语言课程设计

{

printf(\ return ; } }

void ShowI(int i) //根据i值输出记录 {

printf(\记

录:%-5d%-10sss%8.2f]%8.2f\\n\i].times,records->record[i].types,records->record[i].name,records->record[i].price,records->record[i].quantity,records->record[i].sum); }

int ShowRec() //显示所有记录 {

int i;

printf(\打印记录-------------\\n\\n\

printf(\编号\\t 日期\\t\\t 类型\\t 名称\\t 单价 数量\\t 金额\\n\ for(i=1;i<=records->total_count;i++) {

printf(\ords->record[i].times,records->record[i].types,records->record[i].name,records->record[i].price,records->record[i].quantity,records->record[i].sum); if((i%9)==0) //实现分页功能 {

printf(\??\

getchar();getchar(); //不明白这里为什么非要两次getchar()? system(\

printf(\打印记录-------------\\n\\n\

printf(\编号\\t 日期\\t\\t 类型\\t 名称\\t 单价 数量\\t 金额\\n\ } }

printf(\??\ return 1; }

int SaveRec() //保存更新 {

int i;

OpenFile(\

for(i=1;i<=records->total_count;i++) {

- 24 -

C语言课程设计

fwrite(&records->record[i],sizeof(Rec),1,fp); }

fclose(fp); return 1; }

int Insert() //插入函数 {

if(records->total_count==(MAX-1)) {

printf(\数据已达可控范围,不能再插入!\\n\ return 0; }

int i=(++records->total_count);

records->record[i].num=i; //编号是连续的,1~n

printf(\请输入所需信息(顺序为:时间,类别,品名,单价,数量):\

scanf(\ords->record[i].name,&records->record[i].price,&records->record[i].quantity); if(strlen(records->record[i].times)!=10||records->record[i].times[4]!='-'||records->record[i].times[7]!='-') //简单的判断一下日期是否符合格式要求 {

printf(\时间格式错误,请重试!\\n\ records->total_count--; return 0; }

records->record[i].sum = records->record[i].price * records->record[i].quantity; //金额是计算所得

#ifdef DEBUG ShowI(i); #endif

return 1; } int RemoveByNum(int num) //删除过后,后面记录到编号将全部减1,记录的编号即下标 {

int i=num;

if(num<1||num>records->total_count) {

printf(\位置错误!\\n\ return 0; }

#ifdef DEBUG ShowI(i); #endif

- 25 -

C语言课程设计

for(i=num;itotal_count;i++) //i后面的记录全部向前移动一个距离 {

records->record[i].num=records->record[i+1].num-1;

strcpy(records->record[i].times,records->record[i+1].times); strcpy(records->record[i].types,records->record[i+1].types); strcpy(records->record[i].name,records->record[i+1].name); records->record[i].price=records->record[i+1].price;

records->record[i].quantity=records->record[i+1].quantity; records->record[i].sum=records->record[i+1].sum; }

records->total_count--; return 1; }

int DeleteByNum() //按编号删除 {

int num;

printf(\请输入要删除记录的编号:\ scanf(\

if(!(RemoveByNum(num))) {

printf(\程序执行错误,删除失败!\\n\ return 0; }

else return 1; }

int FindByName(char *name); //声明按名称查找记录函数,下面就要使用到

int Modify() //按名称修改记录 {

int i;

char names[20];

printf(\请输入要修改的记录名称:\ scanf(\ i=FindByName(names);

if(!i) //判断要查找的名称所对应的记录是否存在,不存在则直接跳转

return 0;

printf(\请输入所需信息(顺序为:时间,类别,品名,单价,数量):\

scanf(\ords->record[i].name,&records->record[i].price,&records->record[i].quantity); records->record[i].sum = records->record[i].price * records->record[i].quantity;

- 26 -

C语言课程设计

#ifdef DEBUG ShowI(i); #endif

return 1; }

int FindByTime(char *times) //按时间查找记录 {

int i=1;

strcpy(records->record[records->total_count+1].times,times); while(strcmp(records->record[i].times,times)!=0) i++;

if(i==records->total_count+1) {

printf(\记录不存在!\\n\ return 0; } else

return i; }

int FindByType(char *types) //按类型查找记录 {

int i=1;

strcpy(records->record[records->total_count+1].types,types); while(strcmp(records->record[i].types,types)!=0) i++;

if(i==records->total_count+1) {

printf(\记录不存在!\\n\ return 0; } else

return i; }

int FindByName(char *name) //按名称查找记录 {

int i=1;

strcpy(records->record[records->total_count+1].name,name); while(strcmp(records->record[i].name,name)!=0) i++;

if(i==records->total_count+1) {

printf(\记录不存在!\\n\ return 0; }

- 27 -

C语言课程设计

else

return i; }

char * Get4(char times[]) //获取时间字段的前四位,即年份 {

tmp[0]=times[0]; tmp[1]=times[1]; tmp[2]=times[2]; tmp[3]=times[3]; tmp[4]='\\0'; return tmp; }

int SortByTime() //按时间排序 {

Rec rectmp; int i,j,t;

for(i=1;itotal_count;i++) {

for(j=i+1,t=i;j<=records->total_count;j++) {

if(strcmp(records->record[t].times,records->record[j].times)>0) t=j; }

rectmp=records->record[t];

records->record[t]=records->record[i]; records->record[i]=rectmp; }

#ifdef DEBUG ShowRec(); #endif

year_count=1;

strcpy(pyear[0],Get4(records->record[1].times)); for(i=1;itotal_count;i++) {

if(strcmp(Get4(records->record[i].times),Get4(records->record[i+1].times))==0) //there is something wrong,还有最后一个bug,就在这里 { continue; } else {

strcpy(pyear[year_count++],Get4(records->record[i+1].times)); //遇到不同的年份,把最新的存储进来 } }

#ifdef DEBUG

- 28 -


C语言课程设计报告__个人消费管理系统(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:漫议历史音韵研究中的一些方法问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: