c语言饭卡管理系统课程设计报告

发布 2022-10-05 05:10:28 阅读 6127

课程设计报告。

课程名称c语言程序设计课设。

项目名称饭卡管理系统。

学院专业:

姓名。学号。

指导教师成绩。

学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家就得排长队等候,而且还要经过先去买饭票等麻烦的经历。因此食堂提出使用计算机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还易于管理,减少不必要的麻烦,同时减轻管理人员的工作负担。

重复显示如图所示的主菜单,在主菜单中选择任意一项,均实现相应功能。

在主菜单中选择1,建立名为的文件,并在其中添加若干人的饭卡号、姓名、金额、挂失信息,要求饭卡号是唯一的。

在主菜单中选择2,要求用户输入饭卡号、饭费,然后系统自动从该人的饭卡中减去饭钱,并分别显示买饭前后的金额,如果原来饭卡中的金额不足5元,则不能买饭,而且显示“金额不足够,请续钱!”,如果挂失信息为真,则显示“本卡已冻结!”。

在主菜单中选择4,添加新饭卡,这时要求新饭卡号和已有的饭卡号不能重号。

在主菜单中选择5,注销旧饭卡。

在主菜单中选择6,要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。

在主菜单中选择7,在主菜单中选择0,显示“感谢使用本软件!已正常退出,按任意键结束。”按任意键退出本系统。

图1初始的主模块。

图2细分后的主模块图。

例如:struct card

char name[10],num[10]; float yu,sum; int guashi;

; num[10]表示学号放在一维数组中,name[10]表示姓名放在一维数组中,yu表示余额,sum表示消费金额的累积,guashi表示挂失的情况。

图3主函数流程图。

图4 建立饭卡模块流程图。

图5 买饭模块流程图。

图6 续钱模块流程图。

图7 添加新饭卡模块流程图。

图8 注销旧饭卡模块流程图。

图9 设置与解除挂失模块流程图。

图10 创新功能模块流程图。

采用模块化的思想,按照“自顶向下,逐步细化”的原则设计算法。

1) 菜单的设计。

1, 本例需要输出主菜单选择界面,简单菜单的制作可利用printf函数实现。用printf函数将菜单项逐一打印到屏幕上,界面中的边框可以通过多个printf函数输出的“|”和“-”拼接起来。

2, 菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。根据题意,主菜单含有8个菜单选项,属于多分支条件判断,使用带break和switch语句最为合适。

3, 因为本例具有重复选择主菜单选项的功能,因此需要使用循环结构。在本例中菜单至少要显示一次,随后才判断是否继续选择主菜单,所以使用do-while循坏比较好,因为do-while循坏是先执行循环体,然后再判断表达式。

4,作为菜单,应该给用户一个正常的出口,即满足一定条件时退出程序。为了给用户提供方便,我们采用人机对话形式,当用户选择某一菜单项后,系统立即完成相应的功能,然后询问用户是否需要继续选择,只要用户继续选择(输入y或y),主菜单就会在屏幕上反复出现,只有当用户不再选择(输入n或n),才可退出主菜单。除此之外,为了使用方便,在主菜单中还特设0选项,选择它也能正常退出程序。

为了实现上述功能,有关语句都应放在do-while循环体中。

选择选项的程序段可设计成如下形式:

choose=getchar();

switch(choose)

case '1':mycreat();break;

case '2':mybuy();break;

case '3':myaddyu();break;

case '4':myaddcard();break;

case '5':myzhuxiao();break;

case '6':mysetguashi();break;

case '7':mynew();break;

case '0':break;

default :break;

2 ) 设计各模块的算法,这是逐步细化的过程。

1,建立饭卡模块,函数名 mycreat。

在该模块中输入学生的卡号,姓名,充值钱数,并将它们存放在文件中;每输入一组数据,记录数增1。

建立饭卡的程序设计如下:

void mycreat()

int i=1;

struct card temp=;

file *fp=null;

char yes_no='\0';

system("cls");

fp=fopen("d:\\饭卡管理系统\\files\\"a");

if(fp==null)

else while(yes_no=='y'||yes_no=='y');

在文件夹中寻找已输入的卡号用函数 myexist 系统自动用循环将文件中读入的学。

号一一做比较。

用fp=fopen("d:\\饭卡管理系统\\files\\"a");追加打开文件,输入学生的姓名,充值钱数,并将它们存放在文件中;每输入一组数据,记录数增1。

用do---while语句实现人机对话的功能,机器问用户是否继续,如果继续就接着建立新饭卡,否则返回主菜单。

2,买饭设计模块,函数名mybuy.

void mybuy()

system("cls");

fp=fopen("d:\\饭卡管理系统\\files\\"r");

while(feof(fp)==0)

fscanf(fp,"%s%s%f%d%f",temp[i].num,temp[i].name,&temp[i].

yu,&temp[i].guashi,&temp[i].sum); i++;

fclose(fp);

printf(" 请输入卡号:")scanf("%s",num_temp);

if(myexist(num_temp)==1) printf(" 卡号不存在!")

else if(myguashi(num_temp)==1) printf(" 本卡已冻结!")

else if(myyu(num_temp)==0) printf(" 余额不够,请续费!")

else for(j=0;jif(strcmp(num_temp,temp[j].num)==0) break;

C语言课程设计学生饭卡管理系统

1.课程设计的目的。随着网络技术的发展,各种电子设备在人群中普及开来,人们的生活方式也发生了很大的变化。现金付款逐渐被方便 安全 卫生的刷卡消费所代替。例如校园餐厅的就餐卡的使用就让学生在方便的同时最大限地减少了疾病的传播。这就需要一个操作系统来管理餐卡数据。于是尝试用c语言编写了一个小的餐厅餐卡管...

C语言课程设计报告 物资管理系统

c语言程序设计报告。物资管理系统。指导老师 梁庆中。姓名 班级序号 034112 29 学号 20111004423 一 题目要求。请设计一个物资管理系统,要求主程序中应提供文字交互菜单界面,要求包含以下几个功能模块 1 信息输入模块input 建立物资管理数据总文件,完成对物资原库存信息的录入,并...

C语言课程设计报告学生学籍管理系统

信息学院。课程设计 报告。课程名称 c语言程序设计 题目名称学生学籍管理系统 学生学院 信息学院 专业班级 计科12 学号。学生姓名。指导教师。2013 年12月26 日。目录。一 设计目的与要求 3 1.1 题目与设计要求 3 1.2 本程序设计的知识点 4 二 功能设计 4 2.1 总体设计 4...