第一篇:C语言机房收费
机房收费管理系统
(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。
(2)计算功能:计算每个下机学生的上机费用,每小时1元。
(上机费用=上机时间* 1.0/h,不足一小时按一小时计算)
(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
(4)机器使用情况的显示(显示方式不限但要一目了然)
#include
#include
#include
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
long num;
long class;
char name[15];
int hour1;
int min1;
int hour2;
int min2;
struct student *next;
};
int n;
#include“file1.h”
#include“insert.c”
#include“creat.c”
#include“time.c”
#include“del.c”
#include“save.c”
#include“copy.c”
#include“print.c”
#include“swit.c”
void main()
{char c;
int flag,k;
struct student *head,*stu;
printf(“one hour 1.0 yun!n”);
printf(“Infed information---------->1n”);
printf(“Search expense------------->2n”);
printf(“delet the information------>3n”);
printf(“=============================================n”);
printf(“!!Example!!n”);//例子示范//
printf(“###*************Infed information**********##n”);
printf(“ number class name 12:30-14:21n”);//注意号输入//head=creat();//使head=调用返回“头指针”//
for(flag=1;flag;)//flag为真,操作//
{
printf(“Will you ? :”);//输入相应的数值,做相应的操作//
scanf(“%d”,&k);
swit(head,stu,k);
printf(“go on ? y/n:”);
getchar();
c=getchar();
if(c=='N'||c=='n')flag=0;
//如果输入'n'or'N'则退出使用本软件,否则继续相应操作//
}
}
void swit(struct student *head,struct student *stu,int k)
{
long dele,number;
struct student *p1;
switch(k)
{
case 1:
{
printf(“!!Example!!n”);//例子示范//
printf(“##*********Infed information**********##n”);
printf(“number class name 12:30-14:21n”);//注意号输入
printf(“=>:”);
stu=(struct student *)malloc(LEN);//添加信息时必须开
scanf(“%ld%ld%s%d:%d-%d:%d”,&stu->num,&stu->class,stu->name,&stu-
>hour1,&stu->min1,&stu->hour2,&stu->min2);
while(stu->num!=0)//作用为多次输入后,多次开辟空间//{ head=insert(head,stu);printf(“=>:”);
stu=(struct student *)malloc(LEN);
//添加信息时必须开辟空间//scanf(“%ld%ld%s%d:%d-%d:%d”,&stu->num,&stu->class,stu->name,&stu->hour1,&stu->min1,&stu->hour2,&stu->min2);}
copy(head);
print(head);
}break;
case 2:
{ printf(“##*************Search.expense*************##n”);printf(“search number :”);
//输入要找的号码“number->num”//
scanf(“%ld”,&number);
while(number!=0)//输入0,则结束擦找//{ time(head,number);
printf(“search number :”);
scanf(“%ld”,&number);
}
}break;
case 3:
{printf(“##**********delet.the.information*********##n”);
printf(“input the deleted number:”);//输入删除号码//
scanf(“%ld”,&dele);
while(dele!=0)////输入0,则结删除//
{ head=del(head,dele);
print(head);
copy(head);
printf(“input the deleted number:”);
scanf(“%ld”,&dele);
}
}break;
}
}
struct student *creat(void)//1
{struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *)malloc(LEN);
//创建空间为“LEN”,强转换为结构型,第一次输入//
printf(“=>:”);
scanf(“%ld%ld%s%d:%d-%d:%d”,&p1->num,&p1->class,p1->name,&p1->hour1,&p1->min1,&p1->hour2,&p1->min2);
head=NULL;
while(p1->num!=0)//号码不为0,可继续输入//
{ n=n+1;//输入一个,节点加一//
if(n==1)head=p1;//有一个用户//
else p2->next=p1;//多个用户,p1将指向下一个节点//
p2=p1;
p1=(struct student *)malloc(LEN);
//将创建下一个空间,创建下一个空间后,输入信息//
printf(“=>:”);
scanf(“%ld%ld%s%d:%d-%d:%d”,&p1->num,&p1->class,p1->name,&p1->hour1,&p1->min1,&p1->hour2,&p1->min2);
}
p2->next=NULL;//表尾//
return(head);
}
struct student * insert(struct student * head,struct student * stud)//stud是添加的用户// {struct student *p0,*p1,*p2;
p1=head;
p0=stud;
if(head==NULL)//如果没有任何用户,添加为第一//
{head=p0;p0->next=NULL;}
else
{while((p0->num>p1->num)&&(p1->next!=NULL))
//按号码小到大排列,并寻找添加节点//
{p2=p1;p1=p1->next;}//p1将指向下一个节点//
if(p0->num<=p1->num)
{if(head==p1)head=p0;//恰好最小//
else p2->next=p0;//在中间//
p0->next=p1;}
else
{p1->next=p0;p0->next=NULL;}//在末尾//
}
n=n+1;//添加后接点数//
return(head);
}
struct student *del(struct student *head,long num)
{
struct student *p1,*p2;
if(head==NULL){printf(“NO list!n”);} //如果没有任何用户,不商除//p1=head;
while(num!=p1->num&&p1->next!=NULL)//寻找符合节点//
{p2=p1;p1=p1->next;}//p1将指向下一个节点//
if(num==p1->num)
{if(p1==head)head=p1->next;//恰好最小//
else p2->next=p1->next;//在中间,便指向尾接点//
printf(“delete %ld success!n”,num);//输出商除用户
n=n-1;//商除后接点数//
}
else printf(“%ld not been found!n”,num);//当找不到时//
return(head);
}
void print(struct student * head)
{struct student *p;
printf(“Now %d person!!n”,n);//当前用户//
p=head;
if(head!=NULL)//要有用户//
do
{
printf(“%ld%ld%s%d:%d-%d:%dn”,p->num,p->class,p->name,p->hour1,p->min1,p->hour2,p->min2);
time(p,p->num);
p=p->next;//指向下一个节点//
}while(p!=NULL);
else printf(“NO one!n”);
}
void time(struct student *head,long number){struct student *p=head;
int i,a,b;
float c;
if(p==NULL){printf(“NO list!n”);}
else
{
for(i=0;i { if(p->num==number)break; else p=p->next; } a=(p->hour2)-(p->hour1); b=fabs((p->min2)-(p->min1)); c=(a+b/60.0)*1.0; printf(“ %ld Money is :%fn”,number,c);} } void copy(struct student *head) { save(head); } void save(struct student *head) { struct student *p; FILE *fp; int i; p=head; if((fp=fopen(“list.c”,“w”))==NULL) { printf(“cannot open list.cn”); return; } do { if(fwrite(p,sizeof(struct student),1,fp)!=1) printf(“list write errorn”); p=p->next; }while(p!=NULL); fclose(fp); } 经过了几天的忙碌,自己的工程也即将告一段落,还有点舍不得。 下面我总结一下自己做工程的收获感觉收获不大,但是实际上这将是我们迈上一个新台阶的基石。说实话,实际收获是很大的,只不过时间用的太长了,感觉效率效率低(收获/时间)。时间的基数越长越是没有感觉……行了,不扯着没用的了。 首先来说自己独立解决问题的能力有一些提高——网络的运用。 上一次写到应用网络的问题,其实就是那样一回事,许多问题就是要靠自己独立去完成,在一个公司,你不可能一遇到问题就去问别人去,因为不同人有不同人都工作,在公司,又和在学校不一样,在学校的友谊是纯洁的,但是到了公司里,这种纯洁很少。就应该确立这种意识:在网上,没有解决不了的问题,只有你想不到的问题。只是一个搜索时间的问题和搜索技巧的问题,这个在平时就可以得到培养和锻炼。只要自己去总结自己问问题的思维与网络的落差点就可以解决。 在我刚开始做这个工程时,自己有时还是需要去翻看一下学生管理系统,但是到了工程的后期,学生管理系统连碰都没有碰过,说明自己通过这个工程自己更能知道,理解,体会学生管理系统。那里的每一片土地都已经是过去时了,想一想自己做学生管理系统的时候自己还是啥都不太懂得,不过,经过了这个过渡,自己明白了许多事情。现在对一般的sql语句写起来没有什么困难了。 这次做工程给我最深的体会就是数据库——做的时候一定要做好否则该改的时候会有很多地方牵扯进来的,让自己还特郁闷。数据库一旦出问题,那么自己修改程序很苦恼。 首先,自己建库的时候没有注意到那么多小的地方,但是,再后来做工程才发现,自己数据库的不足,然后改数据库,说实在的真麻烦。不过有了这一次小小的教训,自己以后会多多注意的,一定会把数据考虑的更加全面,这样在做起工程来就简单多了。 回想这个工程给我印象最深的是,在上机过程中我想弄成分段计时,这一部分我就弄了两天才弄清。但是总结一下自己为什么用这么长的时间。 首先自己先实现却没有更好的思路去完成,自己还是基础的东西不扎实。其实重要的是把过程理清了,代码方面没有什么,我感觉有时不是敲代码的过程来影响进度,而是自己的思绪影响着自己的进度。 还有就是敢于去尝试。 还有就是一定要把前期的需求分析做好,否则到了后边添加的时候会和许多地方发生冲突,一定要选择好基础的底座。 机房收费系统工作总结 在做机房管理系统的过程中,首先对机房管理系统所有的功能尝试了一遍,然后按照学生管理系统的方法对机房管理系统分析了一番,分别从功能(也就是添加、查询、修改),组成(一般用户、操作员、管理员),程序结构设计(模块中和窗体中所要完成的功能),数据库分析(数据库实体、各个实体之间的关系),在分析数据库实体和各个实体之间的关系时遇到了一些阻力,这也算是需求分析了,分析的不够全面和系统,有待以后对这方面的加强。(点击查看分析图) 按照程序运行的过程,先是参照现成的数据库把所有的表建立起来,在建表过程中由于对sql数据类型的知之甚少导致之后出了一些错误,比如说datetime这个数据类型,是一个包含了日期和时间的数据类型,而自己建立了date和time两列,是完全没有必要的。 做完了登录窗体,发现机房管理系统和学生管理系统的相似度很高,于是做起来比较快乐,因为一个桌上多半人都认识,吃起饭来很愉快。柿子先拿软的捏,陆续做完了几个比较简单的窗体,之后做上下机,做到钱这里确实是有点乱,错误在这里也犯得比较多。对各个方面的因素考虑的不够周全,是按照上下机需要什么我就给它什么,感觉是一点一点堆积上去的,等做完回头一看有点茫然! 这种前期没有充分考虑各方因素而一点一点堆积的做法为我后来的返工埋下了伏笔,的一个错误就是:没有考虑到基本数据是可以改变的,比如说至少上网时间,准备时间等等,而我想当然的就把它给定死了,基本数据设置这个窗体等同虚设,没有做到动态的改变,软件的扩充性极差。 在这个过程中除了一些细节上的问题还出现了越权和抽象的问题,每个用户的等级不同,所涉及的管理范围也就不同,比如一般用户就是不能接触钱的,而操作员在掌控钱的时候要有收钱的每一笔记录,管理员是可以掌控一切的,每个用户的权利要分得一清二楚。还有一个是抽象,回头看代码还是显得不够精简,赘余不少,还是自己以前动手做的比较少,需要加强。 机房收费系统的完工也就意味着暑假结束了,充实而又美妙的暑假,度过了一个不一样的暑假,每一天都有收获,每一份收获都很开心,当然,有时候会觉得很累很累,偶尔也会困惑一下,不过随着时间的流逝这一切都烟消云散,兴趣和坚持始终主导着我的生活,这应该就是我想要的和想象中的大学生活。刚放暑假的时候,老师布置要在这段时间完成这么多的工作,自我感觉相当有困难,从陈伟视频收尾到五个数据库应用小例子,再到浙大sqlserver视频,学生管理系统,机房收费系统,刚开始看似完不成的,现在回头一看,都一一完成了,没有落下,很欣慰!这可能就是提高班的神奇之处吧。 新学期开始了,我的任务还很艰巨,vb还在等着我,软件工程 的视频在等着我,通过暑假我相信这些都会按时完成的。 北京语言大学文件 校财字[2014]4号 北京语言大学收费票据管理办法 第一章 总 则 第一条 为进一步规范各类收费票据的使用和管理,维护学校财经秩序,根据国家有关法律法规,结合我校实际情况,制定本办法。 第二条 财务处是学校收费票据归口管理部门,负责购入票据,向使用单位发放和收回票据,监督票据规范使用。 第三条 校内各单位依法取得各项收入必须使用合法票据,不得自制和私购票据。各单位负责人对本单位使用票据的合法性、真实性、完整性负责。 第二章 收费票据的种类与用途 第四条 本办法所指收费票据分为非税收入票据与应税收入票据两类。 1.非税收入票据: (1)中央行政事业单位资金往来结算票据;(2)公益事业捐赠统一票据; (3)中央非税收入统一票据(手写票据);(4)中央非税收入统一票据(机打票据)。 2.应税收入票据: (1)北京市地方税务局通用机打发票;(2)北京市国家税务局通用机打发票。 第五条 各类票据应按规定用途使用,不得相互混用。1.“中央行政事业单位资金往来结算票据”用于单位暂收款项、单位内部各部门之间发生的资金往来且不构成本单位收入的款项以及各种代收教材费、体检费、水电费、供暖费、电话费等。 2.“公益事业捐赠统一票据”用于接受各类捐赠业务,开具的捐赠项目中应包含“捐赠”字样,不得开据“赞助费”名目。 3.“中央非税收入统一票据(手写票据)”用于手工开具国家主管收费部门核发的收费许可证上所列项目收费。 4.“中央非税收入统一票据(机打票据)”用于电脑打印国家主管收费部门核发的收费许可证上所列项目收费。 5.各部门按照自愿原则提供有偿服务,有偿服务收费属于经营服务性收费,应当依法使用“北京市地方税务局通用机打发票”。 6.“北京市国家税务局通用机打发票”的使用应按照北京市国家税务局的有关规定,在收取相关费用时开具。 第三章 收费票据的领用 第六条 票据领用单位应指定专人作为票据管理员,负责票据的领取、使用和保管,票据管理员名单报财务处备案。票据管理员工作变动时须办理移交手续,并报财务处备案。 第七条 领用票据时,票据管理员应在收据领用登记本上填写票据的名称、起止号、数量等,当面检查票据是否存在重号、漏号、缺页等情况,当场加盖票据专用章,经确认无误后,在领用登记本上签字后领取。 第四章 收费票据的使用和保管 第八条 各单位根据票据的适用范围,按照财务处核定的收费项目和收费标准使用票据,不得擅自增加或变动收费项目及标准。新增收费项目,应向财务处另行申报,未经核批的收费项目,任何单位和个人不得擅自收款和开出票据。 第九条 各单位必须按照号码顺序使用票据,不得跳号或空号。填写票据时,全部联次一次性如实填写付款单位名称、收费项目、收费金额、开票人、开票日期等栏目,大小写金额必须相符,并有收款人签章。付款单位名称的填写应符合以下规定:如果收取现金,付款单位名称可填付款人或付款单位名称;如果收取银行票据,付款单位名称应与银行票据上单位名称相符。 第十条 填写错误的票据,应完整存留,并在各联上加注“作废”字样,不得擅自撕毁。 第十一条 领用的空白票据和已经使用的票据存根,应由专人妥善保管。多人领用的单位,要建立票据领用登记制度,领用人必须签字后方可使用。票据发生遗失、错用,要及时书面报告本单位及财务处,查明原因,并采取补救措施,避免造成损失;如已造成资金损失的,由票据领用人和票据使用单位负责人共同承担相应责任。 第十二条 收款单位收到款项后,必须及时、全额上缴学校财务处,不得拖延、挪用或私存;不得坐收坐支。财务处收款人员收到缴款时,必须在收据的存根联上签名。 第五章 收费票据的核销 第十三条 票据实行分年使用、定期核销制度。每年12月份开始对当年票据使用情况进行年终盘点,各单位最迟于12月20日前,将当年领用的全部票据(含未使用的空白票据)交回财务处进行清点与核销。清点完毕后方可开始领用下票据,严禁私自跨使用票据。 第十四条 整本票据用完或不需再用的,要及时交回财务处。各单位必须完整交回原领票据存根,须在票据封底上填写汇总金额、使用期间、作废张数等,同时须经办人签字。交回的各类票据,须经财务处票据管理员审验合格后,方可办理核销。 第六章 监督检查 第十五条 校内各单位必须严格按照规定用途和程序使用票据,财务处有权对校内各单位的票据使用情况进行定期或不定期检查。 第十六条 下列行为属于违反票据管理办法的行为: 1.未经批准,擅自印制和使用票据; 2.私自刻制、使用和伪造票据监(印)制章; 3.未按规定使用票据; 4.擅自转借、转让、代开、买卖、销毁、涂改票据; 5.管理不善,丢失损毁票据; 6.其他违反本办法的行为。 第十七条 违反票据管理规定的,由学校纪检监察部门对单位负责人和直接责任人进行严肃处理,违反法律法规的,移交司法机关处理。 第七章 附则 第十八条 本办法经2014年5月27日学校党政联席会讨论通过,自发布之日起执行,原《北京语言大学票据管理和使用规定》(校财字[2000]07号)同时废止。 第十九条 本办法由财务处负责解释。 北京语言大学 2014年5月16日 收费窗口服务及语言礼仪 客户来到门诊收费窗口,递来处方等单据:收费员注视对方,双手接收单据:“请稍等” 开始认真计价,处理有关数据,时而与客户有眼神接触,给客户有关心的感觉。 计价完毕,报价:“XXX,您好!共XX元”唱收唱付:“收您XX元,找您XX元”双手把单据放上窗口(单据在下,零钱在上) 收费员:“请点好”、“请慢走”、“请到你左边/右边药房配药”。 收费员亲切地指引客户到相应科室。“如果还不清楚,您可以找我们的导医,请慢走!” 社保窗口:“请问有社保卡吗?”“医药或检查共XX元,请在这里签个名”。 刷卡出现故障,“请稍等”。 特殊情况应对: 客户需求、投诉、修改姓名,等改后回来计价:收费员“请您稍等,我会给您办理,”“对不起,我未听明白,请讲慢一点好吗?”“修改好了,你看对吗?” 服务项目等不清楚或有误的:“对不起,单上这里有误,请您到医生那里修改,下次付款我优先收您的款好吗,谢谢!”(误点要用笔或手标明、指明) 客户:“上次和这次一样的处方,为何收费不一样?” 收费员:“请稍等,让我再核实一次。”“对不起,已经修改了,应该是XX元” “对不起,这次收费应该是没有问题的,请您先付款,看好病后,我再找人给你 查上次的收费,好吗?” 姓名等书写不清楚需核实时,首先眼睛要注视客户:“XX单上的名字是XXX吗?” “对不起,未听清楚,请您在这张纸上写一次好吗?”单上有误核实需时或因药品库存、核实收费项目等耽误时间的:“对不起,单上有误,请您再稍等” “不好意思,请您再稍等一下” 当出现钱项有问题时,收费员:“请问可以给零钱吗?”“这张钱防伪标记不清楚,请您换一张吧。”“对不起,这钱过不了验钞机,请您换一张吧”。“对不起,我没有零钱找,请稍等”。(站立,面向我们的同事,中声量地咨询其他收费员零钱状况,有就对换、暂借)没有就用歉意的眼神:“对不起,不够零钱找您,您看要不先去看病,回来我会给您想办法的,好吗?”(注意:必须牢记,不能忘记!) 客户:“这张钱XX,换一张吧。”收费员:“好(没有离柜的直接更换,患者不需要理由)” 如遇事实不清或患者不认可解释的一律要求信息科调取监控视频落实,如未做到视为患者要求为合理! 2013年7月27第二篇:机房收费系统总结(精选)
第三篇:机房收费系统工作总结(小编推荐)
第四篇:北京语言大学收费票据管理办法
第五篇:收费窗口服务及语言礼仪[定稿]