c语言大程序
Ⅰ 求一个c语言大程序
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
int num;
char name[10];
int score;
struct student *next;
};
int n;
struct student *creat()
{
struct student *head;
struct student *p1,*p2;
p1=p2=(struct student *)malloc(LEN);
printf("请输入数据:\n");
printf("-学号---姓名---成绩-\n");
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
head=NULL;
n=0;
while(p1->num!=NULL)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
}
p2->next=NULL;
return(head);
}
void print(struct student *head)
{
struct student *p;
p=head;
if(head!=NULL)
{
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
printf("%d %s %d\n",p->num,p->name,p->score);
p=p->next;
}
}
else printf("没有数据 !\n");
}
struct student *del(int num,struct student *head)
{
int a=0;
struct student *p1,*p2;
do
{
p1=head;
if(head==NULL)
{
printf("没有数据 !\n");
goto end;
}
while(p1->num!=num&&p1->next!=NULL)
{
p2=p1;p1=p1->next;
}
if(p1->num==num)
{
if(p1==head) head=p1->next;
else p2->next=p1->next;
printf("删除记录学号为N0.%d\n",num);
n=n-1;
a++;
}
}while(p1->next!=NULL);
if(a==0)
printf("学号未找到 !\n");
end:
return(head);
}
struct student *add(int num,char name[],int score,struct student *head)
{
struct student *p0,*p1,*p2;
p0=(struct student *)malloc(LEN);
p0->num=num,strcpy(p0->name,name),p0->score=score;
p1=head;
if(num==0)
return(head);
if(head==NULL)
{
head=p0;
p0->next=NULL;
}
while(p0->num>p1->num&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p0->num<=p1->num)
{
if(p1==head) head=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
printf("增加记录学号为:%d\n",num);
n=n+1;
return(head);
}
void num(struct student *head)
{
int num,a=0;
struct student *p;
printf("------请输入 \"0\" 结束输入--------\n");
do
{
p=head;
printf("请输入要查找的学号:");
scanf("%d",&num);
if(num!=0)
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
if(p->num==num)
{
printf("%d %s %d\n",p->num,p->name,p->score);
a++;
}
p=p->next;
}
if(a==0&num!=0)
printf("学号没找到!\n");
a=0;
}while(num!=0);
system("cls");
}
void name(struct student *head)
{
char name[10],a=0;
struct student *p;
printf("------请输入 \"0\" 结束输入------\n");
do
{
p=head;
printf("请输入要查找的名字:");
scanf("%s",name);
if(name[0]!='0')
printf("-学号---姓名---成绩-\n");
while(p!=NULL)
{
if(strcmp(p->name,name)==0)
{
printf("%d %s %d\n",p->num,p->name,p->score);
a++;
}
p=p->next;
}
if(a==0&&name[0]!='0')
printf("名字未找到 !\n");
a=0;
}while(name[0]!='0');
system("cls");
}
void search(struct student *head)
{
int a;
struct student *p;
p=head;
do
{
printf("1.按学号查找\n2.按名字查找\n3.退出\n");
scanf("%d",&a);
system("cls");
switch(a)
{
case 1:num(p);break;
case 2:name(p);break;
}
}while(a!=3);
}
struct student *sort(struct student *head)
{
struct student *p1,*p2;
int i,j;
int num0,score0;
char string[10];
for(i=0;i<n-1;i++)
{
p1=head;
for(j=n-1;j>0;j--)
while(p1->next!=NULL)
{
p2=p1;p1=p1->next;
if(p2->score>p1->score)
{
num0=p1->num;
p1->num=p2->num;
p2->num=num0;
strcpy(string,p1->name);
strcpy(p1->name,p2->name);
strcpy(p2->name,string);
score0=p1->score;
p1->score=p2->score;
p2->score=score0;
}
}
}
return(head);
}
void main()
{
struct student *head=NULL;
int num,score,a;
char name[10];
do
{
printf("1.创建记录\n2.删除记录\n3.增加记录\n4.查找记录\n5按成绩排序\n6.显示当前记录\n7.退出\n");
scanf("%d",&a);
system("cls");
switch(a)
{
case 1:printf("------请输入 \"0 0 0\" 结束输入------\n");head=creat();print(head);getch();system("cls");break;
case 2:printf("------请输入 \"0\" 结束输入--------\n");do{printf("请输入要删除记录的学号:");scanf("%d",&num);head=del(num,head);print(head);}while(num!=0);system("cls");break;
case 3:printf("------请输入 \"0 0 0\" 结束输入------\n");do{printf("请输入要增加的记录数据:\n");printf("-学号---姓名---成绩-\n");scanf("%d%s%d",&num,name,&score);head=add(num,name,score,head);print(head);}while(num!=0);system("cls");break;
case 4:search(head);break;
case 5:head=sort(head);print(head);getch();system("cls");break;
case 6:print(head);getch();system("cls");break;
}
}while(a!=7);
以前C语言作业课程设计,希望认真仔细看后反复自己思考,这个只是参考!C语言程序设计大作业
1题目:学生信息管理系统
2 程序要求:
(1)学生信息录入功能
1)用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政治、语文四门课成绩。
2)可插入一个或多个学生信息到当前编辑的班级数据中。
(2)文件保存功能
1)学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和重新保存;
2)用户输入学生信息可随时保存数据文件。
(3)文件打开功能
1)程序只能对当前打开的数据文件进行编辑。
(4)查询功能
1)浏览所有学生信息;
2)按学号查询学生信息;
3)按姓名查询学生信息;
4) 查询一个班总成绩和平均成绩;
5) 查询一个班某一门课总成绩和平均成绩;
6)查询某一门课分数段(<60,60-69,70-79,80-89,>90)学生数。
(5)报表输出功能
1) 按学号输出一个班学生信息:学号、姓名、性别、数学、英语、政治、语文成绩、总成绩,到屏幕和文件。
2) 按总成绩输出从高到低输出学号、姓名信息。
注:以上功能以菜单形式供用户使用,并有一定的容错功能。
3 开发语言环境:
Macrosoft VC++6.0或Turbo C2.0
4 数据结构:
数组或链表
5 程序源代码要求:
(1)函数名、变量名采用英文缩写,使用匈牙利命名法进行自说明;
(2)源代码的书写采用递进格式;
(3)程序行和程序段须有注释。
Ⅱ 求C语言大程序设计代码
(1)
#include<stdio.h>
#include<string.h>
void main()
{
char str[100];
int count1=0,count2=0,count3=0;
printf("input the string:\n");
scanf("%s",&str);
int size=strlen(str);
int i=0;
while(i<size)
{
if(str[i]>='a'&&str[i]<='z')
count1++;
else if(str[i]>='A'&&str[i]<='Z')
count1++;
else if(str[i]>='0'&&str[i]<='9')
count3++;
else count2++;
i++;
}
printf("长度:%d\n",size);
printf("字母 %d\n",count1);
printf("数字 %d\n",count3);
printf("其他字符 %d\n",count2);
}
(2)
#include<stdio.h>
#include<string.h>
void main()
{
char a[30][30];
char b[]="stop";
int i=0;
printf("input the string,end by string 'stop':\n");
do{
scanf("%s",&a[i]);
i++;
}while(strcmp(a[i-1],b)!=0);
int *c=new int[i];
int max=0;
for(int j=0;j<i-1;j++)
{
c[j]=strlen(a[j]);
printf("length %d\n",c[j]);
if(max<c[j])
max=c[j];
}
printf("the longest length is: %d\n",max);
}
Ⅲ c语言一个大程序,用基本语句,100句左右
# include "stdio.h"
# include "stdlib.h"
# include "string.h"
# define NULL 0
struct xiangcun
{
char num[4]; //乡村的编号
char name[20]; //村名
int people; //总人数
int relieve; //救济人数
float amount; //救济总金额
struct xiangcun *next;
};
struct jiating
{
char num[10]; //乡村编号
char candidate[20]; //身份证号码
char fname[20]; //户主名字
char sex[2]; //性别
int fpeople; //家庭人数
float insert; //年收入
int time; //接受救助次数
struct jiating * next;
};
struct out
{
char candidate[20]; //户主身份证号码
char goodsname[20]; //商品名字
char date[15]; //发放日期
char unit[10]; //单位
float price; //单价
int count; //发放数量
float money; //金额
struct out *next;
};
struct xiangcun *h1,*tail1;
struct jiating *h2,*tail2;
struct out *h3,*tail3;
struct xiangcun * rebuilt1() //构建乡村链表
{
int n1=0;
struct xiangcun *p1,*p2,*head;
p1=p2=(struct xiangcun *)malloc(sizeof(struct xiangcun));
printf("\n\n\n\n\n\n 请输入以下信息:\n 乡村的编号:\n 村名:\n 总人数:\n 救济人数:\n 就系总金额:\n");
scanf("%s%s%d%d%f",p1->num,p1->name,&p1->people,&p1->relieve,&p1->amount);
while(strcmp(p1->num,"0")!=0)
{
n1++;
if(n1==1)
h1=p1;
else
p2->next=p1;
p2=p1;
p1=(struct xiangcun *)malloc(sizeof(struct xiangcun));
scanf("%s%s%d%d%f",p1->num,p1->name,&p1->people,&p1->relieve,&p1->amount);
}
p2->next=NULL;
return h1;
}
struct jiating * rebuilt2() //构建家庭信息链表
{
int n2=0;
struct jiating *p1,*p2,*head;
p1=p2=(struct jiating *)malloc(sizeof(struct jiating));
printf("\n\n\n\n\n\n 请输入以下信息:\n 乡村名字: \n 户主身份证号码: \n 户主名字:\n 户主性别:\n 家庭人数:\n 年收入:\n 接受救助的次数:\n");
scanf("%s%s%s%s%d%f%d",p1->num,p1->candidate,p1->fname,p1->sex,&p1->fpeople,&p1->insert,&p1->time);
while(strcmp(p1->candidate,"0")!=0)
{
n2++;
if(n2==1)
h2=p1;
else
p2->next=p1;
p2=p1;
p1=(struct jiating *)malloc(sizeof(struct jiating));
scanf("%s%s%s%s%d%f%d",p1->num,p1->candidate,p1->fname,p1->sex,&p1->fpeople,&p1->insert,&p1->time);
}
p2->next=NULL;
return h2;
}
struct out * rebuilt3() //构建物资信息链表
{
struct out *p1, *p2,*head;
int n3=0;
p1=p2=(struct out *)malloc(sizeof(struct out));
printf("\n\n\n\n\n\n 请输入以下信息:\n 户主身份证号码:\n 商品名字:\n 发放日期:\n 单位:\n 单价:\n 发放数量:\n 金额:\n");
scanf("%s%s%s%s%f%d%f",p1->candidate,p1->goodsname,p1->date,p1->unit,&p1->price,&p1->count,&p1->money);
while(strcmp(p1->candidate,"0")!=0)
{
n3++;
if(n3==1)
h3=p1;
else
p2->next=p1;
p2=p1;
p1=(struct out *)malloc(sizeof(struct out));
scanf("%s%s%s%s%f%d%f",p1->candidate,p1->goodsname,p1->date,p1->unit,&p1->price,&p1->count,&p1->money);
}
p2->next=NULL;
return h3;
}
int change1(xiangcun *head1,char *num) //对乡村信息的修改
{
struct xiangcun *p;
p=head1->next;
printf("\n\n\n\n\n\n");
while(1)
{
if(p==NULL)
{
return 1;
}
if(strstr(p->num,num))
{
printf(" 请重新输入要修改乡村的各项:");
scanf("%s%s%d%d%d",p->num,p->name,&p->people,&p->relieve,&p->amount);
return 1;
}
p=p->next;
}
}
int change2(jiating *head2,char *num) //对家庭信息的修改
{
struct jiating *p;
p=head2->next;
printf("\n\n\n\n\n\n");
while(1)
{
if(p==NULL)
{
return 1;
}
if(strstr(p->fname,num))
{
printf(" 请重新输入要修改家庭的各项:");
scanf("%s%s%s%s%d%f%d",p->num,p->candidate,p->fname,p->sex,&p->fpeople,&p->insert,&p->time);
return 1;
}
p=p->next;
}
}
int change3(out *head3,char *name) //对物资信息的修改
{
struct out *p;
p=head3->next;
printf("\n\n\n\n\n\n");
while(1)
{
if(p==NULL)
{
return 1;
}
if(strstr(p->goodsname,name))
{
printf(" 请重新输入要修改物资的各项:");
scanf("%s%s%s%s%f%d%f",p->candidate,p->goodsname,p->date,p->unit,&p->price,&p->count,&p->money);
return 1;
}
p=p->next;
}
}
void Csearch(xiangcun* head1) /* 查询全部乡村中每个村的救济总户数*/
{
struct xiangcun *p;
p=head1->next;
printf("\n\n\n\n\n\n");
if(p==NULL)
{
printf(" 全乡没有被救济的人!\n");
return ;
}
while(p!=NULL)
{
printf(" %s救济人数为:%d\n",p->name,p->relieve);
p=p->next;
}
return ;
}
int Esearch(xiangcun * head1,char *name) /*查询全部乡村中某个村的村救济总金额*/
{
struct xiangcun *p;
p=head1->next;
while(1)
{
if(p==NULL)
{
return 0;
}
if(strstr(p->name,name))
{
printf("\n\n\n\n\n\n %s的受救济总金额是:%g\n",p->name,p->amount);
return 1;
}
p=p->next;
}
}
int Fsearch(jiating* head2,char * name) /*查询某救济户 (如:张三)基本信息*/
{
struct jiating *p;
p=head2->next;
while(1)
{
if(p==NULL)
{
return 0;
}
if(strstr(p->fname,name))
{
printf("\n\n\n\n\n\n 户主的乡村编号:%s\n 户主的身份证号码:%s\n",p->num,p->candidate);
printf(" 户主名字是:%s\n 户主性别是:%s\n",p->fname,p->sex);
printf(" 家庭人数:%d\n 年收入:%g\n /接受救助次数:d\n",p->fpeople,p->insert,p->time);
return 1;
}
p=p->next;
}
}int frelieve(jiating *head2,out *head3,char * name)/*查询某救济户 (如:张三)救济户物资发放的全部信息*/
{
struct jiating * p;
p=head2->next;
while(1)
{
if(p==NULL)
{
return 0;
}
if(strstr(p->fname,name))
{
struct out *p1;
p1=head3->next;
printf("\n\n\n\n\n\n %s的物资信息:\n",p->fname);
while(1)
{
if(p1==NULL)
{
return 1;
}
if(strstr(p->candidate,p1->candidate))
{
printf("物资名字:%s\n发放日期:%s\n物资的量的单位:%s\n",p1->goodsname,p1->date,p1->unit);
printf(" 物资单价:%g\n 发放数量:%d\n 发放金额:%g\n",p1->price,p1->count,p1->money);
}
p1=p1->next;
}
}
p=p->next;
}
}
int Relieve(jiating * head2,out *head3,char * name,char *name2)/*查询某救济户 (如:张三)是否发放了某种救济物资 (如:矿泉水)的信息*/
{
struct jiating * p;
p=head2->next;
while(1)
{
if(p==NULL)
{
return 0;
}
if(strstr(p->fname,name))
{
out *p1;
p1=head3->next;
while (1)
{
if(strstr(p->candidate,p1->candidate)&&strstr(p1->goodsname,name2))
{
return 1;
}
p1=p1->next;
if(p1==NULL)
{
return 0;
}
}
}
p=p->next;
}
}
void tprint(xiangcun * head1)/*统计并输出全乡的人口总数、救济总户数、救济总金额*/
{
int peo_sum=0,re_sum=0;
float re_cost=0;
xiangcun *p=h1;
while(p!=NULL)
{
peo_sum+=p->people;
re_sum+=p->relieve;
re_cost+=p->amount;
p=p->next;
}
printf("\n\n\n\n\n\n 人口总数:%d\n 救济总户数:%d\n 救济总金额:%g\n",peo_sum,re_sum,re_cost);
}
将题目存为文本文件,要查看题目、看源代码就直接读文件显示出来 将需要运行的程序都单独编译成可执行文件 在大程序里用 winexec("D:\\hello.exe",SW_SHOWNORMAL); 即可运行可执行文件 注意包含头文件#include <windows.h>,但是不能在TC下编译,必须使用dev-c++或vc++编译,不过这是纯粹的C代码
Ⅳ 什么是C语言程序
通用编程语言c
c语言是美国at&t(电报与电话)公司为了实现unix系统的设计思想而发展起来的语言工具。c语言的主要特色是兼顾了高级语言和汇编语言的特点,简洁、丰富、可移植。相当于其他高级语言子程序的函数是c语言的补充,每一个函数解决一个大问题中的小任务,函数使程序模块化。c语言提供了结构式编程所需要的各种现代化的控制结构。
c语言是一种通用编程语言,正被越来越多的计算机用户所推崇。使用c语言编写程序,既感觉到使用高级语言的自然,也体会到利用计算机硬件指令的直接,而程序员却无需卷入汇编语言的繁琐。
c语言可以用来制作病毒,因为病毒也是程序.
Ⅵ 用C语言编写一个大的程序
不好一下就可以编好,除非有很大的报酬。
没有人楞到给你浪费一周的供粻垛救艹嚼讹楔番盲时间去写1000行的c语言程序
Ⅶ 如何编写C语言程序
准备材料
windows电脑、VC++(DEV_C++)
1.打开桌面上的DEV_C++,进入如下界面:
Ⅷ 为什么大型程序很多都用C语言来编写呢
C语言是目前世界上流行、使用最广泛的高级程序设计语言。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......
C语言的发展历史
C语言的发展颇为有趣。它的原型ALGOL 60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言的特点
1. 简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. 运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
转自:太平洋电脑网
Ⅸ 求简单C语言程序代码!
输入2个正整数m和n,求其最大公约数和最小公倍数
#include
#include
int main()
int m,n,p,q,s,r;
printf("请输入两个正整数;m,n ");
scanf("%d,%d",&m,&n);
#include<stdio.h>
main()
int a,b,t=0;
scanf("%d %d",&a,&b);
if (a<b)
printf("%d %d %d %d %d",(a+b),(a-b),(a/b),(a*b),(a%b));
}
主要特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
以上内容参考:网络-c语言