C语言高手请进!!跪求一篇课程设计!!急急急!!可追加分!!!

用纯C语言设计程序,实现公交公司的公交IC卡管理系统。
要求功能:
1,公交IC卡录入(编号,姓名,初始金额)
2,为公交IC卡充值
3,注销公交IC卡
4,挂失公交IC卡(暂时冻结,不能操作金额)
5,查询公交IC卡信息,包括卡号,姓名,当前余额。

要求系统以菜单方式工作。
代码行数:100~130行。(如果行数过多,超过130行的话,功能3,4可以选择性的去掉!)
······················
尽量附带注释!如果有更详细分析更好!

想实现功能,还限制代码。我觉得你这不是课程设计,是擂台赛啊~

由于你的要求写的不是很详细,所以我就按照我的理解设计,如果代码不能用,那可不能怪我啊。

不过这个代码为了满足你的“苛刻”要求,精简了很多,也有很多地方用了不合理的设计方法。如果工作你要是敢这么写代码,你会马上被开除的。

这个题目实际上就是最简单的数据添加,修改和删除。这些都是编程基础。

// 为了减少代码量,程序没有对数据进行足够的校验。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define CARD_MAX_NUMBER 100

struct str_card_info {
int attrib; // 公交卡属性。=0:未用/已注销;=1:正常;=2:已挂失。
char id[32]; // 公交卡编号
char name[32]; // 姓名
int money; // 金额
};

int main()
{
int i, j, ch, money;
char id[32];
struct str_card_info card[CARD_MAX_NUMBER];

memset(&card, 0, sizeof(card)); // 初始化数据。

begin:
printf("1. Add new card.\n2. Add money.\n3. Delete card.\n4. Block card.\n5. List.\n6. Exit.\nPlease select:"); // 打印菜单。
ch = getchar(); // 读取用户输入。
if (ch == '1') { // 录入
for (i=0; i<CARD_MAX_NUMBER; i++) {
if (card[i].attrib == 0)
break;
}
if (i == CARD_MAX_NUMBER) {
printf("The data is full.\n");
getchar();
goto begin;
}
printf("Please input id,name and money:\n");
// 读取用户输入数据。我们应该在读取完毕后,对用户输入数据进行校验。
scanf("%s\n%s\n%d", card[i].id, card[i].name, &card[i].money);
card[i].attrib = 1;
printf("Add success.\n");
} else
if (ch == '2') {
printf("Please input id and money:\n");
// 读取用户输入数据。我们应该在读取完毕后,对用户输入数据进行校验。
scanf("%s\n%d", id, &money);
// 遍历结构体,查找指定的公交卡。
for (i=0; i<CARD_MAX_NUMBER; i++) {
if (strcmp(card[i].id, id) == 0) { // 找到公交卡。
if (card[i].attrib == 1) {
card[i].money += money; // 如果不校验数据,用户输入个负值,嘿嘿~
printf("Add money success.\n");
} else {
printf("The card not exist or blocked.\n");
}
getchar();
goto begin;
}
}
printf("Not find the card:%s.\n", id);
} else
if (ch == '3') {
printf("Please input id:");
// 读取用户输入数据。我们应该在读取完毕后,对用户输入数据进行校验。
scanf("%s", id);
// 遍历结构体,查找指定的公交卡。
for (i=0; i<CARD_MAX_NUMBER; i++) {
if (strcmp(card[i].id, id) == 0) { // 找到公交卡。
card[i].attrib = 0;
break;
}
}
printf("Finished.\n");
} else
if (ch == '4') {
printf("Please input id :");
// 读取用户输入数据。我们应该在读取完毕后,对用户输入数据进行校验。
scanf("%s", id);
// 遍历结构体,查找指定的公交卡。
for (i=0; i<CARD_MAX_NUMBER; i++) {
if (strcmp(card[i].id, id) == 0) { // 找到公交卡。
card[i].attrib = 2;
break;
}
}
printf("Finished.\n");
} else
if (ch == '5') {
// 遍历公交卡。
printf("List:\n");
for (i=0; i<CARD_MAX_NUMBER; i++) {
if (card[i].attrib == 1) {
printf("\tID:%s, Name:%s, Money:%d.\n", card[i].id, card[i].name, card[i].money);
} else
if (card[i].attrib == 2) {
printf("\tID:%s(Blocked), Name:%s, Money:%d.\n", card[i].id, card[i].name, card[i].money);
}
}
printf("List finished.\n\n");
} else
if (ch == '6') {
return 0;
}
getchar();
goto begin;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-11
拿两份走人
ps 兰州想一下就知道 至少也要花几十分钟的东西 你悬赏10分 谁tm回写 除非复制粘贴

高手请进!c++编程急需!重金悬赏。。。请发邮箱708891089@qq.com...
include <stdio.h> struct date { int year;int month;int day;};int days(struct date day){ static int day_tab[2][13]= {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, \/* 平均每月的天数 *\/ {0,31,29,31,30,31,30,31,31,30,31,30,31,},};int i,lp;lp=day.year...

如何自学C语言?高手进来传授一下学习经验
4、指针:指针是C语言的最难点,也是最有特色的地方,初学者一般不容易深入理解,我也没办法一两句说得清楚。5、预编译处理:C语言中只需要重点了解define的用法就行了,其他不是问题 6、结构体、共用体和用户自定义内型:结构体实际上就是“结构化”了的数组,其中每个元素还是和普通变量没多少区别,...

单片机入门,急求高手大虾指教!!!
单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言很简单,只是一门工具而已,我劝大家最好学好学精它,将来肯定用得着,要不然以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。给大家推...

【高分有追加等高手】c语言猜数字游戏,有的功能还实现不了,求助!
include \/\/时间函数头文件 void decide(int a[],int b[],int n,int m); \/\/自定义数组 int Rungame();int Mark();int Help();int *p,*q;int u,r,N=4; \/\/定义所需

关于6220c的问题,高手请进。能用可追加分!
这个 不难 我试过可以的 下载个PC套件打开手机用PC套件模式与电脑连接 然后在电脑PC套件选择无限上网 然后在电脑上设置代理IP端口80 IP10.0.0172

古诗高手快进来,急急急急!好的加分!!!
古诗高手快进来,急急急急!好的加分!!! 找:写西湖的诗、写泰山的诗、写月亮的诗、写苏州的诗、写庐山的诗、《送杜少府之任蜀州》《白雪歌送武判官归京》《已亥杂诗(多一点)》《山行》《江南逢李龟年》谢谢... 找:写西湖的诗、写泰山的诗、写月亮的诗、写苏州的诗、写庐山的诗、《送杜少府之任蜀州...

急!英语的官方交涉用语,高手请进,可以加分!
1. A: How are you doing?B: I'm doing fine\/OK\/pretty well\/great\/super\/terrific\/so-so. 或: Not bad. \/The same as ever. \/I can't complain too much. (我不能太抱怨。\/还不错。)B: Terrible. I've had a headache all morning.2. A: How's it going? B: Fine. \/...

有关NOI的,急急急!!!
NOIP的时间是每年11月,NOI的时间是每年7月底和8月初,冬令营的时间是每年1、2月。比赛流程(最顺利的情况):首先参加NOIP,然后进入省队,然后参加次年的NOI。这里怎么进入省队,每省都不一样…有的省专门安排省选拔赛,有的省将NOIP成绩作为省选依据,不知道你在哪个省…是个人赛,个人比个人的,...

求一篇英语作文!~高手进啊 加分!`
These days, more and more students choose to rent an apartment off campus instead of living in school’s dormitories. The advantage of living off campus is that you will have more freedom in your life style. You don’t have to worry about lights off after 11 pm, and you can...

我是大一新生..关于计算机专业的一些问题
在大一大二学习一些基础课程!例如高等数学,英语,C语言,计算机导论,英语,离散数学,概率论,数值分析(计算方法),C++和一些人文课程;有些学校不学的有大学物理,电路,数字电路设计,信号与系统等.高等数学要好好学!学起来会很无聊,要有心理准备! 到大三会分方向:软件,网络,多媒体.可以按照自己的兴趣选择. 计算机科学...

相似回答
大家正在搜