分享
 
 
 

三个C语言课程设计的程序

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/*

三个课程设计的程序,是临时帮别人写的,原来自己写的自己用的那个太复杂了,

现在自己有点晕,下面的是为了应付老师的,不很严密。

*/

/*

图书管理

这个程序我给一个朋友写的C语言课程设计的作业,

我们化院的C设计题目好象几年都没有变,所以因

该能给你作个参考。(没有涉及到C++)

这是个"图书管理系统",没有用到指针。BC应该可

以通过调试,输入数据的时候一定注意数字的范围

和字串的长度。

*/

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

struct BOOK

{

int id,usr[10],total,store,days[10];

char name[31],author[21];

}books[100];

/*上面是结构体的定义,用于存放书籍及借书的信息。*/

void page_title(char *menu_item)

{

clrscr();

printf(">>> 图 书 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);

}

/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/

void return_confirm(void)

{

printf("\n按任意键返回……\n");

getch();

}

/*上面是返回前请求确认的函数,以便在返回前观察结果*/

int search_book(void)

{

int n,i;

printf("请输入图书序号:");

scanf("%d",&i);

for(n=0;n<100;n++)

{

if(books[n].id==i)

{

printf("书名:%s\n",books[n].name);

printf("作者:%s\n",books[n].author);

printf("存数:%d of ",books[n].store);

printf("%d\n",books[n].total);

return n;

}

}

printf("\n输入错误或无效图书序号.\n");

return -1;

}

/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返

回数组下标,如果找不到相应记录则提示错误并返回-1。*/

void book_out(void)

{

int n,s,l,d;

page_title("借阅图书");

if((n=search_book())!=-1&&books[n].store>0)

{

printf("请输入借书证序号:");

scanf("%d",&s);

printf("请输入可借天数:");

scanf("%d",&d);

for(l=0;l<10;l++)

{

if(books[n].usr[l]==0)

{

books[n].usr[l]=s;

books[n].days[l]=d;

break;

}

}

books[n].store--;

}

if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");

return_confirm();

}

/*上面是借书的函数,首先调用找书函数*/

void book_in(void)

{

int n,s,l;

page_title("归还图书");

if((n=search_book())!=-1&&books[n].store<books[n].total)

{

printf("借阅者图书证列表:\n");

for(l=0;l<10;l++)

if (books[n].usr[l]!=0)

printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);

printf("请输入借书证序号:");

scanf("%d",&s);

for(l=0;l<10;l++)

{

if(books[n].usr[l]==s)

{

books[n].usr[l]=0;

books[n].days[l]=0;

break;

}

}

books[n].store++;

}

if(n!=-1&&books[n].store==books[n].total)

printf("全部入藏.\n");

return_confirm();

}

void book_add(void)

{

int n;

page_title("注册新书");

for(n=0;n<100;n++)

if(books[n].id==0) break;

printf("序号:");

scanf("%d",&books[n].id);

printf("书名:");

scanf("%s",&books[n].name);

printf("作者:");

scanf("%s",&books[n].author);

printf("数量:");

scanf("%d",&books[n].total);

books[n].store=books[n].total;

return_confirm();

}

void book_del(void)

{

int n;

page_title("注销旧书");

if((n=search_book())!=-1) books[n].id=0;

printf("该书已注销.\n");

return_confirm();

}

void main(void)

{

menu: page_title("操作选单");

printf("请用数字键选择操作\n\n");

printf("1 借阅图书\n2 归还图书\n\n");

printf("3 注册新书\n4 注销旧书\n\n");

printf("\n0 退出\n");

switch(getch())

{

case '1' : book_out();break;

case '2' : book_in();break;

case '3' : book_add();break;

case '4' : book_del();break;

case '0' : exit(0);

}

goto menu;

}

{

int n;

page_title("廣?症慕");

if((n=search_book())!=-1) books[n].id=0;

printf("乎慕厮廣?.\n");

return_confirm();

}

void main(void)

{

menu: page_title("荷恬僉汽");

printf("萩喘方忖囚僉夲荷恬\n\n");

printf("1 処堋夕慕\n2 拷珊夕慕\n\n");

printf("3 廣過仟慕\n4 廣?症慕\n\n");

printf("\n0 曜竃\n");

switch(getch())

{

case '1' : book_out();break;

case '2' : book_in();break;

case '3' : book_add();break;

case '4' : book_del();break;

case '0' : exit(0);

}

goto menu;

}

================================================================================================

/*泊车管理*/

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int cars[16][3];

void car_park(void)

{

int n,m,o;

for(n=0;n<16;n++) if(cars[n][0]==0) break;

if(n==16)

{

printf("\n便道很拥挤.\n");

getch();

return;

}

printf("\n泊车-请输入车牌:");

scanf("%d",&o);

for(m=0;m<16;m++) if(cars[m][0]==o) break;

if(m!=16)

{

printf("\n此车已泊.\n");

getch();

return;

}

cars[n][0]=o;

if(n<10)

{

printf("请输入当前时:");

scanf("%d",&cars[n][1]);

printf("请输入当前分:");

scanf("%d",&cars[n][2]);

return;

}

else printf("\n请先在便道上等候车位");

getch();

}

void car_get()

{

int n,o,p,q,r;

printf("\n取车-请输入车牌:");

scanf("%d",&o);

for(n=0;n<16;n++) if(cars[n][0]==o) break;

if(n==16)

{

printf("\n没有这个车牌.\n");

getch();

return;

}

printf("请输入当前时:");

scanf("%d",&p);

printf("请输入当前分:");

scanf("%d",&q);

r=(p*60+q)-(cars[n][1]*60+cars[n][1]);

printf("停车%d分钟 合计%.2f元\n",r,r*0.05);

for(r=n;r<15;r++)

{

cars[r][0]=cars[r+1][0];

cars[r][0]=cars[r+1][0];

cars[r][0]=cars[r+1][0];

}

cars[9][1]=p;

cars[9][2]=q;

getch();

}

void main(void)

{

int n;

char x;

mainloop:

clrscr();

printf("停车场:\n");

for(n=0;n<10;n++)

{

if(cars[n][0]!=0)

printf("[CAR %d] %d:%d\n",cars[n][0],cars[n][1],cars[n][2]);

else printf("[===============]\n");

}

printf("\n便道:\n");

for(n=10;n<15;n++)

{

if(cars[n][0]!=0)

printf("[CAR %d ]",cars[n][0]);

else printf("[- - - - - - -]");

}

printf("\n\n泊车?取车?结束(1/2/3)\n");

x=getch();

if(x=='1') car_park();

if(x=='2') car_get();

if(x=='3') exit(0);

goto mainloop;

}

================================================================================================

/*学生成绩管理*/

/*Borland C下编译通过,调试过程中不要输入大数字*/

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

int INDEX[32];

struct STUDENT

{

int id,age,chinese,math,english;

char name[21];

}students[32];

void page_title(char *menu_item)

{

clrscr();

printf(">>> 学 生 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);

}

void return_confirm(void)

{

printf("\n按任意键返回……\n");

getch();

}

void student_new(void)

{

int n;

page_title("录入学生基本信息");

for(n=0;n<32;n++)

if(students[n].id==0) break;

printf("学号:");

scanf("%d",&students[n].id);

printf("姓名:");

scanf("%s",&students[n].name);

printf("年龄:");

scanf("%d",&students[n].age);

return_confirm();

}

int search_id(void)

{

int n,i;

printf("请输入学生学号:");

scanf("%d",&i);

for(n=0;n<32;n++)

{

if(students[n].id==i&&students[n].id!=0)

{

printf("学号:%d\n",students[n].id);

printf("姓名:%s\n",students[n].name);

printf("年龄:%d\n",students[n].age);

return n;

}

}

printf("\n输入错误或学号不存在.\n");

return -1;

}

void student_del(void)

{

int n;

page_title("注销学生基本信息");

if((n=search_id())!=-1) students[n].id=0;

printf("\n!该学生已注销.\n");

return_confirm();

}

void student_edit(void)

{

int n;

page_title("编辑学生基本信息");

if((n=search_id())!=-1)

{

printf("\n请重新输入新信息:\n学号:");

scanf("%d",&students[n].id);

printf("姓名:");

scanf("%s",&students[n].name);

printf("年龄:");

scanf("%d",&students[n].age);

}

return_confirm();

}

void score_input(void)

{

int s,n,t;

page_title("录入成绩");

printf("\n请用数字键选择科目\n1-语文 2-数学 3-英语\n");

scanf("%d",&s);

for(n=0;n<32;n++)

{

if(students[n].id!=0)

{

printf("学号:%d 姓名:%s 成绩:",students[n].id,students[n].name);

scanf("%d",&t);

switch(s)

{

case 1 : students[n].chinese=t;break;

case 2 : students[n].math=t;break;

case 3 : students[n].english=t;break;

}

}

}

return_confirm();

}

void score_edit(void)

{

int n;

page_title("修改成绩");

if((n=search_id())!=-1)

{

printf("语文:%d 数学:%d 英语:%d\n",students[n].chinese,students[n].math,students[n].english);

printf("\n请重新输入成绩:\n语文:");

scanf("%d",&students[n].chinese);

printf("数学:");

scanf("%s",&students[n].math);

printf("英语:");

scanf("%d",&students[n].english);

}

return_confirm();

}

void sort_it(char nn)

{

int n,m,p,x,t[32];

for(n=0;n<32;n++)

{

switch(nn)

{

case '1' : t[n]=students[n].id;break;

case '2' : t[n]=students[n].chinese;break;

case '3' : t[n]=students[n].math;break;

case '4' : t[n]=students[n].english;break;

case '5' : t[n]=students[n].chinese+students[n].math+students[n].english;break;

}

}

for(n=0;n<32;n++)

{

x=0;

p=-1;

for(m=0;m<32;m++)

{

if(t[m]>x)

{

x=t[m];

p=m;

}

}

t[p]=-1;

INDEX[n]=p;

}

}

void browser(void)

{

int n,x;

char k;

sort_it('1');

while(1)

{

page_title("浏览");

printf("按数字键选择排序方式或按 0 返回\n");

printf("学号-1\t姓名\t\t年龄\t语文-2\t数学-3\t英语-4\t总分-5\n");

for(n=0;n<32;n++)

{

if(INDEX[n]!=-1)

{

x=INDEX[n];

printf("%d\t%s\t",students[x].id,students[x].name);

printf("%d\t%d\t",students[x].age,students[x].chinese);

printf("%d\t%d\t",students[x].math,students[x].english);

printf("%d\n",students[x].chinese+students[x].math+students[x].english);

}

}

k=getch();

if(k<'6'&&k>'0') sort_it(k);

else if(k=='0') break;

else continue;

}

}

void main(void)

{

menu: page_title("操作选单");

printf("请用数字键选择操作\n\n");

printf("1 录入学生基本信息\n2 修改学生基本信息\n");

printf("3 注销学生基本信息\n\n4 录入成绩\n5 修改成绩\n\n");

printf("6 浏览...\n \n0 退出\n");

switch(getch())

{

case '1' : student_new();break;

case '2' : student_edit();break;

case '3' : student_del();break;

case '4' : score_input();break;

case '5' : score_edit();break;

case '6' : browser();break;

case '0' : exit(0);

}

goto menu;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有