第一篇:c语言《公交一卡通》实例
本程序出自 谭浩强主编。崔武子 等编著的《C语言程序设计》一书的第159页。
#include
main(){
int num=0;
int cnum[20]={0},cmoney[20]={0},cbalance[20]={0},flag[20]={0};
char choose=' ';
menu();
while(1)
{
printf(“nnnn”);
printf(“ntt||--------||”);
printf(“ntt||----------Please input(0-8)------------||”);
printf(“ntt||--------||”);
printf(“ntt|
1.Add new Card
|”);
printf(“ntt|
2.Logout Card
|”);
printf(“ntt|
3.Modify Card
|”);
printf(“ntt|
4.Read card
|”);
printf(“ntt|
5.Save money
|”);
printf(“ntt|
6.Stat.max money
|”);
printf(“ntt|
7.Display
|”);
printf(“ntt|
8.Delete Data File
|”);
printf(“ntt|
0.Exit
|”);
printf(“ntt|----------|”);
printf(“ntt”);
scanf(“%c”,&choose);
switch(choose)
{
case'1':addnew(cnum,cmoney,cbalance,flag,&num);
break;
case'2':logout(cnum,cmoney,cbalance,flag,&num);
break;
case'3':modify(cnum,cmoney,cbalance,flag,num);
break;
case'4':readcard(cnum,cmoney,cbalance,flag,num);
break;
case'5':savemoney(cnum,cmoney,cbalance,flag,num);
break;
case'6':statmax(cnum,cmoney,cbalance,num);
break;
case'7':displayall(cnum,cmoney,cbalance,flag,num);
break;
case'8':printf(“ntYou select 8```”);
getch();
break;
case'0':exitout();
break;
default:printf(“ntYou input error.Please input again.”);
getch();
}
} } void menu(){
clrscr();
printf(“ntt||=======================================||”);
printf(“ntt||--------||”);
printf(“ntt||-------------Welcome-------------------||”);
printf(“ntt||----------use bus traffic--------------||”);
printf(“ntt||--------------Card---------------------||”);
printf(“ntt||--------||”);
printf(“ntt||=======================================||”);
getch();} void addnew(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num){
int i=0,cardnumber=0,cardmoney=0;
for(i=0;i<*num;i++)
if(pflag[i]==1)
break;
cardnumber=i;
printf(“ntHow much money you want to save in your card”);
scanf(“%d”,&cardmoney);
*(pnum+cardnumber)=cardnumber+1;
*(pmoney+cardnumber)=cardmoney;
*(pbalance+cardnumber)=cardmoney;
*(pflag+cardnumber)=0;
if(cardnumber==*num)
(*num)++;
printf(“nt|--%5d--|--%5d--|--%5d--|”,*(pmoney+i),*(pbalance+i));
getch();}
void logout(int *pnum,int *pmoney,int *pbalance,int *pflag,int *num){
int f=0,cardnumber=0;
char choose=' ';
printf(“ntPlease input your card number:”);
scanf(“%d”,&cardnumber);
f=findcard(pnum,pflag,cardnumber,*num);
if(f==-1)
{
printf(“ntNo find the card.”);
getch();
}
else
{
printf(“ntReturu you balance money:%d.”,*(pbalance+f));
do
{
printf(“nntAre you sure logout the card(y/n)?”);
scanf(“%c”,&choose);
}
while(choose!='y' && choose!='y' && choose!='N' && choose!='n');
if(choose=='y' || choose=='y')
{
*(pmoney+f)=0;
*(pbalance+f)=0;
*(pflag+f)=1;
}
} }
int findcard(int *pnum,int *pflag,int cardnumber,int num){
int i=0;
for(i=0;i if(pnum[i]==cardnumber && pflag[i]!=1) return i; return-1; } void modify(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){ int f=0,cardnumber=0,cardmoney=0,balance=0; char choose=' '; printf(“ntPlease input card number that you want to modify:”); scanf(“%d”,&cardnumber); f=findcard(pnum,pflag,cardnumber,num); if(f==-1) { printf(“ntNo find the card.”); getch(); } else { while(1); { clrscr(); printf(“ntt------------”); printf(“ntt please input modify Item ”); printf(“ntt------------”); printf(“ntt------------1.save money------------------”); printf(“ntt------------2.balance money---------------”); printf(“ntt------------3.Return----------------------”); printf(“ntt------------”); scanf(“%c”,&choose); switch(choose) { case'1': printf(“ntPlease input new save money:”); scanf(“%d%”,&cardmoney); *(pbalance+f)+=cardmoney-*(pmoney+f); *(pmoney+f)=cardmoney; break; case'2': printf(“ntPlease input new balance money:”); scanf(“%d%”,&balance); *(pbalance+f)=balance; break; case'3': break; default: printf(“ntInput error, Please input again!”); getch(); continue; } } } } void readcard(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){ int f=0,ticket=0,symbol=0,stops=0,cardnumber=0; printf(“ntPlease input your card number:”); scanf(“%d”,&cardnumber); if(f==-1) { printf(“ntNo find the card.”); getch(); } else { while(symbol==0) { printf(“ntHow many you want to take bus stops:”); scanf(“%d”,&stops); if(stops<1||stops>30) { printf(“ntInput error.Please input again.”); getch(); } else if(stops<=10) { ticket=1; symbol=1; } else if(stops<=15) { ticket=2; symbol=1; } else if(stops<=20) { ticket=3; symbol=1; } else if(stops<=25) { ticket=4; symbol=1; } else if(stops<=30) { ticket=5; symbol=1; } } if(*(pbalance+f)>=ticket) { printf(“ntBefore:”); printf(“cnum:%5d cmoner:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f)); *(pbalance+f)-=ticket; printf(“ntAfter:”); printf(“cnum:%5d cmoner:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f)); getch(); } else { printf(“ntYour card balance money is not enough.Please use cash.”); getch(); } } } void savemoney(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){ int f=0,cardnumber=0,cardmoney=0; printf(“ntPlease input your card number:”); scanf(“%d”,&cardnumber); f=findcard(pnum,pflag,cardnumber,num); if(f==-1) { printf(“ntNO find the card.”); getch(); } else { do { printf(“ntPlease input you want to save money in the card:”); scanf(“%d”,&cardmoney); if(cardmoney<=0) printf(“ntInput error.Please input again.”); }while(cardmoney<=0); *(pmoney+f)=cardmoney; *(pbalance+f)+=cardmoney; printf(“ntYour card have already saved money:%5d.”,cardmoney); printf(“ntcnum:%5d cmoney:%5d cbalance:%5d”,*(pnum+f),*(pmoney+f),*(pbalance+f)); getch(); } } void statmax(int *pnum,int *pmoney,int *pbalance,int num){ int i=0,maxindex=0; maxindex=0; for(i=1;i if(*(pmoney+maxindex)<*(pmoney+i)) maxindex=i; printf(“ntMax save money is:%d.”,*(pmoney+maxindex)); printf(“ntcnum:%5d cmoney:%5d cbalance:%5d”,*(pnum+maxindex),*(pmoney+maxindex),*(pbalance+maxindex)); getch();} void displayall(int *pnum,int *pmoney,int *pbalance,int *pflag,int num){ int i=0; clrscr(); printf(“nt|--------|”); printf(“nt|--Cardnum--|--Savvemoney--|--Balance--|”); for(i=0;i { if(*(pflag+i)==1) continue; else { printf(“nt|-----------------------------|”); printf(“nt|--%5d--|--%5d--|--%5d--------|”); *(pnum+i),*(pmoney+i),*(pbalance+i); if((i+1)%10==0) { getch(); printf(“Press any key to go on...”); } } } printf(“nt|--|”); getch();} void exitout(){ char choose=' '; do { printf(“ntAre you sure exit(y/n):”); scanf(“%c”,&choose); }while(choose!='Y' && choose!='y' && choose!='N'&&choose!='n'); if(choose=='Y'||choose=='y') exit(0);} XX市公共交通总公司 公交一卡通项目负责小组 关于汇报项目总体情况概述暨推行方案的请示 因我公司一卡通配套刷卡设备与旧型号刷卡设备不通用,且存在老年卡结算、各类乘车卡服务接口不兼容等问题,一卡通项目推广进展缓慢。为贯彻落实领导提出的相关要求,推动我公司快速建成良好稳定的一卡通长效运营机制,现就我公司公交一卡通项目现状与今后的推行实施方案做简要汇报。 一、公交一卡通项目总体情况概述 一是基本设备架设已完成。我公司目前已具备基础配套的一卡通运作设施,含总管理系统、卡务系统、充值系统、数据汇总系统,可以完整的执行一卡通相关支付卡开通业务;二是车载移动支付端未完成全线装设。目前我公司一卡通刷卡机安装未铺到开所有公交线路,完整装设的仅有21路、22路。12路为保证正常开关车门,暂未安装一卡通刷卡机。三是一卡通推广进度缓慢。受限于我市公交车运营现状,且技术上未实现各类型乘车卡兼容通用,因而广大市民对一卡通项目普遍持观望态度。经过前期组织推广,目前已发出全国互联互通卡255张,线路管理卡12张,程序设置卡2张,开卡收入共计5100元。综上所述,我公司一卡通项目推广仍处于缓慢乃至停滞状态。 背景介绍 一、民生银行与曲靖市政府洽谈智慧化城市建设的过程: 在2012年底,住房和城乡建设部就出台了《国家智慧城市(区、镇)试点指标体系(试行)》,为中国智慧城市试点建设提供了标准依据。其中明确提出智慧城市发展战略,优先发展民生、城市管理等社会应用工程和基础设施建设或新一代信息技术发展为关注重点。同时,住建部数字城市工程研究中心表示,我国智慧城市建设指标中,会综合考虑不同城市的行政级别、所属区域、发达程度等因素,采用“一城一策”的发展方针。在此方针的指导下,2013年末云南省曲靖市开始了对于智慧化城市的调研与先期规划。 2014年8月,民生银行曲靖分行龙峻行长拜会了分管曲靖建设系统保明顺副市长,双方就民生银行提出的曲靖智慧化城市建设预案,进行了深入的讨论。保副市长首先对民生银行提出的智慧化城市建设方案给予了高度的肯定,之后保副市长也针对其分管的建设系统,提出了如何推进智慧化城市建设的观点。保副市长指出,智慧化城市的宗旨就是便民、惠民、发展民生,体现绿色基础设施建设,提升曲靖的人居环境。但目前的基础任务是改善曲靖的公共交通环境,落实公交优先原则,做好公交线路、公交站布点和站点设计,同时要通过公交站点布局提升周边地区的商业购买力和促进相关区域经济社会发展。在保副市长的观点指引下,龙行长也重点介绍了智慧化城市建设中的公共交通智慧建设方的情况。保副市长对龙行长的介绍表现出了浓厚的兴趣,并指定了其分管的曲靖市建设局与民生银行负责再次对接,提供需求方案。之后民生银行曲靖分行与昆明分行电子银行部于2014年8月29日、9月1日两次拜访了曲靖市建设局、曲靖市公共交通公司,具体了解曲靖市公交智能建设的需求。 二、曲靖市公共交通系统的实际情况: 1、曲靖公交系统覆盖人口情况:截止2013年初曲靖市区人口77.41万、马龙县人口6.44万、沾益县人口18.31万,曲靖市公共交通实际覆盖人口超过80万。 2、曲靖市公交公司运营情况:公交公司资产总额9500万元,公共汽车630台,开通27条市内公交线路,郊县线路2条,并且正在建设曲靖到马龙的城郊线路。线路总长273.6公里,日平均客运量26.8万人次。目前已向社会发放公交公司自制IC卡片41万张,其中学生卡、老年卡约8万张。曲靖公交公司预计在2015-2017年间还需要向社会筹措资金5.2亿已以满足公交车换代、公交站点建设工作。 3、曲靖市公交公司经营情况:曲靖公交公司充值网点有6个,均为自有网点。2013年年营业额为1.12亿,实现利润1300万。41万张公交IC卡有资金沉淀约800万。 SQL DML 和 DDL AND 结构、属性和索引都是完整的: DELETE FROM table_name 或者: DELETE * FROM table_name 2012年乌鲁木齐市加载金融功能的社会保障卡发放承办银行为:中国银行、中国农业银行、中国工商银行、中国建设银行、乌鲁木齐商业银行、招商银行、中国邮政储蓄银行、交通银行。 由于各种原因,在乌鲁木齐市开展网上代缴和代付社会保险业务的银行有中国银行、中国工商银行、中国建设银行、乌鲁木齐商业银行、招商银行、中国邮政储蓄银行六家银行。开展社会保险代付业务的有中国农业银行、交通银行。 1.到承办银行办理新社会保障卡需要提供什么手续?(1)未成年人提供社会保险卡和户口簿;(2)成年人提供社会保险卡和二代身份证。 2.无社保卡的人员如何制卡? 单位缴费的参保人员,由参保单位直接告知承办银行制卡人员有增补(无需待发卡人清单);个人缴费的参保人员,持加盖业务经办部门业务章的待发卡人清单到承办银行办理。 3.没有办理新社会保障卡,社会保险卡丢失如何办理? 发生急危重症等特殊原因需要使用社保卡的,可到社保局IC卡管理科说明情况,领取现行的社会保险卡;不急需使用的,持IC卡挂失凭证到指定的承办银行办理新社会保障卡。 4.没有二代身份证,到社保分局扫描照片? 没有给承办银行通知去社保分局扫描照片,给承办银行通知的是没有二代身份证的到公安机关办理二代身份证后,持二代身份证再到承办银行办理新社会保障卡。 以上已与各承办银行确认,若承办银行不予办理,请告知参保单位经办人或参保个人到承办银行网点后,致电劳动保障资讯台(8812333),由劳动保障资讯台工作人员与承办银行网点的工作人员协调。 现行社会保险卡的制卡由市社保局综合业务科(4680669)协调。第二篇:公交一卡通工作汇报及推行计划
第三篇:曲靖市城市_公交一卡通_调研报告
第四篇:SQL语言与实例
可以把 SQL 分为两个部分:数据操作语言(DML)和 数据定义语言(DDL)。SQL(结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了 SQL 的 DML 部分:
SELECT更新数据库表中的数据 DELETE向数据库表中插入数据
SQL 的数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之 间的链接,以及施加表间的约束。SQL 中最重要的 DDL 语句:
CREATE DATABASE修改数据库 CREATE TABLE变更(改变)数据库表 DROP TABLE创建索引(搜索键) DROP INDEX-删除索引
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
SQL SELECT 实例
如需获取名为 “LastName” 和 “FirstName” 的列的内容(从名为 “Persons” 的数据库表),请使用类似这样的 SELECT 语句: SELECT LastName,FirstName FROM Persons
SQL SELECT * 实例
现在我们希望从 “Persons” 表中选取所有的列。请使用符号 * 取代列的名称,就像这样: SELECT
*
FROM Persons
提示:星号(*)是选取所有列的快捷方式。
SQL SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的 值。关键词 DISTINCT 用于返回唯一不同的值。语法: SELECT DISTINCT 列名称 FROM 表名称
SELECT DISTINCT Company FROM Orders 使用 WHERE 子句
如果只希望选取居住在城市 “Beijing” 中的人,我们需要向 SELECT 语句添加 WHERE 子句: SELECT * FROM Persons
WHERE City='Beijing'
引号的使用
请注意,我们在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。文本值: 这是正确的: SELECT * FROM Persons WHERE 这是错误的: SELECT * FROM Persons WHERE
FirstName='Bush' FirstName=Bush
数值: 这是正确的: SELECT * FROM Persons WHERE 这是错误的: SELECT * FROM Persons WHERE
Year>1965 Year>'1965'
AND 运算符实例
使用 AND 来显示所有姓为 “Carter” 并且名为 “Thomas” 的人: SELECT * FROM Persons WHERE FirstName='Thomas'
AND
LastName='Carter'
OR 运算符实例
使用 OR 来显示所有姓为 “Carter” 或者名为 “Thomas” 的人: SELECT * FROM Persons WHERE firstname='Thomas'
OR
lastname='Carter'
结合 AND 和 OR 运算符
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式): SELECT * FROM Persons WHERE
(FirstName='Thomas' OR
FirstName='William')
LastName='Carter'
ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字
实例 1
以字母顺序显示公司名称:Orders 表 SELECT Company, OrderNumber FROM Orders
ORDER BY Company
实例 2
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber): SELECT Company, OrderNumber FROM Orders
ORDER BY Company, OrderNumber
实例 3
以逆字母顺序显示公司名称: SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC
实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号: SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC,
OrderNumber ASC
INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。语法 INSERT INTO 表名称 VALUES(值 1, 值 2,....)我们也可以指定所要插入数据的列: INSERT INTO table_name(列 1, 列 2,...)VALUES(值 1, 值 2,....)
插入新的行
“Persons” 表: LastName Carter SQL 语句: INSERT INTO Persons VALUES('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')FirstName Thomas Address Changan Street City Beijing
结果: LastName Carter Gates FirstName Thomas Bill Address Changan Street Xuanwumen 10 City Beijing Beijing
在指定的列中插入数据
“Persons” 表: LastName Carter Gates SQL 语句: INSERT INTO Persons(LastName, Address)VALUES('Wilson', 'Champs-Elysees')FirstName Thomas Bill Address Changan Street Xuanwumen 10 City Beijing Beijing
结果: LastName Carter Gates Wilson FirstName Thomas Bill Address Changan Street Xuanwumen 10 Champs-Elysees City Beijing Beijing
Update 语句
Update 语句用于修改表中的数据。语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
Person:
LastName Gates Wilson FirstName Bill Address Xuanwumen 10 Champs-Elysees City Beijing
更新某一行中的一个列
我们为 lastname 是 “Wilson” 的人添加 firstname: UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
结果: LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Champs-Elysees City Beijing
更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city): UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
结果: LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Zhongshan 23 City Beijing Nanjing
DELETE 语句
DELETE 语句用于删除表中的行。
语法 DELETE FROM 表名称 WHERE 列名称 = 值
Person:
LastName Gates Wilson FirstName Bill Fred Address Xuanwumen 10 Zhongshan 23 City Beijing Nanjing
删除某行
“Fred Wilson” 会被删除: DELETE FROM Person WHERE LastName = 'Wilson'
结果: LastName Gates FirstName Bill Address Xuanwumen 10 City Beijing
删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的第五篇:一卡通