大一c语言课程设计题目(大一c语言课程设计题目简单的)

http://www.itjxue.com  2023-03-06 06:48  来源:未知  点击次数: 

大一C语言课程设计

用vs2008跟sql配合就可以做出来了,你学这个专业的应该知道做的吧

大一C语言课程设计题目, 求急! 加100分。

#includestdio.h

#includestring.h

#define N 100

typedef struct AA

{

char name[20];

char phone[12];

char e_mail[30];

char relation[20];

}AA;

/*1。输入新联系人2。删除指定的联系人(输入姓名,若找掉则删除该联系人的信息)

3。根据输入的与本人关系,显示联系信息4。显示所有联系人的信息设计菜单*/

int input__(AA * s)

{

int len = 0,i = 0,n;

printf("请输入要添加的联系人个数,上限为%d个\n",N);

scanf("%d",n);

for(i=0;in;i++)

{

printf("请依次输入第%d联系人的姓名、电话、邮箱以及与本人的关系(中间使用空格隔开即可):\n",i);

scanf("%s%s%s%s",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

}

return n;

}

void delete__(AA *s,int *n)

{

int i = 0,j = 0,status = 0;

char ca[20] = "";

printf("请输入要删除的联系人的姓名\n");

scanf("%s",ca);

for(i=0;i*n;i++)

{

if(!strcmp(ca,s[i].name))

{

*n = *n-1;

status = 1;

for(j=i;j*n;j++)

{

s[j] = s[j+1];

}

break;

}

}

if(status == 0)

printf("没有找到要删除的人的信息\n");

else

printf("删除成功\n");

}

void show__relation(AA *s,int n)

{

int i = 0,status = 0;

printf("请输入与联系人的关系\n");

char ca[20] = "";

scanf("%s",ca);

for(i=0;in;i++)

{

if(!strcmp(ca,s[i].relation))

{

printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

status = 1;

}

}

if(!status)

printf("没有找到相应的信息\n");

}

void show__all(AA *s,int n)

{

int i = 0;

for(i = 0 ; i n ; i++)

{

printf("name:%15s\tphone:%15s\ne-mail:%15s\trelation:%15s\n",s[i].name,s[i].phone,s[i].e_mail,s[i].relation);

}

}

int ?main(void)

{

AA ?a[N];

int n = 0;

int i;

while(1)

{

printf("0------退出系统\n1------输入联系人信息\n2------删除指定联系人信息\n");

printf("3------显示与本人关系相通的联系人信息\n4------显示所有联系人的信息\n");

scanf("%d",i);

if(i == 0)

break;

switch(i)

{

case 1:n = input__(a); break;

case 2:

if(n == 0)

{

printf("你还没有添加信息,请先添加信息:\n");

break;

}

else

{

delete__(a,n);

break;

}

case 3:

{

if(n == 0)

{

printf("你还没有添加信息,请先添加信息:\n");

break;

}

else

{

show__relation(a,n);

break;

}

}

case 4:

{

if(n == 0)

{

printf("你还没有添加信息,请先添加信息:\n");

break;

}

else

{

show__all(a,n);

break;

}

}

default:

printf("您的选择有误,请重新选择\n");

break;

}

}

return 0;

}

//看看~~~刚刚写完~

大一C语言编程题?

车票根据题意两两站点连线生成,金额和数量分别用随机数。

数据存储:站点,车票,用户分别为3个结构体,用于对应数据库。

购买流程:检查输入数值有效性-检查车票库存-购买成功同步修改用户购买流水及车票库存。(这里题目需求不明确,没有指明用户购买方式),我的代码允许一个用户同时购买多种票,每种票可分批购买多张。购买流水记录自动增加和更新。

退票流程:检查输入和用户购买记录,同步更新用户及车票信息。

删除流程:选择删除没有被用户购买的票(函数检查所有用户,虽然本题只要一个用户,实际传参用户数组首地址)。

PS: 这个题目涉及到增删改,用链表来写更好,但考虑你学习范围,没有使用链表而是动态数组,动态数组删除,考虑内存占用,不仅要需循环移位还要释放多余地址。

另外整体程序,异常的处理我只是单纯返回0或者1或者-1区分基本的成功与失败。你如想对个别异常进行特殊处理,自行修改返回值,接收判断。

下面是代码:

#include stdio.h

#include stdlib.h

#include string.h

#include time.h

#include windows.h

#include conio.h

#define MS 5//最大站点数

typedef struct station

{

? char sid[10];

? char sName[20];

}STN;

typedef struct ticket

{

? int tid;//票编号

? STN *ssP;//起始站

? STN *tsP;//终点站

? int value;//票价

? int number;//数量

}TKT;

typedef struct userInfo//用户

{

? char uid[20];//身份证号

? int cnt;//购买的票种类数量

? int *btids;//购买的所有票id数组

? int *btNum;//购买的所有票数量数组

}UIFO;

int init(STN stns[MS],TKT **tkts);//初始化车站、票数据

int disAllTickets(TKT *tkts);

int buyTicket(UIFO *uifo,TKT *tkts);//异常返回0

int reTicket(UIFO *uifo,TKT *tkts);//异常返回0

int showMenu(UIFO *uifo,TKT *tkts);

int delIntByIndex(int *nums,int len,int index);//通过下标index删除动态整型数组nums对应元素,并释放多余地址,返回删除后的数组长度,异常返回-1

int delTkts(UIFO *uifos,int len,TKT *tkts);//删除指定票(检查用户组,只要有一个用户购买,无法删除)

int cnt;//票种类数量

int main()

{

? STN stns[MS];

? TKT *tkts=NULL;

? UIFO uifo={"321002199902050614",0,NULL,NULL};

? srand(time(NULL));

? cnt=init(stns,tkts);

? printf("共生成%d组票(每组往返两种票,共%d种票)\n\n",cnt/2,cnt);

? printf("按任意键继续。。。。\n"),getch();

? system("cls");

? showMenu(uifo,tkts);

? return 0;

}

int showMenu(UIFO *uifo,TKT *tkts)

{

? int n=5;

? printf("(1) Buy ticket\n");

? printf("(2) Refund ticket\n");

? printf("(3) Remove ticket\n");

? printf("(4) Display all tickets\n");

? printf("(0) Exit\n");

? while(n0 || n4)

? ? ? scanf("%d",n);

? switch(n)

? {

? ? ? case 0: return 0;

? ? ? case 1: if(!buyTicket(uifo,tkts)) return 0;break;

? ? ? case 2: if(!reTicket(uifo,tkts)) return 0;break;

? ? ? case 3: if(!delTkts(uifo,1,tkts)) return 0;break;

? ? ? //这里删除功能,用户多名,要传数组首地址,由于演示只有一个用户(len=对应用户数),所以只传该用户地址(len=1)

? ? ? case 4: disAllTickets(tkts);break;

? }

? showMenu(uifo,tkts);

? return 1;

}

int disAllTickets(TKT *tkts)

{

? int i;

? for(i=0;icnt;i++)

? ? ? printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d\n",tkts[i].tid,tkts[i].ssP-sName,tkts[i].tsP-sName,tkts[i].value,tkts[i].number);

? printf("按任意键继续。。。。\n"),getch();

? system("cls");

? return 1;

}

int delIntByIndex(int *nums,int len,int index)

{

? int i,*temp=NULL;

? if(indexlen-1) return -1;

? for(i=index;ilen-1;i++)

? ? ? nums[i]=nums[i+1];

? len--;

? if(len)

? {

? ? ? temp=(int *)realloc(nums,sizeof(int)*len);

? ? ? if(!temp) return -1;

? ? ? nums=temp;

? }

? else

? ? ? free(nums);

? return len;

}

int reTicket(UIFO *uifo,TKT *tkts)

{

? int i,j,tid,n,index,len,flag=0;

? printf("当前用户购买记录:\n");

? for(i=0;iuifo-cnt;i++)

? {

? ? ? for(j=0;jcnt;j++)

? ? ? ? ? if(tkts[j].tid==uifo-btids[i]) index=j;

? ? ? printf("--车票编号:%d,起末站:%s-%s,购买票数:%d\n",uifo-btids[i],tkts[index].ssP-sName,tkts[index].tsP-sName,uifo-btNum[i]);

? }

? printf("请输入要退票的车票id及票数:"),scanf("%d%d",tid,n);

? for(i=0;iuifo-cnt;i++)

? ? ? if(uifo-btids[i]==tid uifo-btNum[i]=n)

? ? ? {

? ? ? ? ? for(j=0;jcnt;j++)

? ? ? ? ? ? ? if(tkts[j].tid==uifo-btids[i]) tkts[j].number+=n;//同步修改对应车票剩余票数

? ? ? ? ? uifo-btNum[i]-=n;//用户购买记录修改

? ? ? ? ? if(uifo-btNum[i]==0)//某种车票全部退完,删除该条记录

? ? ? ? ? {

? ? ? ? ? ? ? len=delIntByIndex(uifo-btNum,uifo-cnt,i);

? ? ? ? ? ? ? if(len==-1) return 0;

? ? ? ? ? ? ? len=delIntByIndex(uifo-btids,uifo-cnt,i);

? ? ? ? ? ? ? if(len==-1) return 0;

? ? ? ? ? ? ? uifo-cnt=len;

? ? ? ? ? }

? ? ? ? ? flag=1;

? ? ? ? ? break;

? ? ? }

? if(flag)

? ? ? printf("退票成功!\n");

? else

? ? ? printf("无此购买记录或输入数量不符合\n");

? printf("按任意键继续。。。。\n"),getch();

? system("cls");

? return 1;

}

int buyTicket(UIFO *uifo,TKT *tkts)

{

? char spn[20],tpn[20];

? int i,n=-1,index=-1,*temp=NULL;

? for(i=0;icnt;i++)

? ? ? printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d\n",tkts[i].tid,tkts[i].ssP-sName,tkts[i].tsP-sName,tkts[i].value,tkts[i].number);

? printf("请输入始发站站名和终点站站名:"),scanf("%s%s",spn,tpn);

? for(i=0;icnt;i++)

? ? ? if(strcmp(tkts[i].ssP-sName,spn)==0 strcmp(tkts[i].tsP-sName,tpn)==0)

? ? ? {

? ? ? ? ? printf("车票%s-%s 票价:%3d 剩余票数:%d\n",tkts[i].ssP-sName,tkts[i].tsP-sName,tkts[i].value,tkts[i].number);

? ? ? ? ? index=i;

? ? ? ? ? break;

? ? ? }

? if(index==-1)

? ? ? printf("购买失败!无此路程的车票\n");

? else

? {

? ? ? while(n=0)

? ? ? {

? ? ? ? ? printf("请输入要购买的数量(大于0):"),scanf("%d",n);

? ? ? ? ? if(tkts[index].numbern)

? ? ? ? ? ? ? printf("错误:车票数量不足或者输入数值超出范围!请重新输入!\n"),n=-1;

? ? ? }

? ? ? for(i=0;iuifo-cnt;i++)//检查用户购买记录,重复票累加购买数量,不同票新增记录

? ? ? {

? ? ? ? ? if(uifo-btids[i]==tkts[index].tid)

? ? ? ? ? {

? ? ? ? ? ? ? printf("该票已购买了%d张,现再次购买%d张,累计购买了%d张\n",uifo-btNum[i],n,uifo-btNum[i]+n);

? ? ? ? ? ? ? uifo-btNum[i]+=n;

? ? ? ? ? ? ? tkts[index].number-=n;

? ? ? ? ? ? ? break;

? ? ? ? ? }

? ? ? }

? ? ? if(i==uifo-cnt)//未检查到重复记录,新增

? ? ? {

? ? ? ? ? if(!uifo-btids)

? ? ? ? ? {

? ? ? ? ? ? ? uifo-btids=(int *)malloc(sizeof(int));

? ? ? ? ? ? ? if(!uifo-btids) return 0;

? ? ? ? ? ? ? uifo-btNum=(int *)malloc(sizeof(int));

? ? ? ? ? ? ? if(!uifo-btNum) return 0;

? ? ? ? ? }

? ? ? ? ? else

? ? ? ? ? {

? ? ? ? ? ? ? temp=(int *)realloc(uifo-btids,sizeof(int)*(uifo-cnt+1));

? ? ? ? ? ? ? if(!temp) return 0;

? ? ? ? ? ? ? uifo-btids=temp;

? ? ? ? ? ? ? temp=(int *)realloc(uifo-btNum,sizeof(int)*(uifo-cnt+1));

? ? ? ? ? ? ? if(!temp) return 0;

? ? ? ? ? ? ? uifo-btNum=temp;

? ? ? ? ? }

? ? ? ? ? uifo-btids[uifo-cnt]=tkts[index].tid;

? ? ? ? ? printf("该票购买了%d张\n",(uifo-btNum[uifo-cnt]=n));

? ? ? ? ? tkts[index].number-=n;

? ? ? ? ? uifo-cnt++;

? ? ? ? ? printf("用户购买记录:\n");

? ? ? ? ? for(i=0;iuifo-cnt;i++)

? ? ? ? ? ? ? printf("--车票编号:%d,购买票数:%d\n",uifo-btids[i],uifo-btNum[i]);

? ? ? }

? ? ? printf("本次成功购买了%s-%s的票%d张!\n",tkts[index].ssP-sName,tkts[index].tsP-sName,n);

? }

? printf("按任意键继续。。。。\n"),getch();

? system("cls");

? return 1;

}

int delTkts(UIFO *uifos,int len,TKT *tkts)//len:所有购买的用户数量

{

? int i,j,k,tid,flag=0,index;

? for(i=0;icnt;i++)

? ? ? printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d\n",tkts[i].tid,tkts[i].ssP-sName,tkts[i].tsP-sName,tkts[i].value,tkts[i].number);

? printf("请输入要删除的车票编号:"),scanf("%d",tid);

? for(i=0;icnt;i++)

? ? ? if(tid==tkts[i].tid)

? ? ? {

? ? ? ? ? index=i;

? ? ? ? ? flag=1;

? ? ? ? ? for(j=0;jlen;j++)//检查所有用户购买记录

? ? ? ? ? {

? ? ? ? ? ? ? for(k=0;kuifos[j].cnt;k++)

? ? ? ? ? ? ? ? ? if(uifos[j].btids[k]==tid)

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? flag=0;

? ? ? ? ? ? ? ? ? ? ? printf("该票已被用户购买,无法删除,需先完成退票!\n");

? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? if(!flag)

? ? ? ? ? ? ? ? ? break;

? ? ? ? ? }

? ? ? ? ? break;

? ? ? }

? if(!flag) printf(" 删除失败,输入数值超出范围或不可删除!\n");

? else

? {

? ? ? cnt--;

? ? ? if(cnt==0)

? ? ? {

? ? ? ? ? free(tkts[index].ssP);

? ? ? ? ? free(tkts[index].tsP);

? ? ? ? ? free(tkts[index]);

? ? ? }

? ? ? else

? ? ? {

? ? ? ? ? free(tkts[index].ssP);

? ? ? ? ? free(tkts[index].tsP);

? ? ? ? ? for(i=index;icnt;i++)

? ? ? ? ? ? ? tkts[i]=tkts[i+1];

? ? ? ? ? tkts[cnt].ssP=NULL;

? ? ? ? ? tkts[cnt].tsP=NULL;

? ? ? ? ? free(tkts[cnt]);

? ? ? }

? ? ? printf(" 删除成功!\n");

? }

? printf("按任意键继续。。。。\n"),getch();

? system("cls");

? return 1;

}

int init(STN stns[MS],TKT **tkts)

{

? TKT *tTemp=NULL;

? int i,j,n,v,cnt=2;

? static int id=1;

? printf("生成站点:\n");

? for(i=0;iMS;i++,id++)

? {

? ? ? sprintf(stns[i].sid,"车站%03d",id);

? ? ? sprintf(stns[i].sName,"SN%03d",id);

? ? ? printf("----站点名:%s。站点ID:%s\n",stns[i].sid,stns[i].sName);

? }

? printf("计算所有站点连线,生成车票(票是往返,所以一次生成往返两组票):\n");

? for(i=0;iMS;i++)

? ? ? for(j=i+1;jMS;j++)

? ? ? {

? ? ? ? ? if(!(*tkts))

? ? ? ? ? {

? ? ? ? ? ? ? *tkts=(TKT *)malloc(sizeof(TKT)*2);

? ? ? ? ? ? ? if(!(*tkts)) return -1;

? ? ? ? ? }

? ? ? ? ? else

? ? ? ? ? {

? ? ? ? ? ? ? tTemp=(TKT *)realloc((*tkts),sizeof(TKT)*cnt);

? ? ? ? ? ? ? if(!tTemp) return -1;

? ? ? ? ? ? ? *tkts=tTemp;

? ? ? ? ? }

? ? ? ? ? n=rand()%4+2;//每种票随机2~5张(保证总数大于20)

? ? ? ? ? v=rand()%201+50;//随机生成票价50~250

? ? ? ? ? (*tkts)[cnt-1].tid=cnt;

? ? ? ? ? (*tkts)[cnt-1].ssP=stns[i];

? ? ? ? ? (*tkts)[cnt-1].tsP=stns[j];

? ? ? ? ? (*tkts)[cnt-1].value=v;

? ? ? ? ? (*tkts)[cnt-1].number=n;

? ? ? ? ? (*tkts)[cnt-2].tid=cnt-1;

? ? ? ? ? (*tkts)[cnt-2].ssP=stns[j];

? ? ? ? ? (*tkts)[cnt-2].tsP=stns[i];

? ? ? ? ? (*tkts)[cnt-2].value=v;

? ? ? ? ? (*tkts)[cnt-2].number=n;

? ? ? ? ? printf("----%s和%s的之间往返票各生成%d张,票价为%d(随机)\n",stns[i].sName,stns[j].sName,n,v);

? ? ? ? ? cnt+=2;

? ? ? }

? return cnt-2;

}

//答题不易,如采纳的,请不要无故删除问题。

C语言课程设计题目 学生成绩管理

#includestdio.h /*引用库函数*/

#includestdlib.h

#includectype.h

#includestring.h

typedef struct /*定义结构体数组*/

{

char num[10]; /*学号*/

char name[20]; /*姓名*/

int score; /*成绩*/

}Student;

Student stu[80]; /*结构体数组变量*/

int menu_select() /*菜单函数*/

{

char c;

do{

system("cls"); /*运行前清屏*/

printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/

printf("\t\t | 1. Input Records |\n");

printf("\t\t | 2. Display All Records |\n");

printf("\t\t | 3. Sort |\n");

printf("\t\t | 4. Insert a Record |\n");

printf("\t\t | 5. Delete a Record |\n");

printf("\t\t | 6. Query |\n");

printf("\t\t | 7. Statistic |\n");

printf("\t\t | 8. Add Records from a Text File|\n");

printf("\t\t | 9. Write to a Text file |\n");

printf("\t\t | 0. Quit |\n");

printf("\t\t*****************************************\n");

printf("\t\t\tGive your Choice(0-9):");

c=getchar(); /*读入选择*/

}while(c'0'||c'9');

return(c-'0'); /*返回选择*/

}

int Input(Student stud[],int n) /*输入若干条记录*/

{int i=0;

char sign,x[10]; /*x[10]为清除多余的数据所用*/

while(sign!='n'sign!='N') /*判断*/

{ printf("\t\t\tstudent's num:"); /*交互输入*/

scanf("\t\t\t%s",stud[n+i].num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n+i].name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",stud[n+i].score);

gets(x); /*清除多余的输入*/

printf("\t\t\tany more records?(Y/N)");

scanf("\t\t\t%c",sign); /*输入判断*/

i++;

}

return(n+i);

}

void Display(Student stud[],int n) /*显示所有记录*/

{

int i;

printf("\t\t\t-----------------------------------\n"); /*格式头*/

printf("\t\t\tnumber name score\n");

printf("\t\t\t-----------------------------------\n");

for(i=1;in+1;i++) /*循环输入*/

{

printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].score);

if(i1i%10==0) /*每十个暂停*/

{printf("\t\t\t-----------------------------------\n"); /*格式*/

printf("\t\t\t");

system("pause");

printf("\t\t\t-----------------------------------\n");

}

}

printf("\t\t\t");

system("pause");

}

void Sort_by_num(Student stud[],int n) /*按学号排序*/

{ int i,j,*p,*q,s;

char t[10];

for(i=0;in-1;i++) /*冒泡法排序*/

for(j=0;jn-1-i;j++)

if(strcmp(stud[j].num,stud[j+1].num)0)

{strcpy(t,stud[j+1].num);

strcpy(stud[j+1].num,stud[j].num);

strcpy(stud[j].num,t);

strcpy(t,stud[j+1].name);

strcpy(stud[j+1].name,stud[j].name);

strcpy(stud[j].name,t);

p=stud[j+1].score;

q=stud[j].score;

s=*p;

*p=*q;

*q=s;

}

}

int Insert_a_record(Student stud[],int n) /*插入一条记录*/

{char x[10]; /*清除多余输入所用*/

printf("\t\t\tstudent's num:"); /*交互式输入*/

scanf("\t\t\t%s",stud[n].num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n].name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",stud[n].score);

gets(x);

n++;

Sort_by_num(stud,n); /*调用排序函数*/

printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/

return(n);

}

int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/

{ char s[20];

int i=0,j;

printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/

scanf("%s",s);

while(strcmp(stud[i].name,s)!=0in) i++; /*查找判断*/

if(i==n)

{ printf("\t\t\tnot find!\n"); /*返回失败信息*/

return(n);

}

for(j=i;jn-1;j++) /*删除操作*/

{

strcpy(stud[j].num,stud[j+1].num);

strcpy(stud[j].name,stud[j+1].name);

stud[j].score=stud[j+1].score;

}

printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/

return(n-1);

}

void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/

{ char s[20];

int i=0;

printf("\t\t\tinput his(her) name:"); /*交互式输入*/

scanf("\t\t\t%s",s);

while(strcmp(stud[i].name,s)!=0in) i++; /*查找判断*/

if(i==n)

{ printf("\t\t\tnot find!\n"); /*输入失败信息*/

return;

}

printf("\t\t\this(her) number:%s\n",stud[i].num); /*输出该学生信息*/

printf("\t\t\this(her) score:%d\n",stud[i].score);

}

void Statistic(Student stud[],int n) /*新增功能,输出统计信息*/

{ int i,j=0,k=0,sum=0;

float aver; /*成绩平均值*/

for(i=0;in;i++) /*循环输入判断*/

{

sum+=stud[i].score;

if(stud[j].scorestud[i].score) j=i;

if(stud[k].scorestud[i].score) k=i;

}

aver=1.0*sum/n;

printf("\t\t\tthere are %d records.\n",n); /*总共记录数*/

printf("\t\t\tthe hignest score:\n"); /*最高分*/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[j].num,stud[j].name,stud[j].score);

printf("\t\t\tthe lowest score:\n"); /*最低分*/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k].num,stud[k].name,stud[k].score);

printf("\t\t\tthe average score is %5.2f\n",aver); /*平均分*/

}

int AddfromText(Student stud[],int n) /*从文件中读入数据*/

{ int i=0,num;

FILE *fp; /*定义文件指针*/

char filename[20]; /*定义文件名*/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename); /*输入文件名*/

if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/

{ printf("\t\t\tcann't open the file\n"); /*打开失败信息*/

printf("\t\t\t");

system("pause");

return(n);

}

fscanf(fp,"%d",num); /*读入总记录量*/

while(inum) /*循环读入数据*/

{

fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,stud[n+i].score);

i++;

}

n+=num;

fclose(fp); /*关闭文件*/

printf("\t\t\tSuccessed!\n");

printf("\t\t\t");

system("pause");

return(n);

}

void WritetoText(Student stud[],int n) /*将所有记录写入文件*/

{

int i=0;

FILE *fp; /*定义文件指针*/

char filename[20]; /*定义文件名*/

printf("\t\t\tWrite Records to a Text File\n"); /*输入文件名*/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename);

if((fp=fopen(filename,"w"))==NULL) /*打开文件*/

{

printf("\t\t\tcann't open the file\n");

system("pause");

return;

}

fprintf(fp,"%d\n",n); /*循环写入数据*/

while(in)

{

fprintf(fp,"%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score);

i++;

}

fclose(fp); /*关闭文件*/

printf("Successed!\n"); /*返回成功信息*/

}

void main() /*主函数*/

{

int n=0;

for(;;)

{

switch(menu_select()) /*选择判断*/

{

case 1:

printf("\t\t\tInput Records\n"); /*输入若干条记录*/

n=Input(stu,n);

break;

case 2:

printf("\t\t\tDisplay All Records\n"); /*显示所有记录*/

Display(stu,n);

break;

case 3:

printf("\t\t\tSort\n");

Sort_by_num(stu,n); /*按学号排序*/

printf("\t\t\tSort Suceessed!\n");

printf("\t\t\t");

system("pause");

break;

case 4:

printf("\t\t\tInsert a Record\n");

n=Insert_a_record(stu,n); /*插入一条记录*/

printf("\t\t\t");

system("pause");

break;

case 5:

printf("\t\t\tDelete a Record\n");

n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/

printf("\t\t\t");

system("pause");

break;

case 6:

printf("\t\t\tQuery\n");

Query_a_record(stu,n); /*查找并显示一个记录*/

printf("\t\t\t");

system("pause");

break;

case 7:

printf("\t\t\tStatistic\n");

Statistic(stu,n); /*新增功能,输出统计信息*/

printf("\t\t\t");

system("pause");

break;

case 8:

printf("\t\t\tAdd Records from a Text File\n");

n=AddfromText(stu,n); /*新增功能,输出统计信息*/

break;

case 9:

printf("\t\t\tWrite to a Text file\n");

WritetoText(stu,n); /*循环写入数据*/

printf("\t\t\t");

system("pause");

break;

case 0:

printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*结束程序*/

printf("\t\t\t");

system("pause");

exit(0);

}

}

}

大一C语言题目 求C语言高手 急!!

#include "stdio.h"

int n=0;

int isprime(int n)

{

for(int i=2;i=n/2;i++)

if(n%i==0)

return 0;

return 1;

}

void sort(int a[])

{

int i,j;

for(i=0;in-1;i++)

for(j=0;jn-1-i;j++)

if(a[j]a[j+1])

{

int temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

int swap(int n)

{

int a,b,c;

a=n/100;

b=n/10%10;

c=n%10;

return c*100+10*b+a;

}

void print(int a[])

{

for(int i=0;in;i++)

{

printf("%-5d",a[i]);

if(i%5==4) printf("\n");

}

printf("\n");

}

void deleven(int a[])

{

int i,j,k;

for(i=0;in;i++)

{

if(a[i] % 2==0)

{

for(j=i;a[j]%2==0;j++);

k=j-i;

for(j=i;jn-k-1;j++)

a[j]=a[j+k];

n-=k;

}

}

}

void main()

{

int i;

int a[900];

for(i=100;i1000;i++)

if(isprime(i))

a[n++]=i;

printf("all primes:\n");

print(a);

printf("\n\n");

for(i=0;in;i++)

a[i]=swap(a[i]);

sort(a);

printf("after swap and sort:\n");

print(a);

printf("\n\n");

deleven(a);

printf("after delete evens:\n");

print(a);

printf("\n");

}

(责任编辑:IT教学网)

更多

推荐Mail服务器文章