c语言课程设计案例,C语言课程设计案例精编 案例七 数据结构CAI系统 电子文件
来源:整理 编辑:黑码技术 2024-08-07 16:50:51
本文目录一览
1,C语言课程设计案例精编 案例七 数据结构CAI系统 电子文件
http://www.qxtop.com/master/sheji/hot/2010/0124/785_4.html
2,用C语言课程设计职工工资管理系统分别用结构体数组和链表编写程序
#include<stdio.h>#define NUM 100void input();void search();void search_num();void dele();void dele_name();void dele_num();void modi();void modi_num();void output();void stat();void fun();void run();struct emploee /*职工数据结构*/char no[5];char name[8];char sex[3];int age;int salar;}emp[NUM],newemp;main()printf(" 1. 输入职工记录\n");printf(" 2. 查询职工记录\n");printf(" 3. 修改职工记录\n");printf(" 4. 删除职工记录\n");printf(" 5. 打印职工记录\n");printf(" 6. 调查工资情况\n");printf(" 7. 追加职工记录\n");printf(" 8. 结束使用\n");printf(" 0. 退出系统\n");printf("\n");printf("*** 欢迎使用职工工资管理系统 ***\n");printf("请选择(0-8):\n");scanf("%d",&x);switch(x) case 1: input();break; case 2: search();break; case 3: modi();break; case 4: dele();break; case 5: output();break; case 6: stat();break; case 7: run();break; case 8: fun();break; default:printf("\n Wrong!"); }if(x==0)break;}}void input() FILE *fp; int n,i; if ((fp=fopen("emp","wb"))==NULL) printf("不能建立emp文件\n"); exit(1); } printf("输入职工人数:"); scanf("%d",&n); printf("输入格式:职工号 姓名 性别 年龄 工资<Enter>\n"); for(i=0;i<n;i++) /* 循环获取n个职工记录 */ printf("第%d个职工:",i+1); scanf("%s%s%s%d%d",emp[i].no,emp[i].name,emp[i].sex, &emp[i].age,&emp[i].salar); } for(i=0;i<n;i++) /*将n个职工记录写入文件*/ fwrite(&emp[i],sizeof(struct emploee),1,fp); fclose(fp);}/*************************统计模块**********************/void stat( ) FILE *fp; int n,num; if((fp=fopen("emp","rb"))==NULL) printf("不能打开emp文件\n"); exit(1); } printf("工资数:"); scanf("%d",&num); printf("记录号 职工号 姓名 性别 年龄 工资\n"); for(n=0;fread(&emp,sizeof(struct emploee),1,fp);n++) if(emp[n].salar>=num) printf("%6d%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex, emp[n].age,emp[n].salar); fclose(fp);}/********************删除模块*******************/ void dele() int x; while(1) printf("\n\n\t\t删除子菜单\n"); printf("\t\t*********\n"); printf("\t\t 1.按职工号删除记录\n"); printf("\t\t 0.返回主菜单\n"); printf("\t\t*********\n"); printf("\t 请选择(0-1):"); scanf("%d",&x); switch(x) default:printf("\nWrong!"); } if(x==0)break; } }void dele_num() FILE *fp; int i,j,n; char num[5]; if((fp=fopen("emp","rb"))==NULL) printf("不能打开emp文件\n"); exit(1); } printf("删除前:\n"); printf("记录号 职工号 姓名 性别 年龄 工资\n"); for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp);n++) printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex, emp[n].age,emp[n].salar); /*n为emp文件中记录数*/ printf("要删除的职工号:"); scanf("%s",num); for(i=0;(strcmp(emp[i].no,num)!=0&&i<n);i++) if(i>=n) printf("\t没有%s职工号的职工\n",num); exit(2); } fclose(fp); fp=fopen("emp","w+"); if(n==1) /*一个记录已经删除了*/ fclose(fp); exit(3); } for(j=0;j<i;j++) fwrite(&emp[j],sizeof(struct emploee),1,fp); for(j=i+1;j<n;j++) fwrite(&emp[j],sizeof(struct emploee),1,fp); printf("删除后:\n"); fseek(fp,0,SEEK_SET); printf("记录号 职工号 姓名 性别 年龄 工资\n"); for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++) printf("%6s%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex, emp[i].age,emp[i].salar); fclose(fp);}/********************修改模块*******************/void modi() int x; while(1) printf("\n\n\t\t修改子菜单\n"); printf("\t\t*********************\n"); printf("\t\t1. 按职工号修改\n"); printf("\t\t0. 返回主菜单\n"); printf("\t\t*********************\n"); printf("\t请选择(0-1):"); scanf("%d",&x); switch(x) case 1:modi_num();break; default:printf("\n输错误!");}if(x==0)break;}}void modi_num() FILE *fp; int i,j; char num[5]; if((fp=fopen("emp","rb+"))==NULL) printf("不能 打开emp文件\n"); exit(1); } printf("要修改的职工号:"); scanf("%s",num); for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++) if(!strcmp(emp[i].no,num))break; if(feof(fp)) printf("\t没有%s职工号的职工\n",num); exit(2); } printf("记录号 职工号 姓名 性别 年龄 工资\n"); printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex, emp[i].age,emp[i].salar); printf("输入格式:职工号 姓名 性别 年龄 工资<Enter>\n"); printf("第%d个记录:",i+1); scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age, &newemp.salar);/*获取新的职工记录*/ fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR); /*文件指针指向该修改的记录开头*/ fwrite(&newemp,sizeof(struct emploee),1,fp);/*用newemp覆盖当前记录*/ printf(" 修改后:\n"); fseek(fp,0,SEEK_SET);/*显示修改后的文件数据*/ printf("记录号 职工号 姓名 性别 年龄 工资\n"); for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++) printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex, emp[i].age,emp[i].salar); fclose(fp);} /*************************查询模块***********************/void search( ) int x; while(1) printf("\n\n\t\t查子菜单\n"); printf("\t\t********************\n"); printf("\t\t 1.按职工号查询\n"); printf("\t\t 0.返回主菜单\n"); printf("\t\t********************\n"); printf("\t请选择(0-1):"); scanf("%d",&x); switch(x) case 1:search_num();break; default :printf("\n Wrong!"); }if(x==0) break;}}void search_num() FILE *fp; int i;char num; if((fp=fopen("emp","rb"))==NULL) printf("不能打开emp文件\n"); exit(1); } printf("要查询的职工号:"); scanf("%s",num); for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++) if(!strcmp(emp[i].no,num)) break; if(feof(fp)) printf("\t查无此人\n"); exit(2); } printf("记录号 职工号 姓名 性别 年龄 工资\n"); printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex, emp[i].age,emp[i].salar); fclose(fp);}/*******************输出模块********************/void output() FILE *fp; if((fp=fopen("emp","r"))==NULL) exit(0); } printf("记录号 职工号 姓名 性别 年龄 工资\n"); for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++) printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex, emp[i].age,emp[i].salar); } fclose(fp);}/******************追加模块*******************/void run() FILE *fp; int n,i,j; if((fp=fopen("emp","ab+"))==NULL) exit(0); } printf("要追加的职工人数:"); scanf("%d",&n); for(i=0;i<n;i++) printf("职工记录:"); scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age, &newemp.salar); /*获取一个职工记录*/ fwrite(&newemp,sizeof(struct emploee),1,fp); /*将该职工记录写入文件*/ } fclose(fp);} /*******************显示模块****************/void fun() printf("\t\t* *\n"); printf("\t\t* *\n"); printf("\t\t* 谢 谢 使 用 ! *\n"); printf("\t\t* *\n"); printf("\t\t* *\n"); printf("\t\t******************************************\n");}

3,C语言程序课程设计
你是北大青鸟的把?我以前学校也出过这样的题目
如果你不能自己完成,你以后就未必能找到工作,因为作业是实力与技术的表现方式
4,c语言程序设计实例
#include #define N 100 void SortSum(int a[],int i); void main() { int a[N],i,n; printf("请输入数组个数:"); scanf("%d",&n); for(i=0;ib[m]) m=k; } if(m!=j) { tmp=b[j]; b[j]=b[m]; b[m]=tmp; tmp=a[j]; a[j]=a[m]; a[m]=tmp; } } for(j=0;j
5,c语言课程设计案例精编
如果有一定的基础的话,一楼的说的不错先学学“数据结构”的相关知识!算法在程序设计中有很“重要”的作用……其实学c主要是学编程的思想!你要是就一个个的死学案例,也只是会设计类似的东西!不会有创新,甚至有的地方会根本搞不明白。不知道你基础怎么样?如果不是很好,就复习《数据结构吧》清华出版社 那本严蔚敏的数据结构(C语言版)。比较容易理解,最好还是要看些英文的原版数据结构的书。 当然如果你数据结构学得很好的话,比如你就是想通过一些案例的开发,来增强自己的实战能力,你可以深入学习你说的那本书,其实你只要仔细看一下就会发现,其实案例设计的教程中文版的根本没什么创新都停留在以下几个“经典问题”上,不同的版本也没什么太多的区别就是重印一下而已!这本书作为对编程基本功的训练不错! 案例一:贪吃蛇游戏 案例二:计算器 案例三:黑白棋游戏 案例四:迷宫问题 案例五:扫地雷游戏 案例六:速算24 案例七:数据结构CAI系统 案例八:进度调度 案例九:存储管理分区分配算法 案例十:通讯录 案例十一:学生成绩管理 案例十二:工资管理 案例十三:图书借阅管理 案例十四:教师工作量计算 相关下载地址:
6,找 经典C语言程序设计100例
【程序2】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}找错地方了...
【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
2.程序源代码:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
根本就不应该在这问...
推荐 http://hi.baidu.com/3512/blog/item/d918488215589da20df4d278.html
文章TAG:
c语言课程设计案例 C语言课程设计案例精编 案例七 数据结构CAI系统 电子文件