當前位置:首頁 » 編程語言 » 大學c語言課設都有哪些系統
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

大學c語言課設都有哪些系統

發布時間: 2023-03-29 03:10:07

c語言程序設計——課程設計——通訊錄管理系統

/*10.3.2源程序*/
/******頭文件(.h)***********/
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*標准庫函數*/
#include "string.h"/*字元串函數*/
#include "ctype.h" /*字元操作函數*/
#define M 50 /*定義常數表示記錄數*/
typedef struct /*定義數據結構*/
{
char name[20]; /*姓名*/
char units[30]; /*單位*/
char tele[10]; /*電話*/
}ADDRESS;
/******以下是函數原型*******/
int enter(ADDRESS t[]); /*輸入記錄*/
void list(ADDRESS t[],int n); /*顯示記錄*/
void search(ADDRESS t[],int n); /*按姓名查找顯示記錄*/
int delete(ADDRESS t[],int n); /*刪除記錄*/
int add(ADDRESS t[],int n); /*插入記錄*/
void save(ADDRESS t[],int n); /*記錄保存為文件*/
int load(ADDRESS t[]); /*從文件中讀記錄*/
void display(ADDRESS t[]); /*按序號查找顯示記錄*/
void sort(ADDRESS t[],int n); /*按姓名排序*/
void qseek(ADDRESS t[],int n); /*快速查找記錄*/
void (); /*文件復制*/
void print(ADDRESS temp); /*顯示單條記錄*/
int find(ADDRESS t[],int n,char *s) ; /*查找函數*/
int menu_select(); /*主菜單函數*/
/******主函數開始*******/
main()
{
int i;
ADDRESS adr[M]; /*定義結構體數組*/
int length; /*保存記錄長度*/
clrscr(); /*清屏*/
for(;;)/*無限循環*/
{
switch(menu_select()) /*調用主菜單函數,返回值整數作開關語句的條件*/
{
case 0:length=enter(adr);break;/*輸入記錄*/
case 1:list(adr,length);break; /*顯示全部記錄*/
case 2:search(adr,length);break; /*查找記錄*/
case 3:length=delete(adr,length);break; /*刪除記錄*/
case 4:length=add(adr,length); break; /*插入記錄*/
case 5:save(adr,length);break; /*保存文件*/
case 6:length=load(adr); break; /*讀文件*/
case 7:display(adr);break; /*按序號顯示記錄*/
case 8:sort(adr,length);break; /*按姓名排序*/
case 9:qseek(adr,length);break; /*快速查找記錄*/
case 10:();break; /*復制文件*/
case 11:exit(0); /*如返回值為11則程序結束*/
}
}
}
/*菜單函數,函數返回值為整數,代表所選的菜單項*/
menu_select()
{
char s[80];
int c;
gotoxy(1,25);/*將游標定為在第25行,第1列*/
printf("press any key enter menu......\n");/*提示壓任意鍵繼續*/
getch(); /*讀入任意字元*/
clrscr(); /*清屏*/
gotoxy(1,1);
printf("********************MENU*********************\n\n");
printf(" 0. Enter record\n");
printf(" 1. List the file\n");
printf(" 2. Search record on name\n");
printf(" 3. Delete a record\n");
printf(" 4. add record \n");
printf(" 5. Save the file\n");
printf(" 6. Load the file\n");
printf(" 7. display record on order\n");
printf(" 8. sort to make new file\n");
printf(" 9. Quick seek record\n");
printf(" 10. the file to new file\n");
printf(" 11. Quit\n");
printf("***********************************************\n");
do{
printf("\n Enter you choice(0~11):"); /*提示輸入選項*/
scanf("%s",s); /*輸入選擇項*/
c=atoi(s); /*將輸入的字元串轉化為整型數*/
}while(c<0||c>11); /*選擇項不在0~11之間重輸*/
return c; /*返回選擇項,主程序根據該數調用相應的函數*/
}
/***輸入記錄,形參為結構體數組,函數值返回類型為整型表示記錄長度*/
int enter(ADDRESS t[])
{
int i,n;
char *s;
clrscr(); /*清屏*/
printf("\nplease input num \n"); /*提示信息*/
scanf("%d",&n); /*輸入記錄數*/
printf("please input record \n"); /*提示輸入記錄*/
printf("name unit telephone\n");
printf("------------------------------------------------\n");
for(i=0;i<n;i++)
{
scanf("%s%s%s",t[i].name,t[i].units,t[i].tele); /*輸入記錄*/
printf("----------------------------------------------\n");
}
return n; /*返回記錄條數*/
}
/*顯示記錄,參數為記錄數組和記錄條數*/
void list(ADDRESS t[],int n)
{
int i;
clrscr();
printf("\n\n*******************ADDRESS******************\n");
printf("name unit telephone\n");
printf("------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);
if((i+1)%10==0) /*判斷輸出是否達到10條記錄*/
{
printf("Press any key continue...\n"); /*提示信息*/
getch(); /*壓任意鍵繼續*/
}
printf("************************end*******************\n");
}
/*查找記錄*/
void search(ADDRESS t[],int n)
{
char s[20]; /*保存待查找姓名字元串*/
int i; /*保存查找到結點的序號*/
clrscr(); /*清屏*/
printf("please search name\n");
scanf("%s",s); /*輸入待查找姓名*/
i=find(t,n,s); /*調用find函數,得到一個整數*/
if(i>n-1) /*如果整數i值大於n-1,說明沒找到*/
printf("not found\n");
else
print(t[i]); /*找到,調用顯示函數顯示記錄*/
}
/*顯示指定的一條記錄*/
void print(ADDRESS temp)
{
clrscr();
printf("\n\n********************************************\n");
printf("name unit telephone\n");
printf("------------------------------------------------\n");
printf("%-20s%-30s%-10s\n",temp.name,temp.units,temp.tele);
printf("**********************end***********************\n");
}
/*查找函數,參數為記錄數組和記錄條數以及姓名s */
int find(ADDRESS t[],int n,char *s)
{
int i;
for(i=0;i<n;i++)/*從第一條記錄開始,直到最後一條*/
{
if(strcmp(s,t[i].name)==0) /*記錄中的姓名和待比較的姓名是否相等*/
return i; /*相等,則返回該記錄的下標號,程序提前結結束*/
}
return i; /*返回i值*/
}
/*刪除函數,參數為記錄數組和記錄條數*/
int delete(ADDRESS t[],int n)
{
char s[20]; /*要刪除記錄的姓名*/
int ch=0;
int i,j;
printf("please deleted name\n"); /*提示信息*/
scanf("%s",s);/*輸入姓名*/
i=find(t,n,s); /*調用find函數*/
if(i>n-1) /*如果i>n-1超過了數組的長度*/
printf("no found not deleted\n"); /*顯示沒找到要刪除的記錄*/
else
{
print(t[i]); /*調用輸出函數顯示該條記錄信息*/
printf("Are you sure delete it(1/0)\n"); /*確認是否要刪除*/
scanf("%d",&ch); /*輸入一個整數0或1*/
if(ch==1) /*如果確認刪除整數為1*/
{
for(j=i+1;j<n;j++) /*刪除該記錄,實際後續記錄前移*/
{
strcpy(t[j-1].name,t[j].name); /*將後一條記錄的姓名拷貝到前一條*/
strcpy(t[j-1].units,t[j].units); /*將後一條記錄的單位拷貝到前一條*/
strcpy(t[j-1].tele,t[j].tele); /*將後一條記錄的電話拷貝到前一條*/
}
n--; /*記錄數減1*/
}
}
return n; /*返回記錄數*/
}
/*插入記錄函數,參數為結構體數組和記錄數*/
int add(ADDRESS t[],int n)/*插入函數,參數為結構體數組和記錄數*/
{
ADDRESS temp; /*新插入記錄信息*/
int i,j;
char s[20]; /*確定插入在哪個記錄之前*/
printf("please input record\n");
printf("************************************************\n");
printf("name unit telephone\n");
printf("--------------------------------------------------\n");
scanf("%s%s%s",temp.name,temp.units,temp.tele); /*輸入插入信息*/
printf("------------------------------------------------\n");
printf("please input locate name \n");
scanf("%s",s); /*輸入插入位置的姓名*/
i=find(t,n,s); /*調用find,確定插入位置*/
for(j=n-1;j>=i;j--) /*從最後一個結點開始向後移動一條*/
{
strcpy(t[j+1].name,t[j].name); /*當前記錄的姓名拷貝到後一條*/
strcpy(t[j+1].units,t[j].units); /*當前記錄的單位拷貝到後一條*/
strcpy(t[j+1].tele,t[j].tele); /*當前記錄的電話拷貝到後一條*/
}
strcpy(t[i].name,temp.name); /*將新插入記錄的姓名拷貝到第i個位置*/
strcpy(t[i].units,temp.units); /*將新插入記錄的單位拷貝到第i個位置*/
strcpy(t[i].tele,temp.tele); /*將新插入記錄的電話拷貝到第i個位置*/
n++; /*記錄數加1*/
return n; /*返回記錄數*/
}
/*保存函數,參數為結構體數組和記錄數*/
void save(ADDRESS t[],int n)
{
int i;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","wb"))==NULL) /*打開文件,並判斷打開是否正常*/
{
printf("can not open file\n");/*沒打開*/
exit(1); /*退出*/
}
printf("\nSaving file\n"); /*輸出提示信息*/
fprintf(fp,"%d",n); /*將記錄數寫入文件*/
fprintf(fp,"\r\n"); /*將換行符號寫入文件*/
for(i=0;i<n;i++)
{
fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);/*格式寫入記錄*/
fprintf(fp,"\r\n"); /*將換行符號寫入文件*/
}
fclose(fp);/*關閉文件*/
printf("****save success***\n"); /*顯示保存成功*/
}
/*讀入函數,參數為結構體數組*/
int load(ADDRESS t[])
{
int i,n;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","rb"))==NULL)/*打開文件*/
{
printf("can not open file\n"); /*不能打開*/
exit(1); /*退出*/
}
fscanf(fp,"%d",&n); /*讀入記錄數*/
for(i=0;i<n;i++)
fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele); /*按格式讀入記錄*/
fclose(fp); /*關閉文件*/
printf("You have success read data from file!!!\n"); /*顯示保存成功*/
return n; /*返回記錄數*/
}
/*按序號顯示記錄函數*/
void display(ADDRESS t[])
{
int id,n;
FILE *fp; /*指向文件的指針*/
if((fp=fopen("record.txt","rb"))==NULL) /*打開文件*/
{
printf("can not open file\n"); /*不能打開文件*/
exit(1); /*退出*/
}
printf("Enter order number...\n"); /*顯示信息*/
scanf("%d",&id); /*輸入序號*/
fscanf(fp,"%d",&n); /*從文件讀入記錄數*/
if(id>=0&&id<n) /*判斷序號是否在記錄范圍內*/
{
fseek(fp,(id-1)*sizeof(ADDRESS),1); /*移動文件指針到該記錄位置*/
print(t[id]); /*調用輸出函數顯示該記錄*/
printf("\r\n");
}
else
printf("no %d number record!!!\n ",id); /*如果序號不合理顯示信息*/
fclose(fp); /*關閉文件*/
}
/*排序函數,參數為結構體數組和記錄數*/
void sort(ADDRESS t[],int n)
{
int i,j,flag;
ADDRESS temp; /*臨時變數做交換數據用*/
for(i=0;i<n;i++)
{
flag=0; /*設標志判斷是否發生過交換*/
for(j=0;j<n-1;j++)
if((strcmp(t[j].name,t[j+1].name))>0) /*比較大小*/
{
flag=1;
strcpy(temp.name,t[j].name); /*交換記錄*/
strcpy(temp.units,t[j].units);
strcpy(temp.tele,t[j].tele);
strcpy(t[j].name,t[j+1].name);
strcpy(t[j].units,t[j+1].units);
strcpy(t[j].tele,t[j+1].tele);
strcpy(t[j+1].name,temp.name);
strcpy(t[j+1].units,temp.units);
strcpy(t[j+1].tele,temp.tele);
}
if(flag==0)break; /*如果標志為0,說明沒有發生過交換循環結束*/
}
printf("sort sucess!!!\n"); /*顯示排序成功*/
}
/*快速查找,參數為結構體數組和記錄數*/
void qseek(ADDRESS t[],int n)
{
char s[20];
int l,r,m;
printf("\nPlease sort before qseek!\n"); /*提示確認在查找之前,記錄是否已排序*/
printf("please enter name for qseek\n"); /*提示輸入*/
scanf("%s",s); /*輸入待查找的姓名*/
l=0;r=n-1; /*設置左邊界與右邊界的初值*/
while(l<=r) /*當左邊界<=右邊界時*/
{
m=(l+r)/2; /*計算中間位置*/
if(strcmp(t[m].name,s)==0) /*與中間結點姓名欄位做比較判是否相等*/
{
print(t[m]); /*如果相等,則調用print函數顯示記錄信息*/
return ; /*返回*/
}
if(strcmp(t[m].name,s)<0) /*如果中間結點小*/
l=m+1; /*修改左邊界*/
else
r=m-1; /*否則,中間結點大,修改右邊界*/
}
if(l>r) /*如果左邊界大於右邊界時*/
printf("not found\n"); /*顯示沒找到*/
}
/*復制文件*/
void ()
{
char outfile[20]; /*目標文件名*/
int i,n;
ADDRESS temp[M]; /*定義臨時變數*/
FILE *sfp,*tfp; /*定義指向文件的指針*/
clrscr();/*清屏*/
if((sfp=fopen("record.txt","rb"))==NULL) /*打開記錄文件*/
{
printf("can not open file\n"); /*顯示不能打開文件信息*/
exit(1); /*退出*/
}
printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示信息*/
scanf("%s",outfile); /*輸入目標文件名*/
if((tfp=fopen(outfile,"wb"))==NULL) /*打開目標文件*/
{
printf("can not open file\n"); /*顯示不能打開文件信息*/
exit(1); /*退出*/
}
fscanf(sfp,"%d",&n); /*讀出文件記錄數*/
fprintf(tfp,"%d",n);/*寫入目標文件數*/
fprintf(tfp,"\r\n"); /*寫入換行符*/
for(i=0;i<n;i++)
{
fscanf(sfp,"%20s%30s%10s\n",temp[i].name,temp[i].units,
temp[i].tele); /*讀入記錄*/
fprintf(tfp,"%-20s%-30s%-10s\n",temp[i].name,
temp[i].units,temp[i].tele); /*寫入記錄*/
fprintf(tfp,"\r\n"); /*寫入換行符*/
}
fclose(sfp); /*關閉源文件*/
fclose(tfp); /*關閉目標文件*/
printf("you have success file!!!\n"); /*顯示復製成功*/
}

㈡ c語言課程設計 學生信息管理系統模擬

我發給你。
#include "stdio.h"
#include "windows.h"
#define NUM 100
struct node
{

int stuNO; //學號
char name[10]; //姓名
char sex[2]; //性別
int age; //年齡
int Chinese; //語文成績
int English; //英語成績
int Computer; //電腦成績
int Math; //數學成績
int total; //總分
int average; //平手清蠢均分
}stu[NUM];
struct node temp; //臨時結構體變數
int c=0; //c是結構體數組的下標 在此為全局變數

void menu(); //定義menu菜單
void input(); //插入數據函數
void sort(); //排序
void find(); //查找(按學號或姓名查找)
void del(); //刪除紀錄
void output(); //輸出學生的成績
void error(); //錯誤提示
void insert(); //插入數據
void print(int i); //輸出具體信息

void main()
{
menu();
}

void menu()
{
int select; //選擇標志(1--7間)
system("cls");
printf("\t\t\t學員成績管理系統\n");
printf("***************************\n");
printf("* * \n");
printf("*[1]輸入數據 \n");
printf("*[2]查找數據 \n");
printf("*[3]插入數據 \n");
printf("正隱*[4]刪除數據 \n");
printf("*[5]列印數據 \n");
printf("*[6]數據排序 \n");
printf("*[7]退出 \n");
printf("* * \n");
printf("***************************\n");
printf("請輸入你的選項(1--7):");
scanf("%d",&select);
switch(select) //判斷選擇
{
case 1:input();break;
case 2:find();break;
case 3:insert();break;
case 4:del();break;
case 5:output();break;
case 6:sort();break;
case 7:exit(0);break;
default:error();break;
}
}

void input()
{
int i; //循環變數
system("cls"); //清屏
printf("請輸入你要輸入的人數:");
scanf("%d",&c); //下標C保存多少個學生
c--;
if(c>NUM)
{
printf("最多輸入%d個學生\n",NUM);
printf("按任意鍵返回");
getchar();
getchar();
input(); //遞歸調用
}

for(i=0;i<=c;i++) //NUM是一個常量
{
printf("\n第%d個學生的學號:",i+1);
scanf("%d",&stu[i].stuNO);
printf("畢陪第%d個學生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("第%d個學生的性別:",i+1);
scanf("%s",stu[i].sex);
printf("第%d個學生的年齡:",i+1);
scanf("%d",&stu[i].age);
printf("第%d個學生的語文成績:",i+1);
scanf("%d",&stu[i].Chinese);
printf("第%d個學生的英語成績:",i+1);
scanf("%d",&stu[i].English);
printf("第%d個學生的電腦成績:",i+1);
scanf("%d",&stu[i].Computer);
printf("第%d個學生的數學成績:",i+1);
scanf("%d",&stu[i].Math);
stu[i].total=stu[i].Chinese+stu[i].English+stu[i].Computer+stu[i].Math;
stu[i].average=stu[i].total/4;
}
printf("\n按回車鍵返回主菜單……\n");
getchar();
getchar();
menu();

}

void sort()//排序
{
int i,j;
struct node temp;
for(i=0;i<c;i++)
{
for(j=i+1;j<=c;j++)
{
if(stu[i].average>stu[j].average)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}

}
}
menu();
}

void find()
{
int xuehao; //學號
char name[10]; //姓名
int flag; //選擇標志
int i; //循環變數
system("cls"); //清屏
printf("按學號查找[1]:\n");
printf("按姓名查找[2]:\n");
printf("請選擇:");
scanf("%d",&flag);
if(flag==1)
{
printf("請輸入你要查找的學號:");
scanf("%d",&xuehao);
for(i=0;i<c;i++)
{
if(stu[i].stuNO==xuehao)
{
printf("\n==**==**==** %s的成績 **==**==**==**==**\n",stu[i].name);
printf("學號:%d\t 性別:%s\t 年齡:%d\n\n",stu[i].stuNO,stu[i].sex,stu[i].age);
printf("語文成績:%d\n",stu[i].Chinese);
printf("數學成績:%d\n",stu[i].Math);
printf("英語成績:%d\n",stu[i].English);
printf("電腦成績:%d\n",stu[i].Computer);
printf("總分:%d\t平均分:%d\n",stu[i].total,stu[i].average);

}
}
}
else if(flag==2)
{
printf("請輸入你要查找的姓名:");
scanf("%s",name);
for(i=0;i<c;i++)
{
if(strcmp(stu[i].name,name)==0)
{
printf("\n==**==**==** %s的成績 **==**==**==**==**\n",stu[i].name);
printf("學號:%d\t 性別:%s\t 年齡:%d\n\n",stu[i].stuNO,stu[i].sex,stu[i].age);
printf("語文成績:%d\n",stu[i].Chinese);
printf("數學成績:%d\n",stu[i].Math);
printf("英語成績:%d\n",stu[i].English);
printf("電腦成績:%d\n",stu[i].Computer);
printf("總分:%d\t平均分:%d\n",stu[i].total,stu[i].average);

}
}
}
else
{
printf("選擇的范圍(1或2),請重新輸入……");
find();
}
printf("\n按回車鍵返回主菜單……\n");
getchar();
getchar();
menu();
}
void del()//刪除的功能
{
int n,j;
printf("請輸入學號:\n");
scanf("%d",&n);

for( j=0;j<=c;j++)
{
if (stu[j].stuNO==n)
{
int i=j;
while(i++!=c)
stu[i-1]=stu[i];
}
}
--c;
menu();//返回主菜單
}
void output() //輸出數據
{
int i; //循環變數
system("cls"); //清屏

for(i=0;i<=c;i++)
{
print(i);
}
printf("\n按回車鍵返回主菜單……\n");
getchar();
getchar();
menu();
}

void error()
{
system("cls"); //清屏
printf("輸入有誤,選擇的范圍是1--7:\n");
printf("\n按回車鍵繼續……\n");
getchar();
getchar();
system("cls"); //清屏
menu();
}

void insert() //插入的學生信息
{

system("cls");
printf("請插入要插入學生的信息:\n");
printf("請輸入學生學號:");
scanf("%d",&temp.stuNO);
printf("請輸入學生姓名:");
scanf("%s",temp.name);
printf("請輸入學生性別:");
scanf("%s",temp.sex);
printf("請輸入學生年齡:");
scanf("%d",&temp.age);
printf("請輸入學生語文成績:");
scanf("%d",&temp.Chinese);
printf("請輸入學生英語成績:");
scanf("%d",&temp.English);
printf("請輸入學生計算機成績:");
scanf("%d",&temp.Computer);
printf("請輸入學生數學成績:");
scanf("%d",&temp.Math);
temp.total=temp.English+temp.Chinese+temp.Computer+temp.Math;
temp.average=temp.total/4;

if(c<NUM)
{
if(c==0)
{
stu[c]=temp;
sort();
}
else
{
c++;
stu[c]=temp;
sort();
}

}

menu();
}

void print(int i) //列印學生成績信息
{
printf("\n==**==**==** %s的成績 **==**==**==**==**\n",stu[i].name);
printf("學號:%d\t 性別:%s\t 年齡:%d\n\n",stu[i].stuNO,stu[i].sex,stu[i].age);
printf("語文成績:%d\n",stu[i].Chinese);
printf("數學成績:%d\n",stu[i].Math);
printf("英語成績:%d\n",stu[i].English);
printf("電腦成績:%d\n",stu[i].Computer);
printf("總分:%d\t平均分:%d\n",stu[i].total,stu[i].average);
}

㈢ C語言課設 管理系統

#include iostream.h
#include iomanip.h
#include string.h
#include fstream.h
#define maxbor 3
#define maxreader 100
#define maxbook 400
struct reader //態譽隱定義讀者結構體
{
int number;
char name[10];
int borbook[maxbor];
};
struct libook //定義圖書結構體
{
int flag;
int number;
char name[20];
char writer[20];
char print[20];
float price;
};
int topbook;
int topreader;
reader read[maxreader];
libook book[maxbook];
void readtxt() //讀入讀者數據
{
reader p;
topreader=-1;
fstream file(reader.txt,ios::in);
while(1)
{
file.read((char*)&p,sizeof(p));
if(!file)break;
topreader++;
read[topreader]=p;
}
file.close();
}
void writetxt() //寫入讀者數據
{
fstream file(reader.txt,ios::out);
for(int i=0;i<=topreader;i++)
file.write((char*)&read[i],sizeof(read[i]));
file.close();
}
void addreader(reader s) //新增讀者
{
readtxt();
if(topreader>=maxreader)
{
cout<<讀者庫已經滿!< return;
}
for(int i=0;i<=topreader;i++)
if(read[i].number==s.number)
{
cout<<此編號已經存在,請重新輸入信息!< return;
}
topreader++;
read[topreader].number=s.number;
strcpy(read[topreader].name,s.name);
for(i=0;i read[topreader].borbook[i]=0;
writetxt();
}
void delreader(int number) /帆廳/刪除讀者
{
readtxt();
for(int i=0;i {
if(read[i].number==number)
{
for(int m=0;m if(read[i].borbook[m]!=0)
{
cout<<此讀者還有圖書沒有還,等還後在申請刪除此讀者< return;
}
for(int j=i;j {
read[j].number=read[j+1].number;
strcpy(read[j].name,read[j+1].name);
for(int k=0;k read[j].borbook[k]=read[j+1].borbook[k];
}
topreader--;
writetxt();
return;
}
}
if(read[topreader].number=number)
{
topreader--;
writetxt();
return;
}
cout<<查無次人!< return;
}
void searchreader(int number) //查找讀者
{
readtxt();
for(int i=0;i<=topreader;i++)
if(read[i].number==number)
{
cout<<編號:< cout<<姓名:< cout<<所借的書的編號;
if(read[i].borbook[0]==0)
{
cout<<: 無借書< return;
}
else
{
for(int j=0;read[i].borbook[j]!=0&&j return;
}
}
cout<<查無此人<}
void readerdata() //讀者數據維護
{
int choice, number;
reader s;
while(1)
{
cout<<讀者維護 1 :新增 2:刪除 3:查找虛舉 0:退出< cin>>choice;
switch(choice)
{
case 0: return;
case 1: cout<<輸入讀者編號:;
cin>>s.number;
cout<<輸入讀者姓名:;
cin>>s.name;
addreader(s);
break;
case 2: cout<<輸入刪除讀者的編號:;
cin>>number;
delreader(number);
break;
case 3: cout<<請出入要查找的讀者的編號:;
cin>>number;
searchreader(number);
break;
default: cout<<輸入錯誤,請重新輸入< break;
}
}
}
void readbtxt() //讀入圖書數據
{
libook p;
topbook=-1;
fstream file(book.txt,ios::in);
while(1)
{
file.read((char*)&p,sizeof(p));
if(!file)break;
topbook++;
book[topbook]=p;
}
file.close();
}
void writebtxt() //寫入圖書數據
{
fstream file(book.txt,ios::out);
for(int i=0;i<=topbook;i++)
file.write((char*)&book[i],sizeof(book[i]));
file.close();
}
void addbook(libook s) //新增圖書
{
readbtxt();
if(topbook>=maxbook)
{
cout<<書庫已經滿< return;
}
for(int i=0;i<=topbook;i++)
if(book[i].number==s.number)
{
cout<<此編號已經存在,請重新輸入信息< return;
}
topbook++;
book[topbook].number=s.number;
strcpy(book[topbook].name,s.name);
strcpy(book[topbook].writer,s.writer);
strcpy(book[topbook].print,s.print);
book[topbook].price=s.price;
book[topbook].flag=1;
writebtxt();
}
void delbook(int number) //刪除圖書
{
readbtxt();
for(int i=0;i if(book[i].number==number)
{
if(book[i].flag==0)
{
cout<<此書已經借出,請還回時再刪除< return;
}
for(int j=i;j {
book[j].number=book[j+1].number;
book[j].flag=1;
strcpy(book[j].name,book[j+1].name);
strcpy(book[j].writer,book[j+1].writer);
strcpy(book[j].print,book[j+1].print);
book[j].price=book[j+1].price;
};
topbook--;
writebtxt();
return;
}
if(book[topbook].number==number)topbook--;
else
{
cout<<查無此書< return;
}
writebtxt();
}
void searchbook(int number) //查找圖書
{
readbtxt();
for(int i=0;i<=topbook;i++)
if(book[i].number=number)
{
cout<<編號:< cout<<狀態:;
if(book[i].flag==1)cout<<書庫中存在< else cout<<書已經借出< cout<<書名:< cout<<作者:< cout<<出版社:< cout<<價格:< return;
}
cout<<查無此書!<}
void bookdata() //圖書管理
{
int choice,number;
libook s;
while(1)
{
cout<<圖書維護 1:新增 2:刪除 3:查找 0:退出 < cin>>choice;
switch(choice)
{
case 0: return;
case 1: cout<<輸入圖書編號:;
cin>>s.number;
cout<<輸入圖書的名稱:;
cin>>s.name;
cout<<輸入作者的姓名:;
cin>>s.writer;
cout<<輸入出版社:;
cin>>s.print;
cout<<輸入價格:;
cin>>s.price;
addbook(s);
break;
case 2: cout<<輸入刪除圖書的編號;
cin>>number;
delbook(number);
break;
case 3: cout<<輸入要查找的圖書的編號:;
cin>>number;
searchbook(number);
break;
default: cout<<輸入錯誤!< break;
}
}
}
void borbook()
{
int number,numbers;
readbtxt();
readtxt();
cout<<請輸入你的編號:;
cin>>numbers;
for(int i=0;i<=topreader;i++)
if(read[i].number==numbers)break;
if(i=topreader+1)
{
cout<<沒有你的信息!< return;
}
for(int j=0;j if(read[i].borbook[j]==0)break;
if(j>maxbor-1)
{
cout<<你所能借的書已經滿了!< return;
}
cout<<請輸入要借的書的編號!< cin>>number;
for(int k=0;k<=topbook;k++)
if(book[k].number=number)
{
if(book[k].flag=0)
{
cout<<此書已經借出!;
return;
}
book[k].flag=0;
read[i].borbook[j]=number;
writetxt();
writebtxt();
return;
}
cout<<此書不在,請重新借!< return;
}
void retbook()
{
int number,numbers;
readtxt();
readbtxt();
cout<<請輸入你的編號:;
cin>>numbers;
for(int i=0;i<=topreader;i++)
{
if(read[i].number==numbers)break;
if(i=topreader+1)
{
cout<<沒有你的信息!< return;
}
}
cout<<請輸入要還的書的編號!;
cin>>number;
for(int n=0;n<=topbook;n++)
if(book[n].number=number)break;
if(n==topbook+1||book[n].flag==1)
{
cout<<此書不為圖書管所有!< return;
};
for(int j=0;j if(read[i].borbook[j]=number)
{
for(int k=0;k if(read[i].borbook[k]=0)break;
k--;
for(int m=j+1;m<=k;m++)
{
read[i].borbook[j]=read[i].borbook[m];
j++;
}
read[i].borbook[j]=0;
book[n].flag=1;
writetxt();
writebtxt();
return;
}
if(j=maxbor)
{
cout<<您沒有借過這本書< return;
}
}
void main()
{
int x=1,y=1;
cout<<歡迎使用本圖書管理系統!< while(x!=0)
{
cout<<請選擇目的 1:進入圖書管理系統 0:退出圖書管理系統< cin>>x;
switch(x)
{
case 1: while(y!=0)
{
cout<<請選擇目的 1:借書 2:還書 3:圖書維護 4:讀者維護 0:返回上一層< cin>>y;
switch(y)
{
case 1: borbook();break;
case 2: retbook();break;
case 3: bookdata();break;
case 4: readerdata();break;
case 0: break;
default:cout<<輸入的不正確< }
};
break;
case 0: cout<<歡迎再次使用BYEBYE!< return;
default :cout<<輸入的不正確!< break;
}
}
}

㈣ C語言程序設計適合用於哪些系統或軟體的設計上

因為c語言是很接近匯編的,並且支持插入匯編,所以是用處很廣的一門語言,但也是因為這個優勢,c語言是很底層的一門語言,也就是說不是很適合大工程的開發,因為一門大工程需要很多方面的代碼,雖然c語言可以通過封裝來減少工作負擔,但是你/你的公司能有多少代碼積累,開源的項目有多少是符合你的需求的呢,所以程序員們必須把時間浪費在細節方面
所以說c語言與一些有完套介面的工具比起來就不山扒給力了,人家一句代碼,或者設置一個帶咐屬性相當與你幾個鍾的工作
但也不是說c語言就沒用了,如果你想的需求沒有開源工具或者某種語言的特性能完成,c語言還是很適合的,但是比如windows上c就比不上c#,網路方面比不上java,因為他們的開發者已經在這些方面做了很多工作用起來當然輕松蠢唯純
說了那麼多其實選擇那樣工具考慮都是成本而已
c語言的優勢在於通用性,僅此而已

㈤ 求C語言課程設計 課程管理系統

這里是我做的只有單科成績的可以按幾種排序方式進行的,你可以自己改看看……
幫不到你的話就對不起了,太晚了,該休息了……

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <malloc.h>滲迅襪
#define OrderLen 11
#define NameLen 16

typedef struct ScoreManager
{
char StudyOrder[OrderLen];
char StudentName[NameLen];
int StudentScore;
}SMR;

int main(void);
void InfoInput(SMR *Info, int n);
SMR *OrderSort(const SMR *Info,int n);
SMR *ScoreSort(const SMR *Info,int n);
void PutOrder(const SMR *Info,char *In,int n);
void InfoOutput(const SMR *Info,int n);
void StartInterface(void);
void DrawAStarLine(void);
void DrawAStrLine(void);

int main(void)
{
StartInterface();

return 0;
}

void StartInterface(void)
{
SMR *StuInfo;
SMR *OrSoInfo;
SMR *ScSoInfo;
int n;
char SearchOrder;
int CtrlExit=0;
char AskExit;
char In[11];

printf("\t\3\3歡迎使用學生MCG成績管理系統\3\3");
printf("\7\n");
DrawAStarLine();
printf("\17\t\t");
printf("請輸入學生總數:\t\t\t\t\t\t\17\n");
printf("\t\t\t\t\t\t\t\t\t\17");
printf("\r\17\t\t\t\t");
scanf("%d",&n);
StuInfo=(SMR *)malloc(n*sizeof(SMR));
InfoInput(StuInfo,n);
OrSoInfo=(SMR *)malloc(n*sizeof(SMR));
ScSoInfo=(SMR *)malloc(n*sizeof(SMR));
while(!CtrlExit){
printf("\17\t\t請輸入您想查詢的方式:有以下四種可供選擇:\t\t\17\n");
printf("\17\t\t\t按學號查詢,請按\"O\"鍵\t\t\t\昌舉t\17 \n");
printf("\17\t\t\t按成績查詢,請按\"S\"健 \t\t\t\t\17\n");
printf("\17\t\t\t顯示輸入學號的學生成績,請按\"I\"鍵\t\t\17\n");
printf("\17\t\t\t察看原始數據,請按 \"R\"鍵\t\t\t\17\n");
SearchOrder=getch();
if( SearchOrder == 'o' || SearchOrder == 'O' ){
DrawAStarLine();
printf("\17\t\t\t按學號排列以下學生成績\t\t\t\t\17\n"叢激);
OrSoInfo=OrderSort(StuInfo,n);
DrawAStarLine();
InfoOutput(OrSoInfo,n);
}
else if( SearchOrder == 's' || SearchOrder == 'S' ){
DrawAStarLine();
printf("\17\t\t\t按成績排列以下學生成績\t\t\t\t\17\n");
ScSoInfo=ScoreSort(StuInfo,n);
DrawAStarLine();
InfoOutput(ScSoInfo,n);
}
else if( SearchOrder == 'r' || SearchOrder == 'R' ){
DrawAStarLine();
printf("\17\t\t\t原始數據\t\t\t\t\t\17\n");
DrawAStarLine();
InfoOutput(StuInfo,n);
}
else if(SearchOrder == 'i' || SearchOrder == 'I' )
{
DrawAStarLine();
printf("\17\t\t\t請輸入要查詢的學生的學號:\t\t\t\17\n");
flushall();
printf("\t\t\t\t\t\t\t\t\t\17");
printf("\r\17\t\t\t\t\t\t\t");
gets(In);
DrawAStarLine();
PutOrder(StuInfo,In,n);
}
else {
printf("\17\t\t輸入格式有錯,無法查詢\t\t\t\t\t\17\n");
}
DrawAStarLine();
printf("\17\t\t 您是否希望以別的方式進行查詢? \t\t\t\17\n");
flushall();
do{
flushall();
printf("\17\t\t\t\t按'Y'繼續查詢 按'N'退出\t\t\17\n");
DrawAStarLine();
AskExit=getch();
}while( AskExit!='Y' && AskExit!='y' && AskExit!='N' && AskExit!='n' );
if( AskExit == 'Y' || AskExit == 'y' ){
continue;
}
else {
CtrlExit=1;
continue;
}
}
DrawAStarLine();
printf("\17\t\t\3\3感謝使用學生成績管理系統!\3\3\t\t\t\t\17\n");
printf("\17 (C) right 1989-2008 MCG corporation,All rights reserved \17\n");
DrawAStarLine();

}

void InfoInput(SMR *Info, int n)
{
int i;

for(i=0;i<n;i++)
{
printf("\17\t請輸入第%d個學生的學生的信息\t\t\t\t\t\17\n",i+1);
printf("\17\t學號:\t\t\t\t\t\t\t\t\17\n");
flushall();
printf("\t\t\t\t\t\t\t\t\t\17");
printf("\r\17\t");
gets(Info[i].StudyOrder);
printf("\17\t姓名:\t\t\t\t\t\t\t\t\17\n\17\t");
flushall();
printf("\t\t\t\t\t\t\t\t\17");
printf("\r\17\t");
gets(Info[i].StudentName);
printf("\17\t得分:\t\t\t\t\t\t\t\t\17\n\17\t");
printf("\t\t\t\t\t\t\t\t\17");
printf("\r\17\t");
scanf("%d",&Info[i].StudentScore);
DrawAStarLine();
}
}

SMR *OrderSort(const SMR *Info,int n)
{
int i,j;
SMR Temp;
SMR *OUT;

OUT=(SMR *)malloc(n*sizeof(SMR));

for(i=0;i<n;i++)
{
OUT[i]=Info[i];
}
for(i=0;i<n-1;i++)
{
for(j=i;j<n;j++)
{
if(strcmp(OUT[i].StudyOrder,OUT[j].StudyOrder)>0)
{
Temp=OUT[i];
OUT[i]=OUT[j];
OUT[j]=Temp;
}
}
}

return OUT;
}

SMR *ScoreSort(const SMR *Info,int n){
int i,j;
SMR Temp;
SMR *OUT;

OUT=(SMR *)malloc(n*sizeof(SMR));

for(i=0;i<n;i++){
OUT[i]=Info[i];
}
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if(OUT[i].StudentScore<OUT[j].StudentScore){
Temp=OUT[i];
OUT[i]=OUT[j];
OUT[j]=Temp;
}
}
}

return OUT;
}

void PutOrder(const SMR *Info,char *In, int n){
int i;

for(i=0;i<n;i++)
{
if( strcmp( Info[i].StudyOrder , In ) == 0 )
break;
}
if(i>=n)
{
printf("\t\t\t\t\t\t\t\t\t\17");
printf("\r\17\t\t\t沒有找到學號為%s的學生\n",In);
}
else
{
DrawAStrLine();
printf("\17\t| \bStudyOrder\t|\tName\t\t|\tScore\t|\t\17\n");
DrawAStrLine();
printf("\17\t| %-8s\t\t\b|\t%-8s\t|\t%-8d|\t\17\n",Info[i].StudyOrder,Info[i].StudentName,Info[i].StudentScore);
DrawAStrLine();
}
}

void InfoOutput(const SMR *Info,int n){
int i;

DrawAStrLine();
printf("\17\t| \bStudyOrder\t|\tName\t\t|\tScore\t|\t\17\n");
DrawAStrLine();
for (i=0;i<n;i++){
printf("\17\t| %-8s\t\t\b|\t%-8s\t|\t%-8d|\t\17\n",Info[i].StudyOrder,Info[i].StudentName,Info[i].StudentScore);
}
DrawAStrLine();
}

void DrawAStrLine(void)
{
printf("\17\t=-------------------------------------------------------=\t\17\n");
}

void DrawAStarLine(void)
{
printf("\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\n");
}

㈥ C/C++語言能夠開發哪些系統啊

C語言和C++語言,幾乎能開發所有的系統。其中有難易程度問題,這個要從歷史說起:當fortran語言逐漸過時時,出現了各種稍微高級一點的語言,雖然名字語法不通,但是都是從基層逐漸過渡來的,而且都是滿足大部分功能。其中C語言尤為著名,很多系統都是用C語言開發的,linux,unix,windows。至於C++是C語言的升級版,裡面加上了面向對象的概念使得設計系統更加方便、。一次C語言c++的組合,幾乎能開發所有系統其中嵌入式佔多數。而大型的系統如linux,unix一般不會變得,只是後期的維護

㈦ C語言教材里的程序都是基於什麼系統的

大部分外國C語言經典教材 不針對任何系統,它們的C語言標准主要有:C89,C90(ISO/IEC 9899:1990),C99(ISO/IEC 9899:1999) 三種。
C89,C90類似,都是經典ANSI C,C90作了少量改進,並讓 ISO採納。C99 是較新的ISO國際標准,ANSI後來也接受了它。

經典教材 以 C89,C90 為主,很難見到C99。

用C89,C90,即常說的ANSI C 寫的程序,所有的常見編譯器都支持(例如 TC,VC++,gcc編譯器).
main() -- C89,C90 默認是 int main(), 但 C99 認為是錯的,C99要求顯式定義為 int 型或 void 型.
int main(),必須有 return 語句。
void main(),必須有exit(0)語句。
main() 等同 main(void)。
當需要傳遞位置參數(命令行參數)到c語言內時,要用:
void main(int argc, char *argv[]){..};
argc 是命令行參數總個數,參數內容 依次在 argv[0],argv[1],argv[2]...里,argv[0] 是程序名。

C99 里含 長64位的變數,見到 long double, long long ... 就是C99。當然,還有些別的新花樣。
C89 函數頭有點怪樣,形參類型不一同寫在擴號里,而在下面花括弧前聲明一下。

㈧ 大學C語言(c++)課程設計電影院售票管理系統

#include<iostream>
#include<iomanip>
#defineLEN20
#defineROW20
usingnamespacestd;

voidinitseat(chars[LEN][ROW])
{
inti,j;
for(i=0;i<LEN;i++)
{
for(j=0;j<ROW;j++)
{
s[i][j]='';
}
}
}
voidprintmenu()
{
cout<<" 1.查詢座位 "<<"2.預定座位"<<endl;
cout<<" 3.列印電影票 "<<"4.顯示所有位置"<<endl;
cout<<" 0.退出"<<endl;
}
voidprintseat(chars[LEN][ROW])
{
inti,j;
cout<<"";
for(i=0;i<ROW;i++)
cout<<setw(3)<<i+1;
cout<<endl;
for(i=0;i<LEN;i++)
{
cout<<setw(3)<<i+1<<".";
for(j=0;j<ROW;j++)
cout<<setw(3)<<s[i][j];
cout<<endl;
}
}
boolsearchfull(chars[LEN][ROW])
{
intl,r;
cout<<"您要查找的行數為:";
cin>>l;
cout<<"您要查找的列數為:";
cin>>r;
if(s[l-1][r-1]!='')
{
cout<<"您查找的座位已有人!!!"<<endl;
returnfalse;
}
else
{
cout<<"您查找的座位沒有人!!!"<<endl;
returntrue;
}
}
boolprintticket(chars[LEN][ROW],intl,intr)
{
cout<<"電影名稱:"<<"星際穿越"<<endl;
cout<<"座位:"<<l<<"排"<<r<<"列"<<endl;
cout<<"放映時間:"<<"2014年12月20日14:00"<<endl;
returntrue;
}
boolreservation(chars[LEN][ROW])
{
intl,r;
cout<<"您要預定的行數為:";
cin>>l;
cout<<"您要預定的列數為:";
cin>>r;
if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的輸入不合法!!!"<<endl<<"預定失敗!!!"<<endl;
returnfalse;
}
boolflag;
if(s[l-1][r-1]=='#')
flag=false;
else
flag=true;
if(flag==false)
{
cout<<"此座位已有人!!!"<<endl;
returnfalse;
}
s[l-1][r-1]='#';
printticket(s,l,r);
returntrue;
}
intmain()
{
charseat[LEN][ROW];
intflag,l,r;
initseat(seat);
printseat(seat);
printmenu();
while(cin>>flag,flag!=0)
{
switch(flag)
{
case1:searchfull(seat);break;
case2:reservation(seat);break;
case3:cout<<"請輸入您要列印的行數:";cin>>l;
cout<<"請輸入您要列印的行數:";cin>>r;
if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的輸入不合法!!!"<<endl<<"預定失敗!!!"<<endl;
break;
}
printticket(seat,l,r);
break;
case4:printseat(seat);
default:break;
}
printmenu();
}
return0;
}