各位老铁们,大家好,今天由我来为大家分享c语言300行代码大作业,以及c语言写代码的软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
一、求一个300行左右的简单的c语言程序
#include<stdio.h>#define N 50#include<string.h>#define USER"admin"#define PASSWORD"12345678"#include<stdio.h>#define MAX 10
int NUM; int x;//全局变量 struct student{ int number; char name[20]; float score[3]; float ave; float sum;
}stu[N]; void suan(int); void insert(int);void display(struct student*p,int n); void paixu(struct student stu[],int n); void add( int n); void del(struct student*p,int n); void tui(int); void password(); void pingjunfenpaixu(struct student stu[],int n);void zongfenpaixu(struct student stu[],int n);
printf("\n\n欢迎使用学生成绩管理系统\n");password();suan(x);
} void suan(int i){ char x; printf("\n\n 1、输入学员信息\n"); printf("\n\n 2、增加学员信息\n"); printf("\n\n 3、删除学员信息\n"); printf("\n\n 4、显示学员信息\n"); printf("\n\n 5、排序学员信息\n"); printf("\n\n 6、退出\n"); printf("\n请输入选项:"); scanf("%d",&x); switch(x){ case 1:{ insert(i);//调用函数
break;} case 3:{ del(stu,NUM); break;} case 4:{ display(stu,NUM); break;} case 5:{ paixu(stu,NUM);
break;} case 6:{ tui(NUM);break;}default: printf("\n输入有误\n\n");}
} void insert(int i){ int j; float sum; char ch; do{ sum=0; printf("\n请输入学员信息:\n"); printf("\n学号:"); scanf("%d",&stu[i].number); printf("\n姓名:"); scanf("%s",&stu[i].name); printf("\n三门成绩:\n");
for(j=0;j<3;j++){ printf("\n成绩%d:",j+1); scanf("%f",&stu[i].score[j]); sum+=stu[i].score[j]; stu[i].sum= stu[i].score[0]+stu[i].score[1]+stu[i].score[2];} stu[i].ave=sum/3; i++; printf("\n是否继续输入学员信息?(y/n)"); fflush(stdin); ch=getchar();}while(ch=='y'|| ch=='Y'); NUM=i; suan(x);} void display(struct student*p,int n){ int i; printf("\n学号\t姓名\t成绩1\t成绩2\t成绩3\t平均分:总分:\n"); for(i=0;i<n;i++,p++){ printf("%d\t%s\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t%5.1f\n",p->number,p->name,p->score[0],p->score[1],p->score[2],p->ave,p->sum);}
suan(x);} void paixu(struct student stu[],int n){char x;printf("\n\n 1、平均成绩排序\n"); printf("\n\n 2、总分成绩排序\n"); printf("\n请输入选项:"); scanf("%d",&x);switch(x){case 1:{pingjunfenpaixu(stu,NUM);break;}case 2:{zongfenpaixu(stu,NUM);break;}default:{printf("请重新输入");<br>}}}
void pingjunfenpaixu(struct student stu[],int n){float temp; int i,j; for(i=0;i<n;i++){ for(j=0;j<n-i-1;j++){ if(stu[j].ave<stu[j+1].ave){ temp=stu[j+1].ave; stu[j+1].ave=stu[j].ave; stu[j].ave=temp; display(stu,NUM);<br>}}}}void zongfenpaixu(struct student stu[],int n){float temp; int i,j; for(i=0;i<n;i++){ for(j=0;j<n-i-1;j++){ if(stu[j].ave<stu[j+1].sum){ temp=stu[j+1].sum; stu[j+1].sum=stu[j].sum; stu[j].sum=temp;<br>display(stu,NUM);}}}}
void add(int n){ char ch; printf("\n是否需要插入新学员信息?(y/n)"); fflush(stdin); ch=getchar(); if(ch=='y'|| ch=='Y'){ insert(n);} suan(x);}
void del(struct student stu[],int n){ int num,i=0,j=0; char ch; printf("\n是否需要删除学员信息?(y/n)"); fflush(stdin); ch=getchar(); while(ch=='y'||ch=='Y'){ printf("\n请输入删除学员的学号:"); scanf("%d",&num); for(i=0;i<n;i++){ if(num==stu[i].number) break;} if(i<n){ for(j=i;j<n;j++){ stu[j]=stu[j+1];} n--; printf("\n删除后的学员信息如下:\n"); display(stu,n);} else printf("\n对不起,没有这个学号!\n"); if(n==0) break; printf("\n是否要继续删除学员信息?(y/n)"); fflush(stdin); ch=getchar();} suan(x);
void tui(int i){ char ch; printf("\n退出?(y/n):"); fflush(stdin); ch=getchar(); if(ch=='y'|| ch=='Y'){ printf("\t----------------------------------------------------------------------\n");printf("\t***************************@@*********@@******************************\n");printf("\t************************@@****@@***@@****@@***************************\n");printf("\t*********************@@**********@**********@@************************\n");printf("\t********************@*************************@***********************\n");printf("\t*@@@@*\n");printf("\t*@@谢谢使用本程序@@*\n");printf("\t***************************@@**********@@*****************************\n");printf("\t******************************@@****@@********************************\n");printf("\t*********************************@@***********************************\n");printf("\t----------------------------------------------------------------------\n");} else{ suan(x);
char name[21];char pw[11];int i;for(i=0;i<3;i++){printf("\nEnter User name:");gets(name);printf("\nEnter password:");gets(pw);if((strcmp(name,USER)==0)&&(strcmp(pw,PASSWORD)==0))break;}if(i>2){printf("您已连续3次将用户名或密码输错,系统将退出!");<br>}
二、求c语言课程设计报告,300行左右题目不限急!
1、//***************************************************************************
2、#include<malloc.h>// malloc()等
3、#include<limits.h>// INT_MAX等
4、#include<stdio.h>// EOF(=^Z或F6),NULL
5、#include<stdlib.h>// atoi()
6、#include<math.h>// floor(),ceil(),abs()
7、#include<process.h>// exit()
8、#include<iostream.h>// cout,cin
9、//#define OVERFLOW-2因为在math.h中已定义OVERFLOW的值为3,故去掉此行
10、 typedef int Status;// Status是函数的类型,其值是函数结果状态代码,如OK等
11、 typedef int Boolean;// Boolean是布尔类型,其值是TRUE或FALSE
12、//***************************************************************************
13、//***************************************************************************
14、//以下是运算符栈的基本操作函数
15、 S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));
16、Status DestroyStack(SqStack1&S){
17、//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERROR
18、 if(S.top==S.base)return ERROR;
19、Status Push(SqStack1&S,char e){
20、 if(S.top-S.base>=S.stacksize){
21、 S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));
22、Status Pop(SqStack1&S,char&e){
23、//若栈不空,则删除S的栈顶元素,用e返回其值;并返回OK;否则返回ERROR
24、 if(S.top==S.base)return ERROR;
25、//***************************************************************************
26、//以下是运算数栈的基本操作函数
27、 S.base=(float*)malloc(STACK_INIT_SIZE*sizeof(float));
28、Status DestroyStack(SqStack2&S){
29、//若栈不空,则返回S的栈顶元素,并返回OK;否则返回ERROR
30、 if(S.top==S.base)return ERROR;
31、Status Push(SqStack2&S,float e){
32、 if(S.top-S.base>=S.stacksize){
33、 S.base=(float*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(float));
34、Status Pop(SqStack2&S,float&e){
35、//若栈不空,则删除S的栈顶元素,用e返回其值;并返回OK;否则返回ERROR
36、 if(S.top==S.base)return ERROR;
37、//***************************************************************************
38、//比较运算符A, B的优先关系,A,B的范围仅限于'+','-','*','/','^','(',')','='
39、//返回'>','<','='
40、 case'+':return'>';
41、 case'-':return'>';
42、 case'*':return'<';
43、 case'/':return'<';
44、 case'^':return'<';
45、 case'(':return'<';
46、 case')':return'>';
47、 case'=':return'>';
48、 default:printf("表达式错误!\n");exit(0);
49、 case'+':return'>';
50、 case'-':return'>';
51、 case'*':return'<';
52、 case'/':return'<';
53、 case'^':return'<';
54、 case'(':return'<';
55、 case')':return'>';
56、 case'=':return'>';
57、 default:printf("表达式错误!\n");exit(0);
58、 case'+':return'>';
59、 case'-':return'>';
60、 case'*':return'>';
61、 case'/':return'>';
62、 case'^':return'<';
63、 case'(':return'<';
64、 case')':return'>';
65、 case'=':return'>';
66、 default:printf("表达式错误!\n");exit(0);
67、 case'+':return'>';
68、 case'-':return'>';
69、 case'*':return'>';
70、 case'/':return'>';
71、 case'^':return'<';
72、 case'(':return'<';
73、 case')':return'>';
74、 case'=':return'>';
75、 default:printf("表达式错误!\n");exit(0);
76、 case'+':return'>';
77、 case'-':return'>';
78、 case'*':return'>';
79、 case'/':return'>';
80、 case'^':return'>';
81、 case'(':return'<';
82、 case')':return'>';
83、 case'=':return'>';
84、 default:printf("表达式错误!\n");exit(0);
85、 case'+':return'<';
86、 case'-':return'<';
87、 case'*':return'<';
88、 case'/':return'<';
89、 case'^':return'<';
90、 case'(':return'<';
91、 case')':return'=';
92、 case'=':printf("表达式错误!\n");exit(0);
93、 default:printf("表达式错误!\n");exit(0);
94、 case'+':return'>';
95、 case'-':return'>';
96、 case'*':return'>';
97、 case'/':return'>';
98、 case'^':return'>';
99、 case'(':printf("表达式错误!\n");exit(0);
100、 case')':return'>';
101、 case'=':return'>';
102、 default:printf("表达式错误!\n");exit(0);
103、 case'+':return'<';
104、 case'-':return'<';
105、 case'*':return'<';
106、 case'/':return'<';
107、 case'^':return'<';
108、 case'(':return'<';
109、 case')':printf("表达式错误!\n");exit(0);
110、 case'=':return'=';
111、 default:printf("表达式错误!\n");exit(0);
112、 default:printf("表达式错误!\n");exit(0);
113、//判断c是否是运算符,是则返回TRUE,否则返回FALSE
114、//***************************************************************************
115、float Operate(float a,char theta,float b){
116、 printf("分母不能为0!\n");
117、 printf("0的指数必须大于0!\n");
118、 default:printf("表达式错误!\n");exit(0);
119、//c是每次读取的字符,x是存放脱括号后的多余的括号,theta是运算符,prec是c的前一个字符
120、 float a,b,result;//a、b是每次从运算数栈中取出的要进行运算的数,result存放最终结果
121、//cc存放由字符串转化而来的浮点数,flag用于标记是否已读取过小数点,
122、//ii存放小数部分需要缩小的倍数,minus用于记录该数前是否有负号
123、 InitStack(OPTR);InitStack(OPND);
124、 prec='=';scanf("%c",&c);
125、 while(c!='='||GetTop(OPTR)!='='){
126、 if(c=='-'&&(prec=='='||prec=='(')){minus=-1;prec=c;scanf("%c",&c);}
127、//若某“-”前面是“=”(第一个符号就是“-”)或“(”,则此为负号,不是减号
128、 if(flag==0)cc=cc*10+c-48;//小数点之前
129、 else if(flag==1){cc=cc+(c-48)/ii;ii*=10;}//小数点之后
130、 else{printf("小数点错误!\n");exit(0);}//小数点有错
131、 else if(c=='.')flag++;//读到小数点
132、 else{printf("表达式错误!\n");exit(0);}
133、 switch(Precede(GetTop(OPTR),c)){
134、 case'<':Push(OPTR,c);prec=c;scanf("%c",&c);break;//栈顶元素优先级低
135、 case'=':Pop(OPTR,x);prec=c;scanf("%c",&c);break;//脱括号并接收下一字符
136、 case'>'://退栈并将运算结果入栈
137、 Push(OPND,Operate(a,theta,b));
138、 printf("**********************\n");
139、 printf("*欢迎使用计算器!*\n");
140、 printf("**********************\n");
141、 printf("请输入表达式,以“=”结束:\n");
142、 printf("(支持实数间的加(+)、减(-)、乘(*)、除(/)、乘方(^)、单目减(-)运算)\n");
三、有没有300行左右的C语言课程设计的源代码
intuser_count=0;//用户信息的总数
charini_path[100]={"\0"};//数据文件的绝对路径
charuser_path[100]={"\0"};//用户数据文件的绝对路径
intbook_pos=0;//book数组的计数
voidread_file()//从文件读取数据
memset(user[i].name,'\0',10);
memset(user[i].book_name,'\0',50);
memset(book[i].no,'\0',10);
memset(book[i].name,'\0',50);
memset(book[i].author,'\0',30);
memset(book[i].money,'\0',10);
memset(book[i].in_or_out,'\0',10);
memset(book[i].user_name,'\0',10);
user_count=GetPrivateProfileInt("USER","user_count",0,user_path);
book_count=GetPrivateProfileInt("book","book_count",0,book_path);
GetPrivateProfileString(t,"name","",user[i].name,10,user_path);
GetPrivateProfileString(t,"book_name","",user[i].book_name,50,user_path);
GetPrivateProfileString(t,"no","",book[i].no,10,book_path);
GetPrivateProfileString(t,"name","",book[i].name,50,book_path);
GetPrivateProfileString(t,"author","",book[i].author,30,book_path);
GetPrivateProfileString(t,"money","",book[i].money,10,book_path);
GetPrivateProfileString(t,"in_or_out","",book[i].in_or_out,10,book_path);
GetPrivateProfileString(t,"user_name","",book[i].user_name,10,book_path);
WritePrivateProfileString(t,"name",NULL,user_path);
WritePrivateProfileString(t,"book_name",NULL,user_path);
WritePrivateProfileString(t,"no",NULL,book_path);
WritePrivateProfileString(t,"name",NULL,book_path);
WritePrivateProfileString(t,"author",NULL,book_path);
WritePrivateProfileString(t,"money",NULL,book_path);
WritePrivateProfileString(t,"in_or_out",NULL,book_path);
WritePrivateProfileString(t,"user_name",NULL,book_path);
if(strcmp(user[i].name,"")==0)
WritePrivateProfileString(t,"name",user[i].name,user_path);
WritePrivateProfileString(t,"book_name",user[i].book_name,user_path);
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("USER","user_count",temp,user_path);
WritePrivateProfileString(t,"no",book[i].no,book_path);
WritePrivateProfileString(t,"name",book[i].name,book_path);
WritePrivateProfileString(t,"author",book[i].author,book_path);
WritePrivateProfileString(t,"money",book[i].money,book_path);
WritePrivateProfileString(t,"in_or_out",book[i].in_or_out,book_path);
WritePrivateProfileString(t,"user_name",book[i].user_name,book_path);
sprintf(temp,"%d",temp_count);
WritePrivateProfileString("BOOK","book_count",temp,book_path);
voidsearch_user_name()//按借书人姓名查询
printf("请输入要查询图书借书人:");
ints[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
if(strcmp(book[i].user_name,search_key)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
printf("\n借书人:%s\n",book[i].user_name);
printf("\n\n未找到符合条件的信息!");
printf("\n\n第%d本书:%s",i+1,book[i].name);
voidsearch_book_author()//按图书作者查询
printf("请输入要查询图书的作者:");
if(strcmp(book[i].author,search_key)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
printf("\n借书人:%s\n",book[i].user_name);
printf("\n\n未找到符合条件的信息!");
voidsearch_book_name()//按图书名称查询
printf("请输入要查询图书的名称:");
if(strcmp(book[i].name,search_key)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
printf("\n借书人:%s\n",book[i].user_name);
printf("\n\n未找到符合条件的信息!");
voidsearch_book_no()//按图书编号查询
printf("请输入要查询图书的编号:");
if(strcmp(book[i].no,search_key)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
printf("\n借书人:%s\n",book[i].user_name);
printf("\n\n未找到符合条件的信息!");
voidsearch_all_book()//查询所有图书
printf("真TM穷,一本书都没有");
printf("共有%d本书\n",book_pos);
printf("\n编号:%s名称:%s作者:%s金额:%s状态:%s",book[i].no,book[i].name,book[i].author,book[i].money,book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
printf("借书人:%s",book[i].user_name);
voidsearch_all_user()//查询所有用户
printf("要倒闭了?一个人都没有!");
printf("共有%d个用户\n",user_pos);
printf("\n用户名称:%s借书名称:",user[i].name);
if(strcmp(user[i].book_name,"")!=0)
printf("%s",user[i].book_name);
printf("*********************************\n");
printf("*图书管理系统--查询*\n");
printf("*1.按图书编号查询*\n");
printf("*2.按图书名称查询*\n");
printf("*4.按借书人姓名查询*\n");
printf("*5.查询所有图书*\n");
printf("*6.查询所有用户*\n");
printf("*********************************\n");
printf("请选择:(1,2,3,4,5,6,0)");
printf("请输入要删除的用户名称:");
if(strcmp(user[i].name,del_key)==0)
printf("\n姓名:%s",user[i].name);
if(strlen(user[i].book_name)>0)
printf("\n所借书籍:%s",user[i].book_name);
printf("\n\n未找到符合条件的信息!");
printf("\n\n确认要删除该记录吗?(y/n):");
if(t=='y'||t=='Y')
if(strlen(user[del_pos].book_name)>0)
printf("\n\n该用户尚有书籍未归还,不能删除!");
strcpy(user[del_pos].name,"");
strcpy(user[del_pos].book_name,"");
elseif(t=='N'||t=='n')
printf("\n\n你选择了不删除,按任意键返回!");
printf("请输入要删除的图书的名称或编号:");
if(strcmp(book[i].name,del_key)==0||strcmp(book[i].no,del_key)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s\n",book[i].in_or_out);
printf("\n\n未找到符合条件的信息!");
printf("\n\n确认要删除该记录吗?(y/n):");
if(t=='y'||t=='Y')
if(strcmp("out",book[del_pos].in_or_out)==0)
printf("\n\n图书已经借出,不能删除!");
strcpy(book[del_pos].name,"");
strcpy(book[del_pos].money,"");
strcpy(book[del_pos].author,"");
strcpy(book[del_pos].in_or_out,"in");
strcpy(book[del_pos].user_name,"");
elseif(t=='N'||t=='n')
printf("\n\n你选择了不删除,按任意键返回!");
printf("请输入新增用户信息:\n\n");
strcpy(user[user_pos].name,name);
printf("请输入新增图书信息:\n\n");
strcpy(book[book_pos].no,no);
strcpy(book[book_pos].name,name);
strcpy(book[book_pos].author,author);
strcpy(book[book_pos].money,money);
printf("\n\n请输入还回图书的编号或名称:");
if(strcmp(temp,book[i].no)==0||strcmp(temp,book[i].name)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
printf("\n\n按任意键进行还回操作");
strcpy(book[i].in_or_out,"in");
if(strcmp(book[i].user_name,user[j].name)==0)
strcpy(user[j].book_name,"");
strcpy(book[i].user_name,"");
printf("\n\n未找到符合条件的信息!");
printf("\n\n请输入出借图书的编号或名称:");
if(strcmp(temp,book[i].no)==0||strcmp(temp,book[i].name)==0)
printf("\n编号:%s",book[i].no);
printf("\n名称:%s",book[i].name);
printf("\n作者:%s",book[i].author);
printf("\n金额:%s",book[i].money);
printf("\n状态:%s",book[i].in_or_out);
if(strcmp(book[i].in_or_out,"out")==0)
printf("\n\n该图书已经借出!\n");
printf("\n\n请输入借书人姓名:");
if(strcmp(name,user[j].name)==0)
printf("\n找不到该借书人信息,已自动添加");
strcpy(user[user_pos].name,name);
strcpy(user[user_pos].book_name,"");
strcpy(user[user_i].book_name,book[book_i].name);
strcpy(book[book_i].user_name,name);
strcpy(book[book_i].in_or_out,"out");
printf("\n\n找不到该图书信息\n");
printf("\n\n真的要退出吗?(y/n):");
if(t=='y'||t=='Y')
elseif(t=='N'||t=='n')
printf("ooooooooooooooooooooooooooooo\n");
printf("ooooooooooooooooooooooooooooo\n");
printf("oooooooooooooooooo\n");
printf("oooooooooooooooooo\n");
printf("oooooooooooooooooo\n");
printf("oooooooooooooooooooo\n");
printf("ooooooooooooooooooooo\n");
printf("oooooooooooooooooooo\n");
printf("*******************************\n");
printf("*******************************\n");
printf("请选择:(1,2,3,4,5,6,7,0)");
_getcwd(ini_path,100);//取得当前程序的绝对路径
strcat(user_path,"\\user.ini");
strcat(book_path,"\\book.ini");
printf("\n用户数据文件不存在,按任意键将创建文件");
intre=fputs("[USER]\r\nuser_count=0",fp);
printf("\n用户数据文件创建成功!");
printf("\n用户数据文件创建失败!");
printf("\n图书数据文件不存在,按任意键将创建文件");
intre=fputs("[BOOK]\r\nbook_count=0",fp);
printf("\n图书数据文件创建成功!");
printf("\n图书数据文件创建失败!");
关于c语言300行代码大作业的内容到此结束,希望对大家有所帮助。