c语言 学生信息管理系统设计

呵呵~~
我也找了很久哦~~
第一种:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student{
int id;
char name[10];
int age;
char sex[10];
char birthady[20];
int tel;
char nativeplace[50];
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n请输入学号:");
scanf("%d",&st[i].id);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",&st[i].age);
fflush(stdin);
printf("\n请输入姓别:");
gets(st[i].sex);
fflush(stdin);
printf("\n请输入生日:");
gets(st[i].birthady);
printf("\n请输入电话:");
scanf("%d",&st[i].tel);
fflush(stdin);
printf("\n请输入籍贯:");
gets(st[i].nativeplace);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);

}

void xianshi()
{
int j;
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
for(j=0;j<i;j++)
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}

void paixu() //按年龄从大到小排序函数
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(st[k].age<st[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序后输出
}

void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
gets(name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);
}
printf("\n是否查找另一个学生的信息?(y/n)");
fflush(stdin);
b=getchar();

}while(b=='y');

}

void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}

for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t没有找到这个学生!!!\n");

else
{
i--;
xianshi();
}

printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');

}

void charu()
{
shuru();
paixu();

}

void main() //主函数
{
int change;
do{
system("cls");
printf("============================学生信息管理系统===================================\n");
printf("\t\t一: 输入学生信息\n");
printf("\t\t二: 显示学生信息\n");
printf("\t\t三: 查找学生信息\n");
printf("\t\t四: 删除学生信息\n");
printf("\t\t五: 插入学生信息\n");
printf("\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t请输入功能选项:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}
第二种
#include<stdio.h>
#include<conio.h>
#include<string.h>

typedef struct STUDENT
{
char studentNumber[10];/*学生学号*/
char studentName[20];/*学生姓名*/
char studentSEX[10];/*学生性别*/
char className[20];/*班级名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
float mark4;/*第4门成绩*/
float mark5;/*第5门成绩*/
struct STUDENT *next;
}STUDENT;
STUDENT *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
STUDENT *MallocNode(void);
void GetInformation(STUDENT *t);
void OutputInformation(void);
void DesplayInfoBystudentName(void);
void DesplayInfoBystudentNumber(void);
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber(void);
void ChangeMarkByName(void);
void ChangeMarkByNumber(void);
void SaveLinkToFile(void);
void DesplayMarkSegment(void);
void CompositorByTotalMark(void);
int choose;/*用于接受用户的选择*/
/*主函数*/
void main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
}
/************************************
函数功能:从文件中读学生信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%s%f%f%f",p->studentNumber,p->studentSEX,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3),&(p->mark4),&(p->mark5))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
STUDENT *p;
printf("-------请选择相应功能------------\n\n");
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("| 9 显示优秀和不及格学生成绩 |\n");
printf("| 10 排序结果并输出成绩 |\n");
printf("| 11 退出 |\n\n");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
OutputInformation();/*显示所有学生的信息*/
break;
case 2:
DesplayInfoBystudentName();
break;
case 3:
DesplayInfoBystudentNumber();/*根据用户输入的学号显示该学生的信息*/
break;
case 4:
p=MallocNode();/*先申请一个新结点*/
GetInformation(p);/*要求用户输入信息到新结点中*/
InsertOneNode(p);/*将新结点加到链表中*/
break;
case 5:
DeleteNodeBystudentNumber();/*根据用户输入的学号删除该学生*/
break;
case 6:
ChangeMarkByName();/*根据用户输入的姓名修改学生成绩*/
break;
case 7:
ChangeMarkByNumber();/*根据用户输入的学号修改学生成绩*/
break;
case 8:
SaveLinkToFile();/*保存数据*/
break;
case 9:
DesplayMarkSegment();/*显示各分数段的学生成绩*/
break;
case 10:
CompositorByTotalMark();
break;
case 11:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
exit(1);
break;
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/************************************
函数功能:申请一个新结点,并将其初始化
************************************/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber[i]='\0';
for(i=0;i<20;i++)
p->studentName[i]='\0';
for(i=0;i<10;i++)
p->studentSEX[i]='\0';
for(i=0;i<20;i++)
p->className[i]='\0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->mark4=0.0;
p->mark5=0.0;
p->next=NULL;
return p;
}
/************************************
函数功能:取得用户输入的学生信息
************************************/
void GetInformation(STUDENT *t)
{
printf("请输入学生学号:\n");
scanf("%s",t->studentNumber);
printf("请输入学生姓名:\n");
scanf("%s",t->studentName);
printf("请输入学生性别:\n");
scanf("%s",t->studentSEX);
printf("请输入该生所在班级:\n");
scanf("%s",t->className);
printf("请输入第1门成绩:\n");
scanf("%f",&(t->mark1));
printf("请输入第2门成绩:\n");
scanf("%f",&(t->mark2));
printf("请输入第3门成绩:\n");
scanf("%f",&(t->mark3));
printf("请输入第4门成绩:\n");
scanf("%f",&(t->mark4));
printf("请输入第5门成绩:\n");
scanf("%f",&(t->mark5));
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/************************************
函数功能:根据用户输入的学生姓名显示该学生的信息
************************************/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据用户输入的学号显示该学生的信息
************************************/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[10];
char flag=0;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(STUDENT *t)
{
printf("%s\t",t->studentNumber);
printf("%s\t",t->studentName);
printf("%s\t",t->studentSEX);
printf("%s\t",t->className);
printf("%.2f\t",t->mark1);
printf("%.2f\t",t->mark2);
printf("%.2f\t",t->mark3);
printf("%.2f\t",t->mark4);
printf("%.2f\t",t->mark5);
printf("%.2f\t",t->mark1+t->mark2+t->mark3+t->mark4+t->mark5);
printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3+t->mark4+t->mark5)/5);
}
/************************************
函数功能:根据用户输入的学号删除该学生
************************************/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("请输入要删除的学生学号:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("不存在该学号的学生\n");
return;
}
printf("成功删除\n");
}
/************************************
函数功能:显示所有学生的信息
************************************/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/************************************
函数功能:根据输入的姓名修改成绩
************************************/
void ChangeMarkByName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
float mark1,mark2,mark3,mark4,mark5;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
printf("请输入新的第4门成绩:\n");
scanf("%f",&mark4);
printf("请输入新的第5门成绩:\n");
scanf("%f",&mark5);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
p->mark4=mark4;
p->mark5=mark5;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据输入的学号修改成绩
************************************/
void ChangeMarkByNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
float mark1,mark2,mark3,mark4,mark5;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
printf("请输入新的第4门成绩:\n");
scanf("%f",&mark4);
printf("请输入新的第5门成绩:\n");
scanf("%f",&mark5);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
p->mark4=mark4;
p->mark5=mark5;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %s %f %f %f %f %f\n",p->studentNumber,p->studentName,p->studentSEX,p->className,p->mark1,p->mark2,p->mark3,p->mark4,p->mark5);
p=p->next;
}
fclose(fp);
}
/************************************
函数功能:显示优秀和不及格学生成绩
************************************/
void DesplayMarkSegment(void)
{
STUDENT *p;
int count=0;
p=headLink->next;
printf("60分以下(不及格)的学生成绩如下:\n");
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
while(p)
{
if((6>((int)(p->mark1/10)))||(6>((int)(p->mark2/10)))||(6>((int)(p->mark3/10)))||(6>((int)(p->mark4/10)))||(6>((int)(p->mark5/10))))/*只要有一科不及格就认为该生不及格*/
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("不及格的学生一共有%d人\n",count);
p=headLink->next;
printf("成绩优秀的学生成绩如下:\n");
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
count=0;
while(p)
{
if((8<=((int)(p->mark1/10)))&&(8<=((int)(p->mark2/10)))&&(8<=((int)(p->mark3/10)))&&(8<=((int)(p->mark4/10)))&&(8<=((int)(p->mark5/10))))
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("成绩优秀的学生一共有%d人\n",count);
}
/************************************
函数功能:按总成绩排序
************************************/
void CompositorByTotalMark(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没学生信息,请先输入学生信息\n");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->mark1+q->mark2+q->mark3+q->mark4+q->mark5)>(p->mark1+p->mark2+p->mark3+p->mark4+p->mark5))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先复制q结点信息到exchange*/
strcpy(exchange.studentName,q->studentName);
strcpy(exchange.className,q->className);
exchange.mark1=q->mark1;
exchange.mark2=q->mark2;
exchange.mark3=q->mark3;
exchange.mark4=q->mark4;
exchange.mark5=q->mark5;

strcpy(q->studentNumber,p->studentNumber);/*再复制p结点信息到q*/
strcpy(q->studentName,p->studentName);
strcpy(q->studentSEX,p->studentSEX);
strcpy(q->className,p->className);
q->mark1=p->mark1;
q->mark2=p->mark2;
q->mark3=p->mark3;
q->mark4=p->mark4;
q->mark5=p->mark5;
strcpy(p->studentNumber,exchange.studentNumber);/*最后复制exchange结点信息到p*/
strcpy(p->studentName,exchange.studentName);
strcpy(p->className,exchange.className);
p->mark1=exchange.mark1;
p->mark2=exchange.mark2;
p->mark3=exchange.mark3;
p->mark4=exchange.mark4;
p->mark5=exchange.mark5;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
我比较倾向于第二种,因为是自己调试的,呵呵~~
你只要把"成绩"改成你需要的其他信息就OK了~~

⑵ C语言开发软件界面怎么设计的啊

用C/C++直接开发界面程序一般有以下几种方式:
1、直接调用系统api
这一种比较麻烦而且开发的效率不高,但通过练习可以让你很好的掌握GUI程序的原理和技巧。因为常用的第3种也是以此为基础的,学会api有利于更加深入的了解GUI程序原理。
2、直接使用绘图接口自己画
这种最麻烦而且一般适用于游戏、虚拟现实等专业领域,比如使用OpenGl绘图接口制作3D程序。
3、调用其他封装好库
这一种就是别人把系统api封装好了,给了你一个简单的使用接口,比如MFC。对于C/C++来说,现在比较流行的有Qt,xwidget等GUI库,使用简单,文档丰富,而且跨平台使用,是目前比较好的选择。如果以前没有用过MFC,建议还是别学MFC了,繁琐而且不是跨平台的。
还有,如果用VS开发,.NET里面的一些标准控件也足以应付日常开发了,这个其实是现在用的最普遍的。

⑶ c语言学生管理系统设计

#include<stdio.h>
#include<stdlib.h>

int num;
struct student *stu=NULL;

struct student
{
char id[20];
char name[20];
float score;
};

void input()
{
int i;
char s[8],f[128];
FILE *outf=NULL;

if(NULL!=stu)
{
("学生信息已经录入了,是否重新录入(y/n)?");
scanf("%s",s);
s[0]=tolower(s[0]);
if('y'==s[0])
{
free(stu);
stu=NULL;
}
else
{
printf("\n");
return;
}
}
printf("请输入学生人数:");
scanf("%d",&num);
stu=(struct student*)calloc(num,sizeof(struct student));
for(i=0;i<num;i++)
{
printf("请输入第%d个学生的学号、姓名、C语言课程的成绩:",i+1);
scanf("%s %s %f",stu[i].id,stu[i].name,&stu[i].score);
}
printf("请输入保存学生信息的文件的文件名:");
scanf("%s",f);
outf=fopen(f,"w");
for(i=0;i<num-1;i++)
{
fprintf(outf,"%s %s %.1f\n",stu[i].id,stu[i].name,stu[i].score);
}
fprintf(outf,"%s %s %.1f",stu[num-1].id,stu[num-1].name,stu[num-1].score);
fclose(outf);
printf("\n");
}

void output()
{
int i;

printf("各学生的信息如下:\n");
printf("学号\t\t姓名\t\tC语言成绩\n");
for(i=0;i<num;i++)
{
printf("%s\t\t%s\t\t%.1f\n",stu[i].id,stu[i].name,stu[i].score);
}
printf("\n");
}

void findById()
{
char id[20];
int i;

printf("请输入要查询的学生信息的学号:");
scanf("%s",id);
for(i=0;i<num;i++)
{
if(0==strcmp(stu[i].id,id))
{
printf("学号为%s的学生的信息如下:\n");
printf("学号\t\t姓名\t\tC语言成绩\n");
printf("%s\t\t%s\t\t%.1f\n",stu[i].id,stu[i].name,stu[i].score);
printf("\n");
return;
}
}
printf("找不到学号为%s的学生的信息\n");
printf("\n");
}

void findByScoreRange()
{
float low,high;
int i,c=0;

printf("请输入要查询的学生信息的C语言成绩的范围(最低分、最高分)");
scanf("%f %f",&low,&high);
printf("查询结果如下:\n");
printf("学号\t\t姓名\t\tC语言成绩\n");
for(i=0;i<num;i++)
{
if(stu[i].score>=low && stu[i].score<=high)
{
printf("%s\t\t%s\t\t%.1f\n",stu[i].id,stu[i].name,stu[i].score);
c++;
}
}
if(0==c)
{
printf("找不到C语言成绩的范围在%.1f至%.1f的学生的信息\n",low,high);
printf("\n");
}
}

void modify()
{
int i;

for(i=0;i<num;i++)
{
if(stu[i].score>=55 && stu[i].score<=59)
stu[i].score+=5;
}
printf("成绩修改完毕\n");
printf("\n");
}

void displayMenu()
{
static const char menu[]="0、退出\n1、录入学生信息\n2、浏览学生信息\n3、查询学生信息\n4、修改学生成绩\n请选择一个菜单:";

printf("%s",menu);
}

void processMenu(int m)
{
int sm;

switch(m)
{
case 0:
if(NULL!=stu)
{
free(stu);
stu=NULL;
}
exit(0);
break;
case 1:
input();
break;
case 2:
output();
break;
case 3:
printf("1、按学号查询\n2、按C语言成绩范围查询\n请选择一个子菜单:");
scanf("%d",&sm);
switch(sm)
{
case 1:
findById();
break;
case 2:
findByScoreRange();
break;
default:
puts("无法处理的子菜单命令");
printf("\n");
}
break;
case 4:
modify();
break;
default:
puts("无法处理的菜单命令");
printf("\n");
break;
}
}

int main()
{
int m=0;
struct student *stu;

while(1)
{
displayMenu();
scanf("%d",&m);
processMenu(m);
}
return 0;
}

⑷ C语言程序设计适合用于哪些系统或软件的设计上

因为c语言是很接近汇编的,并且支持插入汇编,所以是用处很广的一门语言,但也是因为这个优势,c语言是很底层的一门语言,也就是说不是很适合大工程的开发,因为一门大工程需要很多方面的代码,虽然c语言可以通过封装来减少工作负担,但是你/你的公司能有多少代码积累,开源的项目有多少是符合你的需求的呢,所以程序员们必须把时间浪费在细节方面
所以说c语言与一些有完套接口的工具比起来就不给力了,人家一句代码,或者设置一个属性相当与你几个钟的工作
但也不是说c语言就没用了,如果你想的需求没有开源工具或者某种语言的特性能完成,c语言还是很适合的,但是比如windows上c就比不上c#,网络方面比不上java,因为他们的开发者已经在这些方面做了很多工作用起来当然轻松
说了那么多其实选择那样工具考虑都是成本而已
c语言的优势在于通用性,仅此而已

⑸ C语言课程设计 设计题目管理系统

你好,源代码,实现你所要求的,需要了就聊我

⑹ c语言系统设计

#include<stdio.h>
#include<string.h>


//十进制数转换为二进制数
char*Dec2Bin(unsigneddnum,charbin[]){
intn=0,i,t;
while(dnum){
bin[n++]=dnum%2+'0';
dnum/=2;
}
bin[n]='';
for(i=0;i<n/2;++i){
t=bin[i];
bin[i]=bin[n-1-i];
bin[n-1-i]=t;
}
returnbin;
}


//十六进制数转换为十进制数
unsignedHex2Dec(charhex[]){
unsigneddnum=0,i=0;
while(hex[i]){
if(hex[i]>='0'&&hex[i]<='9')
dnum=16*dnum+hex[i]-'0';
elseif(hex[i]>='A'&&hex[i]<='F')
dnum=16*dnum+hex[i]-'A'+10;
elseif(hex[i]>='a'&&hex[i]<='f')
dnum=16*dnum+hex[i]-'a'+10;
else{}//其他字符舍弃
++i;
}
returndnum;
}

//八进制数转换为二进制数
char*Oct2Bin(charoct[],charbin[]){
inti=0,j=0;
unsigneddnum=0;
while(oct[i]){
if(oct[i]>='0'&&oct[i]<='7')
dnum=8*dnum+oct[i]-'0';
++i;
}
Dec2Bin(dnum,bin);
returnbin;
}

intmain(){
charcmd[10],s[10],res[33];
unsignednum;
do{
printf(" 1、十进制数转换为二进制数 ");
printf(" 2、十六进制数转换为十进制数 ");
printf(" 3、八进制数转换为二进制数 ");
printf(" 0、退出程序 ");
printf(" 请选择:");
fflush(stdin);
fgets(cmd,10,stdin);
switch(cmd[0]-'0'){
case1:printf(" 请输入一个正整数:");
scanf("%u",&num);
if(num<0)num=-num;
printf(" (%u)D=>(%s)B ",num,Dec2Bin(num,res));
break;
case2:printf(" 请输入一个十六进制数:");
scanf("%s",s);
printf(" (%s)H=>(%u)D ",s,Hex2Dec(s));
break;
case3:printf(" 请输入一个八进制数:");
scanf("%s",s);
printf(" (%s)O=>(%s)B ",s,Oct2Bin(s,res));
break;
case0:break;
default:printf(" 输入错误,请重新选择! ");
}
}while(cmd[0]-'0');
return0;
}

⑺ C语言做一个小系统,先设计一个菜单程序,再具体写出。

#include <stdio.h>
#include <string.h>

#define NUM1 20
#define NUM2 20
#define NUM3 10
#define N 4
int num=0;

typedef struct student{
int n;
float score;
struct student *next;
}student;

void newstring()
{
char s[NUM1]="abcdefg";
char t[NUM1]="ackblm";
char u[NUM1]="";
int i=0,j=0,m=0;
for(i=0;s[i]!=0;i++)
{
for(j=0;t[j]!=0;j++)
{
if(s[i]==t[j])
{
for(m=0;u[m]!=0;m++)
{
if(u[m]==t[j]) break;
}
if(u[m]==0)
{
u[m]=t[j];
break;
}
}
}
}
printf("%s\n",u);
}

void fun()
{
char s[NUM2]="ABCD";
char t[NUM2]="";
int len=strlen(s),i,j;
printf("%d\n",len);
strcpy(t,s);
for(i=0,j=len-1;i<len;i++,j--)
{
t[len+i]=s[j];
}
printf("%s\n",t);
}

void bear()
{
int num=1,i;
for(i=NUM3-1;i>0;i--)
{
num=num*2+1;
}
printf("The result is %d\n",num);
}

void studentgoal()
{
int i=0;
float score=0;
student stu[N],*p;
stu[3].n=0;
stu[3].score=96;
stu[3].next=0;
stu[2].n=2;
stu[2].score=94;
stu[2].next=&stu[3];
stu[1].n=1;
stu[1].score=92;
stu[1].next=&stu[2];
stu[0].n=0;
stu[0].score=90;
stu[0].next=&stu[1];
p=stu;
while(i<N)
{
score=score+p->score;
p=p->next;
i++;
}
score=score/4.0;
printf("score=%f\n",score);
}

void goodbye()
{
printf("Good bye!\n");
}

void main()
{

char input,start='Y';
while(start=='Y' || start=='y')
{
printf("Menu:\t1:New String\n\t2:Connecting String\n\t3:Bear eats nuts\n\t4:Students' average score\n\t5: exit()\nPlease input the select num:");
scanf("%c",&input);
getchar();
switch(input)
{
case '1': newstring();break;
case '2': fun();break;
case '3': bear();break;
case '4': studentgoal();break;
case '5': goodbye();exit();
default: printf("Your input is wrong! ");
}
printf("Do you want to continue(Y/N)?");
scanf("%c",&start);
getchar();
}
}

⑻ C语言设计


#include<iostream>
#include<string>

usingnamespacestd;

classATM
{
private:
//这些预设参数自己改就行了
stringusername="test";
stringpassword="123456";
stringinput_password;
doublebalance=1000;
doublecount;
public:
boolwithdraw()
{
cout<<"User'sname:"<<username<<endl;
//输入密码
cout<<"Pleaseinputthepassword:"<<endl;
cin>>input_password;
if(!strcmp(password.c_str(),input_password.c_str()))//校验密码
{
//输入金额
cout<<"Thetotalbalanceis:"<<balance<<endl;
cout<<":"<<endl;
cin>>count;
//比较余额
if(count<=balance)
{
//余额>=取出金额
balance-=count;
cout<<"Dealclose"<<endl;
cout<<"Thebalande:"<<balance<<endl;
}
else//余额不足
{
cout<<"Notsufficientfunds!"<<endl;
returnfalse;
}
}
else//密码错误
{
cout<<"Wrongpassword!"<<endl;
returnfalse;
}
returntrue;
}

};

intmain()
{
ATMatm;
atm.withdraw();
system("pause");
return0;
}