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;
}